← All tools

Message & Error Explainer

What an ArduPilot message means and what to do about it

Українська

The compasses disagree with each other

Stops itCompass

What ArduPilot says:

Every compass switched on for heading is compared with the first one. They count as inconsistent when their field directions differ by more than 90 degrees in space, or by more than 60 degrees seen from above, or when the horizontal parts differ by more than 200 milligauss. A compass whose horizontal reading is exactly zero fails too. With only one compass in use the check cannot fail.

What to do, most likely first

  1. The compass on the flight controller is disturbed by the electronics around it, while the external one is clean.

    CheckThe ground station's compass screen shows which compasses are in use. An internal one close to power wiring rarely agrees with a compass on a mast.

    FixKeep the external compass first in the list and switch the internal one off for heading: COMPASS_USE2 0 (or COMPASS_USE3 0, whichever place it has), then reboot.

  2. The external compass's orientation is set wrong, so the two point different ways.

    CheckA module mounted turned, sideways or upside down needs the matching COMPASS_ORIENT (for a second external compass, COMPASS_ORIENT2).

    FixRun the calibration with COMPASS_AUTO_ROT 2: it works out and saves the orientation of external compasses. Calibrate all compasses in the same run.

  3. The compasses were calibrated at different times or places, or something magnetic was added since.

    FixCalibrate all of them together again, outdoors, with the aircraft as it flies.

  4. Right now a steel object or a magnet is closer to one compass than to the other.

    CheckThe message goes away when you move the aircraft off the bench, away from the car or the tool lying next to it.

    FixArm away from metal.

The first compass is the reference: if it is the bad one, every other compass looks inconsistent.

Parameters to look at

ParameterWhat it is
COMPASS_USEUse compass for yaw
COMPASS_USE2Compass2 used for yaw
COMPASS_USE3Compass3 used for yaw
COMPASS_ORIENTCompass orientation
COMPASS_ORIENT2Compass2 orientation
COMPASS_EXTERNALCompass is attached via an external cable
COMPASS_EXTERN2Compass2 is attached via an external cable
COMPASS_AUTO_ROTAutomatically check orientation
The code that sends it

PreArm: Compasses inconsistent

libraries/AP_Arming/AP_Arming.cpp AP_Arming::compass_checks() · 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