In this tutorial, I’ll show you how to flash and update Betaflight firmware on your FPV drone’s flight controller. I’ll also cover common issues and troubleshooting tips you might encounter during the process.
Flashing firmware might reset all your settings to default, so you may need to reconfigure your drone from scratch before the first flight. Follow this step-by-step setup guide: https://oscarliang.com/betaflight-firmware-setup/
What Is Flashing Firmware?
Betaflight is the software that runs on your flight controller, just like Windows runs on your PC. Like any software, new versions are released with bug fixes, new features, and performance improvements. Installing a new version of Betaflight onto your flight controller is what we call “flashing” the firmware.
Do You Need to Flash New Firmware?
Think twice before updating, especially if you’re a beginner.
Updating (flashing) firmware can reset all your settings, meaning you’ll have to set up the drone again from scratch. Ask yourself these questions before flashing:
- Is your quad flying fine? → If yes, you probably don’t need to update.
- Do you know how to configure Betaflight from scratch? → If not, hold off for now.
Getting Betaflight Configurator
Betaflight Configurator is the tool used to configure and flash your flight controller.
You can now access it directly online in your browser — no installation needed: https://app.betaflight.com/
If you prefer the traditional desktop version, you can download and install it from GitHub: https://github.com/betaflight/betaflight-configurator/releases/latest
Backup First
Before flashing new firmware, always back up your existing settings. There are a few ways to do this, as explained in my backup tutorial: https://oscarliang.com/backup-restore-betaflight-config/.
The simplest method is to go to the Presets tab in Betaflight Configurator and click “Save Backup” — this will save your current settings in a text file.
Connecting the Flight Controller
Plug in a USB cable to your flight controller.
Open Betaflight Configurator. Select the COM port that corresponds to your flight controller.
Tip: If you’re unsure which COM port to select, unplug and replug your FC — watch which port disappears and reappears in the list. That’s the correct one.
Firmware Flasher Explained
To flash Betaflight, go to the “Firmware Flasher” tab in the left-hand panel of the Configurator. This is where you’ll select your target board, choose a firmware version, and start the flashing process.
Choosing the Right Target
Every flight controller has a unique firmware target — this ensures compatibility with your board’s hardware and design.
There are two ways to find the right target:
- Auto-Detect: Click “Detect” to let Betaflight automatically identify your board.
- Manual Selection: If detection fails, select your board manually from the dropdown menu. You can find your board name by typing
versionin the CLI tab (follow instructions here: https://oscarliang.com/identify-betaflight-firmware-target/).
Warning: Flashing the wrong target can cause missing sensors, malfunctioning features, or even brick your FC. If this happens, you can usually recover it by following this guide: https://oscarliang.com/cannot-connect-to-naze32-brick-fix/
Choosing the Firmware Version
Next, select the firmware version you want to flash — usually the latest stable release.
If you’d like to test cutting-edge updates, enable “Show release candidates” to access any beta versions that might be available. However, proceed with caution: release candidates (RC) are still being tested and may contain bugs. For most users, stick with stable releases for reliability.
Flashing Options Explained
Click “Enable Expert Mode” to unlock all available flashing options. Here’s what each does:
- No Reboot Sequence: Normally leave this disabled. Most flight controllers automatically reboot into DFU mode when flashing. Enable it only if your FC fails to reboot correctly during the flash process.
- Flash On Connect: Leave this disabled. Enabling it will automatically start flashing as soon as a serial port is detected, but this will bypass the backup reminder.
- Full Chip Erase: Recommended. It completely wipes existing configurations to avoid potential conflicts or leftover settings from older firmware.
- Manual Baud Rate: Used for boards that don’t support the default flashing speed or for flashing over Bluetooth. When flashing via USB, just leave it at the default 256000.
Build Configuration
Build Configuration (also known as Cloud Build System) allows you to customize your Betaflight firmware to include only the features you actually need. This helps minimize firmware size, which is important because the memory on flight controller processors is limited.
It might not be a big deal now, but as Betaflight continues to grow in complexity, this feature will become increasingly useful. . As I mentioned in my FC processor guide, F411 and F722 chips have only 512KB of flash memory. Using Build Configuration helps make the firmware smaller, prolonging their lifespan.
Default settings might work, but I highly recommend going through the list to add/remove features based on your needs.
- Core Only: Leave this disabled. This option builds firmware that includes only low-level hardware drivers — most Betaflight features will be missing.
- Radio Protocol: Only one receiver protocol can be installed at a time. For ExpressLRS or Crossfire receivers, select CRSF.
- Telemetry Protocol: For CRSF, leave it as default (telemetry is built-in).
- OSD Protocol: Digital for DJI, Walksnail, or HDZero. Analog for analog FPV system.
- Motor Protocol: Choose DSHOT unless you have a specific reason to use another protocol (e.g., for brushed motors or legacy ESCs).
- Other Options: Enable the features you use and disable those you don’t. This keeps your firmware lightweight and avoids unnecessary memory usage.
Here are two examples based on my own setups:
Analog Freestyle Quad (No GPS):
- LED Strip
- SoftSerial
- VTX (for VTX Table configuration — only needed for analog FPV system)
DJI O4 Pro Long-Range Quad (With GPS):
- GPS
- Magnetometer
- Altitude Hold
- Position Hold
Loading Firmware
Once you’re ready to flash, click “Load Firmware [Online]” to download the firmware file directly from Betaflight’s server.
Tip: If you’ve already downloaded the firmware file elsewhere (for example, from your flight controller manufacturer’s website or from a friend), you can use “Load Firmware [Local]” to load that file manually.
Once the firmware is successfully loaded into the Configurator, the “Flash Firmware” button will become available.
Before flashing begins, Betaflight will prompt you to save your CLI text file — this acts as a backup of your current configuration. Save it somewhere safe, then the flashing process will start.
Flashing typically takes one to two minutes.
Problems with Flashing or Driver Issues
If you’re having trouble flashing firmware, you may need to manually put your FC in bootloader mode (also known as DFU mode). Follow this guide: https://oscarliang.com/dfu-mode/. To sum it up:
- hold down the bootloader button while connecting the USB cable
- or type
blin CLI
If this is the first time you’ve connected your flight controller to your PC, you might need to install the DFU driver so it’s recognized correctly. The easiest way is to use a free tool called ImpulseRC Driver Fixer (download it here), which automatically detects and installs the correct driver.
Still stuck? Check out my detailed driver troubleshooting guide: https://oscarliang.com/fc-driver-issues-flash-firmware/
After Flashing Firmware
Once flashing completes, you can reconnect to your flight controller by clicking “Connect” in the top-right corner of Betaflight Configurator.
You might see a few warnings — here’s what they mean and how to fix them:
Accelerometer Is Not Calibrated
You may see: “The accelerometer is enabled but not calibrated.”
Fix:
- Place your drone on a level surface.
- Go to the Setup tab.
- Click “Calibrate Accelerometer”.
No Motor Output Protocol Selected
You may see: “There is no motor output protocol selected”.
Fix:
- Go to the Motors tab.
- Under ESC/Motor Protocol, choose a protocol such as DShot300 or DShot600, depending on your PID loop rate.
- DShot300 for 4kHz
- DShot600 for 8kHz
- Click “Save and Reboot” in the bottom left corner.
In most modern builds, DShot300 and DShot600 are the go-to choices.
Setup Your Flight Controller
You’ll need to set up your flight controller for the first flight. Follow my detailed step-by-step setup guide here: https://oscarliang.com/betaflight-firmware-setup/
Conclusion
Flashing and updating Betaflight firmware can seem intimidating at first, but once you understand how firmware targets, drivers, and bootloader mode work, it becomes a quick and straightforward process. Always back up before flashing, double-check your firmware target, and take your time — it’s the safest way to keep your drone flying smoothly and up to date.
Edit History
- Sep 2018 – guide created
- Oct 2022 – updated for BF4.3
- Jan 2023 – updated for BF4.4
- Nov 2023 – updated instructions
- Nov 2025 – updated for BF2025.12 (BF4.6)

