Baby it's Cold Outside, Bad Compass Health?

Took a flight today in cold, windy 20 degree weather here in Northwest New Jersey. I’m using a Navio2 with ArduPlane 3.7.1. My external compass is a tiny HMC5983 board that is mounted on a short mast above the fuselage out in the open.

Mission Planner reported “Bad Compass Health” but I flew anyway intending to keep it entirely in manual mode. To see how the compass was performing I switched to run a close-by mission. Despite the compass warning it flew the six-waypoint and rally point plan around the field perfectly.

Back home inside and on the bench, the compass worked nominally and Mission Planner no longer reported Bad Compass Health.

Could the bad compass health have been the cold weather? What can I check to see what was causing the alarm?



Hi Paul,

You aren’t kidding about the cold. Upstate NY is about the same this week as the highs are only in the teens. I was wondering if your “Bad Compass Health” was persistent or just once? Typically, I only hear that message when there are I2C errors. Perhaps you can post the log…


Yes, even colder by you Greg, however; I suspect that some Scandinavian modelers consider 20 degrees lovely.

Of course, today I have out it outside and the compass is not complaining. But then again it is 21 degrees and sunny compared to yesterday’s 20 degrees and cloudy :slight_smile: Oh wait a minute - the EKF indicator for the compass just went yellow for a few seconds…

I am unable to post the log - it apparently is too large.

Speaking of logs, there are about ten files with the 12/26/2017 date, two of which are large. Among them is a text file - if that is the right one, exactly for what should I be looking?

Appreciate the help. Thanks Greg,


Now knowing that it was just an intermittent error, If I had to make a guess, I would say that you had some nearby magnetic interference. I have found that using a single compass works best for me. Ideally, you can always re-calibrate the compass if you fly in different areas, but that is a pain too. I usually calibrate once in my backyard. Sometimes, when testing indoors, i’ll get a “Bad Compass Health” error due to the proximity of “stuff” nearby and disable it in the arming_check.

I took another flight this afternoon and the Bad Compass Health came on only after throttling up. It performed the mission successfully though.

Except for yesterday and today it never gave the Bad Compass Health indication in twenty or so flights prior.

I re-calibrated it and will report back soon.

I am using the single external compass, and not the internal compasses on the Navio2.



Recalibrated the compass, took another flight, the plane held the headings perfectly, but the system is still generating the Bad Compass Health alarm. Replaced the compass and calibrated and the system is still making the same alarm.

Could it be that I installed a DragonLink 1,500mw telemetry and RC transceiver on the airplane and its RF output is disturbing the compass?

Or maybe the alarm is being generated on behalf of one of the internal compasses that are not being used?

Yes, it’s possible. My FrSky telemetry link can do weird things when the antennas are too close to servos, etc. Can you test this theory by disabling the telemetry for a flight or reducing 1.5w power level?

If you unchecked all the compass selections except for your “externally mounted” one then the internal compass should not trigger anything.

Any idea when the alarm occurs? For example, are you standing next to it with a winter coat and lots of metal zippers or is it during flight? In other words, it may simply be a one-time occurrence which is why flight is not affected.

Lastly, there is no way I plan to fly this week so my hat is off to you! You remind me of my younger R/C days when I would still fly in anything. :grin:

It is my only week off and I just had to go fly. Yesterday was ridiculously cold, today is impossible because it is just as cold and even windier and clouder. Speaking of younger days, my brother and I once flew an Ugly Stik (Enya 60, no muffler) in 50mph+ winds. The plane barely made headway against the wind, but shot downwind dangerously fast. Get her down ok after a minute or two of frenzied flight/fright.

Yesterday after the test flight with my larger more powerful airplane about which this topic is written, I had a similar windy experience with my lightweight flying wing that packs about 65 watts. The wind pulled it out of my hand as I botched the hand launch but miraculously I gained enough control to climb out. Started a mission around the field but had to cancel it as she could not make headway against the wind in automated mode. But I digress…Regarding my Bad Compass Health:

I unchecked the other two compasses. Today on the bench however I strangely got a “Compass Variance Error” which makes no sense. I’ve lodged a post on the Emlid/Navio forum about this situation.

I still got the Bad Compass Health with the DragonLink telemetry capability turned off.

The alarm happens while the plane is in the air so it is not metallic/magnetic interference on the ground.

I’m beginning to think it is something with the Navio2 since I got the compass variance alarm.

This is an interesting and sometimes frustrating hobby.

Thanks Greg for your interest and help.


Update: Folks on the Emlid (Navio2) forum suggested I re-calibrate the internal compasses.

All along I had been using only the external compass. I frequently calibrated the external compass but rarely the internal ones because I was not using them - for them I had unchecked the “Use this compass” setting in Mission Planner.

To calibrate them I checked the Use this compass setting, then performed the calibration. After completing the calibration, I unchecked the Use this compass settings for the two internal compasses, making sure that my primary external compass was till in effect.

So far in several bench tests of about 10 minutes each I am no longer getting the Bad Compass Health alarm.

Well that lasted a day. The Bad Compass Health alarm is back. No ideas. Left another diagnostic file for the folks at Emlid and hope they can figure something out.

Could you solve the problem? I have been flying my APM 2.6 quad now for more than 5 years without any problems but since yesterday I have the same problem although I changed nothing on my quad. Neither hardware nor software.


It was a combination of an intermittent cable connection (bad compass health) and recalibrating all three compasses - the external one and the two aboard the navio2. Then configuring the ArduPlane to only use the external.

Also check the inside of the DF13 connectors on the navio2 - I had one of them where one of the tiny internal pins was bent over and the mating connector still went in - mostly. When I felt that it was a little “off” I checked with a magnifying glass and found it to be bent. I straightened it and the port worked correctly after that.

I’ve since switched to using mRo integrated GPS/compass modules with a Pixracer and Pixhawk and still configure it as the primary and only compass after calibrating all of them

In one plane I thought I configured the system to use only the external compass but I got EKF compass failures when the motor throttled up - turns out it was also using the internal compass on the Pixracer and not the external compass. I had to try different combinations of compass configurations involving #1, #2, and #3 until I got only the external one to be the sole and primary compass.

In your case if you haven’t changed anything it could be a degrading cable or they require recalibration.

Good luck,


Thank you for your suggestion. Replacing the cable did not help and recalibration also not. So maybe me compass is really broken. I have no Idea how this can happen but I will try another compass.