Self-updating, with automatic rollback if a new release fails to boot. Releases are signed and pulled straight from GitHub Pages — no proxy, no opaque vendor cloud.
Loading…
The device downloads the binary directly from GitHub (no proxy), verifies its SHA-256, and flashes the inactive OTA partition. If anything fails during the first 30 s post-reboot, the previous version is automatically restored.
The device will reboot once the flash completes. This page will be unreachable for ~10-15 s during the reboot. Don't power-cycle during the install — rollback can't help if the device loses power mid-flash.
Discovery and install behaviour for new releases. Manual installs (the panel above when an update is offered, or the upload form below) always work regardless of these settings.
Hour range applies in the device's local time. Start < end is a same-day window (e.g. 02:00-05:00). Start > end wraps midnight (e.g. 22:00-05:00 covers either side of midnight).
For builds that aren't on GitHub Releases (development snapshots, hotfixes, bisecting a regression). Upload a .bin compiled locally with ./build.sh build. Skips the SHA verification — use carefully.
Don't power off during upload — takes ~15 s. If the new firmware doesn't boot, hold the ATOM button for 10 seconds to factory reset.