DJI Mavic, Air and Mini Drones
Friendly, Helpful & Knowledgeable Community
Join Us Now

A short explanation of compass function, calibration and errors.

sar104

Dic mihi solum facta, domina.
Premium Pilot
Joined
May 27, 2017
Messages
14,458
Reactions
19,466
Location
Los Alamos, NM
Site
www.mavicpilots.com
BACKGROUND

The aircraft compass is often misunderstood, both in terms of function and purpose, but it is important to understand what the compass measures, why, and what happens to that information.

At the most basic level the purpose of the compass is to measure the earth’s magnetic field in order to find magnetic north relative to the aircraft heading. At any point near the earth the magnetic field is a single-valued vector quantity described by field strength and direction, and the compass comprises a 3-axis magnetometer aligned with the principal axes of the aircraft (x, y, z), independently measuring the local magnetic field components parallel to those axes.

THE EARTH’S MAGNETIC FIELD

The earth's core is magnetized due mostly to rotation, with magnetic north towards the North Pole and magnetic south towards the South Pole, although the two axes are not perfectly aligned.





magnetic_field_earth-jpg.48049.jpg

In magnetic terms, the earth's north pole is actually a magnetic south pole, and the south pole a magnetic north pole, and so the magnetic field lines emanate from the magnetic south pole and return to the north pole in the classic bar magnet pattern, and so at any point on the surface of the earth the magnetic field lies at an angle to the ground, (except near the equator where it is approximately horizontal) called the inclination, and points towards the magnetic north pole.

Since the magnetic north pole and the geographic north pole are not in the same place there will, in general, be an angle between the horizontal component of the magnetic field lines (that point to magnetic north) and the direction of the geographic North Pole (true north). That angle varies by location since, as you look to the north, the apparent relative positions of magnetic north and true north depend on where you are. That offset is called the declination (or variation). So if you also know the declination (you have to know it based on your location since there is no way to measure it) then you can subtract the declination angle to determine where true north is.

Back to the compass - its only job is to determine the direction of magnetic north, and to do that it measures the direction (relative to the aircraft) of the horizontal component of the local magnetic field. If the only magnetic field that it saw were the earth's field then that would be trivial, but the aircraft, itself, has a magnetic field due to internal ferromagnetic components which will, in general, change the direction of horizontal component of the field.

Luckily, magnetic fields follow the Superposition Principle, which means that if two separate magnetic fields interact, the net field vector at any location is simply the vector sum of the individual fields. So, if the magnetic field of the aircraft can be independently measured then, with the assumption that it doesn't change as the aircraft moves around, it can simply be subtracted from the total magnetic field measured by the compass to leave just the earth's magnetic field.

COMPASS CALIBRATION

Measurement of the aircraft’s internal magnetic field at the compass location (it won’t be uniform throughout the aircraft) is achieved by the calibration process since, as the aircraft is rotated, the earth's magnetic field appears to rotate while the aircraft's magnetic field stays constant. The orthogonal rotations in the calibration process allow those two fields to be separated mathematically, and the FC now has the aircraft's magnetic field (the calibration) stored. It subtracts that from the measured field in flight, takes the horizontal component of the resulting field (now assumed to be just the earth's) and thus knows its heading relative to magnetic north.

CORRECTING TO GET TRUE NORTH

However, for navigation the FC needs the aircraft heading relative to true north, since that is the basis of the coordinate system for positioning, such as latitude/longitude. To calculate that heading it has to add the local declination value. There is a common misconception that somehow the calibration process determined declination but it should be obvious that it cannot do that. The orientation of our coordinate system is arbitrary relative to magnetic north and there is no way, as I mentioned above, to figure out the difference between true north and magnetic north with a compass; you have to know the declination separately by looking it up on a map, or calculating it approximately using spherical geometry and knowing the relative positions of the true north pole, the magnetic north pole and your location or, for the most accurate results, using your location with a global model of the earth's field.

The FC does the latter - it has a stored global magnetic field model in firmware and as soon as it gets a GPS position lock on startup it computes the declination (and inclination) from the model and adds the declination to the magnetic heading from the compass. Now it has true heading. That process is documented in the DAT file.

COMPASS INTERFERENCE

Note that all this assumes that there are no other magnetic fields present - only the earth's and the aircraft's. If there are other fields due to ferromagnetic structures, large or small, then the aircraft may or may not be able to detect their presence. The FC has field strength and magnetic field inclination criteria for acceptable measured magnetic field. On the M2, and quite possibly all the models, the total field strength is expected to be in the range 1400 - 1800 µT, as documented here and shown in the graph below. But beyond that, any local field potentially just changes the apparent direction of magnetic north and, if that error is significant, leads to all the common problems after takeoff.

1591828124596.png

The relationship between compass interference values and magnetic field strength.

Those flight problems are also not obvious in their origin - many people ask why, since very local magnetic interference will go away after takeoff, the problem only manifests afterwards during flight. The answer lies in the way that the FC actually computes heading (yaw). The primary yaw sensor in flight is not the compass - it is the rate gyros - i.e. the heading is primarily tracked inertially in flight, not magnetically. The IMU heading is initialized using the compass heading, before takeoff and after the declination has been computed. Once airborne the compass is only used to correct for drift in the rate gyro data. So if, after takeoff, the magnetic interference goes away, then the compass heading will change without the IMU ever detecting rotation of the aircraft, and the IMU and compass now disagree by far more than the drift correction algorithm can handle. That's the source of all the compass and yaw errors and, since the FC now doesn't know which way it is pointing, it cannot navigate and, unless it quickly switches to ATTI mode, will fly uncontrollably if it tries because it will try to correct for course or position deviations by applying thrust in the wrong direction. That has been the cause of almost all so-called “flyaways”. Any error over 30° or so can cause flight control problems, and anything over 45° will lead to loss of control. Around 90° leads to the classic toilet-bowl flight profile, while 180° causes a simple linear accelerating flight in exactly the wrong direction.

INTERFERENCE CORRECTION

I wondered for some time why DJI didn’t add some code to notice the compass change at takeoff from a magnetically distorted site. On takeoff, as the aircraft climbs out of the local interference but the rate gyros detect no rotation, the obvious correction is simply to re-initialized the IMU heading to the new compass heading. In fact they did exactly that with the second firmware upgrade to the Mavic 2, but previous models still don’t do that. It appears that the Mini and the Mavic Air 2 might have that functionality, but not yet confirmed.

There is also the question of "bad calibrations" - can they happen? I think there are a few scenarios in which that might occur. If the user is wearing something magnetic that may make it appear to be part of the aircraft's magnetic field. Or if the magnetic field is local enough to vary as the aircraft is rotated - that might have a similar effect.

COMPASS INTERFERENCE AND CALIBRATION MESSAGES

A persistently confusing issue is the well known message at power up: “Compass error. Move the aircraft or calibrate the compass.” It’s confusing because it often isn’t even accurate; it can mean several different things, a couple of which are not errors at all:
  1. The magnetic modulus (total magnetic field strength) is outside the expected bounds (error);
  2. The magnetic inclination is incorrect for the location (error);
  3. It is more than 30 days since the last compass calibration (M2 and newer models) - not an error - a firmware trigger;
  4. The aircraft is more than 50 km (30 miles) from its previous takeoff location - not an error - a firmware trigger.
(1) and (2) may be the result of local interference, in which case calibration is unnecessary, and moving the aircraft is appropriate. Or they may be the result of a change in the magnetic field of the aircraft itself, either due to components added/removed or components becoming magnetized due to exposure to a strong external magnetic field, in which case moving won’t help and calibration is required, or possibly even demagnetization of the aircraft.

To be fair to DJI, the causes of (1) and (2) cannot easily be distinguished and so the message is reasonable, but it would be much more helpful if (3) and (4) were explicitly spelled out with a different message.

The only way to be certain about what is going on and to establish whether it is safe to fly is:
  1. Check the aircraft orientation arrow on the map - it should be pointing in the same cardinal direction as the aircraft on the ground;
  2. Check the magnetometer interference values in the app - if they are low (green) then the magnetometer readings are within specification.
(1) should be regarded as an essential pre-flight check - every flight. It would cut flyaways to nearly zero. But neither of those checks is recommended by DJI, which is rather unfortunate. If the app is going to recommend just one essential check before takeoff - it really should be the orientation arrow which is far more likely to be a problem than an incorrect home point.

If the magnetometer interference readings are high or the aircraft orientation arrow is incorrect then there is magnetic interference at the compass - either external or internal - and moving the aircraft or calibrating will be required. If the interference values are low and the arrow is correct then the message was due to (3) or (4). You can recalibrate as requested but the aircraft is good to fly, and you can actually ignore the message - it will go away on motor start, but come back on the next power up.

Of course the question still remains - why do some models request periodic recalibration? Previous models didn’t do that. Worse still, the user manuals for DJI aircraft have been completely random on the subject in the past - some recommended only calibrating when requested and some recommended calibrating when moving any significant distance. Time was not previously a stated reason. The distance recommendation led many people to assume, incorrectly, that it had something to do with compensating for magnetic declination, but of course that’s physically impossible. So it's currently unclear why this was implemented. It could be that the DJI engineers decided that transport was one common cause of exposure to magnetic fields, or that periodic calibration might help to keep the compass performing closer to nominal. There is certainly no obvious physics-based reason.
 
Last edited:
BACKGROUND

The aircraft compass is often misunderstood, both in terms of function and purpose, and so it is important to have a clear understanding of what the compass measures, why, and what happens to that information.

At the most basic level the purpose of the compass is to measure the earth’s magnetic field in order to find magnetic north relative to the aircraft heading. At any point near the earth the magnetic field is a single-valued vector quantity described by field strength and direction, and the compass comprises a 3-axis magnetometer aligned with the principle axes of the aircraft (x, y, z), independently measuring the local magnetic field components parallel to those axes.

THE EARTH’S MAGNETIC FIELD

The earth's core is magnetized due mostly to rotation, with magnetic north towards the North Pole and magnetic south towards the South Pole, although the two axes are not perfectly aligned.





View attachment 104231

The magnetic field lines emanate from the magnetic south pole and return to the south pole in the classic bar magnet pattern, and so at any point on the surface of the earth the magnetic field lies at an angle to the ground, (except near the equator where it is approximately horizontal) called the inclination, and points towards the magnetic north pole.

Since the magnetic north pole and the geographic north pole are not in the same place there will, in general, be an angle between the horizontal component of the magnetic field lines (that point to magnetic north) and the direction of the geographic North Pole (true north). That angle varies by location since, as you look to the north, the apparent relative positions of magnetic north and true north depend on where you are. That offset is called the declination (or variation). So if you also know the declination (you have to know it based on your location since there is no way to measure it) then you can subtract the declination angle to determine where true north is.

Back to the compass - its only job is to determine the direction of magnetic north, and to do that it measures the direction (relative to the aircraft) of the horizontal component of the local magnetic field. If the only magnetic field that it saw were the earth's field then that would be trivial, but the aircraft, itself, has a magnetic field due to internal ferromagnetic components which will, in general, change the direction of horizontal component of the field.

Luckily, magnetic fields follow the Superposition Principle, which means that if two separate magnetic fields interact, the net field vector at any location is simply the vector sum of the individual fields. So, if the magnetic field of the aircraft can be independently measured then, with the assumption that it doesn't change as the aircraft moves around, it can simply be subtracted from the total magnetic field measured by the compass to leave just the earth's magnetic field.

COMPASS CALIBRATION

Measurement of the aircraft’s internal magnetic field at the compass location (it won’t be uniform throughout the aircraft) is achieved by the calibration process since, as the aircraft is rotated, the earth's magnetic field appears to rotate while the aircraft's magnetic field stays constant. The orthogonal rotations in the calibration process allow those two fields to be separated mathematically, and the FC now has the aircraft's magnetic field (the calibration) stored. It subtracts that from the measured field in flight, takes the horizontal component of the resulting field (now assumed to be just the earth's) and thus knows its heading relative to magnetic north.

CORRECTING TO GET TRUE NORTH

However, for navigation the FC needs the aircraft heading relative to true north, since that is the basis of the coordinate system for positioning, such as latitude/longitude. To calculate that heading it has to add the local declination value. There is a common misconception that somehow the calibration process determined declination but it should be obvious that it cannot do that. The orientation of our coordinate system is arbitrary relative to magnetic north and there is no way, as I mentioned above, to figure out the difference between true north and magnetic north with a compass; you have to know the declination separately by looking it up on a map, or calculating it approximately using spherical geometry and knowing the relative positions of the true north pole, the magnetic north pole and your location or, for the most accurate results, using your location with a global model of the earth's field.

The FC does the latter - it has a stored global magnetic field model in firmware and as soon as it gets a GPS position lock on startup it computes the declination (and inclination) from the model and adds the declination to the magnetic heading from the compass. Now it has true heading. That process is documented in the DAT file.

COMPASS INTERFERENCE

Note that all this assumes that there are no other magnetic fields present - only the earth's and the aircraft's. If there are other fields due to ferromagnetic structures, large or small, then the aircraft may or may not be able to detect their presence. The FC has field strength and magnetic field inclination criteria for acceptable measured magnetic field. On the M2, and quite possibly all the models, the total field strength is expected to be in the range 1400 - 1800 µT. But beyond that, any local field potentially just changes the apparent direction of magnetic north and, if that error is significant, leads to all the common problems after takeoff.

Those flight problems are also not obvious in their origin - many people ask why, since very local magnetic interference will go away after takeoff, the problem only manifests afterwards during flight. The answer lies in the way that the FC actually computes heading (yaw). The primary yaw sensor in flight is not the compass - it is the rate gyros - i.e. the heading is primarily tracked inertially in flight, not magnetically. The IMU heading is initialized using the compass heading, before takeoff and after the declination has been computed. Once airborne the compass is only used to correct for drift in the rate gyro data. So if, after takeoff, the magnetic interference goes away, then the compass heading will change without the IMU ever detecting rotation of the aircraft, and the IMU and compass now disagree by far more than the drift correction algorithm can handle. That's the source of all the compass and yaw errors and, since the FC now doesn't know which way it is pointing, it cannot navigate and, unless it quickly switches to ATTI mode, will fly uncontrollably if it tries because it will try to correct for course or position deviations by applying thrust in the wrong direction. That has been the cause of almost all so-called “flyaways”. Any error over 30° or so can cause flight control problems, and anything over 45° will lead to loss of control. Around 90° leads to the classic toilet-bowl flight profile, while 180° causes a simple linear accelerating flight in exactly the wrong direction.

INTERFERENCE CORRECTION

I wondered for some time why DJI didn’t add some code to notice the compass change at takeoff from a magnetically distorted site. On takeoff, as the aircraft climbs out of the local interference but the rate gyros detect no rotation, the obvious correction is simply to re-initialized the IMU heading to the new compass heading. In fact they did exactly that with the second firmware upgrade to the Mavic 2, but previous models still don’t do that. It appears that the Mini and the Mavic Air 2 might have that functionality, but not yet confirmed.

There is also the question of "bad calibrations" - can they happen? I think there are a few scenarios in which that might occur. If the user is wearing something magnetic that may make it appear to be part of the aircraft's magnetic field. Or if the magnetic field is local enough to vary as the aircraft is rotated - that might have a similar effect.

COMPASS INTERFERENCE AND CALIBRATION MESSAGES

A persistently confusing issue is the well known message at power up: “Compass error. Move the aircraft or calibrate the compass.” It’s confusing because it often isn’t even accurate; it can mean several different things, a couple of which are not errors at all:
  1. The magnetic modulus (total magnetic field strength) is outside the expected bounds (error);
  2. The magnetic inclination is incorrect for the location (error);
  3. It is more than 30 days since the last compass calibration (M2 and newer models) - not an error - a firmware trigger;
  4. The aircraft is more than 50 km (30 miles) from its previous takeoff location - not an error - a firmware trigger.
(1) and (2) may be the result of local interference, in which case calibration is unnecessary, and moving the aircraft is appropriate. Or they may be the result of a change in the magnetic field of the aircraft itself, either due to components added/removed or components becoming magnetized due to exposure to a strong external magnetic field, in which case moving won’t help and calibration is required, or possibly even demagnetization of the aircraft.

To be fair to DJI, the causes of (1) and (2) cannot easily be distinguished and so the message is reasonable, but it would be much more helpful if (3) and (4) were explicitly spelled out with a different message.

The only way to be certain about what is going on and to establish whether it is safe to fly is:
  1. Check the aircraft orientation arrow on the map - it should be pointing in the same cardinal direction as the aircraft on the ground;
  2. Check the magnetometer interference values in the app - if they are low (green) then the magnetometer readings are within specification.
(1) should be regarded as an essential pre-flight check - every flight. It would cut flyaways to nearly zero. But that neither of those checks is recommended by DJI, which is rather unfortunate. If the app is going to recommend just one essential check before takeoff - it really should be the orientation arrow which is far more likely to be a problem than an incorrect home point.

If the magnetometer interference readings are high or the aircraft orientation arrow is incorrect then there is magnetic interference at the compass - either external or internal - and moving the aircraft or calibrating will be required. If the interference values are low and the arrow is correct then the message was due to (3) or (4). You can recalibrate as requested but the aircraft is good to fly, and you can actually ignore the message - it will go away on motor start, but come back on the next power up.

Of course the question still remains - why do some models request periodic recalibration? Previous models didn’t do that. Worse still, the user manuals for DJI aircraft have been completely random on the subject in the past - some recommended only calibrating when requested and some recommended calibrating when moving any significant distance. Time was not previously a stated reason. The distance recommendation led many people to assume, incorrectly, that it had something to do with compensating for magnetic declination, but of course that’s physically impossible. So it's currently unclear why this was implemented. It could be that the DJI engineers decided that transport was one common cause of exposure to magnetic fields, or that periodic calibration might help to keep the compass performing closer to nominal. There is certainly no obvious physics-based reason.
WHOA.......TMI o_O
 
Answer me this....... Although my MA2 has been flying quite nicely without issues without calibrating, I have noticed that the radar icon on the lower center of the screen does not accurately indicate the direction of the drone. It's a little bit off.

Would a calibration fix this?
 
Answer me this....... Although my MA2 has been flying quite nicely without issues without calibrating, I have noticed that the radar icon on the lower center of the screen does not accurately indicate the direction of the drone. It's a little bit off.

Would a calibration fix this?

Good question - I need to add that to the post. I'm assuming that you mean the direction of the drone from the controller, which is a common issue. It generally has nothing to do with the aircraft compass - it's the mobile device compass that is reading incorrectly. You can check that by opening a compass app on the mobile device to see if it is reading correctly. If it isn't then it may be due to magnetic interference from the RC stick modules, or it may be a separate problem (possibly more common on iOS devices) that seems to cause it to misunderstand the orientation of the device.
 
Fantastic read!!!!! I was going to do some homework tonight for school, however, brain capacity was maxed in this post.

Thank you!
LOL ?
 
Very useful, thanks. It's interesting how some other drones (non-DJI) insist on calibration every flight. Perhaps their firmware is simpler. I know Hubsan had lots of issues with areas of the world with high declination values on the H501 series, which they seem to have resolved now (after a lot of firmware updates).
 
@sar104 another of your brilliant posts your help and advice is a mainstay of this forum, it would not be the same without your imput
 
it's a significantly simplified discussion of the topic
Relatively concise yet broadly informative! I read and, surprisingly to me, understood every word! Excellent, thank you...
 
  • Like
Reactions: sar104
Great write up. One related question I had: do you think there is ever a need to use degaussing tools like the "Cfixer" device with our drones? Or is that snake oil?
 
That's unfortunate, because it's a significantly simplified discussion of the topic.
Definitely NOT too much information. Understand how the system works can save your buns when things don't go as planned and you may have to react quickly.

That was a really nice clear explanation of some very important issues. Thank you for taking the time to write and post it.
 
Lycus Tech Mavic Air 3 Case

DJI Drone Deals

New Threads

Forum statistics

Threads
130,413
Messages
1,552,355
Members
159,420
Latest member
shandilya