-
Notifications
You must be signed in to change notification settings - Fork 3
Firmware Dongle v15
OneSeventyFour edited this page May 15, 2026
·
2 revisions
| Released | 2026-05 |
| Status | Superseded by v16 |
| Pairs with receiver | v15+ |
| Predecessor | v14 |
| File | Purpose | Download |
|---|---|---|
os4_dongle_v15.bin |
App partition. | Download |
os4_dongle_v15.bootloader.bin |
Chip bootloader. | Download |
os4_dongle_v15.partitions.bin |
Partition table. | Download |
os4_dongle_v15.boot_app0.bin |
OTA "next-app" pointer. | Download |
Non-blocking OTA serial writes + faster WDT recovery.
-
emitOtaAck/Nack/Pong/heartbeatnow build their line into a stack buffer and checkSerial.availableForWrite()before writing. If the USB-CDC TX ring buffer (256 B) doesn't have room, the line is dropped andotaSerialDroppedis bumped. Previously, even withsetTxTimeoutMs(20),Serial.printof a 30-byte line did a byte-by-byte write loop where each byte could block 20 ms against a backed-up FIFO — so a slow host briefly stalling drainage chained into 600 ms+ of main-loop blocking per ack message. Drops are safe because the host has its own retry/timeout layer for OTA chunks. - Dropped count surfaces in the
OSheartbeat (OS att acked retries last bytes phase dropped) so the host can see backpressure. - WDT timeout dropped from 20 s → 10 s and
trigger_panicswitched tofalse(soft reset instead of panic). Faster recovery, USB-CDC re-enumerates more reliably without a panic backtrace stalling reboot.
- No wire-protocol changes. Drop-in for any v15+ receiver fleet.
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