Course Project · Vehicle Telemetry

Vehicle Telemetry System

Multi-sensor DAQ platform for a kart and test vehicle that logs IMU, GNSS, and temperature data to CSV for post-processing in Python. Built from scratch, from sensor selection and wiring to logging code and track testing.

Role Hardware design, firmware, data logging, testing
Timeline 1 semester · ME372C Design for Sensing and Measurements Course
Key Tools Arduino Nano ESP32, BNO055 IMU, NEO-M8P GNSS, CSV logging
Telemetry system wiring diagram
Telemetry hardware mounted on kart

Overview

Longhorn Racing needed a low-cost way to log vehicle dynamics and thermal data during kart and car testing. Most commercial systems were either too expensive or too closed to modify for student research. Our team built a custom telemetry system that could be moved between vehicles and output structured CSV data for analysis and event classification.

The final system combined an IMU, GNSS receiver, and four temperature probes with an Arduino Nano ESP32 and a simple serial-to-CSV logging workflow. We validated the system on a kart, logging laps and reconstructing the path, speed profile, and temperature behavior in post-processing.

Hardware Architecture

We iterated through several breadboard prototypes before settling on a clean, compact layout on a long board that could be taped to the kart chassis. The final hardware stack included:

  • Arduino Nano ESP32 as the main controller and USB interface
  • Adafruit BNO055 9-DoF IMU breakout for orientation and acceleration
  • u-blox NEO-M8P GNSS module with an external antenna for position and speed
  • Four waterproof digital temperature probes for tire and component temperatures
  • Qwiic / I²C cabling to reduce wiring clutter and keep connections robust

Each sensor was selected to balance cost, accuracy, and ease of integration. We tested individual components on an Arduino Uno first, then migrated the design to the Nano ESP32 once we were confident in performance.

Block diagram of the telemetry system architecture
High-level architecture from sensors and ESP32 to the logging laptop and analysis tools.

Firmware & Data Logging

On the embedded side, I wrote Arduino code to read all sensors at a consistent rate, perform basic unit conversions, and stream a structured line of data over serial. The packet included:

  • Millisecond timestamp, latitude, longitude, and GNSS fix quality
  • IMU orientation and acceleration values
  • Four temperature channels

On the laptop, I used a simple logger to capture exactly what the board printed to the serial port (the same data visible in the Arduino Serial Plotter) and write it to a fresh CSV file for each run. I manually started and stopped the logger, and used a consistent naming scheme so files could be tied back to specific tests at a glance.

Software Architecture

The software side was intentionally kept simple so anyone on the team could run it without fighting a complex stack. Everything revolved around a single stream of comma-separated values coming off the Nano ESP32:

  • Embedded loop: read all sensors, apply basic unit conversions, and print one CSV line per sample (millisecond timestamp, GNSS, IMU, and four temperature channels) over the serial port
  • Serial stream: the exact same text stream shown in the Arduino Serial Plotter, which made debugging and sanity checks straightforward

Testing & Results

We first validated the system on the bench, then on a kart at the track. The GNSS data was used to reconstruct clockwise and counterclockwise laps and compare them to ideal circular paths. Temperature data showed clear trends with speed and steering, and IMU data captured transitions and maneuvers.

The system met our course requirements and produced clean enough data to support event classification and further model validation work. The full architecture and results are documented in our final report and presentation.

Problems Solved & What I Learned

  • Architected a complete DAQ pipeline from sensors through ESP32 to CSV logs that I could analyze without touching the firmware
  • Debugged noisy IMU and GNSS data, calibration drift, and wiring issues by adding warm-up procedures, improving grounding, and cleaning up the layout
  • Improved logging reliability with a simple, manual logger and a naming convention that made test runs easy to track and compare
  • Learned how to design hardware that survives vibration, heat, and real track conditions instead of just working once on a lab bench

Impact

The finished telemetry system gave Longhorn Racing a reusable, low-cost tool for collecting synchronized IMU, GNSS, and thermal data on karts and test vehicles. It has already served as a template for future logging setups and provides a foundation for event classification, driver coaching, and model validation work going forward.