In this tutorial I will show you how to flash and update Betaflight on a flight controller and how to troubleshoot potential problems during FC flashing.
If you are new to Betaflight, check out my setup guide after you’ve flashed the firmware. There are instructions on how to configure your FC for your first flight, and many other Betaflight related tutorials.
Preparation Before Flashing Betaflight
Betaflight Configurator is the software we must use to flash the flight controller and configure Betaflight.
Download and install the latest version of Betaflight Configurator, it supports Windows, MacOS and Linux operating systems: https://github.com/betaflight/betaflight-configurator/releases/latest
Now connect the flight controller to your computer using a USB cable. It must be a data cable, charging only cable won’t work.
Before you update or flash Betaflight firmware, we recommend making a backup of your existing configuration in case you want to go back for whatever reasons. That’s because flashing a new firmware might erase all your settings. Here’s a tutorial on how to backup Betaflight settings.
How to Update/Flash Betaflight Firmware
Start Betaflight Configurator, and go to the “Firmware Flasher” tab on the left hand pane.
On the top of the screen, select the COM port of your FC (it’s either COM# port or DFU). If you have multiple COM ports and not sure which one, simply unplug the USB cable to your flight controller, then plug it back in and see which COM port reappeared.
Click the “Auto-detect” button, the configurator should automatically pick the correct board for you.
If “Auto-detect” doesn’t work, you can manually select the board in the dropdown list. You can find out the exact name of the board (firmware target), by typing version in CLI. Important: If you choose the wrong FC board, you can potentially “brick” your FC. If that happens to you, you can fix it by overwriting the correct firmware as shown here.
There are a few more options under the board selection, normally you can just leave them disabled unless you know what you are doing.
Now click “Load Firmware [Online]” and the firmware will be downloaded. You can also manually load a firmware on your computer (Load Firmware [Local]), this allows you to install custom compiled firmware.
Lastly click on “Flash Firmware” and the firmware update will begin. Make sure you do not pull the USB cable during the process or you could brick the FC. It should only take a couple of minutes.
If you have any trouble flashing, it can be a driver issue and here is how to fix it.
Applying Custom Settings
Once the flashing is completed you should be able to connect to the configurator by clicking the “Connect” button at the top right corner.
When connecting to the Configurator for the first time after flashing a new firmware, you will get a pop up asking if you want to apply custom settings, always check “Apply”!
Full Chip Erase Option
To wipe all the previous configurations you can select the “Full Chip Erase” option before flashing. This is useful if you messed up some settings in CLI and you don’t know how to fix it easily, or you accidentally disabled MSP for USB VCP port. And it’s also useful when you have trouble flashing your FC.
To do this, hold down the bootloader button (aka Boot button) on the FC, then connect the USB cable, you should see “DFU” appearing in the COM port.
Now flash the FC as described before.
The new Cloud Build System gives users the ability to custom compile our own version of Betaflight to include only the features we need to minimize firmware size.
This might not be a big deal now, but in the future when Betaflight code continues to grow and becomes too big for some processors, it will come in handy! As I mentioned in my FC processor overview, F411 and F722 have only 512KB of memory. Cloud Build System can make Betaflight firmware smaller for these processors and prolong their lifespan.
At the time of publishing, there’s no need to change anything, just leave everything at default and it should just work for most people. But you can remove/add features as you see fit if you know what you are doing.
What Does “Legacy” Mean in “Select a Board”?
When selecting a board in the drop down, you may see duplicated flight controller boards, with one of them having “Legacy” at the end of the name.
Generally, you want to just ignore those legacy boards in the list and flash the “non-legacy” targets which have the new unified target structure. “Legacy” are the old-style (compiled for each board). Eventually the Legacy targets will go away and replaced by the non-legacy targets. You shouldn’t notice any difference (at least that’s the goal), it’s only there in case of issues.
- Sep 2018 – guide created
- Oct 2022 – updated for BF4.3
- Jan 2023 – updated for BF4.4