The On-Car-Telemetry is reponsible for unpacking CAN data from CAN-S and CAN-C into PDU (Protocol Data Unit) telemetry frames and sending it via UART to the Xbee transmitter. Xbee provides the bidirectional transmission between Intermediate server and On-Car Telemetry Unit. The microcontroller used in this project is the STM32 F446RE.
More detailed information about this project is available to members on the SUFST Docs Site.
This project depends on middlewares in the src/Middlewares/
folder, some of
which are Git submodules. When first cloning this repo, run the following
commands:
git submodule init
git submodule update --remote
For more information on submodules, see the Git submodules documentation.
To build this project and flash code to the microcontroller, you will need the following on your path:
- Make
- ARM GNU Embedded Toolchain
- STLink Open Source Toolset
mkdir
,rm
,tput
andecho
Build with:
cd src
make
Flash with:
cd src
make flash
For detailed toolchain setup instructions, see the SUFST Docs Site.
Note: Windows users should run these commands from Git Bash.
This project is set up to be edited and debugged in VS Code.
The .vscode
folder includes tasks and launch configurations.
Since the toolchain is set up to be fully command line based, it is also possible to use other code editors.
Note: Windows users should set Git Bash as the shell in VS Code.
STM32CubeMX is used
to generate boilerplate initialisation code for the microcontroller. These
configurations are stored in src/OCT_F4.ioc
which should not be edited manually.
To minimise the chance of merge conflicts, changes to the .ioc
should be made
as infrequently as possible as the .ioc
format is not well suited to version
control.
Microcontroller:
ThreadX RTOS:
Xbee: