Magnetometer calibration without GC?


First of all, how often magnetometer calibration is needed and would added/removed payloads like camera affect the calibration too much to be able to fly? I know that there is a automatic offset calibration done while flying. Does this automatic calibration fix these kind of changes in magnetic fields?

Could it be possible to have option to trigger magnetometer calibration from radio controller and having some audio/visual aid for doing the calibration. Could it be possible to have “secondary” calibration with simpler calibration maneuvers witch would mean lower accuracy, but still it could be enough with the primary calibration data?

Backgrounds for this question: We manufacture drones and we have had some problems with bad calibration done by end user with different autopilot. We would like to sift to use px4 but we see the mag calibration bit too complicated for our end user. We would prefer that mag calibration could be done as rarely as possible and even then it would be simple “secondary” calibration. We have seen that bad calibration done nearby large ferromagnetic objects causes flyaway like in 99% of cases. That flyaway(=crash) is often seen as drone malfunctioning, but really it is caused by user doing bad magnetometer calibration and ignoring given instructions. We would like to find solution to avoid that.

Unfortunately mag calibration has to been done wherever a new spot that user intent to fly his drone at. It is not related to payload but just magnetic field around.
That cal process is less likely to be simplified as this is not really an autopilot issue, but how a mag meter works.

No this is not the case. Magnetometer calibration is done to correct offset and scale errors of the magnetometer sensor itself. A secondary, simpler calibration routine would be nice but is currently not supported. Adding or removing metal objects close to the mag will influence the field strength and could be corrected for by doing a 9 degree of freedom calibration, but that would require an even more involved procedure than what is currently implemented.

Is there any RFC’s or similar going on with secondary calibration routine. I would like to try to give some efforts towards “end user” secondary calibration routine or similar.

So is it enough that magnetometer is once calibrated with care instead of every time before flight as the calibration routine is made to correct offset and scale errors of the sensor itself? There is so much information online and its mostly about beliefs not facts so its quite hard to find answer for this.

Is there better ways to achieve robust magnetometer readings with minimal “end user” calibration?

  • No, I haven’t heard of any ongoing work regarding a simpler calibration routine
  • You don’t need to calibrate the sensor every flight, however it depends on the sensor and environment when you need to do it again, but should be rarely.
  • Magnetometers are very sensitive. Make sure you calibrate them as good as you can far away from any large metal objects, place the sensor as far away as possible from metal objects and power cables on the airframe, twist all power cables or use coaxial cables, make sure to mount the sensor aligned with the autopilot in one of the supported rotations.

I never had to redo Compass calibration once properly done. Not like DJI which may also be influenced by the mounting position on the Phantoms.

So a carefully done calibration and manufacturing could minimize recalibration needs.

How about payload change? This goes more to a hardware thing but have you any experience or information of using MuMetal/Emi shielding between drones bottomside and payload to minimize magnetic fluctuations caused by different payloads?
How about “shielding” magnetometer with mumetal from directions where drone could affect it. In example the magnetometer is located in top of the drone, so it could be shielded with base plate under it so that magnetic flux coming from nearby below would be attennuated. Is this even worth a try?