# How accurate is my phone's magnetometer?

I'm trying to build a linear motor, for which purpose I bought this large permanent magnet. The website claims it has up to "13,500 Gauss", which is 1.35 tesla. However when I put my phone against the magnet I'm measuring about 3 milli tesla. That's orders of magnitude different!

I thought "Perhaps the field strength is dropping off quickly over the distance". But my phone and the magnet were literally touching. Not only that, I tried many different spots against my phone (in case perhaps the Magnetometer was in some odd corner), but the max I could ever measure was 3.5 milli tesla.

So then I thought, "Perhaps the phone's magnetometer is just not designed for this range of magnetic field strength; It's really supposed to be just the a compass, and the earth's magnetic field is around 50 micro tesla". But I don't know. Which one is it?

How accurate is my phone's magnetometer? And how wide is the range in which it is accurate?

(My phone specifically is a moto g(7) plus, but I suspect nearly all phones have the same or a very similar magnetometer)

• You also better recalibrate your phone's magnetometer now you have exposed it to such a large field Commented Aug 5 at 10:29
• I've tried to search for high range magnetometer chips - even the ones with the highest range can only do about 300 mT. Beyond that you get into big devices like flux gate magnetometers.
– jpa
Commented Aug 5 at 14:13

So then I thought, "Perhaps the phone's magnetometer is just not designed for this range of magnetic field strength; It's really supposed to be just the a compass, and the earth's magnetic field is around 50 micro tesla".

Likely it's that. I don't know what chip is in your phone, but a Bosch BMM150 or BMM350 would be a pretty likely choice. The BMM150 datasheet says "Magnetic field range: ±1300μT (x,y-axis), ±2500μT (z-axis)", so the largest magnitude it could read is 3103μT. The BMM350 says ±2000μT all axes, which works out to 3464μT if every axis is pinned.

Within that range, it's pretty accurate — probably within 1μT.

• "which works out to 3464μT if every axis is pinned.", The fact that you worked out almost exactly what my phone was reading, strongly indicates this answer is correct. Commented Aug 5 at 4:39

How accurate is my phone's magnetometer?

In its intended range of operation? As a rule of thumb they are quite accurate, better than 8 bits of accuracy after a 2-point calibration, and more than 10 bits of resolution. That's for the cheapest sensors. There are of course much better sensors that cost more and perform accordingly.

However when I put my phone against the magnet I'm measuring about 3 milli tesla.

Putting your phone against a 1T magnet is a bad idea. Everything ferrous in that phone will probably get magnetized, and will cause permanent offset for the built-in magnetometer.

As you have learned, the built-in phone magnetometers are designed to sense Earth's magnetic field and are orders of magnitude too sensitive to measure 1T fields.

You can fairly easily measure the strength of a magnet by dropping it through the center of a coil with a couple turns of wire connected to a resistor. The height of the drop above the coil determines the velocity when crossing the coil, and the induced current will be proportional to the strength of the magnet.