Pre-Arm Safety Checks¶
ArduPilot includes a suite of Pre-arm Safety Checks which will prevent the vehicle from arming its propulsion system if any of a fairly large number of issues are discovered before movement including missed calibration, configuration or bad sensor data. These checks help prevent crashes or fly-aways but some can also be disabled if necessary.
Warning
Never disable the arming checks (ie ARMING_CHECK not = “1”, except for bench testing. Always resolve any prearm or arming failures BEFORE attempting to fly. Doing otherwise may result in the loss of the vehicle.
Recognising which Pre-Arm Check has failed using the GCS¶
The pilot will notice a pre-arm check failure because he/she will be unable to arm the vehicle and the notification LED, if available, will be flashing yellow. To determine exactly which check has failed:
Connect the Autopilot to the ground station using a USB cable or Telemetry.
Ensure the GCS is connected to the vehicle (i.e. on Mission Planner and push the “Connect” button on the upper right).
Turn on your radio transmitter and attempt to arm the vehicle (regular procedure is using throttle down, yaw right or via an RCx_OPTION switch)
The first cause of the Pre-Arm Check failure will be displayed in red on the HUD window
Pre-arm checks that are failing will also be sent as messages to the GCS while disarmed, about every 30 seconds. If you wish to disable this and have them sent only when an attempt arm fails, then set the ARMING_OPTIONS bit 1 (value 1).
Message |
Cause |
Solution |
---|---|---|
3D Accel calibration needed |
Accelerometer calibration has not been done |
Complete the accel calibration |
Accels calibrated requires reboot |
Autopilot must be rebooted after accel calibration |
Reboot autopilot |
Accels inconsistent |
Two accelerometers are inconsistent by 0.75 m/s/s |
Re-do the accel calibration. Allow autopilot to warm-up and reboot. If failure continues replace autopilot |
ADSB out of memory |
Autopilot has run out of memory |
Disable features or replace with a higher powered autopilot |
Accels not healthy |
At least one accelerometer is not providing data |
Reboot autopilot. If failure continues replace autopilot |
AHRS: not using configured AHRS type |
EKF3 is not ready yet and vehicle is using DCM |
If indoors, go outside. Ensure good GPS lock. Check for misconfiguration of EKF (see AHRS_EKF_TYPE) |
AHRS: waiting for home |
GPS has not gotten a fix |
If indoors, go outside. Ensure compass and accelerometer calibrations have been completed. Eliminate radio-frequency sources that could interfere with the GPS |
Airspeed 1 not healthy |
Autopilot is unable to retrieve data from sensor |
Check the physical connection and configuration |
AP_Relay not available |
Parachute misconfigured |
Parachute is controlled via Relay but the relay feature is missing. Custom build server was probably used, rebuild with relay enabled |
Auxiliary authorisation refused |
External system has disallowed authorisation |
Check external authorisation system |
Batch sampling requires reboot |
Batch sampling feature requires Autopilot reboot |
Reboot autopilot or check Batch sampling configuration |
Battery below minimum arming capacity |
Battery capacity is below BATT_ARM_MAH |
Replace battery or adjust BATT_ARM_MAH |
Battery below minimum arming voltage |
Battery voltage is below BATT_ARM_VOLT |
Replace battery or adjust BATT_ARM_VOLT |
Battery capacity failsafe critical >= low |
Battery failsafe misconfiguration |
Check BATT_LOW_MAH is higher than BATT_CRT_MAH |
Battery critical capacity failsafe |
Battery capacity is below BATT_CRT_MAH |
Replace battery or adjust BATT_CRT_MAH |
Battery critical voltage failsafe |
Battery voltage is below BATT_CRT_VOLT |
Replace battery or adjust BATT_CRT_VOLT |
Battery low capacity failsafe |
Battery capacity is below BATT_LOW_MAH |
Replace battery or adjust BATT_LOW_MAH |
Battery low voltage failsafe |
Battery voltage is below BATT_LOW_VOLT |
Replace battery or adjust BATT_LOW_VOLT |
Battery unhealthy |
Battery is not providing data |
Check battery monitors physical connect and configuration |
Battery voltage failsafe critical >= low |
Battery failsafe misconfiguration |
Check BATT_LOW_VOLT is higher than BATT_CRT_VOLT |
BendyRuler OA requires reboot |
Object avoidance config change requires reboot |
Reboot autopilot. See Object Avoidance configuration |
Board (Xv) out of range 4.3-5.8v |
Board voltage below BRD_VBUS_MIN or too high |
Check power supply. If powering via USB plug in a battery or replace USB cable |
BTN_PINx=y invalid |
Button misconfigured |
BTNx_PIN is set to an invalid value. Check Button setup instructions |
BTN_PINx=y, set SERVOz_FUNCTION=-1 |
Button misconfigured |
Set SERVOz_FUNCTION to -1 |
Can’t check rally without position |
EKF does not have a position estimate yet |
Wait or move to location with better GPS reception |
Check fence |
Fence feature has failed to be initialised |
Reboot autopilot |
Check mag field (xy diff:x>875) |
Compass horiz field strength is too large or small |
Relocate vehicle away from metal in the environment. Move compass away from metal in the frame. repeat compass calibration. Disable internal compass. |
Check mag field (z diff:x>875) |
Compass vert field strength is too large or small |
Relocate vehicle away from metal in the environment. Move compass away from metal in the frame. repeat compass calibration. Disable internal compass. |
Check mag field: x, max y, min z |
Compass field strength is too large or small |
Relocate vehicle away from metal in the environment. Move compass away from metal in the frame. repeat compass calibration. Disable internal compass. |
Chute has no channel |
Parachute misconfigured |
Parachute is controlled using PWM but no servo output function has been configured (e.g. need SERVOx_FUNCTION = 27). see Parachute setup instructions |
Chute has no relay |
Parachute misconfigured |
Parachute is controlled via Relay but no relay output has been configured. see Parachute setup instructions |
Chute is released |
Parachute has been released |
Reboot autopilot |
Compass calibrated requires reboot |
Autopilot must be rebooted after compass cal |
Reboot autopilot |
Compass calibration running |
Compass calibration is running |
Complete or cancel the compass calibration |
Compass not healthy |
At least one compass is not providing data |
Check compass’s connection to autopilot and configuration |
Compass offsets too high |
Compass offset params are too large |
Relocate compass away from metal in the frame and repeat compass calibration. Disable internal compass. Increase COMPASS_OFFS_MAX. |
Compasses inconsistent |
Two compasses angles or field strength disagree |
Check compass orientations (e.g. COMPASS_ORIENT). Move compass away from metal in the frame. repeat compass calibration. Disable internal compass. |
CrashDump data detected |
Crash Dump data has been logged |
A CPU crash has occurred and data logged. Plane is probably unsafe to fly! See CRASH DUMP |
Dijkstra OA requires reboot |
Object avoidance config change requires reboot |
Reboot autopilot. See Object Avoidance configuration |
Disarm Switch on |
Disarm auxiliary switch is in the high position |
Move Disarm switch to the low position or check auxiliary functions setup |
Downloading logs |
Vehicle cannot be armed while logs are downloading |
Wait until logs are downloaded, cancel download or reboot autopilot |
DroneCAN: Duplicate Node x../y! |
DroneCAN sees same node ids used by two devices |
Clear DroneCAN DNS server by setting CAN_D1_UC_OPTION = 1 and reboot |
DroneCAN: Failed to access storage! |
Possible hardware issue |
Reboot autopilot |
DroneCAN: Failed to add Node x! |
DroneCAN could not init connection to a device |
Check sensor’s physical connection and power supply |
DroneCAN: Node x unhealthy! |
A DroneCAN device is not providing data |
Check sensor’s physical connection and power supply |
Duplicate Aux Switch Options |
Two auxiliary function switches for same feature |
Check auxiliary function setup. Check for RCx_OPTION parameters with same values |
EKF3 Roll/Pitch inconsistent by x degs |
Roll or Pitch lean angle estimates are inconsistent |
Normally due to EKF3 not getting good enough GPS accuracy, but could be due to other sensors producing errors. Go outdoors, wait or reboot autopilot. |
EKF3 waiting for GPS config data |
automatic GPS configuration has not completed |
Check GPS connection and configuration especially if using DroneCAN GPS |
EKF3 Yaw inconsistent by x degs |
Yaw angle estimates are inconsistent |
Wait or reboot autopilot |
Failed to open mission.stg |
Failed to load mission from SD Card |
Check SD card. Try to re-save mission to SD card |
Fence requires position |
If fences are enabled, position estimate required |
Wait or move vehicle to a location with a clear view of the sky. Reduce sources of radio-frequency interference |
FENCE_ALT_MAX < FENCE_ALT_MIN |
FENCE_ALT_MAX must be greater than FENCE_ALT_MIN |
Increase FENCE_ALT_MAX or lower FENCE_ALT_MIN |
FENCE_MARGIN is less than FENCE_RADIUS |
FENCE_MARGIN must be larger than FENCE_RADIUS |
Increase FENCE_RADIUS or reduce FENCE_MARGIN |
FENCE_MARGIN too big |
FENCE_ALT_MAX - FENCE_ALT_MIN < 2x FENCE_MARGIN |
Decrease FENCE_MARGIN or increase difference between FENCE_ALT_MAX and FENCE_ALT_MIN |
Fences enabled, but none selected |
Fences are enabled but none are defined |
Disable some or all fences using FENCE_ENABLE or FENCE_TYPE or define the missing fences |
Fences invalid |
Polygon fence is invalid |
Check polygon fence does not have overlapping lines |
FETtec: Invalid motor mask |
FETtec misconfiguration |
|
FETtec: Invalid pole count x |
FETtec misconfiguration |
|
FETtec: No uart |
FETtec misconfiguration |
|
FETtec: Not initialised |
FETtec ESCs are not communicating with autopilot |
|
FETtec: x of y ESCs are not running |
FETtec ESCs are not spinning |
|
FETtec: x of y ESCs are not sending telem |
FETtec ESCs are not communicating with autopilot |
|
FFT calibrating noise |
FFT Harmonic Notch analysis has not completed |
Wait until In-Flight FFT analysis completes |
FFT config MAXHZ xHz > yHz |
FFT Harmonic Notch misconfiguration |
See In-Flight FFT Harmonic Notch Setup completes |
FFT self-test failed, max error Hz |
FFT Harmonic Notch failed |
See In-Flight FFT Harmonic Notch Setup completes |
FFT still analyzing |
FFT Harmonic Notch analysis has not completed |
Wait until In-Flight FFT analysis completes |
FFT: calibrated xHz/xHz/xHz |
FFT Harmonic Notch issue |
See In-Flight FFT Harmonic Notch Setup completes |
FFT: resolution is xHz, increase length |
FFT Harmonic Notch misconfiguration |
See In-Flight FFT Harmonic Notch Setup completes |
Generator: Not healthy |
Generator is not communicating with autopilot |
Check generator configuration |
Generator: No backend driver |
Firmware does not include seelected generator |
Build version of firmware with desired generator using custom.ardupilot.org |
GPS and AHRS differ by Xm |
GPS and EKF positions differ by at least 10m |
Wait until GPS quality improves. Move vehicle to a location with a clear view of the sky. Reduce sources of radio-frequency interference |
GPS blending unhealthy |
At least one GPS is not providing good data |
Move vehicle to a location with a clear view of the sky. Reduce sources of radio-frequency interference. Check GPS blending configuration |
GPS Node x not set as instance y |
DroneCan GPS configuration error |
Check GPS1_CAN_NODEID and GPS2_CAN_NODEID |
GPS positions differ by Xm |
Two GPSs reported positions differ by 50m or more |
Wait until GPS quality improves. Move vehicle to a location with a clear view of the sky. Reduce sources of radio-frequency interference |
GPS x still configuring this GPS |
Automatic GPS configuration has not completed |
Wait until configuration completes. Check GPS connection and configuration especially if using DroneCAN GPS |
GPS x: Bad fix |
GPS does not have a good lock |
Move vehicle to a location with a clear view of the sky. Reduce sources of radio-frequency interference |
GPS x: not healthy |
GPS is not providing data |
Check GPSs physical connection to autopilot and configuration |
GPS x: primary but TYPE 0 |
Primary GPS has not been configured |
Check GPS_PRIMARY and confirm corresponding GPS1_TYPE or GPS2_TYPE matches type of GPS used |
GPS x: was not found |
GPS disconnected or incorrectly configured |
Check GPSs physical connection to autopilot and configuration |
GPSx yaw not available |
GPS-for-yaw configured but not working |
Move to location with better GPS reception. Check GPS-for-yaw configuration |
Gyros inconsistent |
Two gyros are inconsistent by at least 5 deg/sec |
Reboot autopilot and hold vehicle still until gyro calibration completes. Allow autopilot to warm-up and reboot. If failure continues replace autopilot |
Gyros not calibrated |
Gyro calibration normally run at startup failed |
Reboot autopilot and hold vehicle still until gyro calibration completes |
Gyros not healthy |
At least one gyro is not providing data |
Reboot autopilot. If failure continues replace autopilot |
Hardware safety switch |
Hardware safety switch has not been pushed |
Push safety switch (normally on top of GPS) or disable by setting BRD_SAFETY_DEFLT to zero and reboot autopilot |
heater temp low (x < 45) |
Board heater temp is below BRD_HEAT_TARG |
Wait for board to heat up. Target temperature can be adjust using BRD_HEAT_TARG |
In OSD menu |
OSD is being configured |
Complete OSD configuration. Check OSD configuration |
Internal errors 0x%x l:%u %s |
An internal error has occurred |
Reboot the autopilot. Report error to the development team |
Invalid FENCE_ALT_MAX value |
FENCE_ALT_MAX must be positive |
Increase FENCE_ALT_MAX |
Invalid FENCE_ALT_MIN value |
FENCE_ALT_MIN must be higher than -100 |
Increase FENCE_ALT_MIN |
Invalid FENCE_MARGIN value |
FENCE_MARGIN must be positive |
Increase FENCE_MARGIN |
Invalid FENCE_RADIUS value |
FENCE_RADIUS must be positive |
Increase FENCE_RADIUS |
Logging failed |
Logs could not be written. Maybe hardware failure |
Reboot autopilot. Replace autopilot |
Logging not started |
Logs could not be written. Maybe hardware failure |
Reboot autopilot. Replace autopilot |
Main loop slow (xHz < 400Hz) |
Autopilot’s CPU is overloaded |
Wait to see if the error is temporary. Disable features or replace with a higher powered autopilot. Reduce SCHED_LOOP_RATE |
Margin is less than inclusion circle radius |
A circular fence has radius below FENCE_MARGIN |
Increase the size of the circular fence involved or decrease FENCE_MARGIN |
memory low for auxiliary authorisation |
Autopilot has run out of memory |
Disable features or replace with a higher powered autopilot |
Missing mission item: do land start |
Auto mission needs a DO_LAND_START command |
Add a DO_LAND_START command to the mission or adjust the ARMING_MIS_ITEMS parameter |
Missing mission item: land |
Auto mission needs a LAND command |
Add a LAND command to the mission or adjust the ARMING_MIS_ITEMS parameter |
Missing mission item: RTL |
Auto mission needs an RTL command |
Add an RTL command to the mission or adjust the ARMING_MIS_ITEMS parameter |
Missing mission item: takeoff |
Auto mission needs a TAKEOFF command |
Add a TAKEOFF command to the mission or adjust the ARMING_MIS_ITEMS parameter |
Missing mission item: vtol land |
Auto mission needs a VTOL_LAND command |
Add a VTOL_LAND command to the mission or adjust the ARMING_MIS_ITEMS parameter |
Missing mission item: vtol takeoff |
Auto mission needs a VTOL_TAKEOFF command |
Add a VTOL_TAKEOFF command to the mission or adjust the ARMING_MIS_ITEMS parameter |
Mode channel and RCx_OPTION conflict |
RC flight mode switch also used for an aux function |
Change FLTMODE_CH (or MODE_CH for Rover) or RCx_OPTION to remove conflict |
Mode requires mission |
Attempting to arm in Auto mode but no mission |
Arm in an other mode or create and upload an Auto mission |
Motors Emergency Stopped |
Motors emergency stopped |
Release emergency stop. See auxiliary functions |
Mount: check TYPE |
Mount (aka camera gimbal) misconfiguration |
Check MNT1_TYPE is valid. Check Gimbal configuration |
Mount: not healthy |
Mount is not communicating with autopilot |
Check physical connection between autopilot and gimbal and check Gimbal configuration |
Multiple SERIAL ports configured for RC input |
RC misconfiguration |
|
No mission library present |
Auto mission feature has been disabled |
Custom build server was probably used to produce the firmware without auto missions. Rebuild with auto missions enabled |
No rally library present |
Rally point feature has been disabled |
Custom build server was probably used to produce the firmware without rally point. Rebuild with Rally points included |
No SD card |
SD card is corrupted or missing |
Format or replace SD card |
No sufficiently close rally point located |
Rally points are further than RALLY_LIMIT_KM |
Move rally points closer to vehicle’s current location or increase RALLY_LIMIT_KM |
OA requires reboot |
Object avoidance config change requires reboot |
Reboot autopilot. See Object Avoidance configuration |
OpenDroneID: ARM_STATUS not available |
OpenDroneID misconfiguration |
|
OpenDroneID: operator location must be set |
Operator location is not available |
|
OpenDroneID: SYSTEM not available |
OpenDroneID misconfiguration |
|
OpenDroneID: UA_TYPE required in BasicID |
OpenDroneID misconfiguration |
|
OSD_TYPE2 not compatible with first OSD |
OSD1 and OSD2 configurations are incompatible |
Disable 2nd OSD (set OSD_TYPE2 to zero) or check OSD configuration |
Param storage failed |
Eeprom hardware failure |
Check power supply or replace autopilot |
parameter storage full |
Eeprom storage full |
Save params. Reset to defaults. Reload saved parameters. |
PiccoloCAN: Servo x not detected |
PiccoloCAN misconfiguration or servo issue |
|
Pin x disabled (ISR flood) |
Sensor connected to GPIO pin is rapidly changing |
Check sensor attached to specified pin |
Pitch (RCx) is not neutral |
RC transmitter’s pitch stick is not centered |
Move RC pitch stick to center or repeat radio calibration |
Pitch radio max too low |
RC pitch channel max below 1700 |
Repeat the radio calibration procedure or increase RC2_MAX above 1700 |
Pitch radio min too high |
RC pitch channel min above 1300 |
Repeat the radio calibration procedure or reduce RC2_MIN below 1300 |
PRXx: No Data |
Proximity sensor is not providing data |
Check proximity sensor physical connection and configuration |
PRXx: Not Connected |
Proximity sensor is not providing data |
Check proximity sensor physical connection and configuration |
Radio failsafe on |
RC failsafe has triggered |
Turn on RC transmitter or check RC failsafe configuration |
Rangefinder x: Not Connected |
Rangefinder is not providing data |
Check rangefinder’s physical connection to autopilot and configuration |
Rangefinder x: Not Detected |
Rangefinder is not providing data |
Check rangefinder’s physical connection to autopilot and configuration |
RC calibrating |
RC calibration is in progress |
Complete the radio calibration procedure |
RC not calibrated |
RC calibration has not been done |
Complete the radio calibration. RC3_MIN and RC3_MAX must have been changed from their default values (1100 and 1900), and for channels 1 to 4, MIN value must be 1300 or less, and MAX value 1700 or more. |
RC not found |
RC failsafe enabled but no RC signal |
Turn on RC transmitter or check RC transmitters connection to autopilot. If operating with only a GCS, see Operation Using Only a Ground Control Station (GCS) |
RCx_MAX is less than RCx_TRIM |
RC misconfiguration |
Adjust RCx_TRIM to be lower than RCx_MAX or repeat radio calibration |
RCx_MIN is greater than RCx_TRIM |
RC misconfiguration |
Adjust RCx_TRIM to be higher than RCx_MIN or repeat radio calibration |
RELAYx_PIN=y invalid |
Relay misconfigured |
RELAYx_PIN is set to an invalid value. Check Relay setup instructions |
RELAYx_PIN=y, set SERVx_FUNCTION=-1 |
Relay misconfigured |
Set SERVOx_FUNCTION to -1 |
RNGFNDx_PIN not set |
Rangefinder misconfigured |
Set RNGFNDx_PIN to a non-zero value. See rangefinder configuration |
RNGFNDx_PIN=y invalid |
Rangefinder misconfigured |
RNGFNDx_PIN is set to an invalid value. Check rangefinder configuration |
RNGFNDx_PIN=y, set SERVOx_FUNCTION=-1 |
Rangefinder misconfigured |
Set SERVOx_FUNCTION to -1 |
Roll (RCx) is not neutral |
RC transmitter’s roll stick is not centered |
Move RC roll stick to center or repeat radio calibration |
Roll radio max too low |
RC roll channel max below 1700 |
Repeat the radio calibration procedure or increase RC1_MAX above 1700 |
Roll radio min too high |
RC roll channel min above 1300 |
Repeat the radio calibration procedure or reduce RC1_MIN below 1300 |
RPMx_PIN not set |
RPM sensor misconfigured |
Check RPMx_PIN value. Check RPM setup instructions |
RPMx_PIN=y invalid |
RPM sensor misconfigured |
RPMx_PIN is set to an invalid value. Check RPM setup instructions |
RPMx_PIN=y, set SERVOx_FUNCTION=-1 |
RPM sensor misconfigured |
Set SERVOz_FUNCTION to -1 |
Same Node Id x set for multiple GPS |
DroneCan GPS configuration error |
Check GPS1_CAN_NODEID and GPS2_CAN_NODEID are different. Set one to zero and reboot autopilot |
Same rfnd on different CAN ports |
Two rangefinders appearing on different CAN ports |
Check USD1, TOFSensP, NanoRadar or Benewake setup instructions |
Scripting: loaded CRC incorrect want: x |
Script has incorrect CRC |
Replace Lua script with expected version |
Scripting: running CRC incorrect want: x |
Script has incorrect CRC |
Replace Lua script with expected version |
Scripting: xxx failed to start |
A Lua script failed to start |
Autopilot out of memory or Lua script misconfiguration. See Lua scripts |
Scripting: xxx out of memory |
A Lua script ran out of memory |
Increase SCR_HEAP_SIZE or check Lua script configuration |
Servo voltage to low (Xv < 4.3v) |
Servo rail voltage below 4.3V |
Check power supply to rear servo rail |
SERVOx_FUNCTION=y on disabled channel |
PWM output misconfigured |
SERVOx_FUNCTION is set for a servo output that has been disabled. See BLHeli setup |
SERVOx_MAX is less than SERVOx_TRIM |
PWM output misconfigured |
Set SERVOx_TRIM to be lower than SERVOx_MAX |
SERVOx_MIN is greater than SERVOx_TRIM |
PWM output misconfigured |
Set SERVOx_TRIM to be higher than SERVOx_MIN |
temperature cal running |
Temperature calibration is running |
Wait until temp calibration completes or reboot autopilot |
terrain disabled |
Auto mission uses terrain but terrain disabled |
Enable the terrain database (set TERRAIN_ENABLE = 1) or remove auto mission items that use terrain altitudes. For Copters also check RTL_ALT_TYPE. |
Terrain out of memory |
Autopilot has run out of memory |
Disable features or replace with a higher powered autopilot |
Throttle (RCx) is not neutral |
RC transmitter’s throttle stick is too high |
Lower throttle stick or repeat radio calibration |
Throttle radio max too low |
RC throttle channel max below 1700 |
Repeat the radio calibration procedure or increase RC2_MAX above 1700 |
Throttle radio min too high |
RC throttle channel min above 1300 |
Repeat the radio calibration procedure or reduce RC1_MIN below 1300 |
Too many auxiliary authorisers |
More than 3 external systems controlling arming |
Check external authorisation system |
vehicle outside fence |
Vehicle is outside the fence |
Move vehicle within the fence |
VisOdom: not healthy |
VisualOdometry sensor is not providing data |
Check visual odometry physical connection and configuration |
VisOdom: out of memory |
Autopilot has run out of memory |
Disable features or replace with a higher powered autopilot |
VTOL Fwd Throttle iz not zero |
RC transmitter’s VTOL Fwd throttle stick is high |
Lower VTOL Fwd throttle stick or repeat radio calibration |
waiting for terrain data |
Waiting for GCS to provide required terrain data |
Wait or move to location with better GPS reception |
Yaw (RCx) is not neutral |
RC transmitter’s yaw stick is not centered |
Move RC yaw stick to center or repeat radio calibration |
Yaw radio max too low |
RC yaw channel max below 1700 |
Repeat the radio calibration procedure or increase RC2_MAX above 1700 |
Yaw radio min too high |
RC yaw channel min above 1300 |
Repeat the radio calibration procedure or reduce RC1_MIN below 1300 |
Message |
Cause |
Solution |
---|---|---|
ADSB threat detected |
ADSB failsafe. Manned vehicles nearby |
|
AHRS not healthy |
AHRS/EKF is not yet ready |
Wait. Reboot autopilot |
Altitude disparity |
Barometer and EKF altitudes differ by at least 1m |
Wait for EKF altitude to stabilise. Reboot autopilot |
Auto mode not armable |
Vehicle cannot be armed in Auto mode |
Switch to another mode (like Loiter) or set RTL_OPTIONS = 3. See Auto mode |
Bad parameter: ATC_ANG_PIT_P must be > 0 |
Attitude controller misconfiguration |
Increase specified parameter value to be above zero. See Tuning Process Instructions |
Bad parameter: PSC_POSXY_P must be > 0 |
Position controller misconfiguration |
Increase specified parameter value to be above zero. See Tuning Process Instructions |
Battery failsafe |
Battery failsafe has triggered |
Plug in battery and check its voltage and capacity. See ref:battery failsafe configuration <failsafe-battery> |
Check ACRO_BAL_ROLL/PITCH |
ACRO_BAL_ROLL or ACRO_BAL_PITCH too high |
Reduce ACRO_BAL_ROLL below ATC_ANG_RLL_P and/or ACRO_BAL_PITCH below ATC_ANG_PIT_P. See Acro mode |
Check ANGLE_MAX |
ANGLE_MAX set too high |
Reduce ANGLE_MAX to 8000 (e.g. 80 degrees) or lower |
Check FS_THR_VALUE |
RC failsafe misconfiguration |
Set FS_THR_VALUE between 910 and RC throttle’s min (e.g RC3_MIN. See ref:battery failsafe configuration <failsafe-battery> |
Check PILOT_SPEED_UP |
PILOT_SPEED_UP set too low |
Increase PILOT_SPEED_UP to a positive number (e.g. 100 = 1m/s). See AltHold mode |
Collective below failsafe (TradHeli only) |
RC collective input is below FS_THR_VALUE |
Turn on RC transmitter or check FS_THR_VALUE. Check RC failsafe setup |
EKF attitude is bad |
EKF does not have a good attitude estimate |
Wait for EKF attitude to stabilize. Reboot autopilot. Replace autopilot |
EKF compass variance |
Compass direction appears incorrect |
Relocate vehicle away from metal in the environment. Move compass away from metal in the frame. repeat compass calibration. Disable internal compass. |
EKF height variance |
Barometer values are unstable or high vibration |
Wait. Measure vibration and add vibration isolation |
EKF position variance |
GPS position is unstable |
Wait. If indoors, go outside. Eliminate radio-frequency sources that could interfere with the GPS |
EKF velocity variance |
GPS or optical flow velocities are unstable |
Wait. If indoors, go outside. Eliminate radio-frequency sources that could interfere with the GPS. Check optical flow calibration |
Fence enabled, need position estimate |
Fence is enabled so need a position estimate |
Wait. If indoors, go outside. Ensure compass and accelerometer calibrations have been completed. Eliminate radio-frequency sources that could interfere with the GPS. See Fence configuration |
FS_GCS_ENABLE=2 removed, see FS_OPTIONS |
GCS failsafe misconfiguration |
Set FS_GCS_ENABLE = 1 and check FS_OPTIONS parameter. See ref:GCS Failsafe configuration<gcs-failsafe> |
GCS failsafe on |
GCS failsafe has triggered |
Check telemetry connection. See ref:GCS Failsafe configuration<gcs-failsafe> |
GPS glitching |
GPS position is unstable |
Wait. If indoors, go outside. Eliminate radio-frequency sources that could interfere with the GPS |
High GPS HDOP |
GPS horizontal quality too low |
Wait or move to location with better GPS reception. You may raise GPS_HDOP_GOOD but this is rarely a good idea |
Home too far from EKF origin |
Home is more than 50km from EKF origin |
Reboot autopilot to reset EKF origin to current Location |
Interlock/E-Stop Conflict (TradHeli only) |
Incompatible auxiliary function switch configured |
Remove Interlock, E-Stop or Emergency Stop from auxiliary function setup |
Invalid MultiCopter FRAME_CLASS |
FRAME_CLASS parameter misconfigured |
Multicopter firmware loaded but FRAME_CLASS set to helicopter. Load helicopter firmware or change FRAME_CLASS |
Inverted flight option not supported |
Inverted flight auxiliary function not supported |
Remove auxiliary function switch for inverted flight |
Leaning |
Vehicle is leaning more than ANGLE_MAX |
Level vehicle |
Motor Interlock Enabled |
Motor Interlock in middle or high position |
Move motor interlock auxiliary function switch to low position |
Motor Interlock not configured |
Helicopters require motor interlock be configured |
Enable the motor interlock auxiliary function switch |
Motors: Check frame class and type |
Unknown or misconfigured frame class or type |
Enter valid frame class and/or type |
Motors: Check MOT_PWM_MIN and MOT_PWM_MAX |
MOT_PWM_MIN or MOT_PWM_MAX misconfigured |
Set MOT_PWM_MIN = 1000 and MOT_PWM_MAX = 2000 and repeat the ESC calibration |
Motors: MOT_SPIN_ARM > MOT_SPIN_MIN |
MOT_SPIN_ARM is too high or MOT_SPIN_MIN is too low |
Reducse MOT_SPIN_ARM to below MOT_SPIN_MIN. See Seting motor range |
Motors: MOT_SPIN_MIN too high x > 0.3 |
MOT_SPIN_MIN parameter value is too high |
Reduce MOT_SPIN_MIN to below 0.3. See Setting motor range |
Motors: no SERVOx_FUNCTION set to MotorX |
At least one motor output has not been configured |
Check SERVOx_FUNCTION values for “Motor1”, “Motor2”, etc. Check ESC and motor configuration |
Need Alt Estimate |
EKF has not yet calculated the altitude |
Wait. Allow autopilot to heat up. Ensure accelerometer calibration has been done. |
Need Position Estimate |
EKF does not have a position estimate |
Wait. If indoors, go outside. Ensure compass and accelerometer calibrations have been completed. Eliminate radio-frequency sources that could interfere with the GPS |
Proximity x deg, ym (want > Zm) |
Obstacles too close to vehicle |
Move obstacles away from vehicle or check sensor. See proximity sensor configuration |
RTL mode not armable |
Vehicle cannot be armed in RTL mode |
Switch to another flight mode |
RTL_ALT_TYPE is above-terrain but no rangefinder |
RTL uses rangefinder but rangefinder unavailable |
Check rangefinder configuration including RNGFNDx_ORIENT=251 |
RTL_ALT_TYPE is above-terrain but no terrain data |
RTL uses terrain but Terrain database unavailable |
Set TERRAIN_ENABLE = 1. See Terrain Following |
RTL_ALT_TYPE is above-terrain but RTL_ALT>RNGFND_MAX_CM |
RTL return altitude above rangefinder range |
Reduce RTL_ALT to less than RNGFNDx_MAX_CM. See Terrain Following |
Safety Switch |
Hardware safety switch has not been pushed |
Push safety switch (normally on top of GPS) or disable by setting BRD_SAFETY_DEFLT to zero and reboot autopilot |
Throttle below failsafe |
RC throttle input is below FS_THR_VALUE |
Turn on RC transmitter or check FS_THR_VALUE. Check RC failsafe setup |
Vehicle too far from EKF origin |
Vehicle is more than 50km from EKF origin |
Reboot autopilot to reset EKF origin to current Location |
winch unhealthy |
Winch is not communicating with autopilot |
Check winch’s physical connection and configuration |
Other Failure messages¶
Failsafes:¶
Any failsafe (RC, Battery, GCS,etc.) will display a message and prevent arming.
Barometer failures:¶
Baro not healthy : the barometer sensor is reporting that it is unhealthy which is normally a sign of a hardware failure.
Alt disparity : the barometer altitude disagrees with the inertial navigation (i.e. Baro + Accelerometer) altitude estimate by more than 1 meters. This message is normally short-lived and can occur when the autopilot is first plugged in or if it receives a hard jolt (i.e. dropped suddenly). If it does not clear the accelerometers may need to be calibrated or there may be a barometer hardware issue.
Compass failures:¶
Compass not healthy : the compass sensor is reporting that it is unhealthy which is a sign of a hardware failure.
Compass not calibrated : the compass(es) has not been calibrated. the
COMPASS_OFS_X, _Y, _Z
parameters are zero or the number or type of
compasses connected has been changed since the last compass calibration
was performed.
Compass offsets too high : the primary compass’s offsets length (i.e. sqrt(x^2+y^2+z^2)) are larger than 500. This can be caused by metal objects being placed too close to the compass. If only an internal compass is being used (not recommended), it may simply be the metal in the board that is causing the large offsets and this may not actually be a problem in which case you may wish to disable the compass check.
Check mag field : This can result from failing two different checks. First, the sensed magnetic field in the area is 35% higher or lower than the expected value. The expected length is 530 so it’s > 874 or < 185. Also, besides this rough check, when the vehicle’s position has been obtained (GPS lock), another check against the field strength predicted using the internal World Magnetic Field database is done with much tighter limits. If you are failing this, either the compass calibration has not calculated good offsets and calibration should be repeated, or your vehicle is near a large metallic or magnetic disturbance and will need to be relocated.
Compasses inconsistent : the internal and external compasses are pointing in different directions (off by >45 degrees). This is normally caused by the external compasses orientation (i.e. COMPASS_ORIENT parameter) being set incorrectly.
INS checks (i.e. Acclerometer and Gyro checks):¶
INS not calibrated: some or all of the accelerometer’s offsets are zero. The accelerometers need to be calibrated.
Accels not healthy: one of the accelerometers is reporting it is not healthy which could be a hardware issue. This can also occur immediately after a firmware update before the board has been restarted.
Accels inconsistent: the accelerometers are reporting accelerations which are different by at least 1m/s/s. The accelerometers need to be re-calibrated or there is a hardware issue.
Gyros not healthy: one of the gyroscopes is reporting it is unhealthy which is likely a hardware issue. This can also occur immediately after a firmware update before the board has been restarted.
Gyro cal failed: the gyro calibration failed to capture offsets. This is most often caused by the vehicle being moved during the gyro calibration (when red and blue lights are flashing) in which case unplugging the battery and plugging it in again while being careful not to jostle the vehicle will likely resolve the issue. Sensors hardware failures (i.e. spikes) can also cause this failure.
Gyros inconsistent: two gyroscopes are reporting vehicle rotation rates that differ by more than 20deg/sec. This is likely a hardware failure or caused by a bad gyro calibration.
Board Voltage checks:¶
Check Board Voltage: the board’s internal voltage is below 4.3 Volts or above 5.8 Volts.
If powered through a USB cable (i.e. while on the bench) this can be caused by the desktop computer being unable to provide sufficient current to the autopilot - try replacing the USB cable.
If powered from a battery this is a serious problem and the power system (i.e. Power Module, battery, etc) should be carefully checked before flying.
Parameter checks:¶
Ch7&Ch8 Opt cannot be same: Auxiliary Function Switches are set to the same option which is not permitted because it could lead to confusion.
Check FS_THR_VALUE: the radio failsafe pwm value has been set too close to the throttle channels (i.e. ch3) minimum.
Check ANGLE_MAX: the ANGLE_MAX parameter which controls the vehicle’s maximum lean angle has been set below 10 degrees (i.e. 1000) or above 80 degrees (i.e. 8000).
ACRO_BAL_ROLL/PITCH: the ACRO_BAL_ROLL parameter is higher than the Stabilize Roll P and/or ACRO_BAL_PITCH parameter is higher than the Stabilize Pitch P value. This could lead to the pilot being unable to control the lean angle in ACRO mode because the Acro Trainer stabilization would overpower the pilot’s input.
Battery/Power Monitor:¶
If a power monitor voltage is below its failsafe low or critical voltages or failsafe remaining capacity low or critical set points, this check will fail and indicate which set point it is below. It will also fail if these set points are inverted, ie critical point is higher than low point. See Battery Failsafe for Copter, Plane Failsafe Function for Plane, or Failsafes for Rover for more information on these.
In addition, minimum arming voltage and remaining capacity parameters for each battery/power monitor can be set, for example BATT_ARM_VOLT and BATT_ARM_MAH for the first battery, to provide a check that the battery is not only above failsafe levels, but also has enough capacity for operation.
Airspeed:¶
If an airspeed sensor is configured, and it is not providing a reading or failed to calibrate, this check will fail.
Airspeed not healthy
Logging:¶
Logging failed: Logging pre-armed was enabled but failed to write to the log.
No SD Card: Logging is enabled, but no SD card is detected.
Safety Switch:¶
Hardware safety switch: Hardware safety switch has not been pushed.
System:¶
Param storage failed: A check of reading the parameter storage area failed.
Internal errors (0xx): An internal error has occurred. Report to ArduPilot development team here
KDECAN Failed: KDECAN system failure.
DroneCAN Failed: DroneCAN system failure.
Mission:¶
See ARMING_MIS_ITEMS
No mission library present: Mission checking is enabled, but no mission is loaded.
No rally library present: Rally point checking is enabled, but no rally points loaded.
Missing mission item: xxxx: A required mission items is missing.
Rangefinder:¶
IF a rangefinder has been configured, a reporting error has occurred.
Disabling the Pre-arm Safety Check¶
Warning
Disabling pre-arm safety checks is not recommended. The cause of the pre-arm failure should be corrected before operation of the vehicle if at all possible. If you are confident that the pre-arm check failure is not a real problem, it is possible to disable a failing check.
Arming checks can be individually disabled by setting the ARMING_CHECK parameter to something other than 1. Setting to 0 completely removes all pre-arm checks. For example, setting to 4 only checks that the GPS has lock.
This can also be configured using Mission Planner:
Connecting your Autopilot to the Mission Planner
Go to Mission Planner’s Config/Tuning >> Standard Params screen
set the Arming Check drop-down to “Disabled” or one of the “Skip” options which more effectively skips the item causing the failure.
Push the “Write Params” button