The calibration failed: the field strength is far from what is expected here
What ArduPilot says:
- Mag(N) bad radius N.N expected N.N
The calibration measures how strong the field around the compass is (the “radius”, in milligauss) and compares it with what the built-in world magnetic map gives for your position (“expected”). If the readings would have to be scaled by more than 1.5, up or down, to match, the calibration is rejected. The first number is the compass, counted from 0.
What to do, most likely first
The calibration was done next to steel or magnets, which add to the Earth's field.
FixCalibrate again outdoors, well away from cars, fences and buildings.
A magnet or power wiring on the aircraft sits right next to the compass.
CheckThe radius is wrong in the same way wherever you calibrate.
FixMove the compass away from them, or use the external compass.
The sensor is faulty, or of a type whose readings come out on the wrong scale.
CheckAnother compass on the same aircraft passes while this one fails by the same factor every time.
FixUse the other compass and switch this one off for heading, or replace it.
Parameters to look at
| Parameter | What it is |
|---|---|
COMPASS_SCALE | Compass1 scale factor |
COMPASS_SCALE2 | Compass2 scale factor |
COMPASS_SCALE3 | Compass3 scale factor |
Where to do it:Setup & Tuning Guide
The code that sends it
Mag(N) bad radius N.N expected N.N
libraries/AP_Compass/CompassCalibrator.cpp CompassCalibrator::fix_radius() · Open in ArduPilot Copter-4.7.1