A computer science final year project built by a motorsport enthusiast.
Formula Student Electric is an inter-university motorsport competition in which a group of engineering students from various disciplines design and build an electrically-powered race vehicle and compete against other universities. Every summer, every participating university would ship its vehicle to the Silverstone racing circuit in the United Kingdom to compete for a prize and gain valuable hands-on experience related to the automotive industry.
The University of Hong Kong, in the name of HKU Racing, has been participating in the competition for several years as a student interest group in the Innovation Wing of Engineering Faculty. The only member of this final year project has been a member of the powertrain division of the racing team in the past few years and has been responsible for developing and maintaining the computer systems of the vehicle. Though, currently the systems are rather primitive, and their user-friendliness, robustness, and functionality have lots of room for improvement. This final year project aims to, on top of the existing systems, make some improvements.
Student Name: Li Hoi Kit
Supervisor: Dr. Chim Tat Wing
Project Objectives
Design and Development of Various Embedded Systems and Softwares
enovation and restoration
Motor-controlling Message Transmission Algorithm
The most important use case of the VCU is the motor-controlling functionality. Since the driver relies on it to control the acceleration of the vehicle, it is extremely safety-critical and latency-sensitive. The implementation of this use case in the VCU is rather primitive and relies on the STM32’s built-in hardware abstraction library(HAL) with no minimum performance guarantee. Also, although some error-handling mechanisms have been implemented in the CAN bus between the VCU and the MCU, not enough studies have been conducted to prove that these mechanisms are sufficient and robust.
To mitigate, I aim to design and implement a motor-controlling message transmission algorithm for the VCU to send motor-controlling messages to the MCU via CAN bus with a minimum performance guarantee and error-detection/ handling mechanisms
Continuous Support
Dashboard Screen with a Customizable UI
Before the project began, the vehicle cockpit does not have any gauge or screen to show the driver necessary information like vehicle speed, gear, battery level, temperature, error status, etc.
To mitigate, I aim to develop a dashboard screen with a customizable UI that shows the current vehicle information to the driver in real-time. Since there will be more than one driver, the graphical interface of the dashboard has to be customizable to entertain each driver’s preference.
App Access
User-friendly Desktop Application with a GUI for Configurating the Vehicle’s Computer Systems
The only way to configure and calibrate the VCU is to modify the source code, re-compile it, and upload it to the system’s microcontroller from a desktop computer. These steps are quite inefficient and prone to human error. Moreover, most laymen without sufficient computer science and electronic engineering knowledge can hardly configure it correctly. On top of that, our division is currently having difficulties regarding talent acquisition. The team is afraid that once the current members in the powertrain division graduate and leave the team, members from other disciplines will not have enough knowledge to configure and use it correctly.
To mitigate, I aim to develop a user-friendly desktop application with a graphical user interface for laymen to configure and calibrate the VCU and the dashboard.
Project Schedule and Milestone
Milestones | Estimated Schedule | Completed? |
Hold meetings with stakeholders of the team for requirement collection | 1/9 – 30/9 | Yes |
Research on CAN protocol and other technical documents | 1/9 – 30/9 | Yes |
Implement the desktop application for configuring and calibrating the VCU | 1/10 – 30/11 | |
Implement the software of the dashboard | 1/10 – 30/11 | |
Design the motor-controlling message transmit algorithm, and exhaustively list all the use cases | 1/10 – 30/11 | |
Implement the motor-controlling transmit algorithm | 30/11 – 31/12 | |
Implement the desktop application for configuring the dashboard | 30/11 – 31/12 | |
Create a simulated testing environment and manually test all the software | 1/1 – 15/2 | |
User-acceptance tests and debugging | 15/2 – 1/4 |
Deliverables and Results
Please Click to Download
Additionally, feel free to check out these github repositories!