AM32 Drone CAN ESCs

../_images/am32-dronecan-escs-title.jpg

The AM32 ESC firmware is open source ESC firmware for use on multicopters and rovers. DroneCAN support was added in late 2024

Where to Buy

AM32 ESCs that support DroneCAN

More ESCs may be found from the AM32 targets.h file (seach for _CAN)

ArduPilot Connection and Configuration

The ESCs should be connected to the autopilot’s CAN port. Below shows the ESCs connected to the autopilot’s CAN1 port but CAN2 may also be used.

../_images/am32-autopilot-wiring.png

To enable communication with the AM32 ESCs using DroneCAN, set the following parameters:

  • Set CAN_P1_DRIVER = 1 (First driver) to specify that the ESCs are connected to the CAN1 port

  • Set CAN_D1_PROTOCOL = 1 (DroneCAN)

  • Set MOT_PWM_MIN = 1000 and MOT_PWM_MAX = 2000 so ArduPilot uses an output range that matches the ESCs input range

  • Set SERVOx_FUNCTION to each motor channel (e.g. 33 - 40 for motors 1 - 8). This is automatically configured when setting frame class/type. If a motor channel isn’t assigned to a servo output, commands won’t be sent to the associated ESC.

  • CAN_D1_UC_ESC_BM is a bitmask that determines which servo output channels are transmitted over CAN. For quadcopters this is normally “15”

  • CAN_D1_UC_ESC_OF allows for more efficient packing of ESC command messages when ESCs are connected to higher servo outputs (e.g. 5 to 8). For most vehicles this can be left at zero

  • CAN_D1_UC_ESC_RV allows specifying which ESCs support spinning in reverse

ESC Firmware Updates

The latest firmwares can be found on the am32.ca downloads page

To update the ESCs firmware using Mission Planner:

../_images/am32-dronecan-escs-firmwareupdate-with-MP.png
  • Download the firmware from the am32.ca downloads page

  • Power on the autopilot and ESCs

  • Connect to the autopilot using Mission Planner

  • Open Mission Planner’s Setup, Optional Hardware, DroneCAN/UAVCAN page

  • Select “MAVLinkCAN1” from the drop-down (assuming the ESCs are connected to the autopilot’s CAN1 port) and press Connect

  • The ESCs should appear in the list of connected devices

  • For each ESC listed, push the “Menu” button on the right and select “Update”

  • When asked, “Do you want to search the internet for an update?”, push “No” and select the firmware downloaded above

  • After the firmware is uploaded, check the “SW Version” column shows the expected version

ESC Configuration

If the ESCs are already connected to the autopilot (via DroneCAN), they can be configured using Mission Planner’s DroneCAN/UAVCAN page or the DroneCAN GUI Tool. Alternatively, the AM32 configurator can be used by directly connecting to the ESC’s PWM connection.

In most cases at least some of the following parameters will need to be changed:

  • ESC_INDEX: The motor number - 1. For multicopters the motor number and position are shown on the ESCs and Motors wiki page

  • DIR_REVERSED: the motor direction. Use Mission Planner’s motor test page to check the direction and change this parameter if necessary

  • MOTOR_POLES: the number of poles in the motor

  • MOTOR_KV: the motor’s KV rating

To change the above parameters using Mission Planner:

  • Power on the autopilot and ESCs

  • Connect to the autopilot using Mission Planner

  • Open Mission Planner’s Setup, Optional Hardware, DroneCAN/UAVCAN page

  • Select “MAVLinkCAN1” from the drop-down (assuming the ESCs are connected to the autopilot’s CAN1 port) and press Connect

  • For each ESC listed, push the “Menu” button on the right and select “Parameters”

  • Change the parameters as required and press, “Write Params”

Logging and Reporting

ESCs RPM, voltage, current and temperature are recorded in the autopilot’s onboard log and reported in real-time to the ground station

../_images/dshot-realtime-esc-telem-in-mp.jpg

Videos