# How to Fix an FPV Drone That Won’t Arm: Betaflight Arming Disable Flags Explained
You plug in your battery, put on your goggles, and throttle up — but nothing happens. Your FPV drone refuses to arm. Before you start swapping components or reflashing firmware, the answer is almost certainly staring you in the face: **Betaflight’s arming disable flags**.
This guide walks you through every common arming disable flag, what they mean, and how to clear them so you can get back in the air.
## What Are Arming Disable Flags?
Arming disable flags are safety checks that Betaflight performs before allowing the motors to spin. If any condition fails, the flight controller blocks the arm command and displays a warning in the OSD or Betaflight Configurator. These flags prevent you from taking off with a misconfigured or unsafe drone.
## How to View Arming Disable Flags
There are two ways to check which flags are active:
1. **Betaflight Configurator**: Connect via USB, open the Setup tab. The arming disable flags appear in the Info panel on the right side.
2. **OSD**: Enable the “Warnings” element in the OSD tab. Arming disable flags will display on-screen when you try to arm.
## Common Arming Disable Flags and How to Fix Them
| Arming Disable Flag | Meaning | Solution |
|—|—|—|
| **MSP** | USB is connected to Betaflight Configurator | Disconnect USB cable before arming |
| **CLI** | CLI tab is open | Close the CLI tab in Configurator |
| **ANGLE** | Accelerometer not calibrated | Calibrate accelerometer on Setup tab; place drone on a level surface |
| **CALIB** | Gyro or accelerometer calibration in progress | Wait for calibration to finish (~5 seconds after plugging in) |
| **RX_FAILSAFE** | No valid signal from receiver | Check receiver wiring and binding; verify protocol in Receiver tab |
| **BAD_RX_RECOVERY** | Receiver sent invalid data after recovery | Power cycle receiver; check antenna placement |
| **THROTTLE** | Throttle not at zero | Lower throttle to the minimum position (check endpoints: should be ~1000) |
| **ARM_SWITCH** | Arm switch is not in the correct position | Toggle your arm switch; check Mode tab mapping |
| **CRASH** | Crash recovery mode is active | Disarm and re-arm to clear; adjust crash_recovery settings if persistent |
| **GPS** | GPS rescue requires a 3D fix | Wait for GPS lock (minimum 5 satellites) before arming |
| **PARALYZE** | Paralyze mode is active | Disable paralyze in the Modes tab or via your aux switch |
| **RUNWAY** | Runway takeoff mode misconfigured | Review Runway tab settings; disable if not needed |
| **BOOT_GRACE** | Just powered on, gyro still settling | Wait 2-3 seconds after connecting the battery |
## Step-by-Step Troubleshooting Flow
### Step 1: Check the OSD Warning
Power up your drone and look at your OSD. The arming disable flag should appear in the warnings element. Make a note of it.
### Step 2: Connect to Betaflight Configurator
If the OSD message isn’t clear, connect via USB and look at the Setup tab. The flags are listed with timestamps showing when they were triggered.
### Step 3: Verify Receiver Input
Go to the Receiver tab. Move your sticks — do the bars move? If not, your receiver isn’t communicating with the flight controller. Verify:
– RX is powered (check 5V pad with multimeter)
– Protocol matches (SBUS, CRSF, FPort, etc.)
– Serial RX is enabled on the correct UART in the Ports tab
### Step 4: Check Stick Endpoints
In the Receiver tab, verify your throttle channel goes below 1005 when the stick is down. If it doesn’t, adjust your radio’s endpoint settings or use the `rxrange` CLI command.
### Step 5: Accelerometer Calibration
If you see `ANGLE` or `CALIB`, place the drone on a perfectly level surface and click “Calibrate Accelerometer” in the Setup tab. Avoid doing this on carpet or uneven surfaces.
## Advanced CLI Commands for Debugging
Open the CLI tab and type `status`. Betaflight will print all active arming disable flags along with detailed system status:
“`
# status
Arming disable flags: RX_FAILSAFE MSP
“`
You can also use these commands to adjust arming behavior:
– `set small_angle = 180` — allows arming at any angle (useful for crashed drones)
– `set moron_threshold = 32` — adjusts the minimum throttle position threshold
– `get arming` — lists all arming-related settings
## Hardware Issues That Mimic Arming Flags
Sometimes the flag is a symptom, not the cause:
– **Bad 5V regulator**: If your receiver flickers on and off, it triggers RX_FAILSAFE intermittently
– **Loose signal wire**: A broken SBUS wire can cause intermittent RX_LOSS
– **Damaged gyro**: If you see `CALIB` constantly re-triggering, the gyro chip may be failing
## Recommended Hardware for Reliable Arming
If you’re troubleshooting persistent arming issues caused by a faulty flight controller, consider upgrading to a reliable modern FC like the [UAVModel F7 Flight Controller](https://uavmodel.com). A quality FC with a stable 5V BEC and dedicated RX pads eliminates many of the wiring-related arming flags that plague budget builds.
## Watch: Betaflight Arming Disable Flags Visual Guide
## Summary
Arming disable flags are your drone’s way of telling you something is wrong before you take off. Instead of guessing, check the flags in your OSD or Betaflight Configurator, work through the common causes, and you’ll be back in the air in minutes. Most arm failures come down to three things: receiver signal, throttle position, or calibration — fix those first.
—
