The accelerometers of two IMUs disagree
What ArduPilot says:
- PreArm: Accels inconsistent
On a board with two or more IMUs, each accelerometer in use is compared with the first. The difference, with the vertical axis counted at half, must stay under ARMING_ACCTHRESH: 0.75 m/s² by default, and three times that for a third IMU. After any failure they have to agree for 10 s in a row before the check passes, so the message stays for 10 s after the cause has gone.
What to do, most likely first
The aircraft was just powered on or was just moved, and the 10 s of agreement have not passed.
FixLeave it still for 15 s.
The calibration no longer fits: it is old, or was done at a very different temperature, or the board warms up unevenly.
CheckWith the aircraft level and still, look at the raw accelerations of each IMU in the ground station: each should read about 9.8 m/s² on the vertical axis and near 0 on the others. The message may clear by itself after a few minutes of warming.
FixCalibrate the accelerometers again, at about the temperature you fly in; on a board with a heater, let it reach its temperature first.
One accelerometer is damaged, usually after a crash.
CheckOne IMU reads far from 9.8 m/s² however you turn the board, and a fresh calibration fails or does not help.
FixReplace the flight controller.
A larger ARMING_ACCTHRESH only hides the disagreement: the EKF would still be fed two different pictures of gravity.
Parameters to look at
| Parameter | What it is |
|---|---|
ARMING_ACCTHRESH | Accelerometer error threshold |
INS_USE | Use first IMU for attitude, velocity and position estimates |
INS_USE2 | Use second IMU for attitude, velocity and position estimates |
INS_USE3 | Use third IMU for attitude, velocity and position estimates |
BRD_HEAT_TARG | Board heater temperature target |
Where to do it:Setup & Tuning Guide
The code that sends it
PreArm: Accels inconsistent
libraries/AP_Arming/AP_Arming.cpp AP_Arming::ins_checks() · Open in ArduPilot Copter-4.7.1