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.

Reviewed: · Found a mistake? Let us know

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.

The ten steps of the tutorial in two rows: connect, backup, firmware, setup, ports, configuration, receiver, modes, motors, and failsafe with OSD 01Connect 02Backup 03Firmware 04Setup 05Ports 06Config. 07Receiver 08Modes 09Motors 10Failsafeand OSD
The full route. Each step has its own section further down.
  1. Install and connect
  2. Make a backup
  3. Update the firmware
  4. Setup and alignment
  5. Ports
  6. Configuration and battery
  7. Receiver
  8. Modes
  9. Motors
  10. Failsafe
  11. OSD and video
  12. PID and rates
  13. Save everything
  14. First flight
  15. If something goes wrong

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.

  1. Open Betaflight App

    Go to app.betaflight.com in Chrome or Edge. Firefox and Safari can’t access the USB port.

  2. Connect the drone over USB

    No battery and no props. The board is powered through the cable and you can already configure almost everything.

  3. 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.

  4. 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.

Diagram of the Betaflight App window: the port selector and the connect button at the top right, the tabs on the left and the 3D model of the drone in the centre Betaflight App USB · COM3 ▾ Connect ▸ Setup Ports Configuration Power & Battery Failsafe PID Tuning Receiver Modes · Motors OSD · CLI FRONT 1 · Port 2 · Connect
Simplified diagram of the window. The tabs on the left are the steps of this tutorial.

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.

  1. Open the CLI tab

    It’s Betaflight’s command line: a window where you type text instructions.

  2. Type diff all and press Enter

    It shows only what differs from the defaults. It’s short and easy to read.

  3. 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.

  1. Disconnect and open the Firmware Flasher

    Press “Disconnect” and, on the left, choose Firmware Flasher.

  2. 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_name in the backup from step 2.

  3. Pick the version

    The latest stable release, never a “release candidate” (RC) for a first build.

  4. 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.

  5. Tick “Full chip erase”

    It wipes the old configuration and avoids mixing parameters from one version with another.

  6. 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.

Diagram of the Firmware Flasher: board, version, CRSF radio protocol, telemetry, OSD, options, the chip erase checkbox and the load and flash buttons Firmware Flasher Board YOUR_BOARD ▾ Auto-detect Version Stable (latest) ▾ Radio protocol CRSF ▾ Telemetry CRSF ▾ OSD HD (digital) ▾ Other options GPS · LED_STRIP Full chip erase Load Firmware [Online] Flash Firmware
Settings for a drone with an ExpressLRS receiver and digital video. With analogue video, choose analogue OSD.
Board not responding or no port showing? Put it in DFU mode: unplug the USB, hold down the flight controller’s boot button and plug it back in. Now try flashing again. On Windows you may need the DFU driver (the Betaflight website has a tool to install it).

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.

  1. 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.

  2. 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).

  3. 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 connectedWhat to enable on its row
ExpressLRS receiverSerial 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 transmitterUnder Peripherals, VTX (TBS SmartAudio) or VTX (IRC Tramp), depending on the model.
GPSUnder 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

OptionRecommended valueWhy
ESC/Motor protocolDShot300 or DShot600Digital and precise. DShot300 works on any board; DShot600 if the board and ESC are fast (F7, H7).
Bidirectional DShotOnEnables the RPM filter, which makes the drone fly more cleanly. Needs a compatible ESC (BLHeli_32, AM32 or Bluejay).
Motor poles14The number of magnets in most 5" motors. If yours are different, count them.
Craft nameThe drone’s nameIt shows on the OSD and in the backup.
Gyro and PID frequenciesDefaultThe manufacturer’s values are already right for your board.

Power & Battery tab

  1. Voltage and current sources

    Voltage meter and Current meter set to Onboard ADC (or as the manufacturer says).

  2. Cell limits

    Minimum 3.3 V, warning at 3.5 V and maximum 4.3 V (4.35 V if the batteries are HV).

  3. 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.

  4. 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.

  1. 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.

  2. Check the versions match

    The radio and the receiver must be on the same major version of ExpressLRS. If not, they won’t bind.

  3. Move the sticks

    Each stick should move its own bar, in the right direction, from 1000 to 2000.

Channel bars on the Receiver tab with the sticks at rest: roll, pitch and yaw at 1500, throttle at 1000 and AUX1 at 1000 CHANNEL 100015002000 Roll 1500 Pitch 1500 Yaw 1500 Throttle 1000 AUX1 (arm) 1000
This is how it should look with the sticks at rest: the three axes centred (1500) and the throttle and arm switch at the bottom (1000).
Move…The bar that should moveCorrect direction
Right stick to the rightRollRises towards 2000
Right stick forwardsPitchRises towards 2000
Left stick to the rightYawRises towards 2000
Left stick upThrottleRises 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.

Modes tab: ARM on AUX1 between 1700 and 2100, BEEPER on AUX2 and FLIP OVER AFTER CRASH on AUX3, with each switch’s current position marked 90015002100 ARMAUX1 BEEPERAUX2 FLIP OVERAFTER CRASH · AUX3
Each mode turns on when the dot (the switch position) enters the band.

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.

Top view of the drone with props out: motor 1 rear right and motor 4 front left spin anticlockwise; motor 2 front right and motor 3 rear left spin clockwise FRONT 4 2 3 1 Anticlockwise Clockwise Clockwise Anticlockwise
Betaflight motor order seen from above, with props out, the setup used in our build.
  1. 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.

  2. 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.

  3. 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.

Example OSD in the goggles: drone name at the top left, link quality and signal at the top right, crosshair in the centre, voltage per cell and consumption at the bottom left, and flight time at the bottom right FPV.CAT LQ 100 -62 dBm 4.12V 312 mAh 02:31 name link signal voltage per cell flight time crosshair
A clean layout to start with. The grey text is labels for this drawing; it doesn’t appear in the goggles.
ElementWhy you want it
Average voltage per cellTo know when to land. Head back when it drops below 3.5 V in flight.
Link Quality (LQ) and RSSI dBmHow good the radio signal is. If it drops, turn back.
Flight timeA reference for each battery.
Consumption (mAh)More reliable than voltage for knowing how much battery you have left.
WarningsThey 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.

  1. Props the right way round

    Each prop must match its motor’s spin direction. Tighten the nuts properly.

  2. 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.

  3. 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.

  4. Build up slowly

    Short flights, a little more each time. See Learning to fly.

15. If something goes wrong

ProblemMost likely causeWhat to do
The computer doesn’t see the boardCharge-only cable or missing driversTry another cable; on Windows, install the drivers (step 1).
It won’t flashThe board doesn’t enter bootloader modeDFU mode with the boot button (step 3).
The receiver bars don’t moveWrong UART, wrong protocol or not boundCheck Ports (step 5), Receiver (CRSF) and binding (step 7).
A motor doesn’t spin on the Motors tabSoldering or protocolCheck the motor’s solder joints and the DShot protocol (step 6).
No OSD in the digital gogglesMSP + DisplayPort or HD format missingPorts (step 5) and video format on the OSD tab (step 11).
The drone won’t armBetaflight blocks arming for safetyCheck the reason in Setup or on the OSD and see the why it won’t arm table.
It flips over on take-offMotor order or direction, props on the wrong way or board misalignedCheck 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.