
/Robotics Projects
Soccer-Playing Robots
UBC Thunderbots - RoboCup 2024 in Eindhoven
Electrical Team - Motordriver & Power Electronics Designer
A fully autonomous fleet of 6 robots, controlled by computer vision algorithms, to play against a similar fleet of opponents in a simplified game of soccer. The target is to score as many goals as possible over two halves of a match. An overhead camera recognizes each robot on the field via its colour-coded top and sends position information to each team's centralized PC. The PC then runs the gameplay algorithm to determine the fleet's actions and sends command packages via Wifi/Radio signal to each robot's onboard computer.
​
The main electrical stack includes:
-
Central Power Board
-
"UI" board (with computer and communication modules)
-
Motordriver board
We work on a range of projects from PCB design and assembly using Altium, to firmware development, to creating modular test jigs.
​
Main goal of Motordriver Team in 2024: Design a completely new motordriver board using STSPIN motordriver chip with integrated STM32 MCU. (Current solution with Trinamic Motion Control chip requires a separate driver chip and is hard to maintain, among other reasons)
/My Contributions
Eval Board Development & Motor Characterization


Maxon EC 45 BLDC
EVSPIN32 Evaluation Board for driving 1 BLDC



To spin the BLDC using the eval board, I completed the following works:
​
-
Ensure voltage and current supply across the board are provided correctly and sufficiently
​
-
Configure eval board hardware to work with our test setup and motor (encoder vs. sensorless, direct DC supply, logic power from STLink, etc.)
​
-
Modify the FOC firmware in C++ to match the motor's specifications
​
-
Debug faults using an oscilloscope (as shown on the left: analyzing under voltage fault, solved by limiting motor acceleration to reduce BEMF on bus voltage line)

The pure joy of seeing a BLDC spinning for the first time XD
​
When it spins, we know that all the pieces (hardware & firmware) are working properly

The speed ramp of the motor, plotted at the PWM rate. To enable this plotting, I had to manually debug the STM code and add in a missing UART register logging case:


Schematic Capture & PCB Design
(On-going)
With the motordriver chip validated using the evaluation board, the current project is to design our own PCB to drive 5 BLDCs on each robot. The first stage is to understand the system requirements and select parts with appropriate ratings. Then, I will go on to capture the schematic and develop the first version of the PCB.

(Above) Power MOSFET selection: I created a detailed analysis of various power MOSFET options for the board. Options are compared based on trade-offs between cost, power dissipation, switching time, package size, etc. A detailed calculation for power loss is included. The final selection has the appropriate specs while cutting down the cost more than 4 times the current solution.

(Left) Bootstrap circuit calculations: Since we are changing the power MOSFET, elements in the bootstrap circuitry for the high-side MOSFET must be updated

(Left) Tentative BOM for the power stage of the motor driver
While my focus is on the power stage of the motordriver board, I also contributed to the analysis and component selections of the current sensing circuit (small signal amplification), encoder lines, etc.
​
As we are finishing the circuit analysis and component selections, I am starting the schematic capture on Altium and ultimately aim to send a team-reviewed PCB design to JLC by the end of April :D
​
(more updates to come...)
