EK3_MAG_CAL still holds a value that older versions used for external yaw
What ArduPilot says:
- EK3_MAG_CAL and EK3_SRC1_YAW inconsistent
EK3_MAG_CAL is 5 or 6. In old versions those values meant “take the heading from an external sensor”; that choice has moved to EK3_SRC1_YAW, and 5 and 6 no longer mean anything for a compass. Arming is refused while EK3_MAG_CAL is 5 or 6 and the heading source is anything other than a GPS (EK3_SRC1_YAW is not 2).
What to do, most likely first
The parameters were carried over from firmware 4.0 or older, or copied from an aircraft that takes its heading from two GPS antennas.
FixWith a compass: set
EK3_MAG_CALto 3 (the copter default) and keepEK3_SRC1_YAWat 1. With heading from two GPS antennas: setEK3_SRC1_YAWto 2, or to 3 to fall back on the compass.
Parameters to look at
| Parameter | What it is |
|---|---|
EK3_MAG_CAL | Magnetometer default fusion mode |
EK3_SRC1_YAW | Yaw Source |
Where to do it:Parameter Compare & Migrate
The code that sends it
EK3_MAG_CAL and EK3_SRC1_YAW inconsistent
libraries/AP_NavEKF3/AP_NavEKF3.cpp NavEKF3::pre_arm_check() · Open in ArduPilot Copter-4.7.1