Blue Sky Solar Racing - Electrical/software engineering (2020-present) + team lead (2021-2022)
I am an active member of the University of Toronto's Blue Sky Solar Racing team, where I lead the electrical/software team. We design ultra-efficient solar cars, mainly with the goal of racing at the World Solar Challenge and spreading awareness for renewable energies. The World Solar Challenge, in October 2023, is a 3000km race through the Australian Outbacks which takes place every two years.
A major project of mine is the “µMPPT” (micro Maximum Power Point Tracker) and its control software. The 5th revision of the board is shown below.
Goal: Maximize daily energy production by reducing the bottleneck effect of partial shading and angle mismatch of solar cells. The µMPPT replaces the typical bypass diode found in solar arrays.
What: Distributed power converter system for solar array consisting of 53 synchronous buck converters split into 3 series strings.
How:
- String 5 µMPPTs (synchronous buck converters) on a board and share an output inductor for the highest efficiency. The gates are driven by the LTC7060.
- STM32L071 MCU runs incremental conductance MPPT algorithm (C) to control the PWM duty cycle of each converter. FW architecture consists of main thread spawning a compute thread for each of the µMPPTs and a UART communications thread to PC.
- Designed in Altium Designer, simulated in LTSpice and programmed in C with FreeRTOS and DMA peripherals.
- Custom GUI (Python) that displays input voltages, currents, duty cycles, and frequencies and graphs input voltages for 5 power converters. It also allows remote control of the power converter through custom UART-based communication protocol.
- To simulate solar cells (to validate MPPT algorithm), a bench power supply is controlled by a Python script to follow the IV curve of our solar cells.
Results:
- 98% electrical conversion efficiency (peak; measured).
- Simulated to produce ~6% to 11% more power than our previous car (MATLAB + Simulink). Depends on exact race route.
- Still under development, but currently at revision 5.
A second project is the design of the low-voltage electrical system for our GEN12 car (to race in October 2025).
Goal: Drastically reduce system complexity, increase reliability and reduce development/manufacturing effort.
What: Centralized system based around the "BFM", controlled by a "compute-on-module" embedded Linux processor, which enables Python and remote development/debugging. A process is spawned for each subsystem, and they exchange data through a database process.
How:
- Switch from C to Python to ease new team members into lower-level programming and maximize precious testing time.
- Choice of easy-to-solder components, single-component-side PCBs. Common footprints and, in some cases, equivalent parts of different footprints are routed in parallel for increased resiliency against semiconductor shortages.
- Designed in Altium Designer and programmed with Python's multiprocessing, threading, periphery, mypy.
Results:
- Single software project and remote development/debugging which significantly increases productivity.
- Reduction from 24 MCUs to a single processor in GEN12 → No MCU-to-MCU communication to fail and debug and much simpler CI environment.
- Reduction from 50 PCBs to 24 PCBs in GEN12.
- Wire count reduction by ~4x by consolidating hardware and switching to rugged panel-mount to PCB connectors.
Smaller projects include:
- Python programs/scripts:
- Battery automatic charge/discharge characterization
- Battery "dynamic load profile" state-of-charge characterization
- Optimal cell selection for battery module based on estimate internal impedance
- Solar cell current-voltage characterization
- Serial port telemetry data streamer to allow offline strategy program development with realistic data
- Simulation program for development of cruise control algorithm
- "Power Sense Module": Quad-channel (voltage + current, each galvanically isolated) power measurement device. Communicates over LVDS SPI. Sub-mV and μA resolution, with 150VDC max voltage and 50A max current. Accuracy <0.7%
- Lighting system for the car, reducing power consumption by ~80% over previous generation
- Electrical design of the solar array, with the objectives of minimizing illumination mismatch due to shading and placement on the 3D curvature of the top aerobody
- Simulink model to simulate the solar array at the cell level to quantitatively compare, optimize and validate solar array designs and power architectures
- LED panel for solar cell testing/validation lightbox. Total of ~900W and ~2000 SMD LEDs over ~1m2
- Various smaller and simpler boards used on the car (driver interface, communication hub, updates to previous generations of the car)