Quick question; Any reason not to use auto compass declination?

Was thinking about how I have a crappy GPS (going to be replaced soon) but I’ve seen my location on the Missionplanner screen jump all over the globe upon start up and the first maybe minute or so. Does Ardupilot set the compass declination when it first boots up, or does it set it when it arms/takes off? At that point my GPS has calmed down and provides good data. Am I incorrectly worrying about this or a legit concern? I’ve seen the value in Missonplanners compass screen where it says the declination value vary slightly, not sure why. That’s why a while back I started disabling auto decl and manually entering in the value I looked up. Thx

setup: 4.1-beta5, Pixhawk, cheap M8n

Yes, probably. Declination is obtained upon 3D fix and updated. The last sentanece here form the Wiki is relevant:

Earlier versions of ArduPilot did not incorporate the world magnetic model database, and a locations magnetic declination might need to manually entered, or learned through flight. This is not necessary now. In addition, this allows the declination to be continuously updated on long distance flights.

That part I understood, I think I found my answer in the wiki

In addition the location’s “inclination” is calibrated at startup and then again soon after takeoff.

So reading this, I think I am right to be concerned if my first fix is way way off- if its averaged with the recalibrated after takeoff fix. If its just overwritten, then it should be ok.

Auto declination has been in the code since 2012 and I have never had occasion to use manual declination.

Either that’s a typo (doubtful) or it’s referring to something other than declination.

Magnetic declination is the angle between magnetic north (the direction the north end of a compass needle points) and true north. Magnetic inclination is the angle made by a compass needle when the compass is held in a vertical orientation. …

Thanks for the clarity, I think I had been confusing the two.

I sometimes get different values for the declination on different flights, if I’m taking off from the same location, it should be the same. I just looked it up on NOAA’s site, should be 13° 54’ W but I’ve seen it in the 14’s before. Why would this be? This is why I’ve set auto declination to off in the past. Is it just too small of a variance to matter?

it would only be a 6 minute change and it’s reading 14° so I don’t think it’s significant. But if you are flying in the same area all the time you can use manual.

It is highly doubtful that type of difference would be relevant to most but the extreme use case.

Declination changes over time. Thus from the time when the declination table was generated in 2019 to now it has moved a little bit.

Interpolation error & modeling error may be increased at your location. If you are in the Pacific Northwest of the US then it geographically changes faster. For example in the midwest it is more or less linear.


The table also encompasses magnetic declination for the entire planet, in 10 degree increments.
There is a neat python file here which an extreme user could use to generate and build into a custom firmware their own table with greater resolution and limited to their area. Note it uses the same model used by the NOAA tool above.

1 Like