-
Notifications
You must be signed in to change notification settings - Fork 3
Firmware Receiver
OneSeventyFour edited this page May 15, 2026
·
2 revisions
All historical receiver firmware releases. The latest is at the top.
| Version | Date | Highlights | Pairs with dongle |
|---|---|---|---|
| v23 (current) | 2026-05 | Current baseline. | v16+ |
| v22 | 2026-05 | Receiver-side configuration query/set protocol. Persisted fire_duration_ms in NVS. |
v16+ |
| v16 | 2026-05 | Boot-time status-LED sequence encodes FW_VERSION and NODE_ID as 3-digit decimal. |
v10+ |
| v15 | 2026-05 | OTA flash mode. New OTA_BEGIN/DATA/END/ABORT message types. NVS-preserving in-place updates. |
v10+ |
| v14 | 2026-05 |
NODE_ID + RECEIVER_IDENT moved out of firmware into NVS. One binary serves the whole fleet. |
v8+ |
| v13 | 2026-05 | Relax disconnect tolerance (8 s floor, 6× adaptive, 90 s ceiling). | v8+ |
| v12 | 2026-05 | Don't abort the show on radio dropout + clock-domain fix for disconnect detection. | v8+ |
| v11 | 2026-05 | Adaptive disconnect detection + ACK-payload freshness flush. | v8+ |
| v10 | 2026-05 | Fix RF address aliasing (BASE+N instead of `BASE |
N`). |
| v9 | 2026-04 | ACK-payload protocol overhaul. Dynamic payloads, packed SHOW_LOADN, configurable RF channel. |
v4+ |
| v8 | — | Previous baseline (not separately documented). | v3+ |
| v7 | 2025-01 | Migrated from RF24Mesh to pure RF24 with deterministic addressing. | v3+ |
| v6 | 2025-01 | Added FW_VERSION tracking system with version-history comments. |
v2+ |
| v1 – v5 | — | Historical. Not separately documented. | — |
Per Firmware downloads, each receiver release ships four files (built by devices/utils/build_receiver.sh from os4_receiver.ino):
os4_receiver_v<N>.bin app partition (flash @ 0x10000)
os4_receiver_v<N>.bootloader.bin chip bootloader (flash @ 0x1000)
os4_receiver_v<N>.partitions.bin partition table (flash @ 0x8000)
os4_receiver_v<N>.boot_app0.bin OTA next-app pointer (flash @ 0xe000)
Routine updates (wired or OTA) only need os4_receiver_v<N>.bin. Full / first-time flashes need all four.
Already-deployed receivers can be upgraded over the air from the UI — see OTA flashing. Wired flashes use devices/utils/flash_receiver.py — see Flashing a receiver. Either path preserves NODE_ID / RECEIVER_IDENT in NVS as long as you don't run esptool erase_flash.
- Build and publish the firmware with
ownerutils/deploy_receiver_firmware. - Confirm the four
.binfiles are available underhttps://backyard-hero.com/download/firmware/receiver/. - Add a row at the top of the table above and create a
Firmware-Receiver-v<N>.mdpage modeled after v23 with the new release notes. - Update the Latest releases section of Firmware downloads.
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