Pixhawk Internal Compass Calibration

Up till recently, my pixhawk was working perfectly, I recently updated the pixhawk to Copter V4.0 (hexa) and now the main LED is flashing yellow, indicating “Bad Compass Health”. I have no idea how to fix this, I’ve tried redoing the accel calibration and nothing changes, still says bad compass health

I would really appreciate some help

Hi Shaun,

Have you tried recalibrating the compass? It is possible that the mag offset values were not correctly converted.

You should also be aware that the internal compass is subject to high levels of magnetic interference simply due to proximity to the rest of the circuitry and hardware within the pixhawk. An external compass is far superior.

1 Like

The 3D accel calibration doesn’t do anything for the compass calibration. You need to do the compass calibration to calibrate the compass. https://ardupilot.org/copter/docs/common-compass-calibration-in-mission-planner.html

1 Like

thats the thing, i looked at this page, and idk how to apply this to my case

this is how it looks for me, even when i click onboard mag calibration, it does nothing

i used to have offsets, now they’ve just disappeared

Calibration is what generates the offsets. So if you did a parameter reset, or something otherwise wiped out the previously saved parameters, you will have no offsets until redoing the calibration. Press the start button to begin the calibration and follow the instructions in the Wiki. Or are you doing that and something is not working?

whats the state button? is that a physical button on the pixhawk
I was following the wiki, but maybe because of the difference in version, i don’t have all the options, check the screen shot above, thats what i see when i go to compass. tried doing onboard mag calibration, did nothing

Typo. Start button. In mission planner on the screenshot you posted. What happens when you press the start button?

Nothing, I press start, and try move around the pixhawk, and nothing happens

Click that HW ID button and post the screen shot.

No compass’s are being recognized.

any way to fix this?

What type of Pixhawk is it? Perhaps the firmware flash was a problem. If you got the dialog boxes for “is this a Cube Black” and “do you want to load Chibios” did you answer No and Yes respectively?

1 Like

I agree this is probably a case of the incorrect firmware being installed. Sometimes the automatic selection does not or cannot make the correct choice and you need to choose the right one to manually load at least for the first time.


On the MP compass page you posted above, your compass settings may be wrong, e.g.

-primary compass is set as compass 1, and that it is extremely mounted
-compass 2 and compass 3 are also enabled

What is your actual setup?

I chose no for the cube black and yes for chibios.
the compasses i used are internal and thats the settings it was,

but i figured it out, i had a feeling it was the new update since that was when everything went wrong, so i downgraded it to 3.6.11 and redid the onboard mag calibration and now it works as before,
Thanks to everyone for the help

That doesnt explicitly mean V4.0 is the problem…It is likely that there is something in the translation from 3.6.11 to 4.0.0 or in your setup. It is not uncommon for major releases to require re-calibrating accel and compass. possible changes in the way the calibrations are done or the arithmetic in the firmware might require the calibrations to be re-done.

Are you not using an external GPS?

As @xbnr99 mentioned - it appears that you had the ‘externally mounted’ option selected on on your compass setup page. Please try to update to 4.0.1, make sure the ‘externally mounted’ option is NOT selected since you have an internal compass. Make sure to un-check ‘use this compass’ for compass #2 and Compass #3 And try the compass calibration again.

You should really be on 4.0.1 - there are a few critical bug fixes.

The problem is not a calibration or parameter issue. Those are just default values. The problem is Copter 4.0 firmware that was installed on the flight controller did not detect any compasses at all. It also only detected one single IMU. This is as shown in that HW ID page screenshot. Since the configuration is working in your older the version, it is highly likely the wrong firmware build was automatically installed, and so it didn’t detect any of the appropriate hardware.

What autopilot are you using? We can direct you to the correct firmware file to install manually and get this working on Copter 4 for good.


im using the Radiolink PixHawk Advanced Autopilot