Data Acquisition - DJS Racing

Data Acquisition for a Formula Student car.

In this blog, I will be writing about the data acquisition system that I built with my teammates for the year 2021.


Our newest car EO3 employs a completely new sensor data acquisition system. A more powerful microcontroller, the Teensy 4.1 is used with the automotive-grade CAN protocol. Previously, we used analog signals to receive data rom the sensors that were prone to stray signals and noise. Also, since the testing track is a little far from the campus, we also added the capability to transmit live data to a cloud server using the ESP8266 board. The HC12 module was used to transmit data over a large distance considering the area of the Hockenheimring Baden-Württemberg racing circuit in Germany and the Kari Motor Speedway in India. The conversion of analog values from the sensors to 8-bit digital values is done on the CAN node PCBs.

A seperate interface circuitry is designed for a sensor whenever required, such as the pressure and wheel speed sensors. Together, we have integrated all the connections and designed the harness.


To ensure that all of our subsystems work efficiently, we have developed our first-ever data visualization app. The app also supports Tableau integration for advanced data analysis and over-the-air (OTA) updates. We call the app “Nautilus”.

Our software stack is open-sourced on a GitHub repository. The application offers features such as a dashboard, data plotting, post processing of data, live recording, and more.

Cloud infrastructure

DJSR Cloud

Overview of our cloud infrastructure

The cloud framework is based on AWS EC2 compute platform and the flask micro web framework. socketIO is used to establish chat-rooms to relay sensor data in real-time. The data is also sent to Tableau client nodes through the Google Sheets API. Received data is logged to AWS S3 and PostgreSQL based database for backup.

Desktop Application

DJSR Desktop gui


The dashboard features a grid view of all sensors present on the car. Users can create and save sessions from the top panel. The track mapping from GPS data is created on this page.

DJSR Dashboard


To debug any issues in each subsystem, the app provides an offline visualization and debugging page called “Analysis”. Users can select sensors and plot their graphs, lap-wise. Users are also presented with an option to load recorded data from a JSON file. Plots can be exported in CSV, SVG, and PNG file formats.

DJSR analysis DJSR Analysis 2

Connection Page & Track Mapping

DJSR AWS ConnectionDJSR Track mapping

Users can rename sensors and change their mapping from raw voltage

Often, team members need to change the mapping applied to the raw sensor voltages. Hence, we came up with a JavaScript arithmetic-based solution. Users can simply type in a JavaScript math expression and its unit for post-processing. This mapping configuration can be saved in a JSON file format to load variables instantly.

Plot Mode DJSR GUI Plot

This was our first season where we developed our in-house data visualization software stack. This app will be used as a foundation for future support of Android and iOS.

Experimental support for ROS (Robot Operating System) data visualization is also under active development: DJSR GUI ROS