I am new to the compass setup, have done several searches and all I come up with is compass / arducopter info.
I have enabled the compass but that is it...
Can anyone point me to any information about proper setup and or calibration procedures pertaining to the HMC5843 Compass?

Thanks guys/gals!

Brett Horton

Views: 1966

Reply to This

Replies to This Discussion


      Jumping back to your previous post above...

            - there's no learning of heading using the GPS.  I.e. the GPS and compass values are not compared.

            - the save/restore of mag offsets will be available in the next release of arduplane.


     In terms of how long to wave it around..1 minute maybe?  You need to get the offsets within +-10 of the real value but it doesn't matter if they're off by a little bit.  So best just to wave it around until the values stop changing much.  1 minute should be more than enough.

     good luck!


cr@p - I "hoped"  you'd say 10minutes :) 

I'll waved it for at least 30sec before, without seeing much improvement.

Anyway - going to do it very scientific now.

I'll rotate it (yaw) around - about 10 times,

then 10 times barrel-roll it (starting with one wing towards north, the other south)

then 10 times loop over pitch axis, (with nose north-tail south)

- repeat until values settle.

this way - I figure that all three magnetometers will experience the biggest changes/differences in magnetic field. 

Is there anything that seems "wrong" with my approach ?

That should be fine.  Really it shouldn't take that much effort.  Just vaguely wave it around and point it in a few directions and that should be it.


just a side point but it's just one mag but it can measure which way is north in 3 dimensions (I.e the vertical component is there too which you don't normally get in a hand-held compass).

to make things worse, I live well above polar circle - and out magnetic field is stronger in vertical, than horizontal direction.

I just spent over 10 minutes waving the plane in all possible directions.

the values went up as high as -38,8,41

When I started  west was worst, almost 50degree off.   now west is 20degree too far south, but south is 55degree off to east !

This is not looking good at all.

My http://code.google.com/p/ardupilot-mega/issues/detail?id=537&ca...  just got closed fast and brutal.

There must be an answer to this problem ? - I am not the first one to experience it.

Andke: Have you ruled out a defective mag? The dev team can only resolve issues that they can replicate. Hardware issues could explain your results.

whould magnets in the plane door latch camera mount be throwing it off just wondering

The thing is : how can I determine whatever it is defective ?

One fact: I did not get my magnetometer with my order, it was delivered later - this may not mean anything.

- is 50degree error much more than usual pre-calibration-inaccuracy ?

I'll contact support and ask what to do.


     50 degrees of inaccuracy is possible if you don't have your offsets set correctly.

     you could check the mag_x, mag_y and mag_x values in that little status window, if they're all moving around then it's likely the compass is ok.

     In my experience, the compass either works (and returns numbers) or doesn't (and doesn't return numbers).  In accuracies in heading are always (or nearly always) environmental.  I.e. incorrect offsets, a metal screw near the compass.

     anyway, as chris says, you can contact diydrones and try and get another one.  if you have the same problem again then you know it's environmental 'cuz it's very unlikely to have two bad compasses in a row.

yes, they do move, now they are  -38,8,41

the thing is that in the beginning west was most off, now west is down to 20deg error, but south is now off by 55degree - and I've been "waving it around" for a seriously long time, totally ~10 minutes of movement for sure.    

moerover - if "north" or east is almost perfect, north is less than 10degree - then the opposite direction may be completely wrong - it seems like the linearity is shot.

It would be interesting to know how its "tuned" - what it looks for exactly, what's the logic.

After ridiculous amount of waving the plane, - and I mean like half an hour or more, with breaks just to verify error in each direction, the maximum error is now at most 20degrees. - and the offset values kept changing.

AP flies very well now (compared to before) - yet - I would not consider 20degrees off being very good for a multirotor.

So thanks - I am still confused how this much "work" can be standard procedure, :)  - and filed a feature request to be able to save/restore the offsets.  

Reply to Discussion


© 2018   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service