How debug an Electric Race Car

Apr 20, 2016 |

If you have kids and like to build stuff, you might have built a soapbox car at some point. At least I did last summer. For me, an obvious next step was to consider adding an electric motor. I never found the time, but would have loved a project like that. I therefore got quite excited when contacted by a team at the University of Applied Sciences Amberg-Weiden, Running Snail Racing, who are taking this far beyond anything I have ever envisioned. A Formula Student electric race car! The car has four 25 kW motors, giving a maximum total torque of 1588 Nm (!), which should give quite a kick, especially since the weight is only 207 kg!

Running Snail Racing Team Running Snails Racing - Car In Action

Quite an achievement! And this is not the first time. The team has actually built 11 of these cars since 2005. The pictures above show the current lineup and their latest car for the 2015 season.

The car has several control units using STM32F4 microcontrollers from STMicroelectronics, based on the ARM Cortex-M4 core. The controllers include a motor control unit, several sensor- and actuator units, dashboard controller including radio communication and telemetry, and battery management system for the 288 Lithium-Polymer cells. They communicate via CAN and the firmware is based on a common Real-Time Operating System (RTOS).

The firmware developers at Running Snails Racing asked if we could sponsor the team with a license for Tracealyzer, our solution for runtime visualization featuring 25+ interconnected views that greatly facilitates debugging, validation and profiling of RTOS-based systems.

Percepio Tracealyzer

Percepio Tracealyzer – Click to enlarge

Of course we gave them a license. We offer free academic licenses and we are delighted to help a cool project like this one. Earlier they had used “debug messages” on the CAN bus, but believed that Tracealyzer could give great improvements and save time in their development.

A particular problem they faced at the moment was sporadic bugs in their telemetry system, which allows them to configure all sorts of parameters for the car via radio (calibration of sensors and actuators, driving dynamics, etc.). The parameters are stored in an external flash chip. This takes some time, so it is handled by a dedicated RTOS task using message queues for synchronization. However, sometimes the parameters were not stored as intended, causing an incorrect setup of the car.

With Tracealyzer the Running Snails team is now able to get deep insight into the runtime world of their ECUs, including the real-time behavior of tasks and interrupts, how they interact via message queues, semaphore and mutexes. This way they can solve any sporadic issues and optimize their software for maximum performance.

Good luck, Running Snails!


Tracealyzer is available for several common RTOS, including FreeRTOS, SafeRTOS, Linux, VxWorks, Micrium µC/OS-III, and a version for ThreadX will be released during 2016. And we have several new and exciting analysis features in development that allows for even better performance analysis, so stay tuned!

Download Tracealyzer

Want to learn more about RTOS-based development and Tracealyzer? More articles here!