Skip to main content

Error Codes

Found in: CLI Commands Reference

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

Arming Errors​

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

Reason (CLI Mnemonic)Bit Mask (Hex)Explanation
GEOZONE00000040Geozone is blocking armed documentation
FS00000080The RX is not recognised as providing a valid signal
ANGLE00000100The vehicle is not level as defined by the CLI small_angle setting
CAL00000200The 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).
OVRLD00000400The CPU load is excessive. May be caused by too an aggressive loop time setting.
NAV00000800Where the CLI setting nav_extra_arming_safety = ON is used, this may be caused by reasons shown in the table below
COMPASS00001000The compass is not calibrated. Perform the calibration procedure
ACC00002000The accelerometer is not calibrated. Perform the 6 point calibration procedure
ARMSW00004000The arm switch was engaged as the FC booted
HWFAIL00008000A required hardware device (Gyro, Accelerometer, Baro, Compass, RangeFinder, Pitot, GPS or OpticalFlow) has failed / is not recognized
BOXFS00010000A failsafe switch is engaged
KILLSW00020000A kill switch is engaged
RX00040000The RC link is not detected (RX not detected)
THR00080000The throttle setting is not a minimum
CLI00100000The CLI is active (note: you will always /unavoidably see this when in the CLI)
CMS00200000The CMS menu is active
OSD00400000The OSD menu is active
ROLL/PITCH00800000Roll and/or pitch is not centred
AUTOTRIM01000000Servo autotrim is engaged
OOM 02000000The FC is out of memory
SETTINGFAIL04000000A 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.
PWMOUT08000000PWM output error. Motor or servo output initialisation failed.
NOPREARM10000000PREARM is enabled and timed out
DSHOTBEEPER20000000DSHOTBEEPER is enabled and is active
LANDED40000000Landing 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.

The precondition to trigger these errors 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). Additionally check 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.