What are the triggering conditions for Accels inconsistent & Gyros inconsistent messages?

According to Pre-Arm Safety Checks — Copter documentation
The triggering condition for the Accels inconsistent message is that the accelerometer error of the IMU is >1m/s/s
The starting condition for the gyroscope inconsistency message is that the gyroscope error is >20dps
But after analyzing the contents of the IMU through the bin file, I found that even if the accelerometer error is >1m/s/s, the Accels inconsistent message may not appear.

Does anyone know the detailed triggering conditions of these two messages?

For example, how often is a judgment made? Or when the error is just larger than a certain amount, a message will definitely appear? Or will this message appear when multiple groups of IMUs meet startup conditions at the same time?

  1. This has nothing to do with Mission Planner. It is decided by the flight controller.

About 1 minute search in the source code you can easily find the answer.
Gyros:

Any used gyro compared to primary gyro.
if (vec_diff.length() > radians(5)) → inconsistent

Accels:
Accel threshold is user defined via ARMING_ACCTHRESH
Accels vector length is compared to primary accel.
BUT

  • IMU3 is using a threshold * 3 s it runs at a different temperature to IMU1/IMU2
  • Z vector difference is divided by two because EKF is less sensitive to Z-axis error

Thank you so much for such a clear explanation, it helped me a lot.
I’m very sorry that I couldn’t reply to you in time due to delays in other projects.