Bad compass health

This is the message I get from my APM 2.5 connected to Mavlink.

I don't know the cause. I did try connecting an external compass M8N and changed parameters to external compass connected. I tried to do a live compass calibrate but saw nothing moving on the screen during the cal. Anyone have any idea what I'm missing here or.....?

You can send mail directly to me at


You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –


  • Did you resolve this? I have an APM 2.5 that I can't get flying due to a 'Bad Compass Health' error... This happens even though the compass is working fine. I never had issues with my internal compass. I just can't seem to calibrate successfully -- error 99 the second the calibration screen opens. Why is it, MissionPlanner can get my compass reading, but can't use it to calibrate?

    Thanks you.
  • on the old 2,5 it is here


    on 2.5.2 + it is here


    • Thank you all for your assistance it is much appreciated.

      I hope I don't bog you down with too many questions. This is my first go with an APM.

      Although rather tiny I will attempt to cut the trace then try the M8N external compass

    • As this is your first try you might save yourself a bit of early hassle by using the internal compass, ie don't connect the external compass yet (unless you have to.if there proves to be too much interference with the internal once you've got it all set up). You can then connect the external later on if you wish. Most times the internal will work fine.

    • Ok I cut the trace now when I try to connect to Mavlink  I get timed out and the no heart beat packets found error. I don't know what's going on. Any ideas?

      This is actually the second APM I have with the same heart beat error. I'd like to find the cause so I would have two working APM's.

    • Now you need to check the 3.3v reg. If you were plugging and unplugging things like the GPS/Mag while the board was powered it is quite possible you blew the reg.

      Is this a 2.5 or 2.5.x board?

      Take a volt ohm meter and check the VCC/GND pins on the i2c port [the 2 outside pins] and if it reads 0 or more than 3.3v you blew the reg. It's a simple replacement, but  it does take a little soldering skills.

    • I had already heard about this and found 4.9v across the pins. I double checked with a working APM and found the same reading. I did source some regulators and have a couple on the way for about $1.75 each.

      It's quite possible I did unplug & plug stuff while still powered up. bummer

    • Well now it gets crazy.

      I checked one board and got 4.9 volts, the other board showed 3.2 volts. Both have no heartbeat packets received messages when trying to connect to Mavlink. Now the kicker is that I have another APM 2.5 on a quad in flying condition that can connect to Mavlink and do what I need.This APM however reads 4.5 volts on the two outside pins on IC2. Go figure.I tried a new USB cable as well.

      When I tried to upload the firmware I get a No connection error. My com port is com6 and set to 115200B,the same setting as the good APM uses. I'd really like to get to the bottom of this otherwise I have two dud APM's.

    • I received the new volt regulators. Texas Instruments TPS79133DBVT.

      And actually managed to swap out the old one. What a tricky solder job for sure. I now have 2 volts on the outside pins of IC2 and not 4.6 any more.I can now upload and verify firmware to the APM but it will still not connect to Mavlink. I get the "no heartbeat packets found" error. I can see the little amber LED's flashing during firmware upload and verify. After that I'm dead in the water. Still looking for suggestions please.

    • Thanks again. Now what  I could use is a little more info on the No heartbeat packets found error when trying to connect to Mavlink. This is a different APM than the one with the compass problem. I actually have 3 APM's but only one is working properly. Seems I'm not having much luck with these controllers.

This reply was deleted.