Why won't my quad arm?
Betaflight already knows why, and it will tell you in one word. Here is how to ask it, and what every answer means.
The symptom
You flip the arm switch. Nothing happens. Maybe the ESCs beep at you, maybe there is a tone, maybe there is silence and a blinking light.
The good news: this is the one fault where the aircraft tells you the answer outright. Betaflight, iNAV and ArduPilot all refuse to arm for a stated reason, and they will all print that reason. Almost everyone skips reading it and starts guessing instead.
Check this in 60 seconds
Plug in USB, open the Betaflight Configurator, go to the CLI tab and type:
status
Look for this line:
Arming disable flags: ANGLE THROTTLE
That is your answer. Every flag on that line is a separate reason the FC is refusing, and all of them must clear before it will arm. The Configurator shows the same thing graphically as the red flag pills next to the arming indicator on the Setup tab.
On iNAV, the same information appears on the Configurator's status bar and in status. On ArduPilot, the pre-arm failure prints as a message in Mission Planner's HUD and in the messages tab — plain English sentences, not flags.
If you take one thing from this article: read the flag, then look it up. Do not start re-flashing.
What each Betaflight flag means
The list below covers the flags you will actually meet. They are ordered roughly by how often they are the culprit.
| Flag | What it means | What to do |
|---|---|---|
THROTTLE |
Throttle is not at minimum | Throttle stick fully down. If it already is, your endpoints or trim are off — check the Receiver tab reads ~1000 at rest |
ANGLE |
The aircraft is tilted beyond small_angle (default 25°) |
Put it on a level surface. If it is level and the flag persists, your accelerometer needs calibration — or the FC is mounted at an angle you never told it about |
ARMSWITCH |
The arm switch was already on when the FC booted | Flip it off, then on. This is deliberate: it exists so a quad cannot arm the instant you plug the battery in |
RXLOSS |
No valid RC link right now — the condition failsafe exists to handle | Check receiver binding, wiring, and that the correct serial port is set to Serial RX |
NOPREARM |
You configured a prearm switch and have not flipped it | Flip the prearm switch first, then arm |
BOOTGRACE |
The FC booted less than a few seconds ago | Wait. It will clear on its own |
CALIB |
Sensor calibration is running | Wait, and keep the aircraft still |
NOGYRO |
The FC cannot talk to its gyro | Hardware or firmware target problem. Wrong target flashed, or a dead/loose IMU |
NO_ACC_CAL |
Accelerometer has never been calibrated | Calibrate it, on a level surface |
RUNAWAY |
Runaway Takeoff Prevention tripped previously | Disarm, power-cycle |
CRASH |
Crash recovery / gyro overflow triggered | Power-cycle. If it repeats in flight, you have a vibration problem, not an arming problem |
MSP |
A configurator is connected over USB/MSP | Disconnect the Configurator. Betaflight will not arm while you are plugged in — this is intentional and has saved a lot of fingers |
BADRX |
The RC link glitched recently and has not settled | Wait for the link to be stable. If it never settles, you have a link problem, not an arming problem |
RPMFILTER |
RPM filtering is on but bidirectional DShot is not delivering | Check dshot_bidir, motor poles, and that your ESC firmware supports it |
DSHOT_BBANG |
Bitbang DShot could not be allocated | Change dshot_bitbang mode, or the timer allocation is exhausted |
MOTOR_PROTO |
No motor protocol configured | Set a motor protocol (DShot600 etc.) |
PARALYZE |
Paralyze mode was triggered | Power-cycle. It is a one-way "make this thing safe" switch |
GPS |
A GPS-dependent arming requirement is not met | Wait for a fix, or disable the GPS arming requirement if you know what you are doing |
CLI |
You are sitting in the CLI right now | Type exit |
The three that catch almost everyone
MSP — you are still plugged into the Configurator. People flash, configure, and then wonder why the bench test does nothing. It will never arm over USB with a configurator attached. Unplug.
ARMSWITCH — the switch was on at boot. Extremely common with a new model on the radio, where the switch defaults to the wrong position. Flip it off and back on.
ANGLE — the FC does not think it is level. Also fires when you have mounted the FC rotated or tilted and never set align_board_roll / align_board_pitch / align_board_yaw or the Yaw/Pitch/Roll adjustment in the Configurator. The aircraft is level; the FC thinks it is at 30°.
How to know you actually fixed it
Not "it armed once." Power-cycle the aircraft, redo the full arming sequence from cold, and confirm the flag list comes up clean. Arming faults that come back intermittently — a marginal RC link, a flaky prearm switch — are the ones that will hand you a disarm in the air.
And do not disable an arming check to make it go away. Every flag on that list exists because a specific accident happened to somebody. MSP is there because people lost fingers. ARMSWITCH is there because quads took off from workbenches. If a check keeps blocking you, the aircraft is telling you something true.