This repository was used throughout the 2019-2020 year to maintain code, documentation and develop the Q20 Electrical and Software systems.
This repository has been moved to a GitHub group, which can be found here
The Q20 dashboard makes use of a high brightness and high definition touch display for visibility under all lighting conditions. The display provides the driver with their RPM, gear and speed as well as a diagnostic data screen containing battery voltage and other debugging information. The display is driven by a Teensy 3.2 microcontroller over SPI. All the information displayed on the screen is obtained from the car's ECU and PDM which send the data over CAN bus. The CAN bus data is received and filtered by a dedicated ATmega328P microcontroller which then sends the relevant CAN messages to the Teensy driving the display via UART. Links to both the CAN controller and Teensy display code are given below.
A custom Electronic Throttle Control System was developed for the Q20 vehicle featuring an Arduino Mega, a high current motor driver and the Bosch 32mm Electronic Throttle Body. A PID control system is used to drive a feedback loop between the Throttle Pedal and the Throttle Body. Hardware interrupts are configured to blip the throttle during shifting sequences. The code for the Electronic Throttle control system and a custom test bench are given below.
The team has developed a pipeline to simulate our CAN communication protocols through the game Assetto Corsa. A custom C++ program is used to monitor the shared memory from Assetto Corsa, contains the RPM, speed and other diagnostic information of the car being driven in the game. The contents of the shared memory are sent to a CAN enabled Arduino Uno over USB. The Arduino Uno uses the racing simulator data to send out CAN bus messages mimicking the car's ECU and PDM to provide a full testbench for the car's electrical system with a realistic stream of testing data provided by Assetto Corsa. The code for both the C++ program and the CAN enabled Arduino are given below.
- Brent Champion
- Logan Lim
- Ethan Peterson
- Ryan Anderson
- Jacob O'Riordan Ross
- Angus Hodgins
- Nick Totman
- Alex Koch
All of the projects in this repository are licensed under the MIT License - see the LICENSE file for details