Awesome Open Source
Awesome Open Source


Table of Contents



SuperGreenOS provides most features used when growing cannabis, all in one package, and controllable from your smartphone, pc, mac, linux, toaster, plumbus, whatnot...

It is the official firmware for the SuperGreenController.

Who is this document for

This document is for developpers that want to start playing with there controller's internal stuffs, or just setup their own hardware. This repository is based on SuperGreenOSBoilerplate, please read the doc here first.


Here's what it can (or will) do:

  • Lights on and off schedules
  • Up to 6 separate led channels (you can put multiple leds behind one channel)
  • Up to 3 separate timers, for full-cycle setups (veg + flo)
  • Monitoring a wide range of sensors
  • Data sent to a private cloud
  • Produce alerts based on sensor values
  • Allows remote control (TODO)
  • Manual ventilation control
  • Automatic ventilation control based on temperature and humidity (TODO)
  • Stretch mode, allows to choose how much you want your plant to stretch or thicken
  • Sunglass mode, so you don't burn your eyes when you work on your plants
  • More to come..

This is the firmware that runs the SuperGreenController.

Workspace setup

If you haven't already done it, you'll to setup esp-idf's toolchain and sdk.

They have a very good quickstart here.

Clone repo, build and run

Now you should be able to clone and build the firmware:

git clone
cd SuperGreenOS
./ config.controller.json
./ config.controller.json
make -j4

The plug your controller or any esp32 based board and run the commands:

make -j4 flash monitor

The first command flashes the firmware, the second writes the embedded admin interface on the tiny file system (~20KB available).

How to use

Once the firmware is flashed you can access the controller's wifi network, once connected go to, this will display the html embedded admin interface, which allows you to easily modify any of the controller's parameter.


Up-2-date dev environment setup 06/2020

Python 2.7


brew install [email protected]


mkdir -p $HOME/esp && cd $HOME/esp
git clone --recursive esp-idf_release_3.3.1
cd esp-idf_release_3.3.1
git checkout 143d26aa49df524e10fb8e41a71d12e731b9b71d

Install Docs reference:

python2.7 -m pip install --user -r $IDF_PATH/requirements.txt

Practically, a virtualenv is created in ~/.espressif where packages are installed and will be activated with the following addition to shell (.bashrc / .zshrc)

export IDF_PATH=$HOME/esp/esp-idf_release_3.3.1
source $IDF_PATH/


npm -g install ejs-cli


Please pay attention to Build configuration name: generic and version.

mkspiffs ver. 0.2.3
Build configuration name: generic
SPIFFS ver. 0.3.7-5-gf5e26c4
Extra build flags: (none)
SPIFFS configuration:


cue version 0.0.8 darwin/amd64

Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
C (194,028
Dashboard (16,510
Sensor (15,764
Iot (12,321
Monitoring (12,047
Firmware (10,410
Led (9,302
Esp (8,350
Mqtt (8,115
Alert (7,488
Esp32 (4,668
Smartphone (1,489
Ota (966
Farming (527
Growbox (3