-
Notifications
You must be signed in to change notification settings - Fork 3
Firmware Receiver v15
OneSeventyFour edited this page May 15, 2026
·
2 revisions
| Released | 2026-05 |
| Status | Superseded by v16 |
| Pairs with dongle | v10+ |
| Predecessor | v14 |
| Notable | First release with OTA flash support. |
| File | Purpose | Download |
|---|---|---|
os4_receiver_v15.bin |
App partition. | Download |
os4_receiver_v15.bootloader.bin |
Chip bootloader. | Download |
os4_receiver_v15.partitions.bin |
Partition table. | Download |
os4_receiver_v15.boot_app0.bin |
OTA "next-app" pointer. | Download |
OTA flash mode (paired with dongle FW v10+).
- New message types
OTA_BEGIN(13)/OTA_DATA(14)/OTA_END(15)/OTA_ABORT(16)and a piggy-back ACK statusRECEIVER_OTA_STATUS(17). - On
OTA_BEGINwe callUpdate.begin(totalSize), switch the radio to the high data rate the dongle requested (1 Mbps or 2 Mbps), and start streaming chunks straight into the OTA partition viaUpdate.write(). Each chunk is up to 29 bytes (32 B nRF payload − 1 B type − 2 BchunkIdx); the dongle's auto-retry handles loss. - On
OTA_ENDweUpdate.end(true), accept-the-image, andESP.restart()— the bootloader picks the new partition next boot. NVS is untouched so identity (NODE_ID+RECEIVER_IDENT) survives. - On
OTA_ABORTor any local error,Update.abort()runs and the radio switches back to the standard 250 kbps so the receiver can resume normal polling without a reboot. - While the OTA state machine is active,
runPlayLoop/ animation / status-LED updates are suspended; the status strip shows a slow dim-white breathe so the operator can see the unit is being reflashed. We keep refreshing the ACK payload on every chunk so the dongle gets up-to-datebytesReceived/lastChunk/state/errorCodefor progress reporting up to the host.
- Mandatory upgrade if you want OTA. v15 receivers can be reflashed over the air by any v10+ dongle. Older receivers must be flashed via USB.
- No breaking wire-protocol changes for normal operation. v15 still talks the same baseline ACK-payload protocol introduced in v9.
- First time getting v15 onto a board: wired only — Flashing a receiver → routine flash.
- After v15 is running, future updates can use OTA flashing.
Getting started
- Overview
- Desktop installers (macOS / Windows)
- macOS
- Linux
- Windows
- Production vs Development
- Connecting the dongle
- Flash a receiver
- Flash a dongle
- OTA flashing
Raspberry Pi
System overview
Subsystems
Hardware
- Receiver firmware
- Dongle firmware
- RF protocol
- Contributor Portal — BOMs, schematics, and board resources
UI walkthrough
Reference
Downloads
- Firmware
- Installers
Module Build & User Guides
- Cue
- Receiver
- Dongle