System ARM Logic and Estimator Health

What conditions must be met to ARM the system and how to do I determine the estimator health? I’m guessing there has to be some level of confidence in the estimator, location accuracy, GPS fix quality, and etc before the system should take flight. Also can the ARM logic easily be changed through parameters or does it require modifying code?

Does the estimator behave differently when in ARM?

In master there are new EKF2 checks here - https://github.com/PX4/Firmware/blob/master/src/modules/commander/PreflightCheck.cpp#L448
See params COM_ARM_EKF_HGT, COM_ARM_EKF_VEL, etc

There are also a few minor things like requiring GPS to arm (COM_ARM_WO_GPS)

I noticed that preflightcheck always returns “pass” on the SnapDragon. Is there a reason for this? Is the SD not capable of running the preflight check?