AM32 DroneCAN ArduPlane VTOL Setup

Overview

This guide covers a QuadPlane (VTOL fixed-wing) configuration with:

  • 4 lift motors (SERVO5–8, Motor 1–4) for vertical takeoff and landing
  • 1 forward thrust motor (SERVO9, Throttle) for fixed-wing flight
  • 4 control surface servos (SERVO1–4) controlled over DroneCAN

Common Important AM32 Params

  • ESC_INDEX set your motor index in uavcan.equipment.esc.RawCommand
  • MOTOR_KV set your motor kv. ie set 1400 for 1400kv
  • MOTOR_POLES set your motor poles value. ie 14 for 12N14P motor. (Wrong value will make rpm value not correct)
  • ADVANCE_LEVEL set your motor advance angle, Range 0-4, 1 for per 7.5 degree
  • DIR_REVERSED toggle if you need to reverse motor direction
  • STARTUP_POWER default 100, increase for heavy load
  • BRAKE_ON_STOP set to enable to avoid free windmill

QuadPlane VTOL Setup

Setup ArduPilot Params

you can adjust the SERVO1-4 function if you need more detail servo setup, you can also use more channels

CAN_P1_DRIVER    1           # First driver
CAN_P1_BITRATE   1000000     # 1Mbps
CAN_D1_PROTOCOL  1           # DroneCAN
CAN_D1_UC_ESC_BM 496         # ESC 5|ESC 6|ESC 7|ESC 8|ESC 9
CAN_D1_UC_ESC_OF 4           # Remove Servo output in ESC command Array
CAN_D1_UC_SRV_BM 15          # Servo 1|Servo 2|Servo 3|Servo 4
CAN_D2_PROTOCOL  1           # DroneCAN

SERVO1_FUNCTION  4           # Aileron
SERVO2_FUNCTION  19          # Elevator
SERVO3_FUNCTION  -1          # Disabled (Throttle moved to SERVO9)
SERVO4_FUNCTION  21          # Rudder
SERVO5_FUNCTION  33          # Motor1
SERVO6_FUNCTION  34          # Motor2
SERVO7_FUNCTION  35          # Motor3
SERVO8_FUNCTION  36          # Motor4
SERVO9_FUNCTION  70          # Throttle

Setup AM32 Params

Lift Motors (ESC 5–8, index 0–3)

CAN_D1_UC_ESC_OF already set to 4 to remove servo 1-4 in uavcan.equipment.esc.RawCommand, so ESC_INDEX start from 0

Motor Ardupilot SERVOn_FUNCTION AM32 ESC_INDEX
Motor1 SERVO5 0
Motor2 SERVO6 1
Motor3 SERVO7 2
Motor4 SERVO8 3
ESC_INDEX 0   # Motor1 (repeat per ESC, increment by 1)

Forward Thrust Motor (ESC 9, index 4)

ESC_INDEX 4

Startup Tone Not Sync

When you have more than one AM32 ESC on the aircraft, the startup tone may not play in sync. To solve this, set a fixed CAN_NODE for each ESC (e.g. CAN_NODE 100 for Motor1, 101 for Motor2, etc.) and ensure the ESC thrust command is at a high rate (default 400 Hz in ArduPilot is recommended).

CAN_D1_UC_ESC_OF Explained

CAN_D1_UC_ESC_OF 4 offsets the ESC command array by 4, so the first DroneCAN ESC command slot (index 0) maps to SERVO5. This prevents the 4 DroneCAN servo outputs (SERVO1–4) from occupying ESC command slots.