Firmware OTA Update Guide
NORTHSTARSHOW SYSTEMS
Firmware OTA Update Guide
Pushing new firmware to Polaris nodes over Wi-Fi
| Document Number | Revision | Date | Platform Version |
|---|---|---|---|
| NSSS-DOC-0061 | A | 2026-05-20 | 1.0 |
When OTA Is Used
After the initial USB bootstrap of each Polaris board, all subsequent firmware updates flow via Wi-Fi using the ArduinoOTA protocol. Updates are triggered from the Cuemaster Firmware tab in Maintenance Mode, or programmatically via the HelmOS HTTP API.
Prerequisites
- The board has been USB-flashed at least once with a Polaris firmware that includes the ArduinoOTA listener
- The board is currently joined to TrueNorth Wi-Fi and registered with HelmOS
- HelmOS holds the new firmware binary in data/firmware/ — typically deposited there when a new .nsss.compose was deployed
- HelmOS is in Maintenance Mode
Push Protocol
- HelmOS sends a UDP packet to the board's IP on port 65280: auth_method ourTcpPort size md5
- Board responds: OK (no auth) or AUTH <nonce> (password challenge)
- If auth: HelmOS sends md5(password + nonce). Board responds OK.
- Board opens a TCP connection back to ourTcpPort.
- HelmOS streams the firmware bytes.
- Board writes to its secondary flash bank.
- Board verifies MD5 against the expected value.
- Board reboots into the new firmware.
- Board re-registers with HelmOS, reports its new fw_version in the next heartbeat.
OTA Password
Each project derives a deterministic 16-character hex OTA password from the project name plus the node ID using a hash function (FNV-1a 64-bit). HelmOS knows the password because it has the project file. An attacker on the venue Wi-Fi without the project cannot push firmware.
Concurrency
The fleet-update endpoint flashes boards in batches (default 5 concurrent, configurable via HELMOS_OTA_CONCURRENCY). A 100-board venue completes a full update in approximately 5 to 10 minutes.
Safety
- The UNO R4 dual-bank flash protects against power loss during transfer
- MD5 verification gates the bank commit
- A failed update reverts to the old firmware automatically
- Maintenance Mode gating prevents accidental updates during a running show
Related Documents
- NSSS-DOC-0042Maintenance HMI Reference
- NSSS-DOC-0055Polaris Firmware Bootstrap
- NSSS-DOC-0074ArduinoOTA Integration
Revision History
| Revision | Date | Description |
|---|---|---|
| A | 2026-05-20 | Initial publication |