DroneCAN ESCs

Copter, Plane and Rover support DroneCAN Electronic Speed Controllers (ESCs) that allow two-way communication with the autopilot enabling potentially easier setup and in-flight monitoring of ESC and motor health.

List of CAN ESCs

Name

Avail

Ever Worked

Zubax Orel 20

Yes

Yes

Zubax Myxa

Yes

Yes

Zubax Mitochondrik

Yes

Yes

Holybro Kotleta20

Yes

Yes

AutoQuad ESC32

No

No

VESC

Yes

No (proposal)

HiEnd Can Bus ESC

Yes

?

Velocity ESC

Yes

Yes

Connecting to the Flight Controller

../_images/Pixhawk_UAVCAN_ESC.jpg

One ESC (it does not matter which) should be connected to the flight controller’s CAN port using a 4-pin DF13 to 4-pin DroneCAN adapter cable. Each subsequent ESC should be connected to the previous using a 4-pin DroneCAN cable. The final ESC should have a CAN bus terminator plugged into one of its 4-pin DroneCAN ports.

An FTDI Cable connection to the ESC’s debug port is only required for set-up if the ESC does not present its parameters via DroneCAN. In that case, contact the manufacturer for detailed instructions.

Preferably, the ESC can be configured via CAN bus using the DroneCAN GUI Tool <common-uavcan-gui>.

Autopilot Setup

There are two parameters that determine which autopilot servo/motor channels are sent to the CAN escs: For the examples below, the values are shown for CAN driver #1.

  • CAN_D1_UC_NODE - which is the node ID of the autopilot sending the commands to the ESCs so that there can be differentiation between multiple sources on the CAN bus

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

Logging and Reporting

DroneCAN ESCs provide information back to the autopilot which is recorded in the autopilot’s onboard log’s CESC messages and can be viewed in any ArduPilot compatible log viewer. This information includes:

  • Error Count

  • Voltage

  • Current

  • Temperature

  • RPM

  • Power (as a percentage)

The RCOU messages are also written to the onboard logs which hold the requested output level sent to the ESCs expressed as a number from 1000 (meaning stopped) to 2000 (meaning full output).