My understanding of the (16.09 and a fairly recent next) code:
GCS code uses WMM 2010 (!) and firmware uses WMM 2015.
The firmware (and GCS) use the date to know where the moving north pole is and calculate a vector to it (it's 3D direction and strength).
And, How to use the new updated magnetic model in GPS units?
GPS's and mag sensors don't need to know anything about this. They just return raw data (magnetic north pole is getting closer to Siberia) and the code corrects that to true north.
It seems to me the largest error would occur if the north (or south) pole was to your left one day and had moved to your right by the next day but the code thought it was still to your left (an oversimplification). I think that means that the equator has roughly a smaller error because it is far away from this.
Musings: I think that the great circle that goes through where the mag north (/south) is and where our current code thinks it should be would have low error (outside of the short segment between is and should be) just like a compass on the great circle from mag north to true north always points true north (except in the short segment between mag north and true north). Roughly a great circle from the magnetic north pole to Siberia might have low error away from the poles.
You have problems when your mag sensor says magnetic north is "there" and so true north is "there" so it banks your quad toward true north, but the GPS coordinates coming in say that you are moving northeast, not north (an exaggeration). Another problem is that the strength of Earth's magnetic field has been decreasing about 5% per decade recently. The code uses the direction of the field to determine true north, but it also uses the strength of the field as an error check. 5% error gives yellow mag and 15% gives red mag. I think the field strength difference is less of an issue than it looks like because this is compensated for during mag sensor calibration as if it were a mag sensor sensitivity issue? You would have to have done your last mag cal back in 2016 for mag field strength difference to be much of an issue?
34 miles per year is a huge amount!
In less than 400 years the poles would be reversed. In geologic time, this happens all the time. Pole reversal (geomagnetic reversal) is overdue. During a reversal, the strength of Earth's magnetic field decreases a lot. Last time it was down to 5% of the current strength. That leaves us less protected from solar flare issues. Fun fact: Mars' lack of magnetic field is one reason Mars doesn't have much of an atmosphere.
My understanding of the reason for this out-of-band / unplanned WMM update is that vehicles that depend on WMM were found to be at the edge of their safety limits; not actually unsafe, but needing correction.
What do you mean by "backport it into LP 16.09"
Backport generally means to take a code change from some new, incompatible version (for us that is 'next') and put it back into an old version (for us that is 16.09) without breaking compatibility with the old version. It is easy to take the old 16.09 code and make changes that don't require running setup again. Generally, changes that don't change UAVO's are trivial to backport. I am guessing that there are people with 16.09 who are not upgrading to the latest next, but who would gladly upgrade to "16.09.01" if they don't have to run setup. There are quite a few things I could imagine being in a 16.09.01.
The WMM is an array of numbers that allows you to predict where the magnetic north pole is. That array of numbers is in the source code and in the compiled GCS and firwmare. This new model is just a new array of numbers that better predict where magnetic north is and is a simple (
) change to this array. The new WMM could easily be one of the things put in 16.09.01. I should note that it would probably be a good idea (might be required) to redo mag calibration after updating WMM.
This gets into LP procedures, because we have never done this before. Is something like 16.09+newWMM worth doing so we can ask people with certain kinds of GPS mode oscillations to try it with no other changes to see if it fixes issues? Does "dev" think the idea of 16.09.01 is reasonable or that it should be avoided at all cost? Does LP have easy ways of building "private" code sets? For instance, I don't have a way of building for OSX, and my Windows environment would need a complete do over.
It might fix some GPS mode oscillation issues.
Let me clarify that. There
will always be areas on Earth where GPS modes oscillate. Generally this is worst close to the mag poles. Earth's mag field is strangely shaped too and that might cause issues away from the poles if the WMM is too inaccurate? A better WMM
will make these bad areas smaller.