Introduction

This is a two-part series talking about the telemetry system that Jacky and I built.

Objective:

  • Build a live telemetry system so that home base and spectators can follow along with what the driver is seeing real time
  • Build a review system so that drivers can review and improve their on track performance
  • Build a system for to relay car state so that mechanics and technicans can track realtime

Requirements:

  • Multiple camera feeds with reliable video transmission
  • Driver inputs and engine state tapped from vehicle electrical harnesses
    • We are driving a car without OBD2, so we must tap many signals via analog sensing
  • Built in 3 days

These objectives and requirements drove us build a custom solution. In the first part of this blog, we’ll talk about the hardware BOM and build out. In the second part we’ll talk about the software for live monitoring and in-post review.

Questions?

If you are interested in installing this setup on your own race car, reach out to us on X at @shihao_cao. For a $2000 donation to the team, we will hop on calls with you to help you get things setup until it works.

Design

Hardware BOM

ComponentModelSpecsPowerCostCategoryNotes
Forward Wide CameraLogitech C920x1080p x 30fpsUSB - 2.5W$70VideoDriver POV
Driver CameraLogitech C920x1080p x 30fpsUSB - 2.5W$70VideoBeing able to see the shifting and pedal movements is cool
On Board ComputeJetson Orin NX16GB RAM, NVENC Accelerator12V/5A → 60W Max$1150ComputeWe don’t ever want video encoding to be the bottleneck, so we wanted a hardware encoding accelerator
5G ModemGL-X30005G Compatible, physical SIM12V/2.5A → 30W Max$323Connectivity5G is likely overkill, but the bandwidth headroom is nice
SIM Card + PlanVisible+Unlimited data$45/moConnectivityVerizon generally works well at TH and Sonoma
GPS/AccelRacebox Micro25Hz, <1m accuracy12V, 0.2W Max$125TelemetryAlso works standalone with your phone
Bluetooth DongleUD100-G03BLEUSB, 2.5W Max$39TelemetryJetson doesn’t have built-in BT; Racebox relays over BLE
MicrocontrollerArduino Mega 256054 Digital IO, 16 Analog InputsUSB, 1W Max$49TelemetryBit overkill — a smaller 5V Arduino would be plenty

Totals

  • Total cost: ~1850 for listed parts. ~$2000 when including random wires, resistors/diodes, butt joints, t splices, small wires, solder, perfboard, zipties, etc.
  • Total power: ~100W max theoretical, in practice steady state power draw was likely closer to 20/30W maximum

Telemetry Points

Telemetry PointSense StrategySignal TypeArduino PinSense Line
Video 1CameraDigital
Video 2CameraDigital
Brake IndicatorBinary yes/no voltage12V divided down, 4.3XA5White/Green Brake Light Line
Battery VoltageAnalog12V divided down, 4.3XA6Tap off the PDB +12V bus
Throttle PositionCalibrate 0–1005V analogA9D11 ECU D connector
Engine Coolant Temp (T/W)Lookup table5V analogA8D13 ECU D Connector
MAPLookup table5V analogA10D13 ECU D Connector
RPM (Tach)Derive instantaneous pulses/sec12V square wave → 5VD19A7 BLU Dash Connector
VSSDerive instantaneous pulses/sec12V square wave → 5VD18B10 ECU B Connector
GPSRaceboxDigital
AccelRaceboxDigital
GyroRaceboxDigital

Telemetry System Design

Telemetry Block Diagram

Design Considerations

We had considered a Starlink Mini as vehicle data offload but decided against this because I was unsure if we would be in a garage. The line-of-sight requirements are tough.

We has also considered running the stream on the vehicle, but this would have been very rough as the stream would have died if the telemetry computer restarted. So keeping that separate was a great choice.

Power

Onboard Power Diagram

Power Considerations

I had considered adding another secondary battery onboard, but descoped it at the time to make deadlines.

At the race, we noticed two significant downsides:

  • You can deplete the vehicle battery while running telemetry which means we had to repeatedly hook up a battery charger while running telem only
  • Cranking the starter brings the +12V rail below +10V which browns out the computers. This meant stalling the car and restarting the car would necessitate a power cycle, very annoying.

For the next iteration we plan to add a small auxiliary battery with:

  • a relay that switches off if the kill switch is switched to cut power to telemetry
  • diodes that prevent auxiliary battery from flowing to the main electrical bus

Driver Communication

We ran driver communication completely parallel to telemtry. We would communicate with drivers via discord audio call. This meant that if the telemetry stack restarted, our audio communications persisted. This was very useful during hotpits when we shut off telemetry, or if we ever had to crank the starter on track.