Betaflight 4.5 First-Flight Setup Guide

Configure a new 5" FPV freestyle build for first flight using Betaflight 4.5+ — the open-source FC firmware that powers virtually every modern FPV quad. This guide assumes you've assembled the hardware (FC + ESC stack, motors, receiver, VTX). Total config time: 30-45 minutes plus 15 minutes of bench testing.

Intermediate · 45 minutes · 7 steps

What You Need

What Betaflight 4.5 changed from earlier versions

Betaflight 4.5 (released late 2024, current as of 2026) introduced several quality-of-life improvements over 4.4: native DJI HD OSD support (no more workarounds for DJI O3/O4), improved RPM filtering for cleaner motor traces, simplified ELRS setup wizard, and better defaults for the now-universal ICM-42688-P gyro. Most existing 4.4 builds upgrade cleanly to 4.5 with a single firmware flash.

The upgrade path from 4.4 to 4.5: backup current configuration via Configurator (Settings → Backup), flash 4.5 firmware, restore configuration. 95% of settings transfer cleanly. The remaining 5% (custom RPM filter values, advanced PID tunes) may need re-tuning after the upgrade — most pilots use this as an opportunity to start fresh with 4.5 defaults.

Tools you'll need beyond the FC stack

Laptop with Betaflight Configurator installed (free, betaflight.com/downloads). USB-C cable to connect to the FC. ImpulseRC Driver Fixer or Zadig (Windows only — fixes the STM32 VCP driver enumeration that Windows breaks regularly). A smoke stopper ($15) for first power-on after soldering — limits current to prevent short circuits from destroying the FC. A 6S LiPo battery + the actual flight battery for live testing.

Optional: SpeedyBee app on iPhone / Android (free) — wireless Bluetooth alternative to laptop Configurator. Works for 80% of typical config tasks. Doesn't replace the laptop for firmware flashing or advanced CLI commands.

Step-by-Step Instructions

  1. Step 1 Connect FC to Betaflight Configurator

    Plug USB-C cable from laptop to FC. Windows: if the FC isn't recognized, run ImpulseRC Driver Fixer (https://impulserc.com/pages/downloads). macOS / Linux: drivers built into the OS, no action needed. Open Betaflight Configurator. Select the COM port in the top-right dropdown (usually COM3-7 on Windows, /dev/cu.usbmodem* on macOS). Click 'Connect'. Configurator displays a 3D model of the FC orientation.

    Verify the model rotates correctly when you tilt the FC physically. If the rotation is wrong, you'll need to set Board Alignment in Configuration tab to match how the FC is mounted in the frame. SpeedyBee F405 V4 with USB-C facing rear of frame: no alignment changes needed.

    Tip: If COM port doesn't appear, try a different USB-C cable. Many USB-C cables are charge-only with no data lines — buy a quality 'data + power' cable specifically.
  2. Step 2 Flash latest Betaflight firmware

    In Betaflight Configurator, click 'Firmware Flasher' (top-left tab). Select target: SPEEDYBEEF405V4 (or your FC's specific target). Select firmware version: latest stable Betaflight 4.5.x. Check 'Full Chip Erase'. Click 'Load Firmware (Online)'. Once download completes, click 'Flash Firmware'. Process takes 30-60 seconds. FC reboots to bootloader, then back to runtime. Configurator auto-reconnects.

    After flashing, FC is at factory defaults. You'll need to configure receiver type, motor directions, ESC protocol, ports, modes, OSD — covered in following steps. This is also a good time to back up the factory-fresh configuration: Settings → Backup → save the .yaml file. Restore from this baseline if a future change breaks the build.

    Tip: Don't flash beta or release-candidate firmware on a daily-driver build. Stable releases only. Latest stable as of 2026-05: 4.5.2 — check betaflight.com for current.
  3. Step 3 Configure receiver (ExpressLRS)

    In Configurator → Ports tab: enable Serial RX on the UART your receiver is wired to (typically UART2 on the SpeedyBee F405 V4 stack — check FC documentation). Save and reboot.

    Configuration tab: Receiver section, set Receiver Mode to 'Serial-based receiver (SPEKSAT, SBUS, SUMD)'. Set Serial Receiver Provider to 'CRSF'. Save and reboot. Receiver tab: stick movements should now register in the channel bars. If they don't move when you move TX sticks, the receiver isn't bound to the radio — bind via the receiver's WiFi WebUI (instructions in the receiver manual).

    Calibrate channel endpoints: while in Receiver tab, move each stick to all extremes and check that the channel bars hit 988 µs (minimum) to 2012 µs (maximum). If they don't, re-calibrate in EdgeTX on the radio (Model Setup → Outputs → set min/max per channel).

    Tip: ExpressLRS receivers don't need a 'bind' button — they enter binding mode automatically on first power-up. Power on the receiver while it's near the powered-on radio. Binding completes in seconds when the radio's TX module sees the binding-mode receiver.
  4. Step 4 Configure motors and ESC

    Configuration tab: ESC/Motor Features section. Set ESC/Motor protocol to 'DSHOT600' (BLHeli_S supports up to DSHOT600). Set Motor PWM Speed if needed (auto-detect handles most cases). Save and reboot.

    Motors tab: enable 'I understand the risks, propellers are removed'. Slide each motor up to verify it spins in the correct direction. Standard Betaflight quadcopter convention: motor 1 spins clockwise, motor 2 counter-clockwise, motor 3 counter-clockwise, motor 4 clockwise (viewed from above). If a motor spins the wrong direction, fix in BLHeli_S Configurator (download from github.com/bitdump/BLHeliSuite) — connect each ESC, reverse direction. Faster alternative: use Bluejay firmware which has bidirectional support and lets you reverse direction in Betaflight Motors tab directly.

    After motor directions are correct, install props (matching motor rotation per Betaflight motor mix). Do NOT spin props at high throttle on the bench — props attach to motors only after all bench testing is complete.

    Tip: Common first-build mistake: motors spinning wrong direction. The fix is BLHeli_S Configurator or Bluejay flash — NOT physically swapping motor wires. Motor wire swaps don't reverse the direction on modern brushless ESCs.
  5. Step 5 Configure modes (Arm + Angle + Flight modes)

    Modes tab is where you bind radio switches to FC functions. Standard setup: ARM on AUX1 switch (must be flipped to enable motor spin), ANGLE on AUX2 switch (self-leveling mode for learning), HORIZON on AUX2 mid (mixed mode), ACRO on AUX2 off (full manual for serious flying). Air Mode is on by default in Betaflight 4.5.

    For each mode: click 'Add Range', select the AUX channel, set the activation range using the slider. Test by moving the switch on the radio — the channel slider should move into the activation range and the mode highlights green. Save and reboot.

    Safety: configure failsafe on Receiver tab — what the FC does if it loses RC signal. Default 'Drop' is safest for beginners (kills motors immediately). Advanced: 'Land' mode automatically descends to ground if RC is lost.

    Tip: Always assign ARM to a switch that requires deliberate motion (not a button you might accidentally press). Standard convention: 3-position switch with ARM on the position that requires moving the switch fully forward / down.
  6. Step 6 Configure OSD (Betaflight OSD with analog or DJI HD)

    OSD tab: enable the elements you want on-screen during flight. Critical elements: RSSI (signal strength), battery voltage, current draw, mAh used, timer, flight mode. Optional: GPS coordinates, altitude, heading. Drag elements to position them on the simulated screen — typically RSSI top-right, battery top-left, timer bottom-center, mode bottom-left.

    For analog VTX OSD: factory default works — Betaflight overlays OSD on the analog video signal. For DJI / Walksnail / HDZero HD OSD: enable MSP DisplayPort in Configurator → Ports tab on the UART connected to the VTX (typically UART6 on the SpeedyBee). Then in OSD tab, switch to 'DJI/Walksnail' OSD layout — element positions and font are slightly different than analog. Test with VTX powered on and goggles paired before flight.

    Tip: For first flight, keep OSD elements minimal — just RSSI, voltage, and flight mode. Add more elements after you're flying comfortably and want detailed telemetry.
  7. Step 7 Bench test before first flight

    With everything configured: power on FC via battery (NOT just USB — Configurator should display normally either way, but final test needs real battery voltage). Confirm: voltage reading matches actual battery voltage. RSSI shows full strength when radio is on. Motor directions correct without props. ARM switch arms / disarms motors. ANGLE / ACRO mode switching works. OSD displays in goggles via VTX.

    If anything is wrong, fix it before flying. First flight is not the time for surprises. Common bench-test failures: VTX not powering on (check 12V VTX pad voltage), motors spinning wrong direction (fix in BLHeli_S Configurator), no OSD in goggles (check VTX UART configuration), RSSI dropping near the FC (antenna placement issue).

    Tip: Install props ONLY after all bench tests pass. Once props are on, every motor test risks an injury — keep hands clear of prop arc at all times.

Frequently Asked Questions

Can I configure Betaflight without a laptop?

For SpeedyBee FCs: yes — the SpeedyBee app on iPhone / Android provides a Bluetooth Configurator clone that handles 80% of typical config tasks (Ports, Modes, Receiver, Motors, OSD basics). For non-SpeedyBee FCs: no, you need a laptop. Even with the SpeedyBee app, you need a laptop for firmware flashing and advanced CLI commands.

What's the difference between Betaflight 4.4 and 4.5?

4.5 adds native DJI HD OSD, improved RPM filtering for cleaner motor traces, simplified ELRS setup wizard, and better defaults for ICM-42688-P gyro. Backup-restore between versions works for most settings. Custom PID tunes may need re-tuning after the upgrade.

Why won't my receiver bind?

Common causes: receiver in wrong bind mode (ExpressLRS auto-binds on first power-up, no manual bind needed), receiver firmware version mismatch with radio TX module firmware (flash both to latest matching versions), wrong UART configured in Ports (verify FC documentation for which UART has the receiver wired). If still failing, manually trigger bind via the receiver's WiFi WebUI: power receiver, connect phone to its WiFi AP (network name 'ExpressLRS-RX'), open 192.168.4.1 in browser, click 'Bind'.

How do I know which UART is which?

Check the FC documentation (SpeedyBee F405 V4 datasheet). Standard layout: UART1 = USB-C, UART2 = receiver, UART3 = VTX SmartAudio, UART4 = GPS, UART5 = ESC telemetry, UART6 = spare / DJI HD OSD. In Configurator → Ports, each UART is labeled — match your wiring to the labels.

What if I crash and break a motor?

Easy fix. Unsolder the 3 motor wires from the ESC. Solder the new motor's 3 wires in the same positions. Check motor direction in Motors tab — likely needs to be reversed if the new motor's wiring order differs. Recalibrate if vibration patterns change (some PIDs may need re-tuning). Total fix time: 30-60 minutes including soldering.

Do I need to PID tune for my first flight?

No — Betaflight 4.5 defaults are flyable for typical 5" builds with 2207 motors. Fly stock for 5-10 batteries to get used to the quad. Then if flight performance feels twitchy or sluggish, look up PID Tuning guides (Joshua Bardwell, UAVTech) and adjust per their step-by-step process. Don't tune blindly — measure first via blackbox logs.