Another Compass issue + external compass


so i was trying to calibrate my internal Navio+ compass today, but i ran into same issues. First off, the calibration procedure in Mission Planner is really hard to pull off, because most of the time the calibration stops at 3 Samples, even when there is no “Bad Compass Health” warning in MP. But i finally got it working and was going out to fly it. But at the field, the “Bad Compass Health” Error popped up again. I already used the C++ script and always saw MAG Data when the Error was showing.
So i connected an external compass to the I2C Port (HMC5883L) and it worked. The calibration also went by with low offsets in the 100~ range. But it does not point in the right direction. I tried everything i could in MP but it is always off by some 20 Degrees. I then used a Python script to see the Heading, and it was better than in MP.

Maybe some of u used the Adafruit HMC5883L before and know what the right direction is?
Or even better maybe someone knows how to get the internal Compass to work right.

I hope you can help me
Best regards

If you are trying to run examples at the same time with ArduPilot that might be the source of issue. 20 degrees could be due to incorrectly set declination. How are you checking the 20 degree difference?

Im not running it at the same time, i forgot to write that. I checked it using Google Maps (direction to the next street crossing or something similar) and using 2 phones and a normal compass.
My main problem is that i can’t calibrate the compass, it just gets stuck at 3 samples. Sometimes when “Bad compass health” is showing, sometimes without the message.
I just cant get past the 3 samples with the internal compass.
Hope we can find a solution

Are you using Copter, Rover or Plane? If it is for rover, check out this thread.

Im using ArduCopter-quad so this doesn’t apply to me.
Thing is, sometimes it works, but only every 3rd time.