Build from Source

RBgrid is a firmware application for the ESP32, not a library you link into your own sketch. "Building from source" means building the hub image as it is and flashing it to the board; you then configure sensors and units at runtime from the web app or the API (see Concepts → Sensors & Units).

📦 Source: the firmware source is published at github.com/robotdyn-dimmer/RBgrid (from the v1.1.0 release), together with the LICENSE, COMMERCIAL.md and NOTICE files.

Requirements

  • Board: ESP32-WROVER with PSRAM — required (RBgrid uses PSRAM; it will not run on an ESP32 without it).
  • Toolchain: ESP-IDF v5.4.1 (exactly this version), target esp32.
  • openssl on the build machine (used once to generate the development certificate).

Licence

RBgrid firmware is source-available under the PolyForm Noncommercial 1.0.0 licence — free to use, modify and build for personal and non-commercial use; commercial use requires a licence (contact info@rbamp.com). It is not an OSI "open source" licence. The LICENSE, COMMERCIAL.md and NOTICE files are in the repository from the v1.1.0 release.

Build steps

  1. Clone the repository (from the v1.1.0 release): bash git clone https://github.com/robotdyn-dimmer/RBgrid.git cd RBgrid
  2. Generate the development certificate (once, before the first build). This writes a self-signed certificate used for HTTPS on your local network (rbgrid_dev_cert.pem + rbgrid_dev_key.pem, valid 10 years); the private key is not shipped in the repository: bash components/rbpower/certs/gen_dev_cert.sh
  3. (Optional) set your own first-login access-point password. Copy the template and set a password of 8–63 characters: bash cp components/rbpower/include/ap_provision.example.h components/rbpower/include/ap_provision.h # edit ap_provision.h and set your AP password If you skip this, the build uses the public template value and prints a warning — you can still set your own password later in the app.

  4. Build: bash idf.py build

  5. Flash over USB (writes the bootloader, partition table, OTA data and the app): bash idf.py -p <PORT> flash <PORT> is the board's serial port (e.g. /dev/ttyUSB0, COM3).

After this first USB flash, further updates are delivered over the air (OTA) from the web app — you do not need a cable again.

First boot

  1. The hub starts its own Wi-Fi network, rbgrid-<mac4> (the last four of its MAC), using the first-login password.
  2. Join it and open 192.168.4.1.
  3. Save your home Wi-Fi so the hub joins your network.
  4. In the app, set your own access-point password (Settings → Network → Hub access point) and, optionally, your MQTT broker — the hub ships with no default broker.

From here, add your rbAmp modules and bind channels to points as in Concepts → Sensors & Units and First Measurements.

🔒 On the LAN, writes to the hub's API are open until you set an admin token (POST /api/system/token). Setting one is recommended.