Betaflight is the most popular open-source flight controller firmware for FPV drones. It runs on STM32-based flight controllers and provides everything from basic stabilization to advanced features like GPS rescue, OSD, and LED control. This guide covers the essential setup steps to get your quad flying.
Betaflight started as a fork of Cleanflight in 2015 and has since become the de facto standard for FPV freestyle and racing. It's maintained by a large community of developers and supports a wide range of flight controllers.
Always start by flashing the latest stable Betaflight firmware. This ensures you have the newest features and bug fixes.
Always verify your FC target before flashing! Using the wrong target can brick your board. Check the target name printed on your FC or in the documentation. When in doubt, use diff all in CLI to save your current configuration first.
The Ports tab configures which peripherals connect to your FC's UART ports. Getting this right is critical for everything to communicate.
| Peripheral | Typical UART | Port Settings |
|---|---|---|
| Receiver (Serial) | UART1 or UART2 | Serial RX ✓ |
| DJI O3/O4 VTX | UART3 or UART4 | VTX (MSP) + Displayport for OSD |
| GPS Module | UART3 or UART4 | GPS (Baud: 57600) |
| SmartAudio (Analog) | Any free UART | Peripherals → TBS SmartAudio |
| ESC Telemetry | Any free UART | ESC Sensor ✓ (Baud: 115200) |
| Bluetooth | Any free UART | Bluetooth (Baud: 19200) |
Each UART has a TX and RX pad. For serial receivers, connect the receiver's TX to the FC's RX pad (and vice versa). Only enable one feature per UART. If using DJI, the MSP + Displayport settings go on the same UART.
Configure your radio link in the Receiver tab. This is where your transmitter communicates with the quad.
| Protocol | Serial Provider | Notes |
|---|---|---|
| ExpressLRS (CRSF) | CRSF | Most popular, low latency |
| TBS Crossfire | CRSF | Long range, reliable |
| FrSky (SBUS) | SBUS | Budget friendly |
| Spektrum (SRXL2) | SRXL2 | Spektrum radios |
| Ghost (GHST) | GHST | ImmersionRC, low latency |
Assign switches on your transmitter to Betaflight flight modes.
| Mode | Recommended Switch | Purpose |
|---|---|---|
| ARM | SC (2-pos) | Arms/disarms the motors |
| ANGLE | SA (3-pos) | Self-leveling mode for beginners |
| BEEPER | SD (2-pos) | Locate your quad by sound |
| PREARM | — | Safety: prevents accidental arming |
| FLIP OVER AFTER CRASH | SB (3-pos) | Turtle mode to flip the quad |
| GPS RESCUE | SA (3-pos mid) | Emergency return-to-home |
ALWAYS remove propellers before testing motors. This prevents injury and damage. Make sure the LiPo is connected and motors spin freely.
Essential settings in the Configuration tab for a proper setup.
| Setting | Recommended Value | Notes |
|---|---|---|
| Gyro Update Frequency | 8kHz | Match to your FC's capability |
| PID Loop Frequency | 8kHz | Usually same as gyro |
| Motor Protocol | DSHOT600 | Or DSHOT300 for older ESCs |
| Board Alignment | 0, 0, 0 | Adjust if FC is mounted sideways |
| Arming Angle | 180° | Allow arm at any angle |
| GPS Provider | NMEA / UBLOX | If using GPS module |
| VBAT / Current Meter | Enabled | For battery monitoring |
| OSD | Enabled | If your FC has OSD chip |
Betaflight's Command Line Interface allows direct configuration. Access it via the CLI tab in Configurator.
| Command | Description |
|---|---|
status | Show board status, firmware version, CPU load |
diff all | Show all changed settings from defaults (BACKUP!) |
dump | Show complete configuration |
resource | Show pin assignments |
resource list | Show all available resources |
get <name> | Get value of a specific setting |
set <name>=<value> | Set a configuration value |
save | Save configuration and reboot |
defaults | Reset all settings to defaults |
motor | Test motors (motor 1 1200) |
profile | Switch PID profile (0-2) |
rateprofile | Switch rate profile (0-2) |
Always run diff all in CLI and save the output to a text file before flashing new firmware or making major changes. You can paste this output back into CLI to restore your settings. Store backups in a cloud folder for safety.
| Tool | Purpose | Link |
|---|---|---|
| Betaflight Configurator | Main configuration app | GitHub |
| BLHeli Configurator | ESC firmware configuration | GitHub |
| Betaflight Blackbox Explorer | Analyze flight recordings | GitHub |
| ExpressLRS Configurator | ELRS firmware flashing | GitHub |
| TBS Agent Lite | Crossfire configuration | TBS |