-
Notifications
You must be signed in to change notification settings - Fork 0
OTA Updates
Boards can update themselves over Wi-Fi — no computer needed.
In the web UI under Diagnostics, pressing Update Firmware (GitHub) makes the board download the newest released firmware for its build directly from GitHub releases and flash itself. The board fetches the version-less latest asset URL, so the button always gets the current release:
https://github.com/<ota_repo>/releases/latest/download/<ota_asset>.ota.bin
- Generic board builds pull from valar-motion's releases (
val3000.ota.bin,val3100.ota.bin,val3101.ota.bin). - Product firmwares (Ropener, Glasscalibur) override the repo and asset name so field units pull from their own product repo's releases instead.
The download takes a minute or two for the ~1 MB image; the board reboots into the new firmware when done. Settings (speed, current, direction, schedules) are preserved.
A freshly OTA'd image boots in a pending-verify state: if the new firmware crashes or boot-loops, the board automatically reverts to the previous image instead of bricking. About a minute after a healthy boot the new image is marked good. Practical upshot: if an update seems to "not stick," check whether the board rolled back — and don't power-cycle repeatedly during the first minute after an update.
-
Browser + USB-C: flash any
*.factory.binfrom web.esphome.io — this is also the recovery path if Wi-Fi credentials are lost or you want to switch firmware entirely (e.g. from the factory Ropener image to the generic board build). -
ESPHome dashboard / CLI: the boards accept standard ESPHome OTA uploads (
esphome uploador the dashboard) if you build from source.
Devices in the field fetch <ota_asset>.ota.bin (plus its .md5) from the latest release forever. Never rename release assets — val3100.ota.bin, Ropener-VAL3100.ota.bin, etc. must stay byte-for-byte stable across releases and repo moves, or shipped units stop updating. CI builds a *.factory.bin (full image, for USB flashing) and a *.ota.bin (OTA image) per board on every tagged release. See docs/MIGRATION.md.