1 ## Something is disabled
3 INAV may fail to perform some action as expected, typically arming or engaging waypoints. This articles documents the reasons for some of these events.
5 ## Arming disabled reasons
7 INAV will refuse to arm for the following reasons (e.g. from cli `status`):
9 | Reason (CLI Mnemonic) | Bit Mask (Hex) | Explanation |
10 | ------ | ----- | ----------- |
11 | `FS` | `00000080` | The RX is not recognised as providing a valid signal |
12 | `ANGLE` | `00000100` | The vehicle is not level as defined by the CLI `small_angle` setting |
13 | `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). |
14 | `OVRLD` | `00000400` | The CPU load is excessive. May be caused by too an aggressive loop time setting. |
15 | `NAV` | `00000800` | Where the CLI setting `nav_extra_arming_safety = ON` is used, this may be caused by reasons shown in the [table below](#navigation-unsafe-reasons) |
16 | `COMPASS` | `00001000` | The compass is not calibrated. Perform the calibration procedure |
17 | `ACC` | `00002000` | The accelerometer is not calibrated. Perform the 6 point calibration procedure |
18 | `ARMSW` | `00004000` | The arm switch was engaged as the FC booted |
19 | `HWFAIL` | `00008000`| A required hardware device has failed / is not recognised (e.g. GPS, Compass, Baro) |
20 | `BOXFS` | `00010000` | A failsafe switch is engaged |
21 | `KILLSW` | `00020000` | A kill switch is engaged |
22 | `RX` | `00040000` | The RC link is not detected (RX not detected) |
23 | `THR` | `00080000` | The throttle setting is not a minimum |
24 | `CLI` | `00100000` | The CLI is active (note: you will always /unavoidably see this when in the CLI) |
25 | `CMS` | `00200000` | The CMS menu is active |
26 | `OSD` | `00400000` | The OSD menu is active |
27 | `ROLL/PITCH` | `00800000` | Roll and/or pitch is not centred |
28 | `AUTOTRIM` | `01000000` | Servo autotrim is engaged |
29 | `OOM ` | `02000000` | The FC is out of memory |
30 | `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.|
31 | `PWMOUT` | `08000000` | PWM output error. Motor or servo output initialisation failed. |
32 | `NOPREARM` | `10000000` | PREARM is enabled and timed out |
33 | `DSHOTBEEPER` | `20000000` | DSHOTBEEPER is enabled and is active |
34 | `LANDED` | `40000000` | Landing detected. |
36 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:
39 0x184000 = 00100000 + 00080000 + 00004000 (CLI active, throttle not at minimum, arm engaged)
41 The values are correct for INAV 4.0.0 as of 2021-12.
43 ### Navigation Unsafe reasons
45 Requires that a navigation mode (which includes failsafe RTH) is configured
48 | ------------------ |
49 | The GPS has insufficient satellites (this is checked even if you disable GPS, but have a NAV mode configured in Modes tab) |
50 | A navigation switch is engaged (e.g.PH, WP, RTH) |
51 | First WP distance exceeded |
52 | Satellite quality is unacceptable: EPH/EPV > 10m (note the limit in the CLI `inav_max_eph_epv` is in cm, default 1000) |
53 | The WP mission contains an invalid JUMP sequence |
54 | 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` |
56 * `nav_wp_safe_distance` : The default is 100m (10000cm, as the value is entered in cm), 0 disables this check.
59 # get nav_wp_safe_distance
60 nav_wp_safe_distance = 10000
61 Allowed range: 0 - 65000
63 * `nav_wp_max_safe_distance` : The default is 100m, 0 disables this check. This setting is entered in metres.
66 # get nav_wp_safe_distance
67 nav_wp_safe_distance = 100
68 Allowed range: 0 - 1500
71 - First item can't be JUMP (can't calculate 1st WP distance, impossible for backward jumps)
72 - Can't jump to immediately adjacent WPs (pointless)
73 - Can't jump beyond WP list (undefined behaviour)
74 - Can only jump to geo-referenced WPs (otherwise, undefined behaviour)
76 ## Waypoints will not execute
78 The pilot *thinks* that they have loaded a waypoint mission, but the mission will not execute when the assigned switch is engaged.
80 * 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.
82 * The Fixed Wing aircraft is in `MANUAL` / `PASSTHROUGH` mode.
84 * The craft is currently executing RTH
86 ## RTH fails to engage
88 * The GPS signal is degraded (eph / epv exceed, CLI setting `inav_max_eph_epv`)
92 Diagnosing arming failure and WP execution failure often requires the use of a tool external to the FC; the following may help:
94 * The INAV configurator displays reasons for arming failure
95 * A blackbox log provides post event diagnostics
96 * The INAV CLI (available from a terminal, the configurator and many ground-stations) displays arming disabled reasons:
101 Arming disabled flags: NAV HWFAIL RX CLI
103 * A ground station may provide diagnostics, for example [mwp](https://github.com/stronnag/mwptools) provides an 'Arming Disabled' alert icon with 'popover' description / explanation, mission upload validation checks and 'first WP distance' exceeded warnings.
104 * Video explanation via https://quadmeup.com/troubleshooting-inav-why-inav-is-not-arming/
105 * **Your favourite diagnostic tool / technique goes here**
109 For 'Navigation is unsafe', you may, of course `set nav_extra_arming_safety = ALLOW_BYPASS`; however there is a clue is in the name.
110 **Arming with `ALLOW_BYPASS` is performed by holding full right yaw whilst switch arming.**
112 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.