Quick Answer
If your FPV drone refuses to arm, the most likely cause is a safety check blocking it. Betaflight and iNav both run several pre-arm checks before allowing motors to spin. The usual culprits are a USB cable still connected, throttle not at zero, the drone sitting on a tilted surface, or a missing arm mode assignment in your radio. Check the arming disable flags in the OSD or Betaflight configurator to pinpoint the exact reason.
Check the Basics First
Before diving into firmware settings, work through these straightforward checks. They cover the vast majority of arming problems.
Disconnect the USB cable. Betaflight disables arming whenever the flight controller is connected to the configurator. This is a safety feature, and you will see an MSP warning flag if you try to arm while plugged in. Unplug USB and try again.
Throttle must be at zero. The throttle stick needs to be at the bottom of its travel. If your radio is sending a throttle value above the min_check threshold (default 1050), Betaflight will refuse to arm. Double-check that your throttle channel reads below 1000 when the stick is at the bottom.
Place the drone on a flat surface. Betaflight has a maximum arm angle setting (default 25 degrees). If the drone is tilted beyond this, it will not arm. This prevents accidental arming when the quad is in your hand or wedged against something. If you need to arm at an angle, you can increase this value in the Configuration tab or disable it by setting it to 180.
Radio Receiver Problems
If your radio receiver is not bound or not sending data, the drone has no way to know you want to arm. Open the Receiver tab in Betaflight and confirm that the channel bars move in response to your stick inputs.
Check that the radio controller is bound to the receiver and that the channel map is correct. If you are using ExpressLRS, make sure the AUX channel assigned to ARM (usually AUX 1, which is Channel 5) is toggling correctly. Head to the Modes tab and confirm ARM turns red when you flip the switch.
For more on setting up your receiver, see our guide on how to flash and configure Betaflight.
Understanding Arming Disable Flags
When the drone refuses to arm, Betaflight stores a reason code. There are three ways to read it:
- OSD: Enable the "Warnings" element with "Arming Disabled" selected. The flag name appears directly on your goggles screen.
- Betaflight Configurator: Open the Setup tab and look at the "Arming Disable Flags" section.
-
CLI: Type
statusand read the last line, which lists the active flags.
Here are the most common flags and what they mean:
| Flag | Cause | Fix |
|---|---|---|
| NOGYRO | Gyroscope not detected | Reflash firmware or replace the FC |
| FAILSAFE | Receiver not sending valid data | Check RX bind and channel map |
| RXLOSS | RC link lost or not established | Rebind receiver, check antennas |
| BADRX | Invalid receiver data | Verify protocol and baud rate |
| ANGLE | Drone tilted beyond max arm angle | Place on a flat surface |
| THROTTLE | Throttle above min_check | Push throttle stick to bottom |
| ARMING_DISABLED | No ARM mode assigned in Modes tab | Assign a switch channel to ARM |
| CALIBRATING | Gyro calibration in progress | Wait a few seconds after power on |
| BOOT_GRACE_TIME | Too soon after power on | Wait 5 seconds and try again |
iNav-Specific Checks
If you are running iNav rather than Betaflight, there are a few extra pre-arm conditions to be aware of. iNav requires a GPS fix before arming by default on GPS-equipped builds. Wait until your GPS has acquired enough satellites (shown on the OSD). iNav also has stricter failsafe requirements; if failsafe has not been configured, arming may be blocked until you set it up in the Failsafe tab.
What to Buy
- SpeedyBee F405 AIO V2: reliable all-in-one flight controller and ESC, good option if a faulty board is causing your arming issues.
- MicoAir405v2 F405 Flight Stack: high-performance stack for racing and freestyle builds.
- Axisflying Manta 5 SE V2: pre-built drone if you want a ready-to-fly setup that works out of the box.
Browse our full range of flight controllers and electronics or explore Betaflight-compatible gear.
FAQ
Q: Why does my drone arm when connected to the configurator but not in the field?
A: This is actually the opposite of normal behaviour. Betaflight disables arming with USB connected. If it arms with USB but not without, the problem is almost certainly your radio receiver. Check that the receiver is bound, receiving data in the Receiver tab, and that the correct AUX channel is assigned to ARM.
Q: My drone beeped a pattern when I tried to arm. What does it mean?
A: The buzzer communicates arming disable flags through a beep code. Count the beeps: long beeps are worth 5, short beeps are worth 1. For example, one long beep and two short beeps equals flag 7 (RXLOSS). It is much easier to read the flags through OSD or the configurator if you have the option.
Q: I disabled the arm angle check and it still will not arm. What now?
A: If the drone is on a flat surface, USB is unplugged, throttle is at zero, and the arm angle is disabled, the problem is likely related to your receiver or a hardware fault. Check the arming disable flags in the OSD or CLI to see the exact reason. If the flag is NOGYRO, you may need to reflash your firmware or replace the flight controller.