PWM sends one throttle signal and receives nothing back. CAN bus returns RPM, current, temperature, and fault status from every motor on every cycle. For defense UAV programs that need full health monitoring, the choice matters.
For defense UAV programs, CAN bus is the preferred ESC protocol when the flight controller supports it.
CAN provides bidirectional communication on a two-wire differential bus — the flight controller sends throttle commands, and each ESC returns real-time motor RPM, phase current, supply voltage, ESC temperature, and fault codes. This data stream is mission-critical for programs that require in-flight health monitoring and post-flight forensic analysis.
PWM, by contrast, is a one-way analog signal. It is simple, universally supported, and works. But it produces no feedback, offers no fault detection, and is susceptible to noise in high-RF environments. For hobbyist or commercial platforms where simplicity dominates, PWM is fine. For defense platforms that need to know exactly what each motor is doing on every cycle, PWM is structurally inadequate.
Dshot occupies the middle: it is digital (noise-immune, no calibration), and bidirectional Dshot returns motor RPM over the same wire. It lacks the full telemetry breadth of CAN but is a significant improvement over PWM for platforms where CAN wiring is not practical.
The original ESC protocol. One signal wire per ESC. Widely supported.
PWM encodes throttle as a pulse duration: typically 1000 µs (0% throttle) to 2000 µs (100% throttle) at 50 Hz. Each ESC receives its own dedicated signal wire from the flight controller. The protocol is purely unidirectional — the ESC receives a command and executes it; there is no acknowledgment, no data return, no error signaling.
PWM remains useful in constrained integrations where simplicity matters and no health monitoring is required. It is not appropriate for production defense programs where per-motor telemetry is a mission requirement.
Digital throttle over a single wire. No calibration. Optional RPM telemetry.
Dshot replaced the analog encoding of PWM with a fixed-rate digital packet: a 16-bit frame containing the 11-bit throttle command, a telemetry request bit, and a 4-bit CRC. This eliminates the noise sensitivity and calibration burden of PWM. Bidirectional Dshot extends the protocol — after the throttle frame is received, the ESC responds on the same wire with an eRPM value via inverted DSHOT encoding, giving the flight controller per-motor speed feedback without additional wiring.
Dshot 300 is the standard for most defense platforms running ArduPilot or PX4. Bidirectional Dshot is sufficient when RPM feedback is the primary telemetry requirement and current/temperature monitoring is handled by a separate power module.
Two-wire differential bus. Full per-motor telemetry. Fault detection. Preferred for defense programs.
CAN bus uses a two-wire differential pair (CAN_H and CAN_L) shared by all nodes on the bus. Each ESC is a CAN node; the flight controller is the bus master. DroneCAN (formerly UAVCAN v0) is the higher-level protocol that runs over CAN and defines the message types for ESC control and telemetry in drone systems.
Under DroneCAN, the flight controller publishes ESC setpoints at up to 200 Hz. Each ESC publishes its own status messages — RPM, current, voltage, power, temperature, error flags — at configurable intervals. These messages are available to any node on the bus, including data loggers and companion computers, without additional wiring.
CAN bus reduces per-ESC wiring to a single daisy-chained bus shared by all motors. On a quadrotor, four ESCs plus the flight controller share two wires. This architecture also supports ring or redundant topologies for fault-tolerant platforms.
100BASE-T1 / 1000BASE-T1 automotive Ethernet. High bandwidth. Not yet standard in flight stacks.
A small number of next-generation UAV platforms — particularly those requiring high-bandwidth sensor fusion or software-defined flight control architectures — are beginning to adopt single-pair Ethernet (100BASE-T1 or 1000BASE-T1) for ESC control, following automotive precedent. This enables much higher telemetry bandwidth and supports TSN deterministic scheduling.
Ethernet-capable ESCs are not yet in the defense UAV mainstream. ArduPilot and PX4 do not currently ship Ethernet ESC drivers. Lirith is monitoring this space; the QuadDrive 80A currently supports CAN, Dshot, and PWM — the protocols that are standard in defense programs today.
Feature-by-feature comparison across the four ESC control protocols used in UAV systems.
| Feature | PWM | Dshot | CAN (DroneCAN) | Ethernet |
|---|---|---|---|---|
| Signal type | Analog | Digital | Digital differential | Digital differential |
| Wiring per ESC | 1 signal + GND | 1 signal wire | Shared 2-wire bus | Shared 2-wire bus |
| Calibration required | Yes | No | No | No |
| Throttle update rate | 50–490 Hz | Up to 8 kHz | Up to 200 Hz | Up to 1 kHz+ |
| Noise immunity | Low | High | Very high | Very high |
| Motor RPM feedback | No | Bidirectional Dshot | Yes | Yes |
| Current telemetry | No | No | Yes | Yes |
| Temperature telemetry | No | No | Yes | Yes |
| Fault detection | No | No | Yes — per node | Yes |
| Bus topology | Point-to-point | Point-to-point | Multi-drop bus | Switched network |
| ArduPilot support | Yes | Yes | Yes (DroneCAN) | No (experimental) |
| PX4 support | Yes | Yes | Yes (DroneCAN) | No (experimental) |
| Defense UAV suitability | Adequate | Good | Preferred | Future |
The Lirith QuadDrive 80A supports PWM, Dshot 300, Dshot 600 with bidirectional telemetry, and DroneCAN — selectable via configuration. The same hardware integrates into any current defense flight stack.
1 Mbit/s is the standard CAN bus speed for DroneCAN ESC networks. Bus length and termination must be correct at this speed — 120 Ω resistors at both ends of the bus, maximum segment length of approximately 40 m. Most defense UAV airframes are well within these limits.
Yes, if the flight controller supports both. ArduPilot can drive a mix of DroneCAN and Dshot ESCs by assigning motor outputs to different output groups. In practice, it is simpler to standardize on one protocol per airframe to reduce integration complexity and ensure consistent telemetry.
At 200 Hz update rate over DroneCAN, CAN bus latency is not a limiting factor for quadrotor flight control. High-performance FPV racing applications run Dshot at 4–8 kHz, but defense VTOL and multirotor platforms typically run attitude control loops at 400 Hz or lower, well within CAN's capability.
A failed or disconnected CAN node stops transmitting status messages; the flight controller detects the missing heartbeat and can execute a configured failsafe. Unlike PWM — where a failed ESC produces no fault signal at all — CAN provides the flight controller with actionable information to respond to the failure.
DroneCAN is the continuation of UAVCAN v0, renamed to reflect its primary application domain. ArduPilot and PX4 both use DroneCAN for CAN ESC and peripheral communication. UAVCAN v1 (now Cyphal) is an incompatible successor; the DroneCAN ecosystem is what production defense programs use today.
No. The Lirith QuadDrive 80A has CAN transceivers on board and exposes a standard JST-GH 4-pin CAN connector (CANL, CANH, GND, +5V optional). Connect it directly to any flight controller with a CAN port. No adapter, bridge, or level-shifting hardware is required.