Brushless motors — inside and how they are driven
How a brushless motor works and how an ESC drives it: Kv, Kt and flux linkage in every convention, torque–speed and efficiency maps, heating, measuring a motor yourself, slot/pole windings drawn with their pattern and winding factor, six-step with Hall sensors and sensorless zero crossings, Clarke/Park, FOC current loops, SVPWM, field weakening, inverter losses, DShot frames and eRPM telemetry — animated and simulated.
Added
Works with
- RC power setup — motor, prop and battery RC planesputs this motor's Kv, resistance and Io together with a propeller and a LiPo for thrust, current and flight time
- FPV quad: build, rates, CLI diff and blackbox RC planesthe quad build, Betaflight motor_poles and the blackbox motor traces this page's DShot and eRPM sections explain
- H-bridge and DC motor driver Electronicsthe brushed DC motor and single-phase bridge that the three-phase inverter here extends
- PID loop simulator Electronicsthe PI loop behind FOC's d and q current controllers, simulated on its own
- Motion hardware CNC and 3D printinggearbox ratios, belts and screws for the robot axes a quasi-direct-drive motor turns
How to use it
A brushless motor is a permanent-magnet rotor turned by a rotating field from three stator windings, and an ESC (electronic speed controller) is the six-transistor inverter that makes that field follow the rotor. This page covers both: the motor constants and what they mean, how a motor is wound, and the three ways of driving it — six-step, sinusoidal and field-oriented control — simulated on your motor. For what a motor does with a propeller and a battery, use the RC power setup; this page is about the motor and the ESC themselves.
How to use it
Start on Motor: pick a preset (a 5″ quad motor, a whoop motor, an e-bike hub, a gimbal motor, a robot-joint motor, an RC-car inrunner) or enter your own data-sheet numbers. Every other tab uses that motor.
-
Motor — Kv, Kt, back-EMF constant and flux linkage in each convention, the torque–speed line at full throttle (speed, current, efficiency, power or losses against torque), an efficiency map over every speed and torque the battery and current limit allow, the losses at an operating point, and a temperature estimate over time.
-
Measure it — get Kv from a scope or meter while you spin the motor with a drill (or watch it spin down), resistance with a known current, inductance with an LCR meter (and Ld/Lq from the lowest and highest readings), and the no-load current. Use this copies a result into the motor.
-
Construction — the stator and rotor drawn with each tooth’s coil coloured by phase, for any slot and pole count, wound on every tooth (dLRK), on alternate teeth (LRK) or distributed. The pattern (
AabBCcaABbcCfor 12N14P), the coils in each phase’s chain, the winding factor, cogging steps per turn, and whether the magnetic pull is balanced. Play turns the rotor with the coils lit as an ESC would switch them, so you can see one electrical cycle move the rotor by one pole pair. Below: common combinations, star versus delta, rewinding (turns ↔ Kv and wire size), and Kv estimated from the turns and the stator size. -
Six-step — trapezoidal commutation at the speed and torque you choose. A two-pole picture shows the rotor, the energised coils, the stator field and the three Hall sensors, synchronised with the Hall table and with one electrical cycle of Hall signals, terminal voltages, phase currents and torque. The zero crossings a sensorless ESC watches for are marked, with the commutation it schedules 30° later (less timing advance, plus any filter delay). A sweep shows what timing advance does to torque and efficiency at this speed.
-
Sine & FOC — the Clarke and Park transforms animated: three phase currents, the α–β vector they add up to, and the rotor’s d–q frame in which that vector stands still. Then six-step, sinusoidal voltage drive and FOC compared at the same speed and torque (phase current, torque ripple, copper loss); the d and q PI current loops' step response with and without decoupling; the SVPWM hexagon with the duty cycles it produces; and field weakening and MTPA with the current-limit circle and voltage-limit ellipses.
-
ESC — conduction, switching, dead-time, reverse-recovery and gate losses in the MOSFETs, current ripple against PWM frequency for this motor’s inductance, the voltage lost to dead time, bus capacitor ripple, current-sense shunts, and what braking does to the bus.
-
DShot & protocols — PWM, OneShot and MultiShot pulse widths; a DShot encoder (throttle, raw value or command, telemetry bit, normal or bidirectional CRC, drawn bit by bit) and decoder; the bidirectional DShot eRPM reply worked through (exponent and mantissa, GCR, and rpm from the pole count); and the settings in BLHeli_S/Bluejay, BLHeli_32, AM32 and VESC explained.
-
Applications — the presets explained, a gear-ratio table for quasi-direct-drive robot joints, e-bike hub-motor speed against hill, and gimbal-motor torque from voltage.
The speed and torque on the Six-step and Sine & FOC tabs are the same operating point as on Motor. Torque is given as a percentage of the torque at the maximum current.
How it is worked out
Motor constants. Kv is quoted in rpm per volt, and this page means the line-to-line peak back-EMF — what a scope shows across two leads, and what a six-step drive’s DC bus must overcome. The back-EMF constant is then ke = 60 ÷ (2π·Kv) V·s/rad line-to-line, ke ÷ √3 per phase, and the flux linkage λ = ke_phase ÷ pole pairs (VESC’s "flux linkage"). Torque per amp depends on what the amps are: DC phase current in six-step on a trapezoidal motor (Kt = ke, the familiar 9.55 ÷ Kv), 3/π of that on a sinusoidal motor, and 1.5·p·λ per amp peak in FOC (≈ 8.27 ÷ Kv, the figure ODrive quotes) or √2 times that per amp RMS.
Torque, speed, efficiency. The motor is modelled line to line: V = I·R + ke·ω and T = ke·I − T_loss. For FOC with id = 0 this gives the same copper loss for the same torque as six-step, so one model serves both. The iron, bearing and air losses come from the no-load current: Io × (V − Io·R) at the no-load speed, 60 % proportional to speed (hysteresis, bearings) and 40 % to its square (eddy currents, air). Copper resistance rises 0.393 % per °C. The temperature is one thermal mass with one thermal resistance to the air.
Windings. A slot/pole combination works for three phases when slots ÷ (3 × gcd(slots, pole pairs)) is a whole number. The winding is laid out by the star of slots: each tooth’s back-EMF phasor is k × pole pairs × 360° ÷ slots, and phasors are shared among A, −B, C, −A, B, −C in 60° sectors. The distribution factor is the length of a phase’s summed phasors over its coil count; the pitch factor of a tooth coil is sin(pole pairs × 180° ÷ slots). Cogging repeats LCM(slots, poles) times a turn. Kv from geometry uses the fundamental of a square airgap field over one pole pitch.
Commutation. The circuit is simulated in time: three legs (driven high, driven low, or floating with their freewheel diodes), star-connected windings with R, L and the back-EMF of a sinusoidal or trapezoidal motor, at a constant speed until the currents settle. Six-step uses averaged PWM on the high side; sinusoidal drive uses min–max (centred SVPWM) injection; FOC runs PI loops in d–q, tuned by pole–zero cancellation (Kp = L·ωc, Ki = R·ωc) with optional decoupling, limited to Vbus ÷ √3. Six-step and sinusoidal drive find their duty by bisection to make the torque you ask for. The field-weakening envelope searches the current angle at each speed for the most torque within the current circle and the voltage ellipse, resistance included; MTPA uses the closed-form current split for Lq ≠ Ld.
Inverter. Conduction loss is I²·Rds(on) through two MOSFETs (six-step) or three legs' RMS (FOC); switching loss ½·V·I·(tr + tf)·f per switching leg; dead time Vf·I·2·td·f; recovery Qrr·V·f; gate Qg·Vgs·f per MOSFET. Six-step current ripple is Vbus·D·(1 − D) ÷ (L_LL·f). Bus capacitor RMS current is I·√(D(1 − D)) for six-step and Kolar and Round’s formula for sinusoidal drive.
DShot. A frame is an 11-bit value (0 stop, 1–47 commands, 48–2047 throttle), a telemetry bit and a 4-bit CRC = (v ⊕ v≫4 ⊕ v≫8) & 0xF over those 12 bits, inverted for bidirectional DShot. The eRPM reply is the electrical period in µs as eee mmmmmmmmm (period = m ≪ e), with the inverted CRC, GCR-coded and sent as transitions, as Betaflight decodes it.
Limits
-
The motor model is linear: no magnetic saturation (Kt falls at high current on real motors), and inductance that does not change with current. Iron loss is a fit to one no-load measurement.
-
The simulation averages the PWM (no switching ripple in the waveforms; see the ESC tab for that), holds the speed constant, ignores the MOSFET drops, and samples the currents perfectly for FOC. A real sensorless ESC also has comparator noise, PWM-synchronous sampling and a filter delay you can add.
-
The thermal estimate is a single lump; the winding’s hot spot is hotter than the average.
-
The presets are typical of their class, not a particular product.
-
Field weakening neglects iron loss and assumes the current loops keep up. Over-modulation is clipped, not modelled.
Linking to an example
Share link copies a link with the motor and the operating point. A hand-written link can set:
| Parameter | Meaning | Example |
|---|---|---|
|
A preset (below) |
|
|
Kv, rpm/V (line-to-line peak) |
|
|
Resistance lead to lead, Ω |
|
|
Inductance lead to lead, H |
|
|
No-load current, A |
|
|
Magnets and teeth |
|
|
|
|
|
|
|
|
Back-EMF shape: |
|
|
Bus voltage and maximum current |
|
|
Operating speed, torque (% of max-current torque) and timing advance (°) |
|
Presets:
example= |
Motor |
|---|---|
|
2207 1950 Kv, 12N14P — a 5″ FPV quad motor on 6S |
|
1404 3800 Kv — a 3″ cinewhoop motor on 4S |
|
51N46P direct-drive hub, 10 Kv, on 48 V |
|
2804 gimbal motor, 100 turns, 150 Kv, 11 Ω |
|
36N42P robot-actuator motor, 100 Kv, on 24 V |
|
4-pole inrunner, 2200 Kv, delta, for a 1/8 RC car on 4S |
For example ?example=gimbal-2804#construction,
?example=ebike-hub#sixstep or
?slots=9&poles=8#construction. The tab names for
the # are constants, measure, construction, sixstep, foc, esc, protocols and apps.
Sources
-
Microchip AN885, Brushless DC (BLDC) Motor Fundamentals, and AN857, Brushless DC Motor Control Made Easy — six-step, Hall sequences and sensorless zero crossings.
-
Microchip AN1078, Sensorless Field Oriented Control of a PMSM; Texas Instruments BPRA073, Field Orientated Control of 3-Phase AC-Motors — Clarke, Park and the current loops.
-
Texas Instruments SPRA524, Space-Vector PWM With TMS320C24x/F24x — sectors, T1/T2/T0.
-
STMicroelectronics AN1130, An introduction to sensorless brushless DC motor drive applications.
-
J. R. Hendershot and T. J. E. Miller, Design of Brushless Permanent-Magnet Machines; R. Krishnan, Permanent Magnet Synchronous and Brushless DC Motor Drives — constants, windings, field weakening.
-
N. Bianchi and M. Dai Prè, "Use of the star of slots in designing fractional-slot single-layer synchronous motors", IEE Proc. Electric Power Applications, 2006.
-
Z. Q. Zhu and D. Howe, "Influence of design parameters on cogging torque in permanent magnet machines", IEEE Trans. Energy Conversion, 2000.
-
S. Morimoto et al., "Expansion of operating limits for permanent magnet motor by current vector control considering inverter capacity", IEEE Trans. Industry Applications, 1990 — MTPA and field weakening.
-
J. W. Kolar and S. D. Round, "Analytical calculation of the RMS current stress on the DC-link capacitor of voltage-PWM converter systems", IEE Proc. Electric Power Applications, 2006.
-
N. Mohan, T. Undeland and W. Robbins, Power Electronics — switching losses and dead time.
-
P. M. Wensing et al., "Proprioceptive actuator design in the MIT Cheetah", IEEE Trans. Robotics, 2017 — quasi-direct drive.
-
Betaflight’s DShot source (
dshot.c,dshot_command.h) — frame, CRC, commands and the bidirectional telemetry decoding.
Feedback is a gift. Something to improve, a feature to add, or a bug? Tell me.
Runs entirely in your browser; nothing you type leaves this page.