Track Operations
The short version of everything you need standing next to the car, whether you're in the pits or debugging with no debugger attached.
What this board does
The Telemetry Node is a passive listener on the vehicle CAN bus. It cannot actuate anything: its only bus outputs are the GPS speed/heading re-broadcast (0x0F0) and lap-count frames. It is not part of the shutdown circuit and is powered from the LV system. Turning it off changes nothing about how the car drives: you only lose logging and live data.
Quick check
- Power on → the PCB LED gives 3 quick blinks (CAN app init), then settles into a 2 Hz heartbeat.
- CAN → frame
0x0F0appears on the bus at 20 Hz (CANdapter / ECUBus Pro). - UDP → on the receiving server:
nc -ul 9000shows CSV lines prefixed1,(20 Hz) and2,(5 Hz). - SD → after a session, the card has a new
<date>_<runid>.csvfile that grows while the node runs.
LED signatures
The board has no console in normal builds: the LED is the only diagnostic.
| LED | Meaning |
|---|---|
| 3 quick blinks at power-on | CAN app initializing (normal boot) |
| Steady 2 Hz blink | Scheduler alive, node running |
| Odd blip out of rhythm | CAN bus-off occurred; the driver recovers automatically |
| Frozen (on or off) | Error_Handler() (interrupts disabled, board halted). Power cycle. |
Failure modes
| Symptom | Cause | What still works | Recovery |
|---|---|---|---|
| LED frozen right after boot | SD card missing/corrupt (FileX open/create failures halt the node) | Nothing | Insert a good FAT-formatted card, power cycle |
| Runs, but no UDP at the pit | No DHCP lease (the node has no static IP), no Ethernet link, wrong server IP, or firewall on port 9000 | SD logging, CAN | Make sure a DHCP server (router) is on the network; check link/cabling; verify UDP_SERVER_ADDRESS |
| GPS fields all zero | No fix yet (or no antenna) | Everything else | Wait for fix / check antenna; lap tracking needs a fix |
time_unix looks wrong | RTC not yet synced (it syncs on the first GPS fix) | Everything | Ignore early timestamps or wait for fix |
A bad SD card halts the whole node
FileX errors call Error_Handler(), so a failed card doesn't just kill logging: it stops UDP and CAN too. Carry a spare formatted card.
Retrieving the logs
One file per boot: <rtc-date>_<runid>.csv (the run counter lives in RUN.ID on the card). The first row is the CSV header; parse columns positionally against it (see Data Format).
Before an event
These are hardcoded in sys_conf.h and must be re-pointed per venue, then re-flashed:
UDP_SERVER_ADDRESS/UDP_SERVER_PORT: where the stream goes.NTRIP_CASTER_IP_ADDRESS,NTRIP_MOUNTPOINT, credentials: the venue's RTK caster (defaults are placeholders).
Flashing is via ST-Link with the firmware binary from the matching v* GitHub release (the CAN bootloader path is currently stubbed).
