Being the embedded tools sponsor to the Waterloo Hybrid team, we are proud to share with you that they won the first place at the Formula Hybrid SAE Competition at the New Hampshire Motor Speedway recently!
Waterloo Hybrid was the first team to make it past technical inspection and get on the race track. The team placed first in both Autocross and Endurance and broke the record for the farthest distance ever driven in Endurance with a total of 33 km.
The group was set up by the University of Waterloo, Canada. Waterloo Hybrid surpassed other top university race cars at the 2015 Formula Hybrid International Competition. They won first place overall and took one more top award setting a new record in the total number of completed endurance laps.
A large number of teams, including teams as far away as from Europe and Asia, participated in the competition held at the New Hampshire Motor Speedway a couple of weeks ago. Being the toughest of all of the Society of Automotive Engineers (SAE) Collegiate Design Series, this yearly event challenges university students to design a single-seat, open-wheel, hybrid-electric or electric race car.
The Waterloo racing team used Atollic TrueSTUDIO to design the software in four of the race car subsystems:
- The Battery Management System (BMS). The BMS is used on the vehicle to aggregate and verify battery cell data, such as voltage, current and temperature. Accumulator systems are used to collect the voltage and temperature data in 12 groups of cells in parallel. Communication with the Accumulator systems was done via SPI. The BMS also controls the contactors to energize the high voltage system.
- The Vehicle Control Unit (VCU). The VCU is the main control system for the vehicle. The system controls the critical path from the throttle pedal sensor to the motor controller, allowing for dynamic throttle control based on the vehicle state. This system also controls the pneumatic gear shifter, making use of several timers.
- The Power Distribution Board (PDB). The PDB monitors all of the peripherals on the low voltage system and checks for short circuits and residual power. The system is also used to dynamically control the vehicle systems through power relays.
- The Driver Control Unit (DCU). The DCU allows a driver to control various parts of the car, as well as receive important status information from other systems via CAN. For example, the signal to shift gears originates from the DCU.
Stephane Lee, Firmware lead at Waterloo Hybrid, says:
The competition was a success, mainly due to fast debugging and reliable hotfixes. Our work paid off when we were the first to demonstrate all of the features necessary to pass electrical safety, which was the most difficult inspection to pass. Our lead at the competition was largely due to this initial success.
We used TrueSTUDIO throughout to tune our configuration and apply hot fixes. For example, we could not get the RPM reading from the combustion engine, so we decided to quickly patch up the tachometer to show the battery status of the high-voltage system. Also, we noticed the rad fan (as an inductive load) was powering the system in the case of a shut off for some time. We implemented a fix on the PDB to detect a reverse current to shut off the relay for the fan. After little sleep and continuous debugging, we were ready for the one shot deal at endurance. With a new record of 33 laps, we were successful.
TrueSTUDIO was used in all aspects of the firmware development, as the STM32F0 is our main core for the 4 systems. We have a modular design, allowing for hot swapping of the microprocessor for software updates. We made extensive use of the STMCubeMX libraries as well. TrueSTUDIO is used in conjunction with git and bitbucket, as we had others contributing to the software remotely during the competition. No code would go into the vehicle without peer review.
We at Atollic congratulate the Waterloo Hybrid team for its outstanding success!
In case you are interested to learn more on the ARM Cortex development tools used by the team, read this white paper: