The self-made brains of a car

As part of UTSM's Prototype Powertrain team, I'm currently implementing a 22V motor controller unit for the Prototype car which will compete in the 2024 Shell Eco-Marathon Americas Competition. The design for this car's motor controller is entirely new because it will fit in the team's first fully electric car. Due to competition regulations, the motor control unit must be fully self-designed.

Collaborating alongside Andrew Radke and Maya Edie-Maxsom in the Prototype Powertrain team.

Tech Stack:
C++

Layout planning

In the inital planning stages, a previous iteration of the motor controller PCB was used to create a model for how our motor controller would work. The choice to use a PCB was made on the basis that the system needed to be small to fit inside a one-passenger racecar, and because it would be able to supply high power. Using a combination of encoders, drivers, an Arduino microcontroller, and other components, I started work on the motor controller by designing the PCB layout using Altium Designer.

Material Sourcing

A big challenge when planning our PCB design was ensuring that it could actually be ordered (ie. the components were available). When transitioning from the initial layout design to the PCB schematic and planning, we had to translate the generic components (like diodes) to actual part numbers that could be readily sourced. Furthermore, it was important to ensure our design cost much less than the $500 budget provisioned for the Prototype Powertrain divison if we needed multiple design iterations.

Redesign of PCB

As we further progressed with the design of the PCB, we realized that with the high voltage that we were dealing with (as high as 44V at times), the components we were using would not be able to sustain such high voltage. The decision was taken to split the PCB into 2 main sections: one responsible for power conversion (which would handle the high voltage) and the other part which would contain the rest of the components. This would streamline the design process and allow for the isolation of issues during testing.

At the moment, the design of the 2 PCB sections is complete, and we are in the process of ordering them.

Future Development Steps

With the PCB designs nearly complete, the team will order the completed PCBs in the next few weeks. In the meantime, I will implement the C++ code that is need to control the 3 phases of encoders and drivers via the Arduino microcontroller. After the PCBs have arrived, the priority is to ensure that our current design works with the rest of the electrical system and diagnose any weaknesses or issues with the rest of the Prototype team.