> For the complete documentation index, see [llms.txt](https://docs.auterion.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.auterion.com/vehicle-operation/dragon-setup/dragon-mr-lr/common-questions/compass-calibration-vs-heading-reset.md).

# Compass calibration vs heading reset

A wrong or drifting heading has two different fixes:

**Compass calibration** recomputes the magnetometer correction values (hard/soft-iron offsets and scales). It is persistent and fixes the *sensor*.

**Heading reset** re-seeds the current yaw estimate. It changes no calibration and fixes the *estimate*.

> If the heading error returns after a reset, you need a calibration, or there is a magnetic disturbance near the sensor.

#### Calibrate the compass when

* The compass/IMU module or its mounting orientation changed.
* A payload, wiring, or structure near the sensor was added, removed, or moved.
* You moved to a region with very different magnetic characteristics (declination is handled automatically; this is about hard/soft-iron).
* Mission Control reports *mag sensors inconsistent*, or arming is blocked on a magnetometer check.
* The heading persistently disagrees with reality.

**How:** **Vehicle Setup > Sensors > Compass**

Diagnosis parameters (not normally touched in the field): `EKF2_MAG_TYPE`, `EKF2_MAG_CHECK` / `EKF2_MAG_CHK_STR` / `EKF2_MAG_CHK_INC`, `COM_ARM_MAG_ANG`, `COM_ARM_MAG_STR`.

#### Perform a heading reset when

* The vehicle was transported or powered up in a new orientation and the heading is wrong, but the compass is known-good.
* Initializing in GNSS-denied conditions and seeding yaw to a known true heading (e.g. catapult bearing).
* The heading briefly diverged and you want to snap the estimate back without recalibrating.

**How:** **Vehicle Heading** in the positioning drop panel in the fly view.

> A heading reset never recomputes calibration. If the calibration is wrong, the error will reappear. Calibrate instead.
