Skip to content

Firmware Receiver v16

OneSeventyFour edited this page May 15, 2026 · 2 revisions

Receiver firmware v16

Released 2026-05
Status Superseded by v22
Pairs with dongle v10+
Predecessor v15

Downloads

File Purpose Download
os4_receiver_v16.bin App partition. Download
os4_receiver_v16.bootloader.bin Chip bootloader. Download
os4_receiver_v16.partitions.bin Partition table. Download
os4_receiver_v16.boot_app0.bin OTA "next-app" pointer. Download

Release notes

Boot-time status-LED sequence now encodes FW_VERSION and NODE_ID as 3-digit decimal numbers across the 3 status LEDs.

The boot sequence is now three flashes:

  1. FW_VERSION (digit-color, breath in/out)
  2. Battery level (existing behavior, unchanged: bar count + color)
  3. NODE_ID (digit-color, breath in/out)

The 1st and 3rd used to be a single fixed-purple breath and a fixed-white fade respectively, neither of which carried any per-unit information. That made it impossible to tell at a glance which firmware or which receiver had just powered up — a real problem during incremental rollouts and during fleet bring-up.

For both the version and node-id flashes, each status LED shows one decimal digit:

LED Digit
LED 0 hundreds
LED 1 tens
LED 2 ones

For example:

  • FW v20 → LED0 red(0), LED1 yellow(2), LED2 red(0)
  • FW v16 → LED0 red(0), LED1 red(0), LED2 orange(6)
  • NODE_ID 137 → LED0 blue(1), LED1 green(3), LED2 white(7)

Each digit 0..9 maps to a fixed, vivid color chosen so consecutive digits are maximally distinct (so 1 vs 2 or 7 vs 8 are obvious at a glance, even if 2 vs 5 could be confused at a distance):

Digit Color Digit Color
0 red 5 cyan
1 blue 6 orange
2 yellow 7 white
3 green 8 pink
4 purple 9 lime

The LEDs all breathe in/out together at the same brightness curve the old purple breath used, so the boot "feel" is unchanged — just informative.

Only the boot flashes change. The unprovisioned magenta breath, the show-time animations, and the OTA white breathe are untouched — those carry distinct semantics that shouldn't be repurposed. Unprovisioned units (NODE_ID==0) will show all-red(0) on the node-id flash, then transition into the magenta breath as usual.

Upgrade notes

  • No wire-protocol changes. Drop-in compatible with any v10+ dongle.
  • Cosmetic-only change to boot LEDs.

How to flash

Clone this wiki locally