AM32 Drone CAN ESCs¶
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 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.
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