8
\$\begingroup\$

How would one go about calibrating several magnetometers in a production environment? The magnetometer is being used for the purposes of a compass.

Currently I'm calibrating them one-by-one in an open field free from magnetic interference (i.e. no hard or soft iron around) by rotating my magnetometer, and associated electronics, in all three dimensions and then compensating, through software, for the inherent magnetic interference of the on-board electronics.

I'm curious though how large companies scale this process without introducing magnetic interference.

\$\endgroup\$
  • \$\begingroup\$ I'm migrating this over to Electronics in the hopes that it will gather more attention there. \$\endgroup\$ – user22021 Sep 3 '17 at 16:54
  • 1
    \$\begingroup\$ It seems that you are calibrating the magnetometer using the Earth magnetic field and trying to balance the reading in all directions. It is equalizing, but not calibrating really, correct? I know that for commercial magnetometers, manufacturers give mu-metal shielding chambers, so that zeroing can be done without influence of Earth or external fields. Otherwise you should create a very strong dc field with Helmholtz coils, that you have calibrated with a search coil in ac low frequency. Field is uniform in the center and may be oriented differently from Earth field. \$\endgroup\$ – andrea Sep 3 '17 at 21:17
1
\$\begingroup\$

You are not really asking "How to calibrate my magnetometer?" You think you are, but you aren't.

What you are really asking is: "How do you calibrate a sensor in an environment with noise and a DC offset?"

The answer to that is actually pretty simple and the comment by andrea answers it in a large part: You introduce a calibrated, known AC signal and make sure the software or firmware involved knows its magnitude.

If you equate it to voltage, the thinking may become vastly more easy:
If you have 1V maximum DC offset and you want to calibrate to an accuracy of 10mV, you introduce an accurate signal, usually square wave, so that you have time to let the peak excitation stabilise. In this case you'd probably want at least 2.2V peak-peak, so that you also force the signal under 0V. You then make sure you know that signal is accurate to half your requirement or better, so 5mV accuracy will do. And that's of course considering all the noise contributions as well.

In your case you may have several axes you want to calibrate, but their orientation is known once you insert the board, so you need either several fixed "exciters", in the form of for example, again as andrea says Helmholz coils, or you need one that can rotate and hold in position accurate enough.

Making a set-up with a bunch of Helmholz coils fixed with their point of highest uniformity around your device shouldn't be too hard. Since they have a very uniform and if your driving electronics are well designed also a good repeatability, you should be able to suppress surrounding noise and "afflict" your PCB with a strong enough known field to cancel out anything.

Really sensor calibration is always the same problem, the only thing that changes is the way you create the signal.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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