Skip to content

Firmware Dongle v15

OneSeventyFour edited this page May 15, 2026 · 2 revisions

Dongle firmware v15

Released 2026-05
Status Superseded by v16
Pairs with receiver v15+
Predecessor v14

Downloads

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

Release notes

Non-blocking OTA serial writes + faster WDT recovery.

  • emitOtaAck / Nack / Pong / heartbeat now build their line into a stack buffer and check Serial.availableForWrite() before writing. If the USB-CDC TX ring buffer (256 B) doesn't have room, the line is dropped and otaSerialDropped is bumped. Previously, even with setTxTimeoutMs(20), Serial.print of 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 OS heartbeat (OS att acked retries last bytes phase dropped) so the host can see backpressure.
  • WDT timeout dropped from 20 s → 10 s and trigger_panic switched to false (soft reset instead of panic). Faster recovery, USB-CDC re-enumerates more reliably without a panic backtrace stalling reboot.

Upgrade notes

  • No wire-protocol changes. Drop-in for any v15+ receiver fleet.

How to flash

Clone this wiki locally