← All tools

Message & Error Explainer

What an ArduPilot message means and what to do about it

Українська

The compass was calibrated without knowing where it is

WarningCompass

What ArduPilot says:

The calibration finished while ArduPilot had no position (no GPS fix yet), so it could not compare the measured field strength with the one expected at your location. The offsets are saved, but the scale factor (COMPASS_SCALE) is left at 0, and the code notes that the position estimator then does not use the world magnetic map for this compass.

What to do, most likely first

  1. The calibration was done indoors, or before the GPS had a fix.

    FixNothing is broken. For the complete check, calibrate again outdoors once the GPS has a 3D fix, then reboot.

Bit 0 of COMPASS_OPTIONS makes ArduPilot refuse to start a calibration until the GPS has a fix, so that this cannot happen unnoticed.

Parameters to look at

ParameterWhat it is
COMPASS_SCALECompass1 scale factor
COMPASS_OPTIONSCompass options
The code that sends it

MagCal: No location, fix_radius skipped

libraries/AP_Compass/CompassCalibrator.cpp CompassCalibrator::fix_radius() · Open in ArduPilot Copter-4.7.1

Written here for Copter 4.6. In the tool you choose your vehicle and version, see your own parameter values beside the ones named here, and drop a flight log to have every message in it explained.

Open it in the Message & Error Explainer