diff --git a/ArduCopter/AP_Arming.cpp b/ArduCopter/AP_Arming.cpp index 7cd5620d2c..991afc094f 100644 --- a/ArduCopter/AP_Arming.cpp +++ b/ArduCopter/AP_Arming.cpp @@ -456,11 +456,14 @@ bool AP_Arming_Copter::arm_checks(AP_Arming::Method method) } #ifndef ALLOW_ARM_NO_COMPASS - const Compass &_compass = AP::compass(); - // check compass health - if (!_compass.healthy()) { - check_failed(ARMING_CHECK_NONE, true, "Compass not healthy"); - return false; + // if external source of heading is available, we can skip compass health check + if (!ahrs.is_ext_nav_used_for_yaw()) { + const Compass &_compass = AP::compass(); + // check compass health + if (!_compass.healthy()) { + check_failed(ARMING_CHECK_NONE, true, "Compass not healthy"); + return false; + } } #endif