Urban Motor Controller

  • Project Type: Firmware + Electrical System
  • Languages: C++
  • Tech Stack: PlatformIO, Arduino
  • Project Links: GitHub

Project Details

This electrical system is designed for implementation in a manned battery electric vehicle, competing in an international efficiency competition known as SEMA. This design is implemented on a perfboard with connections made through copper and solder rails. It includes four unique subcircuits to control motor phase switching.

The first is the Arduino throttle module, which receives and processes CAN input from the physical throttle pedal in the car and attempts to smooth the data to a desired waveform output, such as linear or exponential. This information is then forwarded to another firmware-focused Arduino. The second Arduino is dedicated to digitally turning on and off the high and low of each of the motor gate drivers. It is also responsible for receiving the throttle input and directing it to the gates as an indicator of the intensity of throttle input. The motor position is set initially and then continuously received from the motor hall sensors, which are repeatedly used for setting the next position.

The next sections make up the 12V gate drivers which receive switching instructions and amplify them, directed towards the gate of 48V MOSFETs connected directly to the motor phases. Some big challenges with designing such a device are handling spikes in current as well as ensuring smooth waveforms to ensure a strong drive and minimizing wear to components.