← Projects

BLDC motor driver

Field-oriented control driver for brushless motors, with 12-bit (0.088°) position control. Both the firmware and the board are mine.

  • C
  • STM32
  • FOC
  • PCB design
  • 2022

What it is

A driver for brushless DC motors — both the firmware and the board. It does field-oriented control and 12-bit position control, which works out to a resolution of roughly 0.088° per step.

Why FOC

Simple six-step commutation is easy to implement and fine for spinning a fan, but it produces noticeable torque ripple and wastes current. Field-oriented control keeps the stator field a quarter-turn ahead of the rotor at all times, which means smoother torque, better efficiency, and — the part I actually wanted — the ability to hold a precise position rather than just a speed.

Status

This write-up is still a stub. The project is real and finished; the description is not. Worth covering here: the control loop structure, the current-sensing approach, the position feedback method, and photos of the board.