
BLDC Inverter V1
This post is unfinished!
I worked on this project a few months ago (and am writing the post retroactively) but haven’t finished compiling what I did. There are lots of pictures / videos that I still need to put here. What exists now is a very quick summary of what I did.
This summer I made a custom BLDC inverter and got it to run FOC (field oriented control), which is one of the most efficient three-phase motor modulation schemes at lower speeds. I learned a lot, and it was really fun!
I first whipped the board together in KiCAD a few days after the last day of school. Fixing my bike and replacing some parts took much less time than I expected.
The board is built around the DRV8323 motor driver, which is basically three gate drivers and op-amps (for amplifying the phase shunts for current measurements). The MCU is an STM32G4, and I’m using an AS5047D absolute magnetic encoder - this guy is really popular throughout the hobbyist community for being pretty cheap and having pretty high resolution. Other peripherals include a CanFD transceiver and the tiniest RGB led you’ve ever seen. Pretty simple.
Here’s the schematic:
And layout:
[Skipping a lot here… I don’t have time to write everything I want about this post yet!]
Here’s a video of it working with FOC: