I don’t think that’s fully satisfying yet. I generally actually think that the concept of consistency, when it comes to the compasses, isn’t any good.
The point is that compasses are about the most nasty sensors around, for all their sensitivity to everything (IMHO. I consider that a true statement, if you don’t agree it might not be worthwhile to continue reading my thoughts).
So, e.g., I would never assume that an internal compass is better than an external. In the above suggestion it however could happen that the two internal ones nicely agree but disagree with the external, even though the external in fact might be the much “better” one. The edge case of just two compasses has been mentioned. Generally, asking for consistency between an internal and external compass is IMHO equal to asking for troubles.
So, I would change the philosophy to ranking the compasses by some goodness, and base judgments based on how it ranks, consistency would be irrelevant.
This rank should be determined by the outcomes of the calibrations, and external vs internal (you might also invent some in-flight learning feature, e.g. by measuring the general consistency with the EKF heading, and so on, but I only mention that here without discussion to indicate that the concept has some future potential).
I’ll just consider the case of one external now, extension to more is obvious.
I would place the external on top, BY DEFINITION!, since there is only one external it must be the primary, and the internals depending on their calibration quality. The copter would always only rely on the best compass, which here would be the external compass, but of course switch over to the next best ranked & healthy compass in case it becomes unhealthy, and so on. So, consistency is substituted by rank and health. Prearm-check means checking the health, especially of the primary.
The role of the calibration also changes, but I think in a way which is much more transparent, and thus amenable to users. The outcome of a calibration is also a goodness. So, the user does not have to bother with which compass is external, internal, primary, or which one is actually used (from what I see reported this seems to be one constant source of confusion and frustration with the current procedures). He/she gets a set of goodness, along with some information if that’s good or bad, if it’s acceptable for an external compass, and so on, and is taught that at least the primary must be all good. Importantly, a calibration basically would never fail (which seems to be another constant source of confusion and frustration), it’s just good or bad, with whatever refinements you deem relevant. Cases where it’s not healthy or really out of question of course should be handled also. These comments also affect the on-board calibration, those strictness - which I personally find a bit over-engineered - seems also a source of frustration.
I’m not saying that this is all fletched out and ready to go, please fill the gaps with common sense. I do think however that the issues with the compasses, and there are IMHO more than one currently, have a deeper reason lying in the structure of the approach.
Cheers, Olli