Q: FPV Drone Won't Arm: Troubleshooting Guide

Updated 4 min read

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 status and 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

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.