<Sukhman Herr/>

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

TMS320F28377DC2000Code Composer StudioEmbedded CThree-phase MOSFET inverterSPWM

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
PLACEHOLDER: photo of the hand-wound stator — replace with an img and write alt text describing the winding

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.
PLACEHOLDER: photos of the three inverter revisions side by side — replace with an img and write alt text

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)