LAPDOG

Firmware

The timer runs ESP-IDF on the ESP32-C5, built with PlatformIO and the pioarduino platform (upstream PlatformIO has no C5 support yet).

Status: sessions, settings, USB, ESP-NOW and Bluetooth output are written and unit-tested. The radio capture is still a stub, so you get laps only from the sim command for now.

Build and flash

pio run -e c5_mini -t upload
pio device monitor
pio test -e native

The C5's native USB shows up as a serial port (CDC-ACM). No driver is needed.

USB console

Send plain text lines. Every command replies OK or ERR. Settings can only change while the timer is idle.

Command What it does
get Prints every setting as S:<key>=<value>
set chan R4 Video channel (or set freq <MHz>)
set enter <dB> / set exit <dB> Gate thresholds above the baseline
set minlap <ms> Minimum lap time, 1000–30000
set park on|off / set maxpeak <ms> Ignore parked quads
set link ble|espnow Radio output (one or the other)
set phrase <bind phrase> ELRS bind phrase for ESP-NOW
set event <name> / set prefix <text> / set heat <n> Event name, heat prefix and next heat number
set msg.event|msg.heat|msg.start|msg.laps|msg.best on|off Which race messages to send
set mode practice|race What a BOOT long press arms
set race.limit laps|time, race.laps <n>, race.time <s>, race.hold on|off Race defaults
save / defaults Save to flash, or reset (not saved)
arm practice / arm race [laps <n>|time <s>] Start a heat
disarm, heat next, restart End, advance or rerun the heat
rssi on|off Stream R:<dB> for calibration
sim Inject a fake gate pass
set chan R4
set event Thursday Backyard
set link ble
save
arm race laps 3
sim
F:212A03020139300000

Lap and race events come back as F:<hex> lines. See Protocol.