sensi pot

Sensi pot

GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.

GitHub is where the world builds software

Millions of developers and companies build, ship, and maintain their software on GitHub — the largest and most advanced development platform in the world.

Use Git or checkout with SVN using the web URL.

Work fast with our official CLI. Learn more.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio

Latest commit

Git stats


Failed to load latest commit information.

Sensi-pot is open source hardware and software

designed to help automate routine indoor garden processes such as lighting cycles, environment control, watering, and nutrient regulation. A prolific boom in the marijuana industry is taking place in Colorado, Oregon, and Washington states in the U.S. (and soon many other states) causing an increased demand for indoor gardening products. Especially in Colorado, where the winter is long and cold, most marijuana is grown indoors; necessitating equipment to help control and mimic the plant’s native environment. This is especially needed for growing marijuana, which is very sensitive to heat and humidity (or lack thereof). However, most indoor gardening automation equipment is designed for big production facilities and is usually too expensive for the average grower. Sensi-pot provides electronics kits that can be easily assembled by anyone with a soldering iron, allowing the average user access to the same type of technology available to bigger growers at a fraction of the price.

Sensi-Pot Indoor Environment Controller

This is the first Sensi-Pot open source automation device made for regulating the temperature and humidity of an enclosed space, including greenhouses. Marijuana grows best when the environment is kept at a perfect balance, and this device can maintain a perfect 55% humidity and 75 degrees fahrenheit, which is perfect for marijuana. The controller can be adjusted to regulate any temperature or level of humidity. At the heart of the device is the custom circuit board, which can be ordered using the open source Gerber files, or by ordering through (see below for more info).

Controls temperature to within 2 degrees.

Controls humidity to within 5%.

Wifi webserver shows the current temp and humidity as well as provides a manual way to active/deactivate any of the devices connected to it. You can also pause/unpause data logging from the web page as well as erase all data on the SD card.

Data logging records the temperature and humidity with a timestamp to an SD card.

Displays the current time, temperature and humidity on an LCD

Designed using the open source PCB design and editing software, Kicad, so any changes you’d like to make to the circuit board can easily be done using the Kicad files available on Github.

Uses the ATMEGA328P microcontroller, the same that can be found on any Arduino.

The ATMEGA328P was programmed using the open source Arduino IDE software and uses some of the Arduino libraries in it’s C++ code.

Uses the ESP01 wifi module to serve a basic web page on the local network. To connect to a secured network the code must be modified slightly to include the SSID and the router password. The ATMEGA328P microcontroller communicates with the ESP01 using standard serial communication.

Can technically control up to 8 devices and simply needs an 8 channel relay to do this. The pictures in this post show the controller connected to a 4 channel relay which is capable of controlling a heater, air conditioner, humidifier and dehumidifier. The other 4 devices can include lights and fans.

Uses the DHT11 humidity and temperature sensor which can sense temperatures from 0 to 50 degrees Celsius (32 to 122 degrees Fahrenheit) +/- 2 degrees and can sense humidity from 20% to 80% +/- 5%. This can easily be replaced with no additional code with the DHT22 which has a temperature range of -40 to 125 (+/- 0.5) degrees Celsius and a humidity range of 0% to 100% (+/- 2 to 5 percent).

Uses the MicroSD module to write logging data to any standard micro SD card. The ATMEGA328P communicates with the MicroSD module using the serial peripheral interface (SPI).

Powered by the LM2596 adjustable buck converter which steps down any voltage between 9 and 34 volts to a regulated 5 volts used by the ATMEGA328P and it’s peripheries. The voltage is further stepped down to 3.3 volts by the LM317 linear voltage regulator for use by the ESP01 wifi module. The Environment Controller consumes about 1.5 amps, with a peak current around 2 amps.

Includes port access to programming pins via a 5 pin header that can be used to program the Environment Controller with an Arduino. Also includes access to the RX and TX pins of the ATMEGA328P so that a serial out connection can be made to a computer (mostly used for debugging).

There are actually two programs that were written to run on the Environment Controller; one for the ATMEGA328P microcontroller and one for the ESP01 wifi module which serves the webpage.

Programmed using the Arduino IDE and supporting libraries.

Uses standard serial communication to transfer data between it and the ESP01 wifi module. All data is delineated by the ” ” characters so that discrete amounts of data at any size can be transferred. This is very helpful as sending large amounts of data through a serial connection can be fraught with problems.

Uses the Arduino library to communicate to the ESP01 since the RX and TX pins are still used for debugging.

Uses the Arduino and libraries to communicate with the MicroSD module for data logging.

The example code block above shows how the data gets written to the SD card. Below shows how the data on the card is accessed and sent to the ESP01 to be displayed on the web page.

Uses the
library to display data on the LCD.

Uses the library to fetch temperature and humidity data from the sensor.

A binary system was created to utilize the shift register. Since there are eight possible devices that can be controlled, all 8 outputs of the shift register are used. A binary number contains 8 digits, where a 1 indicates that a device is on, and a 0 indicates a devices is off. Binary math (xor) is used to add all the binary states of each device together to create one binary number that represents the state of all devices.

Programmed using the Arduino IDE and supporting libraries.

Contains a small amount of CSS and HTML stored in rawliteral memory used to display the web page.

Uses the and libraries to fetch the current time from the Internet ( and sets it local time by this. This is used to create the Unix timestamps for logging, and to convert Unix timestamps to human readable days, minutes, hours and the date.

The ESP01 libraries handle form submission on the web page, but a custom function was created to parse the data and commence the action.

  • The ESP01 is used by the ATMEGA328P to request the current timestamp each time data is logged.

Assembling The Sensi-Pot Indoor Environment Controller

The circuit board has on it a lable for every part, so assembling and soldering should be very simple. A complete BOM (Bill of Materials) is included in the Github repository so ordering all the parts should also be relatively easy. A complete set of assembly instructions along with a “how-to” video will be created in the near future.

Since Artolabs uses for it’s circuit board production you can take advantage of PCBway’s share program and simply order this circuit board without the need to submit the Gerber files! You get 5 circuit boards for $5 (plus about $8 shipping), and Artolabs gets a small commission too.

ArtoLabs uses exclusively for small run production and prototyping. They provide outstanding customer service, and carefully review each order. It was surprising and comforting when they found some very small details I had overlooked and gave me a chance to correct my boards before manufacturing them.

Sensi-Pot uses the Arduino open source library, Kicad open source PCB design software, and is written in C++.

This is obviously a working prototype. There are actually an incredible number of improvements planned for the Sensi-Pot Environment Controller, including an alarm circuit (for notifying when the temperature or humidity has gone out of control, perhaps due to a malfunctioning device), an LDR (Light Detecting Resistor) to enable the LCD and LEDs to power off when the grow area is in the “lights out” phase of the day, a soft power up circuit to prevent the shift register from activating when the Environment Controller is switched on, and too many more to mention. Sensi-Pot also has in the works a Soil Sensor Array to monitor the soil conditions of up to 10 plants per array, as well as many more automation devices.

Collection of modules for indoor/outdoor gardening automation and environmental control – ArtoLabs/Sensi-pot

Electric Candle Warmers

Scentsy Candle Warmers

There are so many different ways to describe our Scentsy candle warmers. They are all electric and they all plugin to the wall, either by way of a lamp like cord or directly into the wall like a nightlight. People will call them Scentsy Pots, plug-in candles, ceramic pots, potpourri pots… and the list goes on. Let’s talk about the worst one that I hear, Scentsy Burners. The reason why I dislike this term when it comes to the description of our products is because it’s not a burner. There’s absolutely nothing that is being burned. We pride ourselves with being a wickless candle product. This means that there’s no flame, therefore no burning of the wax. Scentsy warmers use a low wattage light bulb to warm the highly scented wax bars. The wax is heated just above body temperature, therefore it won’t burn upon touch. If you have some children, or even pets that like to get into things and experiment, you won’t have to worry that they’re going to burn themselves. The Scentsy wax is just a paraffin, food based wax. No toxins are released into the air.. only the scent is released from the candle warmer.

In reality, a “Scentsy pot”, as some call them, is an okay term to use, however it’s almost still applying that there’s going to be a flame of some sort to heat the candle. It is in fact an electric candle warmer, which makes people wonder how that would work and usually they assume that it’s not a scented candle, but there for decoration purposes only. This is where Scentsy is different. We have over 80 scents that are compatible for use with our candle warmers. I say compatible because I have heard that not every candle, even if they’re wax bars made for other warmers, is made with the right amount of fragrance oils to smell the same or melt the same in our candle warmers.

When I first tried the Scentsy Candle Warmers, I couldn’t believe that the wax didn’t evaporate, I was thinking that when it warmed, it evaporated as well. That’s not the case and that’s why they’re safe candles and better alternatives to the jarred candles with a wick that burn. When you light a traditional candle, you’re also creating soot and particles are released into the air. With Scentsy candle bars, because they’re not burned, only the scent is released, not the wax. So, when you don’t smell your wax cubes anymore, you simply pour the wax back into the candle bar container, or wipe out the remainder wax with a paper towel and put in another scented wax refill.

I have also came to realize that everyone is spelling “Scentsy” many different ways : Scentcy, Scentsie, Sensie, Scency – I love it! I think it’s just great that everyone is looking for the products and are trying to find out more about the electric candle warmers!

I’d be happy to discuss with anyone how our products work -scentsy pots, electric candle warmers, potpourri pots, whatever you want to call them, they’re great!

Electric candle warmers are all the rage. Using Scentsy Pots, as some call them are even better because there's 80 wax scents to use in our Scentsy Candle warmers.