BLHeli Firmware Flashing Tutorial

In this guide I will explain the procedure to re-flash compatible electronic speed controllers (ESCs) to run the increasingly prevalent BLHeli firmware. This firmware is popular due to its support for advanced features such as the Oneshot interface and active motor braking. These provide a more agile and responsive multicopter (or helicopter), over alternative ESC firmware such as the SimonK software.

Upgrading the SimonK ESCs on my multirotors to use BLHeli is something I had been putting off, as I thought it would be an arduous and complex task. However after re-flashing a few ESCs, this has become a very simple task that only takes a few minutes and is well worth trying out. Read on to find out how you can upgrade your speed controllers to use the BLHeli firmware.

In this tutorial I will be re-flashing the HobbyKing Afro 30A ESCs installed on my Lumenier QAV500v2 quadcopter. If you are re-flashing a different ESC, the process is basically the same but when prompted you will need to select the correct make/model ESC within the BLHeliSuite software.


To carry out the re-flashing process, you will need the following items:

  • BLHeli compatible ESC to be reprogrammed.
  • Afro USB Programming Tool from HobbyKing.
  • PC running Microsoft Windows 7, 8, or 10.
  • Battery to externally power the ESC.
  • USB or 3-pin servo extension lead - if your ESC is already installed in an aircraft.
  • Long-nose pliers to remove ESC 3-pin connector from receiver or flight controller - if ESC is already installed in an aircraft and difficult to reach.
  • BLHeliSuite software package.
  • VCP drivers software package.

These are the items I used to re-flash the ESCs on my QAV500v2:

Tools needed for reflashing ESC firmware.

Software Installation

SiLabs VCP Driver

The first stage is to install the driver software that will allow the USB programming tool to function. This is the same driver that is used to connect the popular Naze32 flight controller via USB, so you may not need to carry out this stage if the driver is already installed.

  • Download the VCP installation package (version 6.7 at time of writing) to your computer from the Silicon Labs website.
  • Unzip the downloaded ZIP file to a temporary location.
  • From the new folder run the VCP Installer executable relevant to your version of Windows (32-bit or 64-bit).
  • After the installation has finished, restart your system if prompted.
  • Plug in the programmer tool to a spare USB port and allow Windows to recognise and configure it for use. A red LED will illuminate on the programmer if it is working correctly.
  • Unplug the programmer tool and delete the directory where the drivers were temporarily stored in step 2 above.

BLHeliSuite Utility

  • Download the BLHeliSuite software package from the BLHeli website.
  • Unzip the downloaded ZIP file to a suitable location. There is no installer for the BLHeliSuite.
  • Optionally, create a desktop or start menu shortcut to the BLHeliSuite program.

Connecting the ESC to the PC

Before reprogramming the ESC, it must be connected to the PC with the programming tool.

Additionally, if re-flashing an existing model, it is strongly recommended that the propellers are removed for safety reasons before continuing.

  • The positive pin on the programming tool is not required and must not be connected to the ESC. Either remove the positive pin from the 3-pin extension lead (if used), or bend the middle (positive) pin on the programmer tool so that it is at a right angle.
  • Connect the ESC to the programming tool, taking care to observe the polarity of the connector is correct.
  • Connect the programming tool to a spare USB port.
  • Connect the battery pack to the ESC.
BLHeli reprogramming in progress.

Reprogramming the ESC

  • Start the BLHeliSuite program from the directory or shortcut created previously.
  • From the Select ATMEL/SILABS Interface menu, select the ATMEL SK Bootloader (Afro/Turnigy USB Linker) option as shown below:
    Selecting the correct BLHeli interface.
  • Select the correct Port option from the drop-down menu in the bottom left corner of the main window (the programmer tool will be labelled be labelled CP210x). The baud rate should be left set to 9600.
  • Click the Connect button. The following dialogue box shown below should appear. When prompted, click Yes.
    Confirming BLHeli warning.
  • Another dialogue box will then appear, asking which make and model ESC is connected. Select the option appropriate to your ESC and click OK.
    In the screenshot below I have selected the Afro 30A MULTI option, using the MULTI specialisation of the firmware. MAIN and TAIL are intended for use with traditional helicopter models, whereas the MULTI versions are targeted towards multi-copter usage.
    If you cannot find your ESC in the list, check the compatible hardware list documents (SiLabs PDF, ATmel PDF), as it may be referenced within BLHeliSuite under a different name.
    BLHeli flashing assistant.
  • The following confirmation window will appear. Double check that the configuration shown in the blue area is correct and then click Yes to start the ESC programming process.
    Click Yes to start the ESC flashing process.
  • A progress screen will appear while the ESC is being reprogrammed. Do not disconnect the ESC or turn off the computer while programming is in progress. After the firmware has been written, BLHeliSuite will then read the new firmware image back from the ESC, to check for any flashing errors.
    BLHeli flashing in progress dialog.
  • After about thirty seconds, a status message will appear once the process has been completed. Click OK to finish the reprogramming process.
    BLHeli flashing finished.
  • Returning to the main BLHeliSuite window, the various ESC setup options will have changed to match the new firmware loaded on to the ESC.
    At this stage you may want to customise the settings, such as setting PWM Frequency to Damped Light to enable active braking. Oneshot functionality is automatically enabled and does not need to be configured. If you have made any changes, click the Write Setup button to save them.
    Customising BLHeli ESC options.
  • Exit the BLHeliSuite program and disconnect the ESC from the programming tool and battery pack. If it is already installed in a model, reconnect the ESC to the flight controller.
    This completes the reprogramming procedure and your ESC is now running with the BLHeli firmware. When powering on the ESC you will notice the initialisation beep sound has changed to the BLHeli style.

If you are programming several ESCs for a multi-copter, repeat the above two stages for each ESCs. If you make any configuration changes (such as using active braking), these must be made identically to each ESC used on the same aircraft.

If you were previously using a programming card to change the settings on the ESC, such as the Turnigy Plush Programming Card, this will no longer work. Configuration changes such as motor timings must be made using the BLHeliSuite software and read/writing the setup with the programming tool.

If you are using a Naze32 flight controller, after re-flashing all ESCs, you can enable Oneshot operation with the slider button as shown in the Cleanflight screenshot below.

Enabling OneShot mode in Cleanflight.

Finally, be sure to recalibrate the ESC throttle limits with your flight controller as these may have changed after switching to the new firmware. In the Cleanflight software, remember that the Home and End keyboard keys can be used to quickly and accurately set the throttle limits to the minimum and maximum values.

Page last updated: