DroneCAN Servos

ArduPilot supports DroneCAN servos. DroneCAN connected servos offer high noise immunity and longer lead runs that normal PWM servos.

Autopilot Setup

There are several parameters that determine which autopilot servo/motor channels are sent to the DroneCAN servos: For the examples below, the values are shown for DroneCAN driver #1 using CAN Port #1

  • CAN_P1_DRIVER = 1, which assigns driver1 to port1

  • CAN_D1_PROTOCOL = 1 (DroneCAN protocol)

  • CAN_D1_UC_NODE - which is the node ID of the autopilot sending the commands to the servos so that there can be differentiation between multiple sources on the CAN bus. This is normally automatically set during discovery, but can be altered for advanced configurations (multiple sources on the bus).

  • CAN_D1_UC_ESC_BM - bitmask that determines which autopilot servo/motor output signals are sent to the DroneCAN servos


Himark servos use a different command set. In order to use them, also set CAN_D1_UC_OPTION bit 5 (+32).