Betaflight Setup: attitude, arming checks and calibration
Betaflight Setup is the first tab after a board connects. FlySpark shows a live attitude model, an arming card, calibration, and a flight-controller card with firmware, loop time, sensors and battery. The same tab opens for INAV. The extra INAV pieces are the platform-defaults card, a six-position accelerometer sheet, optical-flow calibration, and compass and optical-flow numbers read back from the board.
Chrome or Edge connects over USB or Bluetooth. Wi-Fi is the Android and iPhone apps only. An iPhone has no USB host. The Betaflight configurator is the rest of the Betaflight tabs, and the INAV configurator is the INAV set, including the mixer. The demo on the Betaflight side is a 4.5 board. It does not stand in for every tab added in later firmware.
Free. Hardware connections need Chrome or Edge on a computer; phones use the FlySpark app.
- Free
- Nothing to install
- Demo without hardware
In short
The Setup tab shows live attitude, the reasons a board will not arm, accelerometer and compass calibration, and firmware, sensor and battery readings. Betaflight calibrates the accelerometer on a level surface. INAV uses six still positions, and only INAV shows optical flow and platform defaults.
Key facts
- Setup is shared by Betaflight and INAV. The same five cards appear, and INAV adds a defaults card.
- Attitude draws roll, pitch and heading. Reset Z axis only turns the on-screen model. It does not write a setting.
- Arming lists the blockers the firmware reports. Ready to arm means the list is empty. ARMED means the motors are live.
- Betaflight accelerometer calibration is one step with the aircraft level. INAV captures six positions, in any order.
- Compass calibration is on both. It draws a coverage map and asks you to rotate the aircraft on every axis.
- Optical flow calibration, the six-position sheet, and platform defaults are INAV only.
- The Betaflight demo is 4.5 (MSP API 1.46). Later arming names, including Position hold not ready, are not in that list.
Betaflight
INAV
ArduPilot
PX4- BLHeli_S
Bluejay
AM32
ExpressLRS
EdgeTX
DroneCAN
MAVLink
Try it
Level the board
The bubble starts off centre. Level brings it to the middle.
Betaflight
Features
- 01
Live attitude
The card title is Attitude, then the INAV model-preview name when that id is known, otherwise the craft label. Reset Z axis stores the current heading as a screen offset so the model faces the way you want. The heading readout stays the board's heading, in whole degrees. Roll and pitch are shown to one decimal. Until attitude arrives, the model area shows a spinner.
- 02
Arming checks
The Arming card shows one of four states. ARMED – motors live means the motors can spin. Reading arming state… means the flags have not arrived. Ready to arm means the flags are known and nothing blocks arming. Otherwise each blocker is its own chip. Betaflight and INAV use different names for those chips.
- 03
Accelerometer, two ways
Calibrate accelerometer is on both firmwares, and it is disabled while armed or while another calibration is running. Betaflight's subtitle says to place the aircraft level on a flat surface first, then one calibration runs for about two seconds. INAV opens a sheet: six positions, any order, each capture about two seconds. The list subtitle names them as level, upside down, and on each side, nose and tail.
- 04
Compass on both
Calibrate compass opens a guided sheet. Keep away from metal, phones and power cables, with the battery connected and the motors off. Press Start and turn the aircraft through every orientation. Two maps are labelled Bottom side and Top side. Betaflight uses a fixed 30 seconds. INAV uses the board's mag_calibration_time when that setting answers, and 30 seconds when it does not.
- 05
INAV-only calibration rows
Calibrate optical flow is drawn only on INAV. With a sensor it says to hold the aircraft in the air for 30 seconds and tilt it to the sides without moving it horizontally, seeing the ground the whole time. With no sensor the row says No optical flow sensor detected and stays disabled. Under the buttons, INAV also prints Compass zero, Compass gain and Optical flow scale.
- 06
Flight controller card
Rows appear when the board has sent them: Firmware, MSP API, Target, Board, Craft, Loop time in microseconds, CPU load in percent, I²C errors, Battery voltage and cell count, and Current in amps and milliamp hours. Sensor chips are GYRO, ACC, BARO, MAG, GPS and RANGEFINDER. INAV hides the GYRO chip. A chip is lit when that sensor is in the status.
- 07
INAV platform defaults
Only INAV shows this card. Before a choice, it sits at the top and the button is Choose defaults. The text says INAV starts with settings for no particular aircraft, and to pick a quad, plane, wing or rover. After a choice, the card moves to the bottom, titles itself Platform defaults, and the button is Run defaults wizard. Running it again overwrites tuning and mixer settings. The button is off while armed.
- 08
Reset settings
Reset settings to defaults asks for confirmation. The dialog says every setting returns to firmware defaults and the flight controller reboots, and to back up first from Link monitor, Back up config. It is disabled while armed or while a calibration is running. This row is on both Betaflight and INAV. It is not the INAV defaults wizard.
What is on Setup, and what is INAV only
The tab always builds Attitude, Arming, Calibration and Flight controller. Those four are the Betaflight Setup tab and the shared part of the INAV one. Calibration on both firmwares contains Calibrate accelerometer, Calibrate compass, and Reset settings to defaults. Disarm to calibrate is the card footer while the board is armed, and every calibration row stays disabled until you disarm.
INAV adds three things inside Calibration: the six-position accelerometer sheet instead of the single level capture, Calibrate optical flow, and the compass-zero, compass-gain and optical-flow-scale lines. INAV also adds the defaults card. That card is at the top when applied defaults are still unset, and at the bottom once a platform has been chosen. Betaflight does not show it. The Betaflight demo is firmware 4.5, MSP API 1.46, so its arming names are the 1.46 set described below.
Attitude, heading and Reset Z axis
The model uses the live roll, pitch and heading. Yaw on the model is the heading minus the Reset Z axis offset, which starts at zero. Pressing Reset Z axis copies the heading you have now into that offset. It is screen state only. It does not calibrate the compass and it does not write a board alignment. The numbers under the instruments do not use the offset: Heading is the board heading rounded to a whole degree, and Roll · Pitch is roll and pitch to one decimal, separated by a middle dot.
On INAV the card title prefers the model-preview name for the id the board reports, such as Quad X or Airplane, when FlySpark knows that id. Otherwise it uses the craft label. That title is a name for the 3D model. The frame chips you apply live on the mixer, not on this card. A heading indicator and an attitude indicator sit above the two readouts. If attitude has not arrived, the model area waits on a spinner.
Arming checks on Betaflight and on INAV
Betaflight reads arming-disable flags and the count the firmware reports. FlySpark names them from the MSP API minor version. For API 1.46, which is what Betaflight 4.5 and the demo report, the names are No gyro, Failsafe active, RX link lost, Bad RX recovery, Failsafe switch, Runaway takeoff, Crash detected, Throttle not low, Not level (small angle), Boot grace time, Prearm switch off, CPU load too high, Calibrating, CLI open, CMS menu open, BST, MSP override, Paralyze, GPS rescue not ready, Rescue SW, No DShot telemetry, Reboot required, DShot bitbang, Accelerometer not calibrated and Motor protocol not set. The last flag in the board's own count is always labelled Arm switch was on at boot, whatever version it is.
API 1.47 adds Crash-flip mode, Altitude hold not ready and Position hold not ready. API 1.48 adds Autopilot not ready. Those names show up only when the connected firmware's API is that new. The 4.5 demo does not list them. A flag number past the known names, other than the last one, is shown as Blocker and its number.
INAV uses a different set, and only these blockers are chips: Failsafe system, Not level, Sensors calibrating, System overloaded, Navigation unsafe, Compass not calibrated, Accelerometer not calibrated, Arm switch was on, Hardware failure, Failsafe switch, Kill switch, RC link lost, Throttle not low, CLI open, CMS menu open, OSD menu open, Roll/pitch not centred, Servo autotrim, Out of memory, Invalid setting, PWM output error, Prearm switch off, DShot beeper and Landing detected. Ready to arm, the warning chips, and ARMED – motors live are the same three outcomes on both firmwares. ARM itself is assigned on the Modes tab. A receiver problem such as RX link lost or RC link lost is cleared from the Receiver tab, not by a button on Setup.
Accelerometer calibration
On Betaflight, Calibrate accelerometer sends one calibration and waits about two seconds, with a progress ring on the row. The subtitle tells you to place the aircraft level on a flat surface first. When it finishes, a snackbar says Accelerometer calibration finished. A failure names the error. Do this with props off and the board disarmed. The arming chip Accelerometer not calibrated clears only after the board accepts the result.
Compass calibration and the INAV readouts
Calibrate compass is the same entry on Betaflight and INAV. The ready text tells you to keep away from metal, phones and power cables, with the battery connected but motors off, then press Start and turn the aircraft until the flight controller finishes. The expected time is in that sentence. Cancelling only closes the sheet; the flight controller finishes on its own. While it runs, the instruction asks you to rotate on all axes: spin it flat, roll it onto each side, point the nose up and down and turn it upside down, and to fill the map that still has gaps. The bar is labelled as a percent covered. At the end the sheet says Calibration finished and shows a quality of Excellent, Good, Fair or Poor, plus a hint about coverage or magnetic noise.
When the board reports offsets, the sheet prints Compass zero for X, Y and Z, and Compass gain when gain was returned. On a Betaflight build that cannot report the offsets without leaving MSP, the sheet says Betaflight before 2025.12 cannot report them that way, and to type get mag_calibration in the CLI. The 4.5 demo is in that older group. On INAV, if offsets are missing, the sheet says the flight controller did not report them. Separately, the Calibration card on INAV prints Compass zero, Compass gain and Optical flow scale after a refresh. Optical flow scale is the stored value divided by 256, shown to two decimal places. Those three lines are INAV only.
Calibrate optical flow is INAV only and runs for 30 seconds when a sensor is present. The subtitle says to hold it in the air for 30 seconds and tilt it to the sides without moving it horizontally, and that the sensor must see the ground the whole time. The row stays off when no optical flow sensor is detected. It does not appear on Betaflight.
Board info, reset, and INAV defaults
The Flight controller card is a reading, not a form. Firmware is the variant and version. MSP API is major.minor. Target, Board and Craft appear when the board sent them. Loop time is in microseconds. CPU load is a percent when the status includes it. I²C errors is a count. Battery is voltage to two decimal places, and cell count with an S when the count is known. Current is amps to one decimal and the milliamp hours drawn. The sensor chips under the rows are the checklist for GYRO, ACC, BARO, MAG, GPS and RANGEFINDER, with GYRO omitted on INAV. A grey chip means that sensor is not in the status. GPS numbers beyond the chip, such as satellites, are on the GPS page.
Reset settings to defaults is the last calibration row on both firmwares. Confirming sends a full reset and then reboots and reconnects. The dialog tells you to back up first. Success says Settings reset to defaults. This wipes the configuration. It is not a sensor calibration.
At a glance
Setup timings and arming names
| Betaflight accelerometer | One capture, aircraft level, about two seconds |
|---|---|
| INAV accelerometer | Six positions, any order, about two seconds each |
| Compass time | 30 seconds on Betaflight. INAV uses mag_calibration_time, or 30 seconds if that setting does not answer |
| Optical flow | INAV only, 30 seconds, and only when a sensor is detected |
| Betaflight 4.5 arming names | The API 1.46 list through Motor protocol not set. The last flag is always Arm switch was on at boot |
| Later arming names | Crash-flip mode, Altitude hold not ready and Position hold not ready need API 1.47. Autopilot not ready needs API 1.48 |
| Sensor chips | GYRO, ACC, BARO, MAG, GPS, RANGEFINDER. INAV hides GYRO |
| Demo | Betaflight 4.5, MSP API 1.46 |
Betaflight
Check Setup before the first arm
Connect and read the board
Connect in Chrome or Edge over USB or Bluetooth, or in the Android or iPhone app. On iPhone use Bluetooth or Wi-Fi, not USB. Open Setup and confirm Firmware, MSP API and the sensor chips you expect to see lit.
On INAV, choose defaults if the card is at the top
If Choose defaults is showing, pick the closest aircraft, then the receiver port and protocol, then GPS or skip. Apply and let the board reboot. This step is INAV only. Betaflight has no defaults card on Setup.
Calibrate the accelerometer
Props off, disarmed. On Betaflight, set the aircraft level and run Calibrate accelerometer. On INAV, open the sheet and capture all six positions, in any order, holding still for each one.
Calibrate the compass if a magnetometer is fitted
Start the compass sheet away from metal, with motors off, and rotate on every axis until the maps fill and the flight controller finishes. On INAV you can also run optical flow when that sensor row is enabled.
Clear the arming chips
Read every chip on Arming. Throttle not low, a receiver link, Prearm and a level attitude are fixed on Modes, Receiver and by how the craft is sitting, not by another Setup button. Ready to arm is the empty list. Do not arm with props on until that check is done.
Troubleshooting
Common problems and fixes
Problem
The attitude area keeps spinning
Fix
Attitude has not arrived yet. Wait for the link. If firmware and the other cards stay empty too, the board is not answering MSP. Reconnect over USB or Bluetooth in Chrome or Edge, or over Wi-Fi in the Android or iPhone app.
Problem
Accelerometer not calibrated will not clear
Fix
On Betaflight, repeat the level capture with the craft still. On INAV, finish all six positions. A repeat of a position already captured does not count. The sheet tells you to turn to a new one.
Problem
Compass not calibrated or a poor quality result
Fix
Move away from metal, phones and power cables, motors off, and rotate on every axis including upside down and nose up and down. INAV's arming chip is Compass not calibrated. Quality Poor means too few orientations, or magnetic noise in the hint under the result.
Problem
Optical flow will not start
Fix
That row is INAV only. If the subtitle says no optical flow sensor was detected, the board's status does not show one, and the button stays off. With a sensor, hold still in the air for 30 seconds, tilt without sliding, and keep the ground in view.
Problem
Choose defaults is missing
Fix
The card is INAV only. On a new INAV flash it sits at the top. After a platform is chosen it sits at the bottom as Platform defaults. Betaflight Setup never shows it.
Problem
Reset was tapped by mistake
Fix
Confirming returns every setting to firmware defaults and reboots. Restore the backup you took from Link monitor, Back up config, before the reset. The dialog asks for that backup first.
FAQ
Frequently asked questions
What does the Betaflight Setup tab show?
Attitude with roll, pitch and heading, arming blockers, accelerometer and compass calibration, reset to defaults, and the flight-controller readings: firmware, MSP API, loop time, sensors and battery.
Which Setup controls are INAV only?
The platform defaults card, the six-position accelerometer sheet, optical-flow calibration, and the compass zero, compass gain and optical-flow scale lines. Betaflight uses one level accelerometer capture and has no optical-flow row and no defaults card.
How do I calibrate the Betaflight accelerometer?
Disarm, take the props off, place the aircraft level on a flat surface, and tap Calibrate accelerometer. The row runs for about two seconds. INAV does not use that single step.
How does INAV accelerometer calibration work?
The sheet asks for six still positions: level, upside down, each side, nose and tail, in any order. Press Capture position and hold still. Each capture takes about two seconds. Six of six means the board has stored it.
Does Reset Z axis calibrate anything?
No. It sets the on-screen model's yaw so the picture matches the way you are looking at it. Heading, roll and pitch readouts stay the live values from the board.
Why does it say Ready to arm but the motors do not spin?
Ready to arm means no blocker is set. The motors spin only after ARM. Put ARM on a switch on the Modes tab, with the props off for the first test.
What is Arm switch was on at boot?
On Betaflight that label is always the last arming flag the firmware reports. The switch was already in the arm position when the board started. Move it to disarm and power up again. INAV's matching chip is Arm switch was on.
Why is Position hold not ready missing?
That arming name is added at MSP API 1.47. Betaflight 4.5 and the demo are API 1.46, so the Setup list on that firmware does not include it. The demo is not a substitute for every newer tab.
Can I calibrate while armed?
No. The calibration footer says Disarm to calibrate, and the rows stay disabled. The defaults wizard is disabled while armed as well.
What is the difference between Reset and the INAV defaults wizard?
Reset returns every setting to firmware defaults and reboots. The wizard, INAV only, writes one of the named aircraft defaults, or Keep current settings, and can also set the receiver port and GPS. Running it again overwrites tuning and mixer settings.
References
Sources
The official documentation behind the background facts on this page.
- Betaflight WikiBetaflight · betaflight.com
- Betaflight Setup GuideBetaflight · betaflight.com
- INAV WikiINAV on GitHub · github.com


