Custom BLDC Motor & DSP Motor Drive
Built a brushless DC motor from scratch and drove it with our own three-phase inverter and open-loop SPWM firmware on a TI C2000 DSP.
Dates
Jan–Mar 2026
Role
Embedded Systems Engineer
Team
4 people — worked across all parts
Stack
Demo
Overview
Built a brushless DC motor from scratch and drove it with our own inverter and firmware.
Motor
- 9-pole stator, hand-wound at 100 turns per coil, delta-wound
- 6 neodymium magnets — 3 pole-pairs
- Housing 3D printed in translucent PETG
Control
Control runs on a TI TMS320F28377D dual-core C2000 DSP, with firmware written in Code Composer Studio. The DSP generates open-loop sinusoidal PWM driving a three-phase MOSFET inverter.
Three hardware revisions
Each revision was killed by a different failure:
- Rev 1 — Arduino Nano + 30 A ESC. Wouldn't arm below 3 A.
- Rev 2 — PWM module. Shorted and blew its MOSFETs.
- Rev 3 — the DSP build. This is the one that ran.
Debugging
A stall-under-load fault was traced to a pole-pair mismatch in the frequency calculation.
Limits
Stall current is capped at roughly 3 A by the thermal limits of the windings.
Scoped upgrade path
Not built — this is the planned direction:
- Hall sensors for rotor position
- Closed-loop commutation
- Space Vector PWM (SVPWM)
- Field Oriented Control (FOC)