The accelerometers have no valid calibration
What ArduPilot says:
- PreArm: 3D Accel calibration needed
For every accelerometer ArduPilot keeps offsets and scale factors from the six-position calibration, together with the sensor's ID. The check fails when an accelerometer has no saved ID or a different one, when its offsets are all exactly zero, when a sensor that was calibrated is missing now, or when calibration values exist for a sensor that is not there.
What to do, most likely first
The board is new or its parameters were reset: the calibration was never done.
Check
INS_ACCOFFS_Xand its neighbours are all 0.FixDo the accelerometer calibration in the ground station: six positions, each held still on a level surface. Then reboot.
The parameters come from another flight controller, or the firmware changed and numbers the IMUs differently: the saved IDs do not match the sensors found.
CheckThe offsets are not zero, yet the message appeared right after loading a parameter file or flashing.
FixCalibrate the accelerometers again on this board. Calibration values cannot be carried from one board to another.
An IMU that was calibrated did not start this time.
CheckFewer “IMU” lines at start-up than before;
INS_ACC2_IDorINS_ACC3_IDis not 0 for a sensor that is not listed.FixReboot. If the sensor stays missing, the board is faulty: do not calibrate around it, replace the board.
Parameters to look at
| Parameter | What it is |
|---|---|
INS_ACCOFFS_X | Accelerometer offsets of X axis |
INS_ACCSCAL_X | Accelerometer scaling of X axis |
INS_ACC_ID | Accelerometer ID |
INS_ACC2_ID | Accelerometer2 ID |
INS_ACC3_ID | Accelerometer3 ID |
INS_ACC2OFFS_X | Accelerometer2 offsets of X axis |
Where to do it:Setup & Tuning GuideParameter Compare & Migrate
The code that sends it
PreArm: 3D Accel calibration needed
libraries/AP_Arming/AP_Arming.cpp AP_Arming::ins_checks() · Open in ArduPilot Copter-4.7.1