A.T.L.A.S. is a bare-metal system it revolves around track-day with ur superbikes. It calculates ur lean angles, track positioning using GPS, and lap times at a frequency of 100Hz, it logs the data directly to your MicroSD card and visualizes the daya in custom PyQt5 Dashboard.
This project is divided into 3 nodes:
A custom pcb designed around the Raspberry Pi RP2040 microcontroller.
- MCU RP2040
- IMU ICM-42688-P
- GPS Any UART Based u-blox m10 GPS
- STORAGE MicroSD Card
The firmware is purely written in C++
- Dual-Core Processing
- Ping-Pong Buffering
- Sensor Fusion Engine
A simple Desktop application built with PyQt5 and PyQtGraph
- Frame Parser: it deserializes all the 32-byte into python data class
- Telemetry Plot: It renders the speed with lean angle
- GPS Map: Renders the tracklayout based on the longitude and the latitude data.
- Lap Timer:
- Digital Twin Simulator: A gui simulator that generates track data so u can test the dashboard physics without need physical hardware
A complete, itemized BOM is generated by kicad It can be viewed: hardware/bom.csv
- The parts can be sourced by providing the BoM CSV file to lcsc from where u can order the parts.
- The PCB can be ordered through JLCPCB with a stencil for precise soldering.
- Soldering can be done using low temp solder paste while using the stencil to create a perfect solder layer
RP2040 bare-metal is pretty easy to program not that hard
- Install 'arm-none-eabi-gcc' toolchain and CMake.
- Open terminal and go into the 'firmware/'
mkdir build && cd build cmake -G "Ninja" -DPICO_SDK_DETCH_FROM_GIT=ON .. ninja
- Through the debug pads of RP2040 the board can be programmed through the uf2 file provided in the firmware directory
-
Copy the telemetry.dat file from the MicroSd card
-
Install the python libraries: pip install PyQt5 pyqtgraph
-
Run the Digital Twin Dashboard: python dashboard/main.py
-
Click Load Telemetry Binary and select the MicroSd card data
the usage of ai was done to figure out the pinout and the project structure of how everything will be done

