Skip to content

Latest commit

 

History

History
103 lines (86 loc) · 7.29 KB

README.md

File metadata and controls

103 lines (86 loc) · 7.29 KB

DataAcquisition2.0

🏁 For documentation, checkout our Wiki!

  • Firmware libraries are maintained in the DAQ Firmware Libraries repo.
  • Custom PCB revisions are maintained in the DAQ-PCB repo.
  • When you clone this library, make sure that you add the --recurse-submodules flag

Table of Contents

  1. Objective
  2. User Features
  3. Hardware and Equipment
  4. Firmware Tech Stack
  5. Automation
  6. Future Plans
  7. Deprecated Technologies

Objective:

  • A Data Acquisition (DAQ) System for interfacing with the vehicle ECU and additional sensors.
  • Build the first fully-fledged DAQ with re-usable code through:
    • The Layered Architecture design pattern
    • Modularity of components
    • Hardware abstraction
  • Efficiently record data to a CSV file for system testing & refinement of other vehicle components via analyses.
  • Make sensor data conveniently accessible for the whole DFR organization.
  • To be used in tandem with DFR's DataAnalyzer.

User Features

Supported Logging Method Library Completion
Micro-SD Card
USB Flash Drive
Wireless Transmission

Hardware and Equipment

Target Device

The STM32 Nucleo F429ZI microcontroller development board is used as the current target device for code merged to the main and develop branches. Theoretically, other Arm Cortex M4 based STM32 devices with the necessary peripherals should be able to run the same program.

image

Input

Component Type Supported Hardware Device Library Completion
Linear Potentiometer - SLS 1322-3
Accelerometer - LSM303DLHC
Gyroscope - L3GD20H
Magnetometer - L3GD20H
GPS/GNSS - NEO-M9N
Strain Gauges
Tire Temperature - MLX90614
ECU - PE3-8400P

For additional information regarding each device and its implemention, refer to our Wiki.

Output

A CSV file with associate a timestamp with the following sampled data.

Computed Output Supported Units
Suspension Travel Displacement - Inches
- Millimeters
Acceleration (3 DoF) - m/s^2
- Gs
Rotational Velocity (3 DoF) - Degrees per second
- Radians per second
Location Coordinates - Altitude
- Latitude
- Longitude
External Force - Stress
- Torque
- Pressure
Tire Temperature - Farenheit
- Celsius
Motor Shaft Speed - Revolutions per Minute (RPM)
Throttle Position - Percentage
Fuel Open Time - Milliseconds
Ignition Angle - Degrees
Atmospheric Pressure - Pound per Square Inch (PSI)
- Kilopascal (kPa)
Intake Manifold Pressure - Pound per Square Inch (PSI)
- Kilopascal (kPa)
Exhaust Oxygen - Lambda

Firmware Tech Stack

  • STM32 Hardware Abstraction Layer (HAL)
    • Generated by STM32CubeMX within the CubeIDE environment, which also provides the arm-none-eabi toolchain.
    • Serves as a set of drivers or a Board Support Package (BSP) to interface with the microcontroller.
  • FreeRTOS
    • Multi-threading and concurrent programming.
    • For optimizing timing and performance.
  • CMSIS-RTOS v2
    • Not to be mistaken for another RTOS framework.
    • An abstraction layer for interacting with an RTOS framework (i.e., FreeRTOS).
  • FatFS
    • For maintaining the FAT file system.
    • Allows users to access the resulting CSV file on any device

Automation

Future Plans

  • Developing for a dual-core STM32H7 microcontroller.
    • The Cortex M4 core may focus on sampling data from sensors.
    • The Cortex M7 core may focus on outputting the processed data.
    • Both cores may run FreeRTOS for organizational purposes.
    • Both cores may communicate and synchronize with each other using the OpenAMP framework.