"Something" is disabled Reasons - iNavFlight/inav GitHub Wiki

Something is disabled

INAV may fail to perform some action as expected, typically arming or engaging waypoints. This articles documents the reasons for some of these events.

Arming disabled reasons

INAV will refuse to arm for the following reasons (e.g. from cli status):

Reason (CLI Mnemonic) Bit Mask (Hex) Explanation
FS 00000080 The RX is not recognised as providing a valid signal
ANGLE 00000100 The vehicle is not level as defined by the CLI small_angle setting
CAL 00000200 The pre-arm sensor calibration has not completed. The barometer is somewhat susceptible to lengthy calibration, which may be mitigated by the CLI setting baro_cal_tolerance, e.g. set baro_cal_tolerance = 500 (find a suitable value by experimentation).
OVRLD 00000400 The CPU load is excessive. May be caused by too an aggressive loop time setting.
NAV 00000800 Where the CLI setting nav_extra_arming_safety = ON is used, this may be caused by reasons shown in the table below
COMPASS 00001000 The compass is not calibrated. Perform the calibration procedure
ACC 00002000 The accelerometer is not calibrated. Perform the 6 point calibration procedure
ARMSW 00004000 The arm switch was engaged as the FC booted
HWFAIL 00008000 A required hardware device (Gyro, Accelerometer, Baro, Compass, RangeFinder, Pitot, GPS or OpticalFlow) has failed / is not recognized
BOXFS 00010000 A failsafe switch is engaged
KILLSW 00020000 A kill switch is engaged
RX 00040000 The RC link is not detected (RX not detected)
THR 00080000 The throttle setting is not a minimum
CLI 00100000 The CLI is active (note: you will always /unavoidably see this when in the CLI)
CMS 00200000 The CMS menu is active
OSD 00400000 The OSD menu is active
ROLL/PITCH 00800000 Roll and/or pitch is not centred
AUTOTRIM 01000000 Servo autotrim is engaged
OOM 02000000 The FC is out of memory
SETTINGFAIL 04000000 A CLI setting is out of range. The erroneous setting should be indicated in a CLI dump. If you can't then reset the offending setting, reflash with full chip erase and reapplying settings from scratch may help.
PWMOUT 08000000 PWM output error. Motor or servo output initialisation failed.
NOPREARM 10000000 PREARM is enabled and timed out
DSHOTBEEPER 20000000 DSHOTBEEPER is enabled and is active
LANDED 40000000 Landing detected.

Note: On older processors, just the bitmask is shown, which can be decoded by the numeric values in the table. A numeric value may be a combination of conditions, for example:

0x184000 = 00100000 + 00080000 + 00004000 (CLI active, throttle not at minimum, arm engaged)

The values are correct for INAV 6.1.0 as of 2023-04.

Navigation Unsafe reasons

Requires that a navigation mode (which includes failsafe RTH) is configured

Navigation Unsafe
The GPS has insufficient satellites (this is checked even if you disable GPS, but have a NAV mode configured in Modes tab)
A navigation switch is engaged (e.g.PH, WP, RTH)
First WP distance exceeded
Sensor quality is unacceptable: EPH/EPV > 10m (note the limit in the CLI inav_max_eph_epv is in cm, default 1000). Check also inav_baro_epv
The WP mission contains an invalid JUMP sequence
The first waypoint is beyond the distance defined by the CLI setting: INAV 5.1 and below uses nav_wp_safe_distance. From INAV 6.0 use nav_wp_max_safe_distance
  • nav_wp_safe_distance : The default is 100m (10000cm, as the value is entered in cm), 0 disables this check.

    # get nav_wp_safe_distance
    nav_wp_safe_distance = 10000
    Allowed range: 0 - 65000
    
  • nav_wp_max_safe_distance : The default is 100m, 0 disables this check. This setting is entered in metres.

    # get nav_wp_safe_distance
    nav_wp_safe_distance = 100
    Allowed range: 0 - 1500
    
  • Invalid JUMP.

    • First item can't be JUMP (can't calculate 1st WP distance, impossible for backward jumps)
    • Can't jump to immediately adjacent WPs (pointless)
    • Can't jump beyond WP list (undefined behaviour)
    • Can only jump to geo-referenced WPs (otherwise, undefined behaviour)

Waypoints will not execute

The pilot thinks that they have loaded a waypoint mission, but the mission will not execute when the assigned switch is engaged.

  • No mission is actually loaded into the FC. Note that waypints have to be in volatile memory (that is cleared on powercycle), not in EEPROM. If waypoints have been saved to EEPROM it is necessary to restore the WPs to volatile memory before the mission can be executed.

  • The Fixed Wing aircraft is in MANUAL / PASSTHROUGH mode.

  • The craft is currently executing RTH

RTH fails to engage

  • The GPS signal is degraded (eph / epv exceed, CLI setting inav_max_eph_epv)

Diagnostics

Diagnosing arming failure and WP execution failure often requires the use of a tool external to the FC; the following may help:

  • The INAV configurator displays reasons for arming failure

  • A blackbox log provides post event diagnostics

  • The INAV CLI (available from a terminal, the configurator and many ground-stations) displays arming disabled reasons:

     # status
     ...
     Arming disabled flags: NAV HWFAIL RX CLI
    
  • A ground station may provide diagnostics, for example mwp provides an 'Arming Disabled' alert icon with 'popover' description / explanation, mission upload validation checks and 'first WP distance' exceeded warnings.

  • Video explanation via https://quadmeup.com/troubleshooting-inav-why-inav-is-not-arming/

  • Your favourite diagnostic tool / technique goes here

Postscript

For 'Navigation is unsafe', you may, of course set nav_extra_arming_safety = ALLOW_BYPASS; however there is a clue is in the name. Arming with ALLOW_BYPASS is performed by holding full right yaw whilst switch arming.

Prior to INAV 6.0, there is also nav_extra_arming_safety = OFF, which is not recommended. At least with ALLOW_BYPASS you know you've done something potentially dangerous.