How to Safely Upgrade FPV Drone Firmware Without Bricking Your FC

# How to Safely Upgrade FPV Drone Firmware Without Bricking Your FC

“Just update to the latest Betaflight — it’s easy.” Those are famous last words before a flight controller enters DFU mode and never comes out. Firmware updates are essential for new features, bug fixes, and performance improvements, but they’re also the most common way pilots brick their flight controllers. This guide covers how to upgrade Betaflight, BLHeli/Bluejay, and ELRS firmware safely, and exactly what to do if something goes wrong.

## Before Anything: Back Up Your Configuration

The #1 cause of post-update frustration isn’t a bricked FC — it’s losing a perfectly tuned configuration. Betaflight updates wipe all settings.

### Betaflight Backup

1. Betaflight Configurator → **CLI** tab.
2. Type `diff all` and press Enter.
3. Click `Save to File` at the bottom of the CLI output. Name it `BF_backup_YYYY-MM-DD.txt`.
4. ALSO type `dump` and save that too. A `dump` contains every setting (including defaults), while `diff all` only contains your changes. Having both is insurance.
5. Take screenshots of your PID Tuning, Rates, and Filters tabs. Configurator screenshots have saved countless pilots from misremembered rate curves.
6. Note your current Betaflight version and target name (e.g., `STM32F7X2` or `STM32H743`). You can see this in the top-right corner of Configurator or by typing `version` in CLI.

### ESC Firmware Backup

1. Open BLHeli Suite (BLHeli_32) or ESC Configurator (Bluejay).
2. Click `Read Setup` or `Read All`.
3. Take a screenshot of the settings page.
4. Note the firmware version (e.g., BLHeli_32 32.9, Bluejay 0.21).

### ExpressLRS Backup

1. Open the ELRS Configurator or web UI (10.0.0.1 when in WiFi mode).
2. Note your bind phrase (Settings → Bind Phrase) — write this down physically.
3. Note the firmware version (e.g., 3.4.2) and the device target.

## Betaflight Firmware Update

### Step 1: Identify Your Target

The “target” is the specific firmware build for your flight controller. Using the wrong target will soft-brick the FC.

1. In Betaflight Configurator CLI, type `version`. Look for the target name.
2. Or look at your FC’s product page — the manufacturer lists the Betaflight target.
3. Common targets:
– STM32F405: `STM32F405` or a custom target like `SPEEDYBEEF405V4`
– STM32F722: `STM32F7X2`
– STM32H743: `STM32H743`

**Never guess the target**. If you can’t identify it, do not proceed.

### Step 2: Enter DFU (Device Firmware Update) Mode

DFU mode is the bootloader state that allows firmware flashing. There are three ways to enter it:

| Method | How | Best For |
|——–|—–|———-|
| Configurator button | Firmware Flasher tab → click “DFU” button in top-right | Most reliable |
| Boot button | Hold the BOOT button on FC while plugging USB | If Configurator can’t connect |
| CLI command | Type `bl` in CLI | Quick, but only works if FC connects normally |
| ImpulseRC Driver Fixer | Software utility for STM32 FCs | Windows, if DFU not detected |

### Step 3: Flash the New Firmware

1. Betaflight Configurator → **Firmware Flasher** tab.
2. Select your target from the dropdown (auto-detected if in DFU mode).
3. Choose the firmware version. **Never flash a Release Candidate (RC) on your primary quad** — RC versions have known bugs.
4. Set `Flash on connect` to ON.
5. Set `Full chip erase` to ON (this wipes all settings — that’s why we backed up).
6. Click `Load Firmware [Online]`, wait for download.
7. Click `Flash Firmware`.
8. The progress bar should complete in 20-60 seconds. Do not disconnect USB during flashing.
9. Configurator will show “Programming: SUCCESSFUL” when done.

### Step 4: Restore Configuration

1. Click `Connect` in Configurator. If the FC doesn’t connect, see the recovery section below.
2. Go to CLI tab.
3. Open your saved `diff all` file. Copy the entire contents.
4. Paste into CLI and press Enter. The FC will process the commands and reboot.
5. **Do NOT restore a `dump` from a different Betaflight version**. Settings change between versions — a 4.3 `dump` will cause errors on 4.5.
6. After restore, verify: PIDs, rates, modes, ports, and OSD are all correct.

### Step 5: Recalibrate

After a major version upgrade, recalibrate:

1. Accelerometer (if using Angle/Horizon mode)
2. Voltage and current sensor (if values look off)
3. Re-bind your receiver if the protocol settings were wiped

## BLHeli / Bluejay ESC Firmware Update

### BLHeli_32

1. Open BLHeliSuite32.
2. Connect via Betaflight passthrough (power with battery, connect USB, click “Read Setup”).
3. Note current settings.
4. Click `Flash BLHeli`, select the latest version.
5. Flash each ESC individually.
6. Verify settings (motor direction, timing, demag compensation) are preserved or reapply from your backup.

### BLHeli_S → Bluejay Migration

If your ESC runs BLHeli_S (typically version 16.7 or 16.8), upgrade to Bluejay for bidirectional DShot, RPM filtering, and turtle mode:

1. Open [ESC Configurator](https://esc-configurator.com/) in Chrome/Edge.
2. Connect via Betaflight passthrough.
3. Click `Read Settings`. Note PWM frequency (usually 48kHz for 5-inch).
4. Click `Flash All`. Select Bluejay version (0.21 or later).
5. Set PWM frequency to 48kHz (5-inch) or 96kHz (whoops).
6. Flash all 4 ESCs simultaneously — takes about 10 seconds.
7. Verify in Betaflight Motors tab: all motors spin in the correct direction.

**Warning**: Do NOT interrupt power during Bluejay flashing. A partial flash bricks the ESC and requires a C2 or SWD programmer to recover (not field-repairable).

## ExpressLRS Firmware Update

### Receiver Update (via WiFi)

1. Power the receiver. If it doesn’t connect to a transmitter within 60 seconds, it enters WiFi mode (LED blinks rapidly).
2. Connect your phone/laptop to the `ExpressLRS RX` WiFi network (password: `expresslrs`).
3. Open browser to `10.0.0.1`.
4. Click `Update`, select the firmware file (`.bin` or `.elrs`).
5. Upload and wait for “Update Success” message.
6. The receiver reboots automatically with the new firmware.

### Transmitter Module Update

1. Connect the module to your computer via USB.
2. Open ExpressLRS Configurator.
3. Select your device target and firmware version.
4. Set the same bind phrase as your receiver.
5. Click `Build & Flash`.
6. After flashing, power cycle the module.

**Critical**: All ELRS devices must share the same MAJOR version (e.g., all 3.x). A 3.x TX module cannot bind to a 2.x receiver. If upgrading one device, upgrade all devices.

## What to Do If Something Goes Wrong

### FC Doesn’t Connect After Flash

1. **Don’t panic**. A non-connecting FC is almost always recoverable.
2. Disconnect and reconnect USB. Wait 10 seconds.
3. Hold the BOOT button, plug in USB, release BOOT. This forces DFU mode.
4. Re-flash the firmware. Sometimes a flash completes but the bootloader doesn’t hand off to the application — re-flashing fixes this.
5. If DFU mode is still detected but flashing fails, try a different USB cable (data-capable, not charge-only) and a different USB port.
6. Try the **ImpulseRC Driver Fixer** (Windows) or check `dfu-util -l` output (macOS/Linux) to verify the FC is detected.

### Flashed Wrong Target

1. Boot into DFU mode (hold BOOT button while plugging USB).
2. Flash the **correct** target with full chip erase.
3. The wrong target won’t permanently damage the FC — it just won’t boot until the correct firmware is loaded.

### ESC Bricked During Flash

1. If one ESC is bricked but others work: the bricked ESC needs a C2 interface programmer (for Silabs-based BLHeli_S) or SWD programmer (for STM32-based BLHeli_32). This is not field-repairable — replace the ESC.
2. If it’s a 4-in-1 ESC and one channel is bricked: you must replace the entire 4-in-1 board.

### Lost Bind Phrase After ELRS Update

1. If you forgot your bind phrase but still have it on your radio: extract it from the radio’s ELRS LUA script settings.
2. If lost on both devices: you must manually flash the bind phrase to each receiver via WiFi (receiver enters WiFi mode if not bound within 60s).

## The Golden Rules of Firmware Updates

1. **If it flies fine, don’t update**. The latest firmware is not always the best firmware for your quad.
2. **Back up everything first**. `diff all`, screenshots, physical notes.
3. **Never update firmware the night before a race or trip**. Give yourself time to test and tune.
4. **Flash one quad at a time**. Bricking your entire fleet in one session is an expensive lesson.
5. **Know your target**. Flashing the wrong firmware is the #1 cause of FC bricks.
6. **Full chip erase is your friend**. Carrying over settings between major versions causes subtle bugs.

**Keep your fleet up to date with quality flight controllers from UAVMODEL.** All our flight controllers ship with the latest stable Betaflight and clear target documentation. [Shop now at uavmodel.com](https://uavmodel.com)

Leave a Comment

Scroll to Top