Hey Randy,
I open a new issue as suggested in the AC3.5-rc9 release post.
The issue: When the compass configuration changes after calibration has been done, AC uses the incorrect calibration constants.
This issue I’ve reported a while ago, in a thread where EShamaev heard it, and responded that it will be corrected. So, since 3.5 is close to be finished, I just tested it and find it still to not be working.
It’s extremely easy to reproduce, yet some details:
I have a AUAV-X2 plus an external compass. So, normally I do see two compasses, #1 and #2, with IDs ID = 466441 and ID1 = 131594. #1 is chosen as primary, and marked as external. Calibration sets some constants. I then disconnect the external compass and reboot. I do get a “Prearm: Compass not calibrated” warning. The IDs are set to ID = 131594 and ID1 = 131594. The calibration constants are exactly as before, i.e. DIA and OFS values are those of the external compass, and DIA2 and OFS2 are those of the internal. Compass #1 is still selected by the system as primary.
I’m not sure I understand why a “compass not calibrated” warning is issues, since in fact it is calibrated. I mean, it’s better than not to get any warning, but it doesn’t seem to be very accurate.
What concerns me most is that #1 is selected a primary. It indeed appears that the wrong constants are used. When I use both compasses, MP tells me that my vehicle is oriented at 22°, while when I have the external compass disconnected my vehicle is said to be oriented at 299° (without having moved the vehicle of course).
IMHO this should be a show-stopper for a release; I would consider this a serious safety issue. It e.g. means that if the external compass fails at startup and is not recognized, the vehicle will fly with wrong compass calibration. EDIT: I’ve learned that this isn’t accurate, see below.
Cheers, Olli