With the driver implemented, you are ready to build the project, flash it to the ESP32-C3 DevKit, and verify end-to-end cloud connectivity through the RainMaker phone app.
Build and Flash#
From your project directory, run:
cd rainbow_led # directory where you extracted the zip
idf.py set-target esp32c3
idf.py build
idf.py -p <PORT> flash monitor/dev/ttyUSB0 or /dev/ttyACM0, on Windows COMx and on macOS /dev/cu.usbserial-xxxx.On the first build the Component Manager automatically downloads espressif/led_strip and espressif/button. Subsequent builds use the cached components.
Provision with the Phone App#
- Download the ESP RainMaker Home app for Android or iOS.
- Open the app and log in.
- Tap + → Add Device.
- Scan the QR code shown in the serial monitor, or enter the proof-of-possession (PoP) manually.
- Follow the Wi-Fi provisioning steps.
Once provisioned, the Rainbow LED device appears in the app with three controls:
| Control | Type | Range |
|---|---|---|
| Power | Toggle | On / Off |
| Brightness | Slider | 0 – 100 |
| Cycle Speed | Slider | 1 – 10 |
Test Hardware Interactions#
Verify that every path, from app to device and back to the app, works correctly:
| Action | Expected result |
|---|---|
| Tap Power in app | LED turns on/off |
| Drag Brightness slider | LED dims or brightens |
| Drag Cycle Speed slider | Rainbow cycles faster or slower |
| Press BOOT button once | LED toggles; app Power toggle updates |
| Hold BOOT button 1 s | Speed and Brightness randomise; sliders update in app |
Conclusion#
Congratulations! You have completed the ESP RainMaker Studio workshop!
You designed a custom device data model visually, had a full ESP-IDF project generated for you, implemented only the hardware-specific driver code, and validated end-to-end cloud connectivity from phone app to physical LED.
The same workflow applies to any product you build with ESP RainMaker: define the model in Studio, fill in the driver, ship.
Reference#
Planning a private ESP RainMaker deployment? Contact us.




