Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📡 Formula Student Electric Data Acquisition (DAQ)

Embedded firmware and custom hardware for the modular Data Acquisition (DAQ) system of the DJS Racing Formula Student Electric race car.

The DAQ acquires data from distributed vehicle sensors, communicates with CAN-enabled control units, logs telemetry to microSD for post-run analysis, transmits data wirelessly over LoRa, and displays critical parameters to the driver in real time.

This was a collaborative team project. This repository collects the firmware modules, hardware, and documentation I worked on as part of the DJS Racing powertrain team.

DAQ System Architecture

Figure 1. High-level architecture of the DAQ system.


⭐ Project Highlights

  • Distributed data acquisition architecture using multiple CAN Node PCBs
  • Custom ESP32-based hardware for sensor acquisition, telemetry, and driver display
  • Signal conditioning for analog and wheel-speed sensors
  • Real-time communication over the Controller Area Network (CAN)
  • Wireless telemetry using LoRa for remote vehicle monitoring
  • Onboard microSD data logging for post-run analysis
  • Modular firmware for CAN, LoRa, and motor-controller interfacing
  • Custom-designed PCBs for the CAN Node, DAQ Controller, and Display modules

🏗️ System Architecture

The DAQ uses a distributed embedded architecture in which multiple modules communicate over a shared Controller Area Network (CAN) bus. Instead of routing every sensor directly to a central controller, dedicated CAN Node PCBs perform local acquisition and transmit processed measurements to the DAQ Controller. This reduces wiring complexity, improves noise immunity, and simplifies future expansion.

The system has three primary modules:

📡 CAN Node PCB

Distributed sensor acquisition. Reads analog and wheel-speed sensors, performs local signal conditioning (LM358, LM2907), and transmits over CAN via an SN65HVD230 transceiver. ESP32-based, with onboard diagnostics and status indicators.

📖 Detailed documentation: firmware/can_node/README.md

🧠 DAQ Controller

Central ESP32 controller that receives data from the CAN Nodes, processes telemetry, logs to microSD, and forwards data to the display and LoRa modules.

🖥️ Display PCB

ESP32-based Human-Machine Interface (HMI) that receives CAN telemetry and presents it through an LVGL-based graphical dashboard on ILI9341/ILI9488 TFT displays.

📖 Detailed documentation: firmware/display/README.md


🔄 Data Flow

Formula Student Electric DAQ Data Flow Pipeline

Figure 2. Data flow through the DAQ system.

  1. Sensor Acquisition — vehicle sensors generate analog and digital measurements, acquired by the distributed CAN Node PCBs.
  2. CAN Node Processing — nodes sample, condition, and package sensor data into CAN messages.
  3. CAN Communication — data is transmitted over the CAN bus to the central DAQ Controller.
  4. Central Processing — the DAQ Controller processes incoming data, logs telemetry, and distributes it to connected subsystems.
  5. Telemetry Output — processed data is displayed to the driver, transmitted over LoRa, and stored on microSD for post-run analysis.

💻 Firmware Modules

Each firmware module targets a specific hardware platform or communication interface, simplifying development, testing, and maintenance.

Module Description
CAN Node Multi-sensor acquisition, calibration, and CAN transmission from the distributed nodes.
ESP32 CAN CAN communication (sender/receiver) between the CAN Nodes and the DAQ Controller.
ESP32 LoRa Long-range wireless telemetry between the vehicle and a remote monitoring station.
Display LVGL-based driver dashboard receiving CAN telemetry.
MC Teensy Prototype firmware validating CAN communication with the motor controller before migration to the ESP32 platform.

Each firmware directory contains its own README with module-specific implementation details.


📡 Communication Interfaces

The system uses several protocols, each chosen for its subsystem's needs:

  • CAN (Controller Area Network) — the primary backbone. Sensor data from the CAN Nodes is transmitted to the DAQ Controller via SN65HVD230 transceivers, giving reliable real-time communication, high noise immunity, and simple modular expansion.
  • LoRa — long-range wireless telemetry from the DAQ Controller to a remote monitoring station, at low power, for trackside monitoring during testing.
  • SPI (Serial Peripheral Interface) — high-speed link between the ESP32 and peripherals such as the TFT display and microSD card.
  • UART — firmware programming, serial debugging, and diagnostics during development.

🛠️ Hardware Used

Component Purpose
ESP32 DevKit V1 Primary MCU across the CAN Node, DAQ Controller, and Display PCB.
SN65HVD230 CAN Transceiver High-speed CAN communication between distributed nodes.
SX1278 LoRa Module Long-range wireless telemetry.
ILI9341 / ILI9488 TFT Display Real-time telemetry and system status display.
MicroSD Card Module Onboard telemetry logging for post-processing.
Buck Converter Regulates the vehicle supply voltage for the electronics.
Custom PCBs Dedicated boards for the CAN Node, DAQ Controller, and Display.
Analog Sensors Interface with vehicle sensors for data acquisition.

📂 Repository Structure

DAQ/
├── firmware/
│   ├── can_node/
│   ├── display/
│   ├── esp32_can/
│   │   ├── sender/
│   │   └── receiver/
│   ├── esp32_Lora/
│   └── mc_teensy/
│
├── images/
│
├── README.md
├── LICENSE
└── .gitignore

Each firmware directory contains its own README with module-specific implementation details.


🚀 Development Process

  1. Requirement Analysis — identified vehicle parameters to monitor; defined the communication architecture and system requirements.
  2. Hardware Design — designed custom PCBs for the CAN Node, DAQ Controller, and Display; performed schematic capture and PCB layout.
  3. PCB Fabrication and Assembly — manufactured and assembled the boards; verified power distribution and hardware functionality.
  4. Firmware Development — developed modular firmware implementing CAN communication, LoRa telemetry, the display interface, and data logging.
  5. Hardware Integration — integrated all modules with the vehicle; verified communication between distributed nodes.
  6. System Validation — functional testing, telemetry verification, and on-vehicle validation during testing sessions.

🔮 Future Improvements

The current architecture separates the Electronic Control Unit (ECU) and Data Acquisition (DAQ) system into independent embedded controllers. A future iteration envisions a unified Vehicle Control Unit (VCU) that combines vehicle control, telemetry, data logging, and communication into a single modular embedded platform while maintaining real-time performance and safety.

Additional enhancements include:

  • Support for additional CAN sensor nodes
  • Higher sampling rates for critical vehicle parameters
  • GPS and IMU integration for track analysis
  • Cloud-based telemetry visualization
  • Advanced fault detection and diagnostic reporting

📄 License

Released for educational and portfolio purposes. The hardware designs, firmware, and documentation were developed as part of the DJS Racing Formula Student Electric Data Acquisition (DAQ) system.

Please contact the repository owner before using this work for commercial purposes or redistribution.

About

Embedded firmware and custom hardware for the Formula Student Electric Data Acquisition (DAQ) system.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages