Skip to main content

Arming Sequence & Safety

Switch arming

The AUX channel configured for arming will choose a default value that falls outside of the configured arm range (as configured in the "Modes" configurator tab), this value is either 1 "step" (25us) above or below the configured range. This is a safety feature to ensure the default value would not cause accidental arming.

Note that this default value is overwritten by the first values data from the receiver, therefore bad RX initial states or failsafe settings can still cause issues.

Arming Prevention

Betaflight 3.2 (and above) includes more detailed troubleshooting information for the case when a craft will not arm.

This information is available via:

  • the CLI
  • Betaflight OSD
  • beep patterns
  • Betaflight Configurator

Several of these conditions are to assist in preventing accidental arming via bad radio system configuration, unreliable/poor quality receivers and user mistakes.

These reasons for not arming are encoded as a set of flags (see runtime_config.h).


Flags can be viewed via the status command.

Some targets with limited flash space will only provide the hexadecimal representation of these flags, in which case the active flags must be derived from the armingDisableFlags_e enum in runtime_config.h (ensure the version of the file you are looking at matches that of your firmware).


When arming is attempted and fails, if a beeper is connected to the flight controller it will emit a warning signal indicating the most important (lowest number) reason why disarming is disabled.

The signal is as follows:

  • five short 'attention' beeps;
  • a number of long beeps (may be 0);
  • a number of short beeps with long intervals (may be 0).

The arming prevention condition that is active can be calculated as (5 * <number of long beeps>) + <number of short beeps>. For example:

  • 1 long and 2 short beeps = 7
  • 2 long beeps = 10

Description of arming prevention flags

What each flag means and what you should do to (probably) fix the issue.

This list should be kept up to date with the code in master (armingDisableFlags_e in src/main/fc/runtime_config.h) so can be used to find what flag corresponds to a certain index, however if you run an older version you'd have to check this manually as mentioned above.

NameDescriptionBeep codeRequired Actions
NOGYROA gyro was not detected111111You may have a hardware failure, if a previous firmware version works then it may be a firmware issue. Or you might have flashed a wrong target.
FAILSAFEFailsafe is active222222Rectify the failure condition and try again.
RXLOSS(1) or RX_FAILSAFENo valid receiver signal is detected333333Your receiver is either faulty or has no link to the transmitter.
BADRX(1)Your receiver has just recovered from receiver failsafe but the arm switch is on444444Switch the arm switch off.
BOXFAILSAFEThe 'FAILSAFE' switch was activated555555See FAILSAFE
RUNAWAYRunway Takeoff Prevention has been triggered 66666Disarm to clear this condition.
CRASHCrash Recovery has been triggered 77Disarm to clear this condition.
THROTTLEThrottle channel is too high677788Lower throttle below min_check.
ANGLECraft is not level (enough)788899Level craft to within small_angle degrees (default 25).
BOOTGRACEArming too soon after power on899101010Wait until pwr_on_arm_grace seconds (default 5) have elapsed.
NOPREARMPrearm switch is not activated or prearm has not been toggled after disarm91010101111Toggle the prearm switch.
LOADSystem load is too high for safe flight101111111212Revisit configuration and disable features.
CALIBSensor calibration is still ongoing111212121313Wait for sensor calibration to complete.
CLICLI is active121313131414Exit the CLI.
CMSCMS (config menu) is Active - over OSD or other display131414141515Exit the CMS (or OSD menu).
OSDOSD menu is active141516Exit OSD menu.
BSTA Black Sheep Telemetry device (TBS Core Pro for example) disarmed and is preventing arming151616151616Refer to the manual for your hardware.
MSP MSP connection is active, probably via Betaflight Configurator161717161717Terminate the Betaflight Configurator connection (disconnect).
PARALYZEParalyze mode has been activated18171818Power cycle/reset FC board.
GPSGPS rescue mode is configured but required number of satellites has not been fixed19181919Wait for GPS fix, enable arming without GPS fix, or disable GPS rescue mode.
RECOVERY(wiki incomplete)(wiki incomplete)(wiki incomplete)(wiki incomplete)(wiki incomplete)
RESCUE_SWGPS Rescue switch is in an unsafe position192020Turn off the GPS Rescue switch to arm.
RPMFILTER(2)Motor RPM-based filtering is not functioning212121One or more ESC's are not supplying valid RPM telemetry.
REBOOT_REQDReboot required2222Reboot the flight controller for settings changes to take effect.
DSHOT_BBANGDSHOT Bitbang is not working2323(3)
NO_ACC_CALAccelerometer calibration required24Calibrate the accelerometer or disable features that use it
MOTOR_PROTOESC/Motor Protocol not configured25Select the ESC/Motor protocol to use on the Configuration tab.
ARMSWITCHArm switch is in an unsafe position171820212426Toggle the arm switch to arm.

(1) This may appear on the Betaflight OSD during flight, take it as a sign that your radio system is either faulty or you are flying at the edge of your range. Treat it the same you would an "RSSI critically low" warning.

(2) RPM-based filtering is enabled but one or more ESC's are not supplying valid DSHOT telemetry. Check that the ESC's are capable of and have the required firmware installed to support bidirectional DSHOT telemetry.

(3) Bitbang DSHOT is not working properly and the motors can't be controlled. Likely caused by a timer conflict with other features enabled on the flight controller.