The level calibration was refused
What ArduPilot says:
- trim over maximum of 10 degrees
- unsupported trim rotation
- Cannot calibrate with Q_TRIM_PITCH set
The level calibration (“Calibrate level”, also the first position of the accelerometer calibration) measures how far the flight controller is tilted against the airframe and stores it in AHRS_TRIM_X and AHRS_TRIM_Y. It refuses a tilt of more than 10° on any axis: that is not a small mounting error, something else is wrong. Nothing was saved.
What to do, most likely first
The aircraft was not level when the calibration was started.
FixLevel the airframe with a spirit level (on the motor arms or the wing, not on the flight controller) and repeat.
The flight controller is mounted turned or upside down, and
AHRS_ORIENTATIONdoes not say so.CheckTilt the nose down and roll right: the horizon in the ground station must follow correctly. If it moves the wrong way, the orientation is wrong.
FixSet
AHRS_ORIENTATIONto match how the board sits, reboot, and do the whole accelerometer calibration again.The accelerometer calibration itself is bad, so “level” is measured wrongly.
FixDo the six-position accelerometer calibration again, holding each position still.
Parameters to look at
| Parameter | What it is |
|---|---|
AHRS_TRIM_X | AHRS Trim Roll |
AHRS_TRIM_Y | AHRS Trim Pitch |
AHRS_ORIENTATION | Board Orientation |
Where to do it:Setup & Tuning GuideSetup & Tuning Guide
The code that sends it
trim over maximum of 10 degrees
libraries/AP_InertialSensor/AP_InertialSensor.cpp AP_InertialSensor::_calculate_trim() · Open in ArduPilot Copter-4.7.1
unsupported trim rotation
libraries/AP_InertialSensor/AP_InertialSensor.cpp AP_InertialSensor::_calculate_trim() · Open in ArduPilot Copter-4.7.1
Cannot calibrate with Q_TRIM_PITCH set
libraries/AP_InertialSensor/AP_InertialSensor.cpp AP_InertialSensor::_calculate_trim() · Open in ArduPilot Plane-4.7.1