I have a device that doesn't move after being turned on but I would like to know which direction it is facing. The MAG3110 magnetometer calibration instructions involve moving devices around (figure 8 or similar) to fit a solution to the resulting range of measurements. How reasonable is it to assume that I could determine the hard and soft iron calibration for a small sample of PCBs/devices and use it for all others with the same layout?
Hello Mandy,
This software function is supposed to calibrate the HardIron (offset brought by the board and the magnetometer). But this will work with one essential condition : you need to rotate the board/MAG31110 over the 3-axis during the execution of the calibration !
Look at the chart below (here, the board rotates at a constant speed, but you don't need to do that)
By rotating the magnetometer, you will change the magnetic field (induced by the Earth, like a compass). By capturing the min and max values, you will by able to calculate the offset of the MAG3110. By writing theses values in the OFF_axis_xSB register, the MAG3110 will be able to apply this hardiron vector compensation to the raw measurements: that's the calibration.
Hope this helps you,
Anthony
Yes you need to calibrate. If you don't, you will have inacurrate results.
Please check the Tomas' response.
how to deal the data from mag3110
With the additional information I give to you, you should be able to understand how to do it : use the hardiron calibration, then apply arctan(Y/Z). You have all the pieces, you just need to merge it altogether.
Anthony
Hello Ben,
Did you use the MAG3110 embedded offset calibration or a real magnetic external calibration? If it is the auto-calibration, it's going to work on 1,2 or 3 axis.
It's hard to say how reasonable is it to perform a "static(non dynamic) calibration" I would say no, but it depends on your final application. Can you tell us more about it?
Thank you,
Anthony