robotics//drone//multirotor//ESC
An ESC (**electronic speed controller**) is a motor driver with its own microcontroller that turns one number from the flight controller into the three-phase currents that spin a brushless motor, and it sits between the autopilot and every propeller of a multirotor, one per motor. What goes in is a throttle command, hundreds to thousands of times per second; what comes out is the motor's speed, and on the better ones a report of the speed it actually reached.
An ESC (electronic speed controller) is a motor driver with its own microcontroller that turns one number from the flight controller into the three-phase currents that spin a brushless motor, and it sits between the autopilot and every propeller of a multirotor, one per motor. What goes in is a throttle command, hundreds to thousands of times per second; what comes out is the motor's speed, and on the better ones a report of the speed it actually reached.
Inside, the ESC runs the innermost loop of the aircraft. A brushless motor has no brushes to switch its coils, so the ESC does it electronically: it reads where the rotor is (from the back voltage of the idle phase, or from sensors) and switches six transistors at tens of kHz so the magnetic field always pulls the rotor ahead. The voltage on the coils is itself modulated by PWM, so the same word names both the old command signal and the power stage. The command arrives either as classic PWM (a pulse of 1 to 2 ms, read by timing it) or as DShot, a digital frame with 11 throttle bits, about 2,000 usable levels, and a checksum, so a noisy wire gives a rejected frame instead of a wrong speed.
The ESC is where the controller's number meets the world, and it adds three things the design on the whiteboard forgets: a lag, because the rotor takes 10 to 100 ms to reach a new speed (propeller thrust); a floor, because below idle the motor does not respond; and a grid, because 2,000 levels are a quantization of the command. Each one shows up later as lost phase margin, a dead zone or a limit cycle.
It serves the flight controller and steers nothing about the vehicle itself. The flight controller decides the torques and the motor mixer splits them into four or more commands; the ESC only makes its motor follow its own command as fast as the motor allows. In a cascade it is the loop below the rate loop, at tens of kHz against hundreds of Hz, which is why the rate loop can treat it as a nearly ideal actuator.
Bidirectional protocols send the measured rpm back. The autopilot uses it to place notch filters exactly on the motor's vibration frequency, which moves with throttle, and a motor whose rpm lags its command is an early sign of a damaged propeller or a failing bearing (fault diagnosis).
Its delay belongs in the model. A robust design certifies only the uncertainty it described (robust control): if the ESC and rotor lag were left out, the margins computed for the rate loop are optimistic by exactly that lag, and gains tuned in simulation oscillate on the real frame.
It fails thermally and electrically. Long climbs at high current heat its transistors, abrupt throttle steps can make the commutation lose track of the rotor (a desync, the motor stutters or stops), and a brownout resets its microcontroller mid-flight. The actuator note covers what all actuators share; this note is the drone's instance.