KDECAN ESCs are high-end ESCs that allow control and feedback using a custom CAN protocol


Support for these ESCs is included in Copter-4.0 (and higher), Plane-3.10 (and higher) and Rover-3.5 (and higher)

Where To Buy

Connection and Configuration

KDE’s instructions for connecting and configuring with ArduPilot are here

  • ESCs should be daisy chained together using the KDECAN Wire Kit. One 4-pin CAN cable should be connected to the autopilot’s CAN port. The CAN terminator (the 4-pin connector with a black loop) should be connected to the last ESC in the chain


If using a Cube autopilot, the CAN1 and CAN2 labels are reversed. These instructions assume the ESCs are connected to the CAN1 port which is labelled “CAN2” on Cube autopilots

  • Set CAN_P1_DRIVER = 1 (First driver) to specify that the ESCs are connected to the CAN1 port
  • Set MOT_PWM_MIN = 1000 and MOT_PWM_MAX = 2000 so ArduPilot uses an output range that matches the ESCs input range
  • Set SERVOx_MIN = 1000 and SERVOx_MAX = 2000 for each ESC connected (x corresponds to the ESC number) so ArduPilot uses an output range that matches the ESCs input range

Logging and Reporting

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

  • RPM
  • Voltage
  • Current
  • ESC Temperature
  • Total Current

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).

This information can also be viewed in real-time using a ground station. If using the Mission Planner go to the Flight Data screen’s status tab and look for esc1_rpm.



Sending ESC data to the GCS requires using MAVLink2. Please check the appropriate SERIALx_PROTOCOL parameter is 2 (where “x” is the serial port number used for the telemetry connection).