Compass Calabration

I am having problems getting the quad to arm with the message compass off sets too high. I am using a 3DR compass the orientation is correct and is mounted on a 100mm carbon mast. Compass has been calibrated using the Live Calibration and Onboard Calibration on both occasions I get almost the same results.

can u please share your tlogs and dataflashlogs…or…check CUSTOM.mag_field and VFR_HUD.throttle.
Refer to ardupilot wiki ==> (Compass interference)

There are no logs as the quad won’t arm. Its not a compass interference problem more a calibration issue.

Try disabling all but your main compass. That error usually means there’s too much disagreement between external and internal compasses.

In many cases it will fly fine with just the one compass.

The issue is the Third compass with an X offset of -745. You must have a Pixracer as this is the only unit with 3 compasses.
Since this is an internal compass it indicates a magnet or metal near the flight controller.

As indicated disabling this compass will ignore the problem.



The unit is a pixhawk 2 which has two internal compass. The only metal that could cause calibration problems are the bolts holding on the arms. I will disable compass 3 and report the results tomorrow.

I have been flying PH2 craft and am having exactly the same issues.
My offsets are pretty much the same as yours, good for compass 2, ok for compass 1, bad for compass 3.

I have been able to fly by setting primary compass to compass 2. Performance seems fine on loiter.

I would like to know why the external and the second internal are giving such bad offsets.

Perhaps some developers will jump in with an answer

You can refer to this ardupilot wiki as Pre-Arm Check failure will be displayed in red on the HUD window in MP.

I can disable the compass check which I am not really that happy about but can the 500 limit be changed to say 600

Offsets should not exceed 300. Try setting manually compass1Y and compass3 x. It should arm. Fly close to the ground and see what happens. Then calibrate again AWAY FROM ANY METAL (outside the house and far from cell phones, cars, etc.)

If you are worry about these bolts, replace them with titanium ones. (Better for sensitive mags).
good luck.


I have disabled the compass check on arm and it appears to fly really locked in on loiter

Note that you will get a lot of interference from the esc power wires and the wire end of the battery if they are too close. Doesn’t explain why your external offsets are so high though. 100mm is a light year away.

I was doing all the compass calibration using USB power copter main power was not on. Out of interest i did a compass calibration using the same compass module on a pixhawk 1 and got very different values

Hi there,

Did the issue started all of the sudden or after certain HW was added? Have you tried isolating the issue, like removing the board from the frame and without any other peripheral connected, hook it up to the USB and see if you get different results.

Also, you might give a try to set the compass declination manually (click on the link under the coordinates and set it up).

I would try to isolate it, clear the EEPROM (save parameters first), reflash the board and do the basic Initial Setup, to verify if it works.

If this happened after a FW upgrade, we can suspect is SW-based. If it happened all of the sudden, probably is a HW issue.

The issue started when upgraded to Pixhawk2. Swapped between two modules and get almost the same values. Will do the manual compass declination if that does not work. I will remove both Pixhawks from the frame clear the eeproms load the same firmware on both and report my findings.

Manual Declination has no affect. What is the best way to reset the EEPROM

Here is the website doc on that:

I highly drought that will fix the issue.


Mike Saw that button but didn’t think it was a wipe. I wont hurt to give it a try. I will also be trying the latest rc release