I'm hoping someone can help me - I can't for the life of me seem to get a reliable compass bearing from my setup. I've scoured the google-webs but just can't find anything that seems to fit.
In mission planner, I find that the bearing doesn't follow the orientation of the quad. Not only is the bearing wrong, but as I rotate the quad, the bearing sometimes follows the rotation of the quad; other times does something completely different. Also, if I pitch or roll the quad, the bearing quite often changes.
My quad flies very nicely in stabilize mode. GPS locks quickly and accurately; I can even get a quick and accurate lock indoors. But if I activate loiter, my quad starts heading off in some direction; I have to quickly flick it back into stabilize to get it back.
A few questions, before providing some detail about my set up and what I have done:
I have tried as many different compass orientation settings (ROTATION_xxx) in mission planner as I can, but nothing seems to help - things change, but I don't get a good result with any setting. I have oriented the NEO-7M GPS with its small arrow silk screened on the top case pointing forward.
I have tried multiple times to calibrate the compass, including unchecking "Use Auto Accept". This way I can collect 1200+ samples, with reported error 0.01 or 0. I have manually set declination to the correct value for my location. I find that the resulting offsets from calibration vary considerably from one run to the next; values are typically around -70 for the first value, with the second and third values more variable within the range of about +/- 60. I have tried doing it inside and outside, being more or less careful about avoiding sources of iron.
With the external compass connected and correctly configured, I never get bad compass health warnings. The GPS locks quickly and accurately.
If I disconnect the external compass and replace the "internal compass" jumper, I get nearly perfect bearings reported in Mission Planner, except I get bad compass health warnings, which I can't make go away, even though the internal compass seems to be doing a good job (at least as far as the orientation reported in Mission Planner goes). APM won't arm if I use the internal compass, thanks to the bad compass health warnings.
My quad is an F450 clone, using the APM2.8 flight controller. I've loaded the latest firmware for APM (3.2.1) and have been through the wizard and hardware calibration / config steps. The GPS / compass is presumably Chinese, claiming to be "NEO-7M" "powered by Ublox". The GPS / compass came in a kit from eBay: http://r.ebay.com/x1vO52. A couple of photos attached. The GPS / compass unit sits on a stanchion above the frame to avoid motor / electrical interference. As previously mentioned, I have removed the internal compass jumper, and have connected the compass lead to the port directly below the GPS port.