Overview & Types
Brushless DC (BLDC) motors eliminate the mechanical commutator and brushes of traditional DC motors, replacing them with electronic commutation. This delivers higher efficiency, longer lifespan, and better power-to-weight ratio – making BLDC motors the dominant choice in drones, electric vehicles, and industrial automation.
Motor Types
- BLDC (Trapezoidal): Back-EMF waveform is trapezoidal. Simpler control using six-step commutation. Most drone motors and hobby applications.
- PMSM (Sinusoidal): Permanent Magnet Synchronous Motor with sinusoidal back-EMF. Smoother operation, higher efficiency, used in EVs and industrial servo drives. Requires FOC (Field Oriented Control).
- Outrunner: Rotor (with magnets) is on the outside, stator inside. Higher torque, lower speed. Common in drones and direct-drive applications.
- Inrunner: Standard configuration with rotor inside stator. Higher speed, used with gearboxes. Common in RC cars and power tools.
- Linear BLDC: “Unrolled” BLDC that produces straight-line motion. Used in maglev trains, semiconductor manufacturing, and high-speed pick-and-place.
Working Principle
A BLDC motor has three stator windings arranged 120° apart. The controller energizes pairs of windings in sequence to create a rotating magnetic field that pulls the permanent-magnet rotor along:
Six-Step Commutation (Trapezoidal)
- At any instant, two of the three phases are energized (one HIGH, one LOW, one floating).
- Hall sensors (or back-EMF zero-crossing detection) determine rotor position.
- The controller switches to the next commutation state every 60 electrical degrees.
- Six states complete one electrical cycle. For a motor with N pole pairs, one mechanical revolution = 6N commutation events.
Field Oriented Control (FOC / Vector Control)
FOC treats the motor as two independent control variables:
- Torque (Iq): Current component producing torque (perpendicular to rotor field).
- Field (Id): Current component aligned with rotor field (normally set to zero for surface-mount PM motors).
Using Clarke and Park transforms, FOC converts three-phase AC currents into a rotating reference frame, enabling precise torque control with minimal ripple. This is the standard for EVs and high-performance drives.
KV Rating Explained
The KV rating of a BLDC motor indicates RPM per volt (no-load): RPM = KV × Vsupply
Example: A 920 KV motor on a 4S LiPo (14.8 V) spins at ~13,600 RPM no-load.
Lower KV = more torque per amp, slower speed (heavy-lift drones). Higher KV = faster speed, less torque (racing drones).
Electrical & Mechanical Specifications
| Parameter | Small BLDC (drone) | Medium BLDC (EV hub) | PMSM (industrial) |
|---|---|---|---|
| Power | 50–500 W | 0.5–10 kW | 0.1–100 kW |
| Voltage | 7.4–25.2 V (2S–6S LiPo) | 24–96 V | 48–690 V |
| KV Rating | 500–2600 KV | 10–100 KV | N/A (rated speed) |
| Efficiency | 80–90% | 90–95% | 92–97% |
| Max Speed | 20,000–50,000 RPM | 3,000–8,000 RPM | 1,000–10,000 RPM |
| Pole Pairs | 7–14 (outrunner) | 4–10 | 2–8 |
| Commutation | Sensorless / Hall | Hall + encoder | Encoder (FOC) |
| Lifespan | 20,000–100,000+ hours (bearing-limited, no brush wear) | ||
Driver Circuits
Electronic Speed Controller (ESC)
The ESC is the power electronics board that drives BLDC motors. It contains:
- Six MOSFETs arranged as a three-phase bridge (3 high-side + 3 low-side).
- Gate drivers with bootstrap circuits for high-side FETs.
- Microcontroller running commutation firmware.
- Current sensing resistors or hall-effect sensors for overcurrent protection.
Common ESC/Driver ICs
- L6234: Three-phase DMOS driver for small BLDC (<5 A). Affordable, simple interface.
- DRV8302/8305: TI gate drivers for high-power BLDC with current sense amplifiers. Used in custom ESC designs.
- SimpleFOC Shield: Open-source Arduino-compatible BLDC driver supporting FOC. Great for learning and prototyping.
- VESC (Vedder ESC): Open-source, high-performance ESC supporting FOC, regenerative braking, and CAN bus. Standard for e-skateboards and small EVs.
- ODrive: Dual-axis BLDC/PMSM controller with encoder input and USB/UART/CAN interface. Professional-grade.
Control Methods
Six-Step (Block) Commutation
Simplest BLDC control. Uses Hall sensor transitions or back-EMF zero-crossing to determine the next commutation state. PWM on the active phase controls speed. Works well for most applications but produces torque ripple.
Sinusoidal Commutation
Generates sinusoidal phase currents using encoder feedback. Smoother than six-step but doesn’t optimize for dynamic performance. An intermediate step between six-step and FOC.
Field Oriented Control (FOC)
The gold standard for BLDC/PMSM control. Provides:
- Maximum torque per ampere (efficiency)
- Smooth, ripple-free torque
- Precise speed and position control
- Excellent dynamic response
Requires a position sensor (encoder or resolver) or advanced sensorless observer algorithms.
Code Example — Arduino & ESP32
Arduino: ESC Control via PWM (Drone Motor)
// BLDC motor control via ESC with standard PWM signal
// ESC expects same signal as servo: 1000-2000 us at 50 Hz
// Wiring: ESC signal → D9, ESC power → battery
#include <Servo.h>
Servo esc;
const int ESC_PIN = 9;
void setup() {
Serial.begin(9600);
esc.attach(ESC_PIN, 1000, 2000);
// Arm ESC: send minimum throttle for 2 seconds
Serial.println("Arming ESC...");
esc.writeMicroseconds(1000);
delay(2000);
Serial.println("ESC armed. Ready.");
}
void setThrottle(int percent) {
// Map 0-100% to 1000-2000 microseconds
int pulseUs = map(percent, 0, 100, 1000, 2000);
esc.writeMicroseconds(pulseUs);
Serial.print("Throttle: ");
Serial.print(percent);
Serial.println("%");
}
void loop() {
setThrottle(0); delay(2000);
setThrottle(20); delay(3000); // Low speed
setThrottle(50); delay(3000); // Medium speed
setThrottle(20); delay(3000); // Back to low
setThrottle(0); delay(5000); // Stop
}
ESP32: SimpleFOC Library (FOC Control)
// BLDC motor FOC control using SimpleFOC library on ESP32
// Hardware: SimpleFOC Shield + BLDC motor + AS5600 encoder
// Install: SimpleFOC library via PlatformIO
#include <SimpleFOC.h>
BLDCMotor motor = BLDCMotor(7); // 7 pole pairs
BLDCDriver3PWM driver = BLDCDriver3PWM(25, 26, 27, 33);
MagneticSensorI2C sensor = MagneticSensorI2C(AS5600_I2C);
void setup() {
Serial.begin(115200);
// Initialize magnetic sensor (AS5600 on I2C)
sensor.init();
motor.linkSensor(&sensor);
// Configure driver
driver.voltage_power_supply = 12;
driver.init();
motor.linkDriver(&driver);
// FOC control mode
motor.controller = MotionControlType::velocity;
motor.voltage_limit = 6; // V limit for safety
motor.velocity_limit = 40; // rad/s limit
// PID tuning
motor.PID_velocity.P = 0.2;
motor.PID_velocity.I = 2.0;
motor.init();
motor.initFOC();
Serial.println("FOC initialized. Send target velocity via Serial.");
}
float target_velocity = 0;
void loop() {
motor.loopFOC();
motor.move(target_velocity);
// Read target from Serial
if (Serial.available()) {
target_velocity = Serial.parseFloat();
Serial.printf("Target: %.1f rad/s\n", target_velocity);
}
}
Real-World Applications
Drones & Aerospace
- Multirotor drone propulsion
- Fixed-wing electric aircraft
- Gimbal stabilization motors
- Reaction wheels for spacecraft
Electric Vehicles & Industry
- EV traction motors (PMSM with FOC)
- E-bikes and e-scooter hub motors
- Industrial servo drives
- Hard disk drive spindle motors
Advantages vs. Alternatives
| vs. Actuator | BLDC Advantage | BLDC Disadvantage |
|---|---|---|
| Brushed DC | No brush wear, higher efficiency (90%+), longer life | More complex driver, higher cost |
| Stepper Motor | Much higher speed, better efficiency, no resonance | Cannot hold position without encoder (open-loop) |
| AC Induction | Higher power density, faster response, no rotor losses | Needs rare-earth magnets (cost, supply chain) |
| Servo Motor | Continuous rotation, higher power, scalable | Requires external position sensor for positioning |
Limitations & Considerations
- Complex Control Electronics: Requires three-phase inverter, position sensing, and commutation logic. Much more complex than brushed DC control.
- Cost: ESCs, gate drivers, and rare-earth magnets increase cost vs. brushed motors and AC induction motors.
- Cogging Torque: Interaction between magnets and stator slots creates torque ripple at low speeds. Mitigated by skewed magnets or slot designs.
- Demagnetization Risk: Excessive current or high temperature can permanently demagnetize rotor magnets, especially ferrite types.
- Sensorless Startup: Back-EMF sensing doesn’t work at zero/low speed. Special startup routines or Hall sensors are needed.
- EMI: High-frequency switching of the inverter generates significant electromagnetic interference. Proper shielding and filtering are essential.