E-Traxx Telemetry (TeleGUI26)
Pit-side PySide6 receiver for the 2026 car: Daphnis P2P radio over USB serial, live panels, and session logging to NDJSON and MF4.
- Python
- PySide6
- DBC
- CAN
- Serial
- MF4
Part of E-Traxx (Formula Student)
About the Project
TeleGUI26 runs on a PC in the pit. It connects the Daphnis-1 radio over USB serial, decodes incoming payloads, presents the vehicle signals in live panels, and records each session as replayable NDJSON and MF4.
Radio path
Car → Daphnis (TX) → LoRa P2P → Daphnis (PC) → USB serial → TeleGUI26
Two payload formats are supported. The current car broadcasts a fixed 32-byte schema-v1 packet about every 0.75 s. Older bridges and replays still use a legacy per-CAN-frame format decoded against the DBC.
What the car sends (schema v1)
Byte 0 is the schema version. Remaining fields are little-endian raw integers; physical value = raw × scale. Scroll the table horizontally on narrow screens.
| Group | Field | Unit |
|---|---|---|
| TSAC / battery | pack current | A |
| TSAC / battery | SOC | % |
| TSAC / battery | lowest / highest cell voltage | V |
| Inverter | U1 / U2 speed | rpm |
| Inverter | U1 / U2 torque | Nm |
| Driver | brake, throttle, steering | % |
| Temperature | highest cell, motor U1/U2, IGBT U1/U2 | °C |
| Vehicle | g-force X/Y, average speed | g / km/h |
| Vehicle | yaw, roll, pitch | ° |
| Status | errors bitmask, R2D status | — |
DBC contract
The telemetry CAN contract lives in toTelemetry.dbc. A DBC file describes how raw CAN bytes become named physical signals (scale, signedness, units). TeleGUI26 vendors that DBC for the legacy frame path; the packed packet uses the same signal names so panels stay shared. The Live demo below replays a synthetic Showcase feed (sine/jitter) that matches TeleGUI26’s Demo Showcase panels.
Gallery
Demo:
Demo ready. No data loaded yet.