How to install/Flash Betaflight Firmware (GUI or DFU Mode)

How to install/Flash Betaflight Firmware (GUI or DFU Mode)

This is a quick guide that will walk you through the process of flashing betaflight firmware onto your flight controller


What is a "Firmware Target" or "HEX File" in this context?

Betaflight firmware is made to run on many different boards. So, it is essential that Betaflight and the manufacturers are able to communicate to let one another know which pin on the board does what action in the firmware. This is where Firmware Targets come in - a manufacturer can provide a file which essentially tells the Betaflight firmware "We've chosen this pin for this action",  and that means the Betaflight developers don't have to do as much additional work to make sure the board will be supported by Betaflight. It's like a translation layer between the hardware (the components on the board) and the firmware (Betaflight).

A HEX file is just the name commonly used to refer to the firmware file itself. Once you've selected a firmware target and version, you have the option to "load online" in Betaflight. What this actually does is uses the target you've selected and the version you've selected to pick out the specific firmware file for your board from a large online library of firmware files for all versions and targets, so you don't have to do it yourself. Sometimes, though, manufacturers will provide you with a HEX file rather than a firmware target to select. This might be because they use a modified version of Betaflight and the typical releases won't work, for example, though this is rare.

In other words, it is very, very important that you choose the correct firmware target or HEX file for your board. If you don't, then the software running on the board won't know what to do with the hardware on the board, and ultimately the board won't work.

Which Firmware target do I select, or which HEX file do I need to flash my Flight Controller Firmware?

The best way is to check the flight controller product page or manual as both locations will typically say what target you need to use. You're looking for something like in the image below; 

It might be labelled as "Target", "Firmware", or similar.
If it is not clear, it's best to ask your retailer or the manufacturer who will be able to provide details to avoid installing the wrong firmware and bricking your board. Alternatively, if the FC is already working fine and you just wish to upgrade the firmware, you can find the target yourself by checking out this guide.

How to Flash Firmware using Betaflight GUI

Using Betaflight Configurator, select the Firmware Flasher tab and select what firmware to flash in one of two different ways, online or local firmware.
  1. Option 1) Load online firmware.
    Select Target and Version in the upper left corner. Press "Load Firmware {Online]", lower right part of the screen. This is best if you don't have a HEX file downloaded already, and is the most common means of installing firmware. Make sure the Target you select is correct (see above)!
  2. Option 2) Load local firmware. (Skip this if you've loaded online!)
    This one is for if you already have a HEX file downloaded and saved to your computer somewhere. You don't need to select a target or version, just Press the "Load firmware [Local]" button, then browse to and select the hex file you've downloaded and wish to install. Be sure that you select the correct firmware hex-file for your Flight Controller!
  3. Leaving all other unchecked (defaults) press "Flash firmware". The Configuration tool should now erase the target and flash the selected firmware to your Flight controller. All this assumes you have the correct drivers etc setup correctly. If all goes well, you should be able to leave the board connected and Betaflight open while the progress bar completes. Wait for it to read "Successful" before disconnecting or interrupting the install, as not doing so may brick the board! If you run into issues and aren't able to flash the firmware, this is likely because you are missing the drivers for your board. Read on to see how to solve this;

Fixing driver issues & Other driver info

  1. There are (pretty much) two classes of USB devices used by all Flight Controllers (FCs):
    1. Type 1. Using a Silabs CP2103 USB interface chip (usually for older flight controllers).
      1.  Needs the Silabs CP210x driver. Used in both BootLoader mode for flashing and normal config mode. Shows up as a "COMx" device in BetaFlight Configurator.
    2. Type 2. Using the MCU integrated STM32 VCP USB interface (most F4, F7 based flight controllers use this).
      1.  Needs WinUSB driver when in BootLoader mode, for flashing. Installed by Zadig or ImpulseRC DF. Shows up as a "DFU" device in BetaFlight Configurator.
      2.  Needs STM VCP driver for connection and configuration with BFC Shows up as a "COMx" device in BFC.

The quick and easy method to fix drivers (works for most modern flight controllers):

An easy and quick hack is to run the ImpulseRC driver fixer which will usually pick up and install the required drivers for your, see  https://www.dronetrest.com/t/fix-any-stm32-dfu-drivers-issues-when-flashing-betaflight-cleanflight-firmware/3603

DFU flashing under Windows - USB DFU:

Make sure you have zadig if you're using Windows to enable the DFU driver. Instructions:

  1. Download Zadig: http://zadig.akeo.ie/
  2. Put device in DFU mode. If this is the first time to put Betaflight on you need to short the BL or BOOT pads (or press and hold the BOOT tactile button) while plugging the USB into the board.
  3. Open Zadig.
  4. Options > List All Devices
  5. Click on the drop bown box and click the device listed STM32 BOOTLOADER 
  6. In the box to the right of the green arrow, select WinUSB (v6.1.7600.16385)
  7. Click Install Driver
  8. After the install completes, restart your computer (you can cheat and ensure no browser is running - but it is not guaranteed to work). The board should stay in DFU mode - IF - usb power remains during the reboot. If not, execute step 2 again.
  9. Open up the Betaflight configurator.
  10. Go to firmware flasher, select "No reboot sequence"
  11. On F4 targets disable "Full Chip Erase". Use the config reset in Configurator later. (#200 reports the issue.)
  12. Load Firmware [Local]
  13. Browse to and select the proper hex file. (betaflight_REVO.hex for the revo, for example)
  14. Click flash firmware.
  15. The board should start flashing. First indicating an erase, then flash and finally verification.
  16. Once flashed your board will reboot, but you may need to install the STM VCP driver (see below) for Betaflight Configurator to connect to the board.

Installing STMicro Virtual Com Port (VCP) Driver under Windows:

Many of the F7, F4 (REVO, ALIENFLIGHTF4, BLUEJAYF4, etc), and some F3 boards (SPRacingF3EVO, STM32DISCOVERY) utilise the STM32 Virtual Com Port (VCP) - a CDC serial implementation. This allows the UARTs on board to be utilised whilst the USB is connected. This requires the STM VCP driver to be installed so that the VCP to be recognised as an additional comm port on the PC. NOTE: this is similar to installing a USB serial driver, e.g. FTDI or SiLabs

The STM32 VCP driver can be downloaded here --> http://www.st.com/web/en/catalog/tools/PF257938

NOTE: Once you download and run the installation it has not installed the driver, merely unpacked the choice of drivers. Locate the installation directory and then run the EXE file pertaining to your system.

e.g. C:\Program Files (x86)\STMicroelectronics\Software\Virtual comport driver\Win8\ <- will have two files present. One for 64 bit systems (dpinst_amd64.exe) and one for 32 bit systems (dpinst_x86.exe).

Windows 10

in many cases, the above might not work. installing Virtual COM port drivers from SiLabs will solve the issues: https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers


    • Recent Articles

    • Modified Your Drone? Here’s How It Affects Your Warranty

      Warranty Basics When you purchase a product with a warranty inlcuded by the manufacuter, or retailer (like us), it's like a promise that the item, as sold, will work as expected for a certain period (usually 6 months or 1 year). But what happens when ...
    • Resolving Card Payment Processing Issues

      Experiencing a failed payment attempt can be frustrating, particularly when you're certain your credit card is functioning correctly. At Unmanned Tech, we recognize the importance of a smooth payment process and are here to assist you in resolving ...
    • Changing Your Delivery Preferences (Safe Space / Neighbour delivery Opt-Out)

      For convenience, many couriers will attempt to deliver to a neighbour if they are unable to deliver to your address for any reason. However, for some, this can cause problems. If for any reason you need to, you can change your delivery preferences ...
    • Happymodel Mobula6

      Hi there! If you're here, you're likely having issues with your Mobula6 VTX. Below are a few pointers from a support thread of ours which helped to resolve this issue for a number of our customers in the past. Firstly, make sure that you're not set ...
    • Solving Radio ELRS Version Mismatch: A Step-by-Step Guide

      Are you facing difficulties with binding your ELRS radio and receiver? It could be due to a mismatch in the ELRS version. Don't worry! Our team has found a solution and has put together a detailed step-by-step guide to help you update your radio and ...