Guide
OTA Firmware Updates
Update your device wirelessly after the first USB flash. The device downloads and installs new firmware over WiFi automatically.
How it works
Usually wired after wifi_connect so the device is online. Can be triggered on boot, on button press, or on a timer.
The OTA node calls your update server at {url}/version.json and compares the returned version string to the running firmware version.
If a newer version exists, the device downloads {url}/firmware.bin and streams it directly to the second OTA flash partition.
On success the device reboots automatically. The upToDate output fires if already on the latest version. failed fires on network error or bad binary.
Example flow
Wire the OTA node after WiFi connect. The updating output fires immediately — the device then reboots itself if successful.
OTA node config
Only one config field — the update server URL.
urltext fieldBase URL of your update server. The node appends /version.json and /firmware.bin automatically.
upToDateFired if device is already on latest versionupdatingFired immediately before download starts (device will reboot)failedFired on network error, bad URL, or download failureSetting up the update server
The compiler service serves the OTA endpoint automatically — no separate server needed. Just point the OTA node at your compiler.
version.jsonMust contain a "version" key. The HAL compares this to the running BH_VERSION_STR.
firmware.binThe raw ESP32 firmware binary. Download it from the compiler after a successful build.
Flash partition layout
BLUEHASH firmware uses a dual-OTA partition layout. The device alternates between app0 and app1 on each successful update. NVS (your saved variables) is in a separate partition and survives every OTA.