Firmware OTA Update Guide

NORTHSTARSHOW SYSTEMS

Firmware OTA Update Guide

Pushing new firmware to Polaris nodes over Wi-Fi

Document NumberRevisionDatePlatform Version
NSSS-DOC-0061A2026-05-201.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
  • NSSS-DOC-0042Maintenance HMI Reference
  • NSSS-DOC-0055Polaris Firmware Bootstrap
  • NSSS-DOC-0074ArduinoOTA Integration

Revision History

RevisionDateDescription
A2026-05-20Initial publication