This tutorial shows you how to setup Betaflight. After building your FPV drone, you need to configure the flight controller before flying. There are a ton of options you can enable, but I will show you the absolute minimum settings needed to start flying.
Betaflight is an excellent open source flight controller software, it’s designed specifically for FPV drones (quadcopters). Check out the FC Firmware Overview to learn more if you are new to all this.
If this is your first time flying an FPV drone, try to keep it simple at first, establish a flying baseline – then add extra features. You don’t have to learn everything before flying, you can learn as you go.
In this tutorial I will walk you through the Betaflight configurator (the software), and show you the simple steps to setup your quadcopter for your first flight.
To keep this guide as simple as possible I am making some important assumptions about your gear and setup:
- You have a quadcopter (4 motors)
- You are running serial receiver (e.g. Crossfire, ExpressLRS or Frsky SBUS)
- F4 or F7 flight controller running the latest Betaflight firmware
- Your ESC supports DShot ESC protocol (e.g. BLHeli_S or BLHeli_32 ESC)
Here are the configuration steps in this tutorial (click to jump straight to that section):
- Install Betaflight Configurator
- Update Firmware
- Setup Tab
- PID Tuning
- Disable Beeper for USB
Install Betaflight Configurator
Before we begin, please download and install Betaflight Configurator. This is the software we must use to setup Betaflight, it works on Windows, Mac and Linux.
If you purchased your FC following my recommendations, it should come with Betaflight pre-installed, so you don’t really need to flash it unless you want to stay up to date with the latest features and bug fixes. This tutorial takes you through how to flash Betaflight step by step.
Before flashing firmware to the flight controller, make sure you make a backup of the existing settings in case you want to go back for whatever reasons.
Tutorial: How to backup Betaflight settings.
Pro Tip: Before updating FC firmware, you should regularly check and update Betaflight Configurator to avoid bugs, as the Configurator is tightly bound to the firmware.
Setup Betaflight For The First Time
To avoid overcomplication, we will configure only the absolutely necessary settings in Betaflight to get you in the air. You can then explore other settings later on to optimize your FPV drone flight performance if you wish.
Important! Make sure all propellers are removed before configuring your quad on the bench to avoid accident.
Connect FC to Computer
Once you’ve connected the FC to your computer via USB cable, your computer will power the FC.
And a new COM Port should appear in the Configurator, choose this new COM Port and click “Connect”. Note that in the example, we have COM11, but it could be different in your case. And often the COM port changes on different FC.
If you don’t find the COM port, or have trouble connecting, this might be a driver issue. Follow this guide to fix flight controller driver issues. Or maybe your FC is “bricked” (extremely rarely), which can be easily fixed as explained in this article.
Once you’ve successfully connected to the FC, you should see the Setup tab. Here you have access to the most basic functions and information about your quad.
- Back up settings first before changing any settings (How to Backup & Restore Settings)
- Put your quadcopter on a level surface, then press “Calibrate Accelerometer”
- Now hold the quad in your hand, and move it around. You should see the 3D model moves with the quad, make sure the movement is in the same direction
If the 3D model isn’t moving the same as your quad, it probably means your flight controller (FC) is installed facing the wrong direction (arrow on the FC is not pointing forward). You can either rotate the FC until it’s right, or you can set YAW offset in the configuration tab, board sensor alignment, to fix it (usually 90/180/270 degree).
In the Ports tab, you can configure your peripherals – external devices connected to the flight controller via UART.
- If you are using a serial RX like Crossfire, SBUS or IBUS, you need to enable “Serial RX” on the UART the RX is connected to
- If you are using Frsky SmartPort, select “SmartPort” under Telemetry Output. If not just leave it at Default
The Configuration tab contains many basic settings related to your drone’s flight performance.
1. ESC/Motor Features
ESC Protocol – check your ESC spec to find out which protocols they support. Generally speaking if you are using BLHeli_S or BLHeli_32 ESC, DShot is recommended. I’d recommend using DShot600 if you are running 8KHz PID loop frequency, DShot300 for 4KHz, DShot150 for 2KHz.
Further Reading: ESC Protocols and Firmware Overview
We recommend you to always keep “MOTOR_STOP” option disabled, otherwise you won’t be able to tell if your quad is armed.
The rest you can just leave them at default.
2. System Configuration
PID Loop Frequency (aka Looptime) – it depends on what your FC is capable of, select the highest value possible while keeping CPU load under 30%. Note that looptime should be equal or lower than gyro sampling rate.
Gyro Sampling Rate – same as looptime, set it as high as possible while keeping CPU load under 30%.
When changing these two values and other features, pay attention to “CPU load” at the bottom of the window, try to keep it under 30%. High CPU load could cause instability to the flight controller.
Feel free to experiment and see what gyro rate and looptime combination works best for you, there is no set-rule what you should be using.
Accelerometer – I recommend to leave it enabled. You can disable it, this will free up some processing power, but you won’t be able to use Angle mode or Horizon mode, and the 3D model in the setup tab will also stop moving.
You can just disable both Barometer and Magnetometer if your FC doesn’t have these components.
Craft name – This will be displayed in the Betaflight OSD.
4 – Receiver
If you are using a serial RX, just pick “Serial-based receiver” in Receiver Mode. In Serial Receiver Provider, pick the appropriate receiver protocol:
- TBS Crossfire – CRSF
- ExpressLRS – CRSF
- Spektrum DSM2 – SPEKTRUM1024
- Spektrum DSMX – SPEKTRUM2048
- FrSky RX – SBUS
- Futaba RX – SBUS
- FlySky RX – IBUS
- Turnigy RX – IBUS
If you are connecting the RX to FC via PPM, then use “PPM RX Input” in Receiver Mode.
5. Other Features
These are the features I normally enable in Betaflight. If you are not sure, you can just leave these at default, that will still get you in the air without any problems.
- Dynamic Filter
Click Save & Reboot.
In this tab you can check if your receiver is working correctly.
Power on your TX and RX, and move your sticks one at a time to see if the corresponding channel is moving. You might need to change “Channel Map” if the channels are in the wrong order.
Further Reading: What’s Channel Map and How to configure it properly?
If none of the channels are responding, troubleshoot:
- is the RX bound to the TX? (do you see solid green light on the RX?)
- is the RX soldered on the FC correctly?
- have you enabled serial RX in the correct UART?
- have you selected the correct RX protocol?
After making sure the channels are working correctly, now check the mid points and end points of the first 4 channels (Pitch, Roll, Yaw, Throttle). These channels should centre at 1500, and have end points of 1000 and 2000. If you see a very small error like 2 to 3, it’s generally okay to just ignore it for now.
Anyway you can follow my tutorial on how to fix mid point and end points.
If the midpoint number jumps around, you could use deadband to “fix” it. For example if you see Roll or Pitch midpoint jumps between 1498 and 1500, then enter 2 in the RC deadband, it basically tells the FC to ignore it. Midpoint jump is pretty common and nothing to worry about, how much it jumps depends on the quality of the receiver.
Before you move to the next tab, check to make sure your arming and mode switches are working properly by flipping them. You should see the AUX1, AUX2 or AUX3 sliders move in the software. If you haven’t setup switches yet in your radio, follow this tutorial.
In the “Modes” tab you will tell your flight controller what the switches on your radio do. Common modes we use are:
- Angle mode (with angle mode disabled, you are in rate mode, aka manual mode. If you don’t see Angle mode, your accelerometer is probably disabled)
- Flip over after crash
I try to explain the different modes in Betaflight in this article.
Here is how to assign a switch to a mode:
- Click “Add Range” on the mode you want to use
- Select the switch you want to use to control this mode in the drop down menu. If you don’t know which AUX is your switch, just go to the Receiver tab and see which AUX channels respond when you flip the switches. AUX1 is channel 5, AUX2 is channel 6 and so on
- Drag the slider to the desired range for activation
- Flip the switch and the little yellow marker should also move around, see if it falls within the activation range of the mode when the switch is turned on
- Click “Save”
The motor tab is used for testing your motors. Make sure you remove all the propellers before using the motor tab for safety.
There are a few things you want to check:
- Whether the motors spin?
- Are the motor in the correct order?
- Are they spinning in the right direction?
Here’s the correct motor order and spin rotation:
- motor 1 at rear right
- motor 2 at front right
- motor 3 at rear left
- motor 4 at front left
If the order is wrong, you can fix it using resource remapping
Tutorial: Betaflight Resource Remapping
Now, check motor spin direction, if wrong, you can reverse spin direction in BLHeliSuite
By setting up OSD, you can display important flight data on your screen, such as voltage and timer.
Please see my tutorial on how to setup Betaflight OSD for more detail.
The PID Tuning tab offers the ability to tweak your quad’s flight performance to get it to fly the way you want.
You don’t really have to change anything here in order to take off for the first time. Default values are perhaps not perfect, but they should work fine for most models. As you become more experienced in the future, you can take a look at my PID tuning guide.
However, you might want to adjust rates and expo to make the quad easier to control. Rate, Super Rate and Expo affect the sensitivity of the sticks, how much the quad reacts to your stick movement. Take a look at this guide on Rate / Super Rate and Expo.
Stop Beeping on the Bench
If you connected the buzzer to your FC, it might start beeping as soon as you connect the USB while your radio is powered off. An easy fix is to disable “USB” option under Beeper Configuration in the Configuration tab.
That’s all to the basic setup in Betaflight.
Check Failsafe – Remove all props, arm the quad. With the motors spinning, power off your radio – this simulates a failsafe during flight. Ideally, your quad should disarm within 5 seconds. If not, you need to investigate your failsafe settings.
Check CPU Load – While the quadcopter is armed, look at the CPU load in the bottom of Betaflight Configurator, if it’s ever over 50% you should try disabling some unused features to bring it back down.
Other Betaflight Related Tutorials
Once you have completed this tutorial, come back and check out the following tutorials to learn more about the advanced features in Betaflight:
- CLI Explained
- Setup RGB LED Strip
- Resource Remapping
- Setting up Failsafe
- Betaflight OSD
- VTX Control
- LUA Script
- ESC Telemetry
- Camera Control
- GPS Rescue Mode
- What Looptime Should I use
- Moron Threshold
- Overclock Flight Controller to Run 32KHz
- Betaflight Airmode
- PID Tuning with Blackbox in Betaflight (Outdated)
- Dec 2017 – Article created
- July 2018 – Updated instructions
- Sep 2018 – Added “how to update”, and links to a few more new tutorials
- Jan 2021 – Updated for BF4.2