Quick Answer
DroneCAN is a digital two-wire bus protocol that lets flight controllers talk to multiple peripherals at once, sending commands and receiving telemetry over a shared cable. PWM sends one analog signal per wire with no feedback. For anything beyond a basic quadcopter, DroneCAN is the better choice.
What is PWM?
PWM (Pulse Width Modulation) has been the standard way to control motors and servos in drones since the hobby began. The flight controller sends a series of electrical pulses down a wire, and the width of each pulse tells the ESC or servo what to do. A 1000-microsecond pulse means minimum throttle; 2000 microseconds means maximum.
The problem is that each signal needs its own wire. A quadcopter needs four signal wires from the flight controller to its ESCs. An octocopter needs eight. The communication is one-way: the FC sends commands, but the ESCs cannot report back. If a motor is overheating or drawing excessive current, the flight controller has no idea.
What is DroneCAN?
DroneCAN is a lightweight protocol built on top of the CAN bus standard (the same technology used in cars and industrial automation). It uses just two wires, CAN_H and CAN_L, in a differential signalling arrangement that is highly resistant to electrical noise.
Every device on the bus gets a unique node ID. Devices are daisy-chained together rather than wired back to the FC individually. Communication is bi-directional: the flight controller sends commands, and peripherals report back telemetry data like RPM, temperature, voltage, current, and error states.
DroneCAN started as a continuation of UAVCAN v0 after the community decided to fork rather than adopt the breaking changes in UAVCAN v1. Both ArduPilot and PX4 support it as their primary CAN protocol.
PWM vs DroneCAN: The Key Differences
| Feature | PWM | DroneCAN |
|---|---|---|
| Signal type | Analog pulse | Digital differential |
| Wiring (8 motors) | 8 signal wires | 2 shared wires |
| Telemetry | None | RPM, temp, current, voltage |
| Error detection | None | CRC + auto-retry |
| Max devices | Limited by FC pins | Up to 127 nodes |
| Direction | One-way | Bi-directional |
When to Use Each Protocol
PWM still makes sense for racing FPV quads and simple builds. DShot and Oneshot (digital variants of PWM) are fast, low-latency, and straightforward to set up. If you have four motors and no need for ESC telemetry, PWM gets the job done with minimal fuss.
DroneCAN shines on larger builds: hexacopters, octocopters, fixed-wing drones, and anything used commercially or for long-range missions. The wiring simplification alone is a major advantage. Being able to monitor every ESC's temperature and current draw in real time prevents failures before they happen.
If you are building on Pixhawk with ArduPilot or PX4, DroneCAN peripherals plug in directly. GPS modules, compasses, airspeed sensors, and power modules all have DroneCAN variants. For routing a DroneCAN bus to multiple boards, a DroneCAN star splitter keeps the wiring tidy, while a DroneCAN breakout board lets you keep existing PWM ESCs on a CAN-equipped build. Browse these and more in our maker collection.
A Real-World Example: PM08-CAN Power Module
The PM08-CAN 14S 200A from Holybro shows what DroneCAN enables. It handles 2S to 14S input (7V to 60.9V), measures up to 200A continuous current, and reports voltage, current, and temperature back to the flight controller over the CAN bus. It also provides two independent 5V BEC outputs and can receive firmware updates without being physically connected to a computer.
None of that telemetry would be possible over PWM. The same board as a PWM power module could report voltage, but current sensing, temperature monitoring, and remote firmware flashing all require the bi-directional data channel that DroneCAN provides.
For a deeper look at how flight controllers handle different protocols, see our guide on what a flight controller does.
FAQ
Q: Can I mix PWM and DroneCAN on the same drone?
A: Yes. Most flight controllers support both simultaneously. You can run DroneCAN for your power module and GPS while keeping PWM (DShot) for your motor ESCs.
Q: Is DroneCAN the same as UAVCAN?
A: DroneCAN is a fork of UAVCAN v0. When UAVCAN v1 introduced breaking changes, the drone community continued developing v0 under the DroneCAN name. The two protocols are not compatible.
Q: Do I need a special flight controller for DroneCAN?
A: The flight controller needs a CAN bus port. Most Pixhawk-compatible boards have one. If you are unsure, check the specs for your specific flight controller.