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 Configuration

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

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

By default, all configured motor channels are used to send control commands to the ESCs. These control messages are transmitted by the autopilot at a default rate of 50Hz. These parameters can be modified using:

  • CAN_D1_PC_ESC_BM is a bitmask that determines which ESC (motor) channels are transmitted over CAN

  • CAN_D1_PC_ESC_RT determines the rate (Hz) at which commands are sent out to the ESCs

ESC Configuration

The AM32 ESCs can be setup using the DroneCAN GUI Tool with the ESC connected to the autopilot, or alternatively, the AM32 configurator can be used by directly connecting to the ESC’s PWM connection

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