Error Compass Variation

I have just finished rebuilding after a pretty good crash. With the exception of the i2c board losing 2 ports, which I have replaced, all other electronics seemed to be in good condition post crash. I am just trying to get things back up and running and I am getting an error when attempting to perform the accel calibration in Mission Planner. At the end of the calibration process it gives a couple errors that are hard to make out exactly, but the last one is error compass variance.

Can someone more skilled in evaluating logs have a look at these logs and see if I’m missing something.

On another note, when I try to connect in Tower, it just goes into a ‘warning loop’, and occasionally it will report ‘warning 400 feet exceeded’…

Thanks for any guidance/assistance in this matter.

Warren M

I realized that in my haste to try to get this figured out that I didn’t provide much in the way of details in my original post…

This is a Pixhawk and 3DR uBlox GPS on a Finwing Penguin. Trying to to the accel calibration in Mission Planner while the plane is powered with the battery, not connected via USB,

I’m starting to wonder if maybe the PH, or maybe the GPS, was damaged in the crash… The PH and GPS did not hit the ground themselves, but maybe just the force alone caused a crack somewhere?

Is there something I can look for in the log, or someway to test this?


I am getting the same errors and the only thing I did was update to 3.3. I can’t figure out what compass variance means either. There is nothing in the documentation.

I’m hoping others are having the same problems and this will get sorted out quickly.

At least someone else has seen this. I was really starting to question whether or not I had some damaged gear. I have bench tested everything and cannot see any errors in the logs so I will try a test flight tomorrow night.

Is anyone else experiencing this error message?


After quite a lot of time dedicated to this, I believe the compass variance in my case has to do with the pixhawk getting two different compass headings from the compasses. I did not mount my GPS front facing forward. I corrected this in 3.2 with a yaw offset of 315 degrees and my plane flew fine. When I updated to 3.3, I can no longer arm because of the error.

Because I cannot find any documentation on ‘compass variance’, this is only my best guess. I spent some time at the field changing the compass offset, but because I didn’t know which was compass 1 and 2 and which parameters to edit, I could never get mission planner to orient to the front of the plane.

A second possibility is a problem with the magnetic field near the compasses. If this is the case, it will be harder to tackle.

im getting this error as well im wondering if i have my compass/GPS in the wrong orientation ?

That is my guess also. I am hoping someone with more knowledge will pipe in.

I did get passed this error; however. I have one of those I2C hubs with an airspeed sensor attached as well as the compass. What I did was dissconnect the hub and attach the external compass lead directly to the I2C port on the pixhawk. I ran the compass calibration and now I’m getting the bad compass health on the internal compass. The Z offset is 492 which I read was fairly common. One of the plugs may have not connected properly, or I may have a an intermittent bad cable or hub because when I reconnected everything, it all worked as it should. The front of the plane in Mission planner points in the same direction as the plane now.

I am aware that on a plane, the compass is not important as the FC gets its heading from the GPS first. I am now looking for a way to disable the internal compass to get rid of the compass health error.

I don’t know why this turned up just after I updated to 3.3 because the plane flew fine on 3.2.3 with no compass errors.

I’m getting the same after upgrading to 3.3 and the compass is off by 90 degrees, even after calibrating it.

I think I’ve figured this out a bit. The compass variance in my case was caused by my external compass being rotated. I could not get passed this; though, because I could never get my plane to orient correctly in Mission Planner. To orient my compass properly, I used the CLI compass test. Now I am left with poor compass health, but I think this is caused by the GPS coordinates drifting around while the plane was on my table.

The last problem I have is that the plane always orient itself in Mission Planner to face North when it is first powered up, regardless of its actual orientation.

I believe both problems will resolve as soon as the plane is in the air and actually moving.

Not sure what to make of this.
Unplugged the I2C connection from the GPS and the compass is fine. Plug in the I2C and it’s not.
Downgraded to 3.2.3. Same issue.
Upgraded back to 3.3 and it bricked halfway through and now fail to connect to the PC via the USB.

Hi all. When you plug the 3DR external GPS and compass in then the Pixhawk will detect its presence on startup and use that external compass instead of the internal one. You can tell this if you fetch your parameters after startup and look in the advanced view of MP at COMPASS_EXTERNAL - it should be 1. @Warren - yours looks correct from you log.

Note that the external GPS/Compass is powered by the GPS cable connection only. In other words you can’t have just the compass plugged it - it won’t work.

Thanks, Grant.

The forum timed me out before I’d finished editing my post :slight_smile:

Your dataflash log (158.BIN) isn’t much use as you don’t have log before arming enabled and you never armed the plane so there is no logging info in there on the mag’s.

Remember that COMPASS_ORIENT is the orientation of the compass relative to the Pixhawk - NOT THE PLANE. Lots of people get caught by that.
So, if you install your pixhawk at 90% right angle but flat still and you also install your external gps/compass module in the same direction then AHRS_ORIENTATION would be 2 (Yaw90) and COMPASS_ORIENTATION would be 0.
If the pixhawk remained that installed in that 90% orientation and you installed the external gps/compass module backwards with the arrow pointing to the tail then AHRS_ORIENTATION would remain 2 (Yaw90) and COMPASS_ORIENTATION would also be 2 (Yaw90) as its 90% rotated compared to the Pixhawk.

Hope that helps - let us know how you all go and please post if you have success or failure so we know if we are helping or not :slight_smile:

Thanks, Grant.


Thank you. Yes. I finally got this figured out. I’m going to fly tomorrow. I’m still getting bad compass health. I don’t think this is a problem; however. I’m guessing it is caused by The GPS coordinates drifting around on the ground. Once in the air, all should be good.

The one thing that IS troubling me is that when the plane powers on, it always oriente itself North in MissionPlanner.

What GPS module do you use? I’m having the same issue on both my clone & Pixhawk and are using a Neo-6m.

I am experiencing the same problem with my compass. I keep getting “Compass Variation”. Calibrating the compass, makes no any difference at all. And I can’t even lower one of the offsets which is way (515) above the default value of 400.

I’ve also noticed that, if the GPS gets rotated/moved, the error “Compass Variation” comes up on the Mission Planner HUD. I may have to find another place to install it, so that it won’t get moved around.

Hi! I have the same problem. When I arm the radio, the mission planner says “Error: compass offsets too high” and “Pre-arm compass variance” and I don’t know how to fix this problem. There are somebody who can solve this problem.


Hi there,

I am getting the same error too (as shown in the picture).

By pressing on EKF on the HUD of Mission Planner I am getting a new Window called EKF Status.
As you can see in the picture, the Compass is marked red and above 0.8.

I recalibrated the Compass and entered the values for declination as suggested.

What I recognized is:
I get the Error Compass Variation when I am moving the copter from the spot, where it was initialized.
Since I never start from the ground, I basically get it all the time.

I am thinking about starting from ground to verify, that the error is coming from not starting from ground

There is a new compass calibration available in MP - I am using the MP beta but I think its in the stable released version now. I suggest trying that and see how you go. Let us know.
Thanks, Grant.

Hi everyone, I have the exact same issue. The internal compass has really high offsets like -597 -493 86. When I compared the HUD heading with an actual compass, It was nearly exact. The compass pointed out N when the HUD said N. My pixhawk is from hobbyking, It is a HKpilot32. My external compass works fine. The offsets are logical. I calibrated the compass in wide variety of places, garden, my room, a big hall. The results were mostly the same. Internal compass has ridiculously high offsets. I’m planning to turn off the pre arm compass check… What should I do?

I had lots of [color=#FF0000]Compass Variance[/color] errors.

I also attached my logs If you guys want to take a look at.

Hi Everyone,

I think this is the issue as described here.


I posted a reply on what I found.

Let me know if it helps.