Rajdeep Singh

← Back to work

USC Formula SAE Dashboard

HardwareTelemetryFastAPI

Real-time telemetry for the USC Formula SAE racecar, hardware to software. Live sensor data comes off the car's MoTeC data-acquisition system over its telemetry radio; a configuration layer pushes settings back the other way. Ten subteams edit role-scoped configs; a watcher injects those values into MoTeC .ldx files, verifies the injection after every MoTeC rewrite, and streams the live sensor feed to the dashboard.

What it does

  • Role-scoped forms with a full audit trail. Ten subteam roles — DAQ, chief, suspension, aero, powertrain, and the rest. YAML-driven schemas, current values prefilled, every field change logged with user, timestamp, and diff.
  • LDX inject-and-verify loop. The backend watches the configured directory, injects current form values into new .ldx files, then re-checks tracked files every 60 seconds. When MoTeC rewrites an .ldx and strips injected values, the watcher restores them automatically. Manual reinjection is available from the injection history.
  • Live telemetry off the car. Sensor data arrives off the MoTeC DAQ through the Digi Bee SX serial bridge — the car's telemetry radio — with a passive UDP broadcast listener and a simulated generator as fallbacks, streamed over WebSocket. The frontend renders line, gauge, and numeric widgets with auto-reconnect on dropout.

Stack

  • Backend — FastAPI, SQLModel, SQLite, JWT auth, WebSocket telemetry, LDX file watcher + verification task.
  • Frontend — Next.js 14 App Router, React 18, Tailwind, shadcn/ui, SWR, Recharts.
  • Deployment — Docker Compose, three services behind a reverse proxy, UDP listener exposed on 50000.