The copter thinks it is tilted too far to arm
What ArduPilot says:
- PreArm: Leaning
At the moment of arming the measured tilt (roll and pitch together) is larger than ANGLE_MAX, the steepest lean the copter is allowed in flight: 3000 centidegrees, 30°, by default. A copter that believes it leans that far on the ground would throw itself over trying to get level.
What to do, most likely first
The flight controller's orientation is set wrong, or the accelerometers were never calibrated.
CheckPut the copter level and look at the artificial horizon in the ground station: it must be level too. Tilt the nose down: the horizon must rise.
FixSet
AHRS_ORIENTATIONto how the board is mounted, reboot, then do the accelerometer calibration again.It really stands on a slope, or leans on its landing gear.
FixPut it on level ground and arm again.
The limit itself was set very low.
FixBring
ANGLE_MAXback to 3000 unless you chose a lower value on purpose.
Parameters to look at
| Parameter | What it is |
|---|---|
ANGLE_MAX | Angle Max |
AHRS_ORIENTATION | Board Orientation |
AHRS_TRIM_X | AHRS Trim Roll |
AHRS_TRIM_Y | AHRS Trim Pitch |
Where to do it:Setup & Tuning GuideSetup & Tuning Guide
The code that sends it
PreArm: Leaning
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