Skip to content

ESC Protocols

This topic lists the main Electronic Speed Controller (ESC) protocols supported by PX4.

DShot

DShot is a digital ESC protocol that is highly recommended for vehicles that can benefit from reduced latency, in particular racing multicopters, VTOL vehicles, and so on.

It has reduced latency and is more robust than both PWM and OneShot. In addition it does not require ESC calibration, telemetry is available from some ESCs, and you can reverse motor spin directions.

PX4 configuration is done in the Actuator Configuration. Selecting a higher rate DShot ESC in the UI results in lower latency, but lower rates are more robust (and hence more suitable for large aircraft with longer leads); some ESCs only support lower rates (see datasheets for information).

Setup:

  • ESC Wiring (same as for PWM ESCs)
  • DShot also contains information about how to send commands etc.

DroneCAN

DroneCAN ESCs are recommended when DroneCAN is the primary bus used for your vehicle. The PX4 implementation is currently limited to update rates of 200 Hz.

DroneCAN shares many similar benefits to DShot including high data rates, robust connection over long leads, telemetry feedback, no need for calibration of the ESC itself.

DroneCAN ESCs are connected via the DroneCAN bus (setup and configuration are covered at that link).

PWM

PWM ESCs are commonly used for fixed-wing vehicles and ground vehicles (vehicles that require a lower latency like multicopters typically use oneshot or dshot ESCs).

PWM ESCs communicate using a periodic pulse, where the width of the pulse indicates the desired speed. The pulse width typically ranges between 1000 μs for zero power and 2000 μs for full power. The periodic frame rate of the signal depends on the capability of the ESC, and commonly ranges between 50 Hz and 490 Hz (the theoretical maximum being 500 Hz for a very small "off" cycle). A higher rate is better for ESCs, in particular where a rapid response to setpoint changes is needed. For PWM servos 50 Hz is usually sufficient, and many don't support higher rates.

duty cycle for PWM

In addition to being a relatively slow protocol PWM ESCs require calibration because the pulse widths representing low and high values can vary significantly. Unlike DShot and DroneCAN ESC they do not have the ability to provide telemetry and feedback on ESC (or servo) state.

Setup:

OneShot 125

OneShot 125 ESCs are usually much faster than PWM ESCs, and hence more responsive and easier to tune. They are preferred over PWM for multicopters (but not as much as DShot ESCs, which do not require calibration, and may provide telemetry feedback). There are a number of variants of the OneShot protocol, which support different rates. PX4 only supports OneShot 125.

OneShot 125 is the same as PWM but uses pulse widths that are 8 times shorter (from 125 μs to 250 μs for zero to full power). This allows OneShot 125 ESCs to have a much shorter duty cycle/higher rate. For PWM the theoretical maximum is close to 500 Hz while for OneShot it approaches 4 kHz. The actual supported rate depends on the ESC used.

Setup: