After you have built your quad and performed and electronics “smoke-test“, you’re going to want to configure the microprocessors on your flight controller and ESCs. The first step of this process is flashing the latest firmware on all of the devices.
This article is only applicable to you if you are working on a quadcopter that:
- Has a flight controller that supports the Cleanflight firmware. Here is a list of FCs that we recommend.
- Has ESCs that run BLHeli. Here is a list of ESCs that we recommend.
Betaflight / KISS / Cleanflight – Pick your poison
One decision you’ll need to make is what firmware you want to flash on your flight controller in the first place. If you’re following along with our guides, we highly suggest you flash BetaFlight. If you choose to go with Cleanflight, the steps and methods will be very similar. If you want to try out the KISS FC and firmware, you should search elsewhere – OscarLiang has a great tutorial on his site.
The first step is to download the latest firmware images for both Betaflight and BLHeli.
Betaflight releases can be found here:
When you go to the page, you’ll notice a long list of downloadable .hex and .bin files. You want the .hex file that goes with your flight controller board. Most first party boards will have their own entry (for instance, the latest XRacer F3 board is “*X_RACERSPI.hex” and the Luminier Lux is “*LUX_RACE.hex”).
If your board doesn’t show up on this list, it is likely that it is a clone board of some type. 90% of the time these boards use an identical layout to either the NAZE target or the SPRACINGF3 target. Which of these to pick you can determine by looking at the text on the processor on your board:
One important thing to note is that as of 2.9.0, Betaflight has changed pretty radically and has completely diverged from Cleanflight. If that means nothing to you, get the latest version. If you are more comfortable with the older style of Betaflight for some reason or don’t have the time to learn all the new set-up tasks, you might want to consider sticking with Betaflight 2.8.1:
Once you have downloaded the hex file, place it in a folder where you can access it later. I like to store all of the firmware I am currently using on each of my quads in its own folder. I also place Blackbox log files and configuration backups in the same directory. This is a handy way to keep things organized.
In order to flash and configure your flight controller, you will need to have the Betaflight Configurator software installed on your computer. Unlike most software you are probably familiar with, this is a Chrome app. The plus-side of this is you can run this software on any computer that runs a Chrome browser, including Mac and Linux. To get started, you will first need to install the Chrome browser on your computer if it is not already installed:
Next, you will want to install the Betaflight Configurator app. Note for older users: before Betaflight 2.9.1, the “Cleanflight Configurator” app could be used. As of Betaflight 3.0.0, the Betaflight Configurator app is required. Make sure you upgrade!
To launch the app, you will need to go to the Chrome apps page and click on click on “Betaflight”. The Chrome apps page can always be accessed by typing this URL into your Chrome browser:
BLHeli releases can be downloaded here:
Click the “Download BLHeliSuite” to get the latest release. You will be taken to a MediaFire page and will download a zip file. BLHeli packages it’s release firmware files with the application that installs them, called BLHeliSuite. All of this can be found in the zip file. Once it is downloaded, extract it into the same folder where you put your Betaflight hex file.
Before you get started installing software on your drone, it is imperative you remove your props. Flashing firmware is when you are most at risk of your motors spontaneously spinning up. If you have your props on when this happens, you will get injured or you will damage your equipment. Those are the only two outcomes. Remove those props!
The easiest way to flash your flight controller with the latest firmware is using the bootloader mode.
- Unplug your quadcopter if it is plugged into your computer.
- Launch Betaflight Configurator from your Chrome apps page.
- Go to the Firmware Flasher tab from the menu on the left.
- Click “Load Firmware [Local]” from the bottom right.
- Find and select the hex file you downloaded for your flight controller.
- Configure the checkboxes in the upper center section as pictured:
- Plug a micro USB cord into your computer and get ready to plug it into your FC. Do not plug it in before completing the next step!
- Short your boot pins on your flight controller. How this is done depends on your flight controller:
- On flight controllers with a “Boot” button: Hold the button.
- On flight controllers with “Boot” pads: You’ll need to manually bridge the boot pads with something metal like a paperclip or a pair of tweezers. In the below picture, I am bridging the pads on a Naze32 with some tweezers. This can be tricky – and if you fail to get positive results the first try, repeat this process again but shift your metal tool.
- On flight controllers with a “Boot” button: Hold the button.
- Flashing should begin within 3 seconds. You will know from the status bar in Betaflight Configurator:
On your first run-through, things might not work so smoothly. Problems will generally show up in this first step. We won’t go into too much details, but here are some things you can try out:
- The first thing you should do is check to make sure you have the proper drivers installed. On Windows, you can go to the Device Manager and check that there isn’t an unknown device that appears when you plug in the FC. Drivers can generally be downloaded from the vendor or from a link found in the vendor docs.
- If you are using tweezers or a paper clip, move the instrument and try again. Sometimes it takes a few tries.
- Try disabling the “Manual baud rate” checkbox in Betaflight Configurator.
- Try disabling the “No reboot sequence” checkbox in Betaflight Configurator, unplug and plug your FC back in without shorting the boot pin, and click “Flash Firmware”.
- Read through the Betaflight installation documentation and the documentation for your board. This can be found here.
If you are still having trouble. Feel free to drop us a comment. We’ve collectively used a ton of different flight controllers and can probably help you out.
The BLHeli firmware installation is generally easier than the Betaflight installation. However, you must understand that it uses the Betaflight software installed on the flight controller to talk to ESCs. Therefore, it must be done after you have flashed Betaflight on your flight controller. Follow these instructions:
One caveat to this process for Mac users: You need Windows to run BLHeliSuite. If you don’t have a Windows computer, try using a friends or doing it at work during after hours.
- Close Betaflight Configurator.
- Unplug and replug your micro USB cord into your flight controller.
- Plug your battery into your quadcopter.
- Launch BLHeliSuite.exe
- Click “Select ATMEL / SILABS Interface” and pick the highlighted one:
- Click the “Connect” button.
- Click the “Read Setup” button.
- Click the “Flash BLHeli” button. You will be prompted as follows:
Sometimes, you will be given more than one option. Make sure you pick the ESC firmware that lines up with your ESC! Contact your vendor if you do not know.
- Press OK to begin flashing ESC #1. You will be prompted to Confirm. Double check everything one last time and hit “Yes”.
- The flashing process will take about 15 seconds.
- You will be prompted if you want to write the current settings to the ESC – select “Yes”.
- The process will repeat from step 8 for ESCs 2, 3 and 4.
That’s it. Your flight controller and ESCs have the latest software installed on them. Now you will need to move on to the next step in the configuration process: configuring your ESCs so that they are all spinning the correct direction and have the right settings.
If you have problems with any of these steps, feel free to drop a question below. We love input on our articles and if we hear of the same problem enough, feedback will help us change the article as needed.