-
Notifications
You must be signed in to change notification settings - Fork 3
Firmware Receiver v12
OneSeventyFour edited this page May 15, 2026
·
2 revisions
| Released | 2026-05 |
| Status | Superseded by v13 |
| Pairs with dongle | v8+ |
| Predecessor | v11 |
| Notable | Critical mid-show stability fix. |
| File | Purpose | Download |
|---|---|---|
os4_receiver_v12.bin |
App partition. | Download |
os4_receiver_v12.bootloader.bin |
Chip bootloader. | Download |
os4_receiver_v12.partitions.bin |
Partition table. | Download |
os4_receiver_v12.boot_app0.bin |
OTA "next-app" pointer. | Download |
Don't abort the show on radio dropout + clock-domain fix.
- The disconnect detection used
now = millis() + clock_offsetforlastCmdReceivedbut recomputednowwith the latestclock_offseton the following loop iteration. ACLOCK_SYNCinside the same iteration would mutateclock_offset, so the next iteration'snow - lastCmdReceivedincluded the entire clock-offset delta — enough to trip the 5 s floor on any meaningful clock jump (e.g. anmsyncat daemon restart, or jitter compounding over minutes), even though no real time had elapsed. That manifested as a quick magentaANIM_FLASHING_PURPLEflash mid-show and the receiver halting all subsequent cue fires. We now tracklastCmdReceivedin rawmillis()so the disconnect math is monotonic and unaffected by clock-offset updates. - Even on a real disconnect, we no longer clear
isPlaying. The show is loaded locally with absolute synchronized fire times — a brief RF dropout doesn't invalidate any of that, and aborting the autonomous schedule is exactly the wrong response. The radio is still re-armed and we still flash purple so the operator sees the blip, but cues continue to fire on the loaded schedule. The operator can hit STOP if they want a hard abort.
- Strongly recommended for anyone running shows on v9–v11. Without this fix, a clock-sync inside an unlucky main-loop iteration could pseudo-disconnect the receiver mid-show and silently halt firing.
- No wire-protocol changes.
- Wired only — pre-OTA (which lands at v15). Flashing a receiver.
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