The calibration confirmed, or corrected, the compass orientation
What ArduPilot says:
- Mag(N) good orientation: N N.N
- Mag(N) new orientation: N was N N.N
The calibration checked how the compass is mounted. “good orientation: a c” confirms the orientation already set. “new orientation: a was b c” means an external compass was found mounted differently from its setting; because COMPASS_AUTO_ROT is 2 or 3, the new value a is saved to COMPASS_ORIENT when the calibration is accepted. The first number is the compass, counted from 0; a and b are COMPASS_ORIENT values (0 none, 2 Yaw90, 4 Yaw180, 6 Yaw270, 8 Roll180); c says how clearly the best orientation beat the next one.
After “new orientation”, look at the module: the value should describe how it really sits. A surprising one, such as a roll for a module that lies flat, suggests the calibration was disturbed: repeat it outdoors.
Parameters to look at
| Parameter | What it is |
|---|---|
COMPASS_ORIENT | Compass orientation |
COMPASS_AUTO_ROT | Automatically check orientation |
COMPASS_EXTERNAL | Compass is attached via an external cable |
The code that sends it
Mag(N) good orientation: N N.N
libraries/AP_Compass/CompassCalibrator.cpp CompassCalibrator::calculate_orientation() · Open in ArduPilot Copter-4.7.1
Mag(N) new orientation: N was N N.N
libraries/AP_Compass/CompassCalibrator.cpp CompassCalibrator::calculate_orientation() · Open in ArduPilot Copter-4.7.1