The current flight mode does not allow arming
What ArduPilot says:
- PreArm: … mode not armable
The mode named in the message refuses arming. Copter arms in Stabilize, Acro, AltHold, Loiter, PosHold, Sport, Drift, FlowHold, ZigZag and Throw. It never arms in RTL, Smart RTL, Land, Brake, Circle, Flip, AutoTune or Follow. Auto arms only when AUTO_OPTIONS bit 0 is set; Guided arms from the ground station or a script, and from the transmitter only when GUID_OPTIONS bit 0 is set. This test cannot be switched off.
What to do, most likely first
The mode switch is on a mode that cannot be armed, usually RTL or Land.
FixMove the mode switch to Stabilize, AltHold or Loiter, then arm.
A failsafe or the last landing left it in RTL or Land, and the switch has not moved since.
CheckThe mode shown by the ground station differs from the one your switch position stands for.
FixMove the mode switch to another position and back: ArduPilot changes mode only when the switch moves, not from where it rests.
You want to arm in Auto, to start a mission from the ground.
FixSet bit 0 (Allow Arming) of
AUTO_OPTIONS. The copter then arms in Auto and takes off as soon as the mission says so: stand clear.You want to arm in Guided from the transmitter.
FixArm from the ground station, or set bit 0 (Allow Arming from Transmitter) of
GUID_OPTIONS.
Parameters to look at
| Parameter | What it is |
|---|---|
FLTMODE_CH | Flightmode channel |
FLTMODE1 | Flight Mode 1 |
AUTO_OPTIONS | Auto mode options |
GUID_OPTIONS | Guided mode options |
Where to do it:Setup & Tuning GuideSetup & Tuning Guide
The code that sends it
PreArm: … mode not armable
ArduCopter/AP_Arming.cpp AP_Arming_Copter::arm_checks() · Open in ArduPilot Copter-4.6.3
ArduCopter/AP_Arming_Copter.cpp AP_Arming_Copter::arm_checks() · Open in ArduPilot Copter-4.7.1