Hargrave Technologies outlines a practical method for integrating DroneCAN alongside Bidirectional DSHOT when flight controller limitations prevent sequential channel allocation within ArduPilot.
This issue commonly arises because DSHOT outputs, particularly when bidirectional support is required, must occupy specific hardware ports, disrupting the default sequential servo mapping expected by CAN-based Electronic Speed Controllers (ESCs).
In a representative configuration, two Hargrave 4LPi 4-in-1 ESCs are deployed with Bidirectional DSHOT as the primary control protocol and DroneCAN as a secondary or backup pathway. Due to hardware constraints, DSHOT outputs are assigned to servo outputs 1–4 and 9–12, leaving a gap in channels 5–8. To resolve this, ESC indexing must be offset accordingly: the first ESC retains indexes 0–3, while the second shifts to 8–11, ensuring proper alignment with ArduPilot’s servo output structure.
Additionally, configuring the CAN_D1_UC_ESC_BM bitmask (set to 3855) enables DroneCAN to mirror these outputs. While effective, this split-channel approach increases CAN telemetry overhead by approximately 30%, reinforcing its role as a backup control solution. This configuration ultimately enables high-performance motor control alongside enhanced system redundancy.






