AM32 DroneCAN ArduPlane VTOL 4+1 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_INDEXset your motor index inuavcan.equipment.esc.RawCommandMOTOR_KVset your motor kv. ie set 1400 for 1400kvMOTOR_POLESset your motor poles value. ie 14 for 12N14P motor. (Wrong value will make rpm value not correct)ADVANCE_LEVELset your motor advance angle, Range 0-4, 1 for per 7.5 degreeDIR_REVERSEDtoggle if you need to reverse motor directionSTARTUP_POWERdefault 100, increase for heavy loadBRAKE_ON_STOPset 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.