I'm developing an quadcopter as an DIY project.
I'm in nascent stage of development.
I've just finalized the design/working philosophy.
I'm planning to fuse data from 9-DOF (9-Axes) IMU + GNSS + Pressure Sensor using EKF to develop AHRS-INS for my quadcopter.
I was looking into integrated (single chip) 9-DOF IMU (Accelerometer + Magnetometer + Gyroscope) MEMS Sensor IC. I was looking into Bosch Sensortec (BNO055) and TDK (ICM-20948).
TDK ICM-20948 has a status of NRND and has been marked as EOL.
While I was browsing through these IC manufacturers website I realized that most new/recommended sensor ICs for quadcopter/drones are 6-DOF (6-Axes) and not 9-DOF IMU. These modern sensors only house 3-Axes Accelerometer and 3-Axes Gyroscope but no magnetometer.

I wish to know

  1. if my plan is obsolete whereby I'm plan to use 3-Axes Magnetometer along with help from GNSS to get heading/bearing with respect to true north or any alternate new approach is recommended
  2. if 6-DOF IMU gives better performance/accuracy compared to 9-DOF IMU and it is recommended to use separate 3-Axes magnetometer in conjunction with 6-DOF IMU rather than a single interated 9-DOF IMU
  • 1
    \$\begingroup\$ My experience of MEMS parts is that their availability is fickle and depends a lot of what parts that happen to be used in some consumer product at the moment. So no matter what you go for, you should probably ensure that the manufacturer can guarantee "longlivety" of the part and not put it EOL within the next few years. \$\endgroup\$
    – Lundin
    Commented Mar 24, 2023 at 7:57
  • 1
    \$\begingroup\$ I’m voting to close this question because it's better suited on a site about drones i.e. it isn't a specific EE design question. \$\endgroup\$
    – Andy aka
    Commented Mar 24, 2023 at 8:13
  • \$\begingroup\$ @Lundin Thanks for your insight. I'd never thought of how consumer products might be affecting availability MEMS parts. I realized Planned obsolesce of such parts need not be dependent technological factor and can also be affected by other factors like cost-benefit ratio, use case, etc. \$\endgroup\$ Commented Mar 24, 2023 at 12:01
  • 1
    \$\begingroup\$ EOL is always a matter of profit, though some of the more serious companies take pride in keeping parts available for a long time. Which is usually a requirement for entering the industrial/automotive/med-tech etc markets. Whereas companies dealing with a lot of consumer electronics tend to EOL things all the time. \$\endgroup\$
    – Lundin
    Commented Mar 24, 2023 at 12:21

3 Answers 3


I was also wondering the exact same thing : why most 9DoF IMU MEMS while very predominent in 2015-2020 seems to have gone obselete without new alternatives (ST, Bosch, Invensense...).

From the previous answers, you seem to conclude that's because magnetometers are note reliable enough. But I'm not much convinced this is the actual reason.

You've focused about drone and motors perturbation, but there are a lot of other fields where those perturbation are less relevant (wearable, transportation, robotics). Although the magnometer is not fully reliable with EM perturbations, it still provides an additional absolute reference for the sensor fusion which should provide additional accurracy (espcially on the angular drift) to an attitude sensor. And the magnetometer cost only a few cents/euros more on the die cast whereas adding a GPS turns out to be much more costly, bulky and in some case impraticable (indoor navigation). So I would believe there is a market for those 9 Dof sensors but from which Invensense, Bosch and ST have diverged.

At this point, the only two explainations that I could find are (but they are not fully convicing myself):

  • Mag wafers availability :

The ICM-20948 is a 9-axis IMU that integrates the TDK 6-axis ICM-20648 (accelerometer and gyroscope) and AKM’s AK09916C external magnetometer. Since AKM is discontinuing production of the AK09916C mag, TDK Invensense is not able to guarantee the long-term supply of the ICM-20948 due to the limited supply of the AKM magnetometer wafers.

Source from Symmerty Electronics. May be magnetometers wafers are rare and hard to integrate in 6DoF SoCs ?

  • Technological obsolesence of 9 DoF attitude sensors, they would rather add IA processing units on 6 DoF chips ?

In my case, I am looking for attitude sensor to use on robots. I'd like to ask again the question 2 of Dark Sorrow whiwh seemed very relevant for EE field :

In 2023, the only long-term solution for 9 Dof sensing is to integrate a 6 Dof accel/gyro + 3 DoF mag on a board and do the sensor fusion by yourself on a MCU ? That sounds like a very tedious and CPU intensive task whereas not so long ago EoL products existed that could do the 9Dof fusion at 200Hz directly on an embbedded Digital Motion Procesing module (BN055, MPU 9250, LSM9DS1 ...). It feels like we are missing something.

  • \$\begingroup\$ Are you sure the integration level of the motion processing has changed? ICM-20648 has among other features "Auxiliary I²C interface for external sensors" \$\endgroup\$
    – Ben Voigt
    Commented Apr 10, 2023 at 21:18

Magnetometers almost always are a separate die, so the "9 DOF" IMU is just a 6-DOF chip and a magnetometer chip in the same package. That's a bit of a pain to deal with on the manufacturing end, especially with unstable supply chains.

So, you just buy the MEMS IMU chip you need, and the magnetometer you want, and since you do fusion yourself anyway, that changes nothing much.

I'd say it's better that those are separate functions - they always were, now we at least don't "waste" an "integrated" magnetometer when a discrete part is available that does a better job (or is merely available and doesn't stop production at the 9DOF line).

You can and probably still should use the magnetometer - it helps with extra information going into the filter. It's just that it's on you to buy that chip separately. That's all. Nobody really "recommends" getting rid of magnetometers! The system partitioning is just different now.


A few ideas (someone with more drone experience will probably complete) :

  • a magnetometer doesn't measure the (geographic) north. It doesn't even measure the magnetic north. It measures the orientation (and stength) of the magnetic field. If you have no disturbances, this gives you the magnetic north (that you then have to correct by a few degrees to get the geographic north)
  • if your drone contains metal parts, they might disturb the magnetic field
  • the magnets and electromagnets of the motors will disturb the magnetic field (but might get averaged out when the motors are spinning ; on the ground, expect a disturbance)
  • be very careful with the electric cables (which in drones carry "huge" currents) : this current generates a magnetic field, always in the same direction, but with amplitude depending on the current (ie on motor thrust). So this will not average out, and you can't calibrate it out either (ou can calibrate for some "average current", but as soon as you get more or less current, you will get errors). You can however greatly reduce the impact by careful wiring :

a) keep high current wires as far away as possible from the magnetometer

b) keep + and - wires as near as possible

c) if possible, twist + and - wires

  • in itself, a 9 Dof sensor should be better than a 6Dof + magnetometer, because you are guaranteed that the axis are well aligned. Whether for a given price target you get better sensors in a single 9Dof or 6Dof + magnetometer, I don't know.

On high end drones, you have some solutions to get the north that don't rely (or less) on magnetic field :

  1. Fusing GPS (ideally GNSS-RTK) into your kalman filter. If you fly fast, you might be able to get rid entirely of magnetometer; if you fly slowly, then keep it but with a very small weight
  2. Use differential GNSS (ie 2 antennas on the drone) : this gives you the orientation of the drone based on the GPS signals
  3. If you are really rich, and do a big enough drone to accept the weight, get some really good gyroscope (for example optical fiber gyroscope), which will measure the earth rotation axis with enough accuracy to deduce the rotation axis (north) of the earth. Plan to add a few k$ to your budget
  • \$\begingroup\$ Thanks for the detailed answer. FOG and RLG are out of question due to budgetary concerns. I'm exploring GNSS-RTK and differential GNSS. Will I need two different GNSS modules to implement differential GNSS? I had doubts regarding magnetometer, I has suspicions that permanent magnet from BLDC motors for rotor while affect magnetometer but I was planning to compensate the effect of these magnets. More I think, more I'm swayed away from using magnetometer especially after reading about high current through cables, motors and interference from metallic parts. \$\endgroup\$ Commented Mar 24, 2023 at 11:56
  • 1
    \$\begingroup\$ For differential GNSS, I would recommend using a single module (with differential GNSS capacity) and but with 2 antennas. On some commercial drones (DJI M600 if I remember right), there are even 3 antennas. For the magnetometer, I can't say if you get some approximate heading out of it or not. But I strongly advise using it in some "automatic" data fusion, unless it allows to greatly diminish its weight (if you do manual kalmann filter, make sure to put far bigger weight for gyros than for magnetometer) \$\endgroup\$
    – Sandro
    Commented Mar 26, 2023 at 20:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.