Hands-on guides
Betaflight tutorial step by step
Set up your FPV drone in Betaflight from scratch: firmware, ports, ExpressLRS receiver, modes, motors, failsafe and OSD, with a check at every step.
Before you start
This tutorial takes you from a freshly built drone to a drone ready for its first flight. We’ll follow the order an experienced pilot would use, and at the end of each step you’ll find a quick check: if it passes, you can carry on with confidence.
Allow an hour, and take it easy. If something doesn’t work, don’t skip it: almost every drone that won’t fly on day one has one of these steps half done.
You’ll need
The built drone, a USB data cable (not a charge-only one), a charged radio, a battery and a computer with Chrome or Edge.
Safety
No props for the whole tutorial. The motors can spin up during any test. The props go on at the end, at the field.
Version
We use Betaflight 4.5 or later with Betaflight App. Newer versions may rename or move an option, but the process is the same.
1. Install and connect
Betaflight has two parts: the firmware, which lives inside the flight controller, and the app, which you use to configure it from your computer. The official app is Betaflight App: it runs straight in the browser (Chrome or Edge) or can be installed.
Open Betaflight App
Go to
app.betaflight.comin Chrome or Edge. Firefox and Safari can’t access the USB port.Connect the drone over USB
No battery and no props. The board is powered through the cable and you can already configure almost everything.
Pick the port and press “Connect”
The flight controller’s port appears at the top right. If nothing shows up, try another cable: it’s the number one cause.
On Windows, drivers
If the cable is fine and the computer doesn’t see the board, you need to install the board’s USB drivers (VCP). The Betaflight website explains how.
Check it
You’re connected if you can see the 3D model of the drone on the Setup tab and, when you move the drone by hand, the model moves.
2. Make a backup
Before changing anything, save how the board came from the factory. If something doesn’t work later, you can compare or go back.
Open the CLI tab
It’s Betaflight’s command line: a window where you type text instructions.
Type
diff alland press EnterIt shows only what differs from the defaults. It’s short and easy to read.
Save the result
With the “Save to file” button, save it with a name that says what it is, for example
dron5-fabrica-2026-10.txt.
Check it
Open the file: it should start with the Betaflight version and the board name (# version and board_name).
3. Update the firmware
Many boards ship with an old version. Installing the latest stable release (“flashing”) gives you the improvements and makes this tutorial match what you see. You do it on the Firmware Flasher tab, which only appears when you are not connected.
Disconnect and open the Firmware Flasher
Press “Disconnect” and, on the left, choose Firmware Flasher.
Pick the board
Press “Auto-detect” with the board connected. If it doesn’t find it, look it up in the list by the exact name shown in
board_namein the backup from step 2.Pick the version
The latest stable release, never a “release candidate” (RC) for a first build.
Pick the options
Betaflight is built to order. Tick what your drone has: radio protocol CRSF for ExpressLRS, CRSF telemetry, OSD (HD if it’s digital), and GPS or LED if you have them.
Tick “Full chip erase”
It wipes the old configuration and avoids mixing parameters from one version with another.
Load and flash
Press “Load Firmware [Online]”, wait for it to build and then “Flash Firmware”. Don’t unplug the cable until the bar says it’s finished.
Check it
Reconnect. On the Setup tab, at the bottom, the new version should appear. If it asks whether you want to apply the board’s “custom defaults”, say yes: they’re the manufacturer’s settings that make everything work.
4. Setup: calibration and alignment
On the Setup tab you check that the flight controller “knows” how it’s mounted inside the drone. It’s the quickest step and one of the most important: if the board thinks it’s facing another way, the drone will flip over on take-off.
Move the drone by hand
Tilt it forwards: the 3D model should also tilt forwards. Do the same to the sides and by turning it on the spot.
If it moves the wrong way, fix the alignment
This happens when the board is mounted rotated (for example, with the USB facing a side). In Configuration, under Board and Sensor Alignment, enter the rotation in degrees (usually 90, 180 or 270 on the yaw axis).
Calibrate the accelerometer
Put the drone on a really flat surface and press “Calibrate Accelerometer”. Don’t touch it for a few seconds.
Check it
With the drone level, the roll and pitch angles shown in Setup should be close to 0°, and the 3D model should move exactly like the real drone.
5. Ports: what’s connected where
The flight controller has several serial ports, called UARTs (UART1, UART2…). On the Ports tab you tell it what is soldered to each one. You’ll find each UART’s number on your board’s wiring diagram: check which pads (TX2/RX2, for example) you soldered each wire to.
| What’s connected | What to enable on its row |
|---|---|
| ExpressLRS receiver | Serial RX column. |
| Digital video (DJI O4, Walksnail, HDZero) | Configuration/MSP column and, under Peripherals, VTX (MSP + DisplayPort). That’s how the OSD shows up in the goggles. |
| Analogue video transmitter | Under Peripherals, VTX (TBS SmartAudio) or VTX (IRC Tramp), depending on the model. |
| GPS | Under Sensor Input, GPS, with automatic baud rate. |
| USB (VCP) | Leave it alone: it’s how you connect to the app. |
Press “Save and Reboot”. The flight controller restarts and the app reconnects on its own.
Check it
Each UART should have only one function enabled. If the receiver is soldered to UART2 and you enable Serial RX on UART1, you won’t receive anything (you’ll see it in step 7).
6. Configuration and battery
Configuration tab
| Option | Recommended value | Why |
|---|---|---|
| ESC/Motor protocol | DShot300 or DShot600 | Digital and precise. DShot300 works on any board; DShot600 if the board and ESC are fast (F7, H7). |
| Bidirectional DShot | On | Enables the RPM filter, which makes the drone fly more cleanly. Needs a compatible ESC (BLHeli_32, AM32 or Bluejay). |
| Motor poles | 14 | The number of magnets in most 5" motors. If yours are different, count them. |
| Craft name | The drone’s name | It shows on the OSD and in the backup. |
| Gyro and PID frequencies | Default | The manufacturer’s values are already right for your board. |
Power & Battery tab
Voltage and current sources
Voltage meter and Current meter set to Onboard ADC (or as the manufacturer says).
Cell limits
Minimum 3.3 V, warning at 3.5 V and maximum 4.3 V (4.35 V if the batteries are HV).
Calibrate the voltage
Plug in a battery, measure it with a multimeter and enter the real value with the “Calibrate” button. That way the OSD won’t lie to you.
Calibrate the current (after flying)
Fly a full battery down to about 3.5 V per cell, note the mAh on the OSD and recharge it. New scale = current scale × OSD mAh ÷ charger mAh. Repeat two or three times.
Check it
With a battery plugged in, the voltage on the tab should match the multimeter to within 0.1 V.
7. Receiver: get the drone listening
Now let’s get the radio and the drone talking. With ExpressLRS, on the Receiver tab choose Receiver mode: Serial and Serial receiver provider: CRSF. Leave the channel map at AETR1234, which is what radios running EdgeTX use.
Bind the receiver
With a binding phrase: the same phrase on the radio and the receiver, and they bind by themselves. Without a phrase: put the receiver in bind mode (plug and unplug the battery three times in a row) and run “Bind” in the radio’s ExpressLRS script.
Check the versions match
The radio and the receiver must be on the same major version of ExpressLRS. If not, they won’t bind.
Move the sticks
Each stick should move its own bar, in the right direction, from 1000 to 2000.
| Move… | The bar that should move | Correct direction |
|---|---|---|
| Right stick to the right | Roll | Rises towards 2000 |
| Right stick forwards | Pitch | Rises towards 2000 |
| Left stick to the right | Yaw | Rises towards 2000 |
| Left stick up | Throttle | Rises towards 2000 |
If a bar moves the wrong way, reverse that channel on the radio, not in Betaflight. If the values don’t reach 1000 or 2000, or the centre isn’t 1500, adjust the channel limits on the radio.
Check it
All four bars move with their stick, in the direction shown in the table, and at rest they read 1500, 1500, 1500 and 1000.
8. Modes: the switches
On the Modes tab you assign functions to the switches on your radio. Each mode turns on when the AUX channel is inside a range, which you’ll see as a band. The yellow dot shows the switch’s current position: flick it and you’ll see it move.
ARM · required
Arming means the motors become live. Put it on a two-position switch on AUX1, well away from where your fingers rest.
BEEPER · highly recommended
Makes the drone beep. If it comes down in long grass, this is how you find it.
FLIP OVER AFTER CRASH
“Turtle mode”: if the drone ends up upside down, it spins the motors backwards so it flips itself over.
ANGLE · optional
The drone self-levels. It’s handy for the first tests, but freestyle is flown in acro (with no mode enabled). See Learning to fly.
Check it
When you flick each switch, its mode’s band lights up. With the arm switch down, ARM must be off.
9. Motors: order and spin direction
This is the only step that needs a battery. Take the props off, plug in the battery (with a smoke stopper if it’s the first time) and go to the Motors tab. Turn on the switch that says you understand the risks and spin each motor one at a time, with the slider just above minimum.
Check the order
Motor 1 is rear right, 2 is front right, 3 is rear left and 4 is front left. If you spin one and a different one moves, use the reorder motors button: it will ask you which one is spinning.
Check the direction
Touch the motor bell with a strip of paper or watch which way it turns. If any spins the wrong way, change it with the motor direction wizard on the same tab (works with BLHeli_32, AM32 and Bluejay ESCs). No need to re-solder.
Tell Betaflight if they’re props out
If you mount the props out, as in our build, enable Motor direction is reversed (in Configuration or Motors, depending on the version). If they’re props in, leave it off and the directions are the opposite of the drawing.
Check it
Each motor spins when you move its slider, in the position and direction shown in the drawing, with a smooth sound and no crackling. Set the sliders back to zero and turn off the safety switch.
10. Failsafe: what it does if it loses signal
Failsafe is what the drone does if it stops receiving the radio. A badly configured failsafe is the most common cause of lost drones and flyaways.
Drop · default
Stops the motors and the drone falls. It sounds harsh, but it’s the safest option if you have no GPS: the drone doesn’t fly off.
GPS Rescue
If you have GPS, the drone climbs and returns towards the take-off point. Set it up and test it in an open area before relying on it.
Check it (no props!)
With a battery in, arm the drone with the switch and raise the throttle a little: the motors spin. Now turn off the radio. Within a second, the motors should stop and the OSD should show FAILSAFE. If they keep spinning, don’t fly: check the receiver.
11. OSD and video
The OSD (on-screen display) is the information you see overlaid in your goggles. On the OSD tab choose the video format (HD for digital systems) and drag the elements wherever you want. Less is more: only what you’ll actually look at while flying.
| Element | Why you want it |
|---|---|
| Average voltage per cell | To know when to land. Head back when it drops below 3.5 V in flight. |
| Link Quality (LQ) and RSSI dBm | How good the radio signal is. If it drops, turn back. |
| Flight time | A reference for each battery. |
| Consumption (mAh) | More reliable than voltage for knowing how much battery you have left. |
| Warnings | They tell you why the drone won’t arm or if the battery is low. |
With analogue video, also set up the Video Transmitter tab: the VTX table (band, channel and power). Use a legal power level: in Spain, 25 mW at 5.8 GHz. With digital video, power and channel are chosen in the goggles.
Check it
Turn on the goggles and the drone: you should see the image and the OSD elements in place, with the correct voltage.
12. PID and rates: leave them as they are
On the PID Tuning tab there are two different things:
PID and filters
How the drone reacts to stay stable. Betaflight’s defaults fly very well on a normal 5". Don’t touch them for the first flight. Once you’re flying confidently, see Tuning and Blackbox.
Rates
How fast the drone turns when you move the sticks. It’s personal preference. If you’re coming from a simulator, copy the same rates over. See Rates.
On the Presets tab you’ll find community configurations (for example, a base tune for a 5" freestyle quad). They’re useful, but apply only a few and read what they change.
13. Save everything
Your drone is configured. Now make the backup that really matters:
# On the CLI tab
diff all
# Save it with “Save to file”, for example:
# dron5-llest-per-volar-2026-10.txt
Good habit: make a fresh diff all every time the drone is set up the way you like it. If one day you have to reflash it or you swap the flight controller, getting your configuration back is just a matter of pasting the text into the CLI and typing save.
14. The first flight
Go through the pre-flight checklist and, now at last, put the props on at the field, with your spotter next to you.
Props the right way round
Each prop must match its motor’s spin direction. Tighten the nuts properly.
Arm on the ground and do a short hover
Climb gently to one or two metres and hold it for about 30 seconds. Listen: the sound should be clean, with no oscillations.
Land and touch the motors
They should be warm. If one is much hotter than the others or they’re burning hot, don’t fly again until you know why.
Build up slowly
Short flights, a little more each time. See Learning to fly.
15. If something goes wrong
| Problem | Most likely cause | What to do |
|---|---|---|
| The computer doesn’t see the board | Charge-only cable or missing drivers | Try another cable; on Windows, install the drivers (step 1). |
| It won’t flash | The board doesn’t enter bootloader mode | DFU mode with the boot button (step 3). |
| The receiver bars don’t move | Wrong UART, wrong protocol or not bound | Check Ports (step 5), Receiver (CRSF) and binding (step 7). |
| A motor doesn’t spin on the Motors tab | Soldering or protocol | Check the motor’s solder joints and the DShot protocol (step 6). |
| No OSD in the digital goggles | MSP + DisplayPort or HD format missing | Ports (step 5) and video format on the OSD tab (step 11). |
| The drone won’t arm | Betaflight blocks arming for safety | Check the reason in Setup or on the OSD and see the why it won’t arm table. |
| It flips over on take-off | Motor order or direction, props on the wrong way or board misaligned | Check steps 4 and 9 and the prop direction. |
To understand each tab and the CLI commands better, see the reference chapter Betaflight: tabs, arming and CLI.
Stuck? The FPV Assistant tells you why the drone won’t arm, helps if your computer doesn’t see the flight controller, reviews your diff all and prepares a starting configuration for your type of drone. It’s always at hand with the “Assistant” button at the bottom right.