The motor setup is not complete
What ArduPilot says:
- PreArm: Motors: …
The motors library, the part of ArduPilot that turns the thrust it wants into a signal for each motor, found its own setup incomplete. The words after “Motors:” are its reason and have their own explanation: most often “Check frame class and type” (no frame chosen yet) or “no SERVOx_FUNCTION set to Motor1” (a motor has no output). This test runs even with the arming checks switched off.
What to do, most likely first
No frame has been chosen:
FRAME_CLASSis still 0 on a freshly flashed board.FixSet
FRAME_CLASS(1 for a quad) andFRAME_TYPE(1 for X, 12 for the Betaflight motor order), then reboot.A motor has no output assigned to it.
CheckThe message names the motor. Look through the
SERVOn_FUNCTIONparameters for its number.FixGive each motor an output:
SERVOn_FUNCTION33 is Motor1, 34 Motor2, 35 Motor3, 36 Motor4. The Board & Wiring Planner shows which pad is which output.The motor spin settings contradict each other.
FixKeep
MOT_SPIN_ARMbelowMOT_SPIN_MIN, andMOT_SPIN_MINat 0.3 or less.
Parameters to look at
| Parameter | What it is |
|---|---|
FRAME_CLASS | Frame Class |
FRAME_TYPE | Frame Type (+, X, V, etc) |
SERVO1_FUNCTION | Servo output function |
SERVO2_FUNCTION | Servo output function |
SERVO3_FUNCTION | Servo output function |
SERVO4_FUNCTION | Servo output function |
MOT_SPIN_ARM | Motor Spin armed |
MOT_SPIN_MIN | Motor Spin minimum |
Where to do it:Setup & Tuning GuideSetup & Tuning GuideBoard & Wiring Planner
The code that sends it
PreArm: Motors: …
ArduCopter/AP_Arming.cpp AP_Arming_Copter::run_pre_arm_checks() · Open in ArduPilot Copter-4.6.3
ArduCopter/AP_Arming_Copter.cpp AP_Arming_Copter::run_pre_arm_checks() · Open in ArduPilot Copter-4.7.1
ArduPlane/AP_Arming.cpp AP_Arming_Plane::quadplane_checks() · Open in ArduPilot Plane-4.6.3