BLHeli passthrough – easy ESC flashing

Few years ago it was not an easy job flashing special multirotor firmware to the ESCs. You needed to remove the shrink tube, use DIY cables or at least an Atmega Flashing Tool. Then we got the 1-wire protocol for easily flashing ESC via the signal cable. But we still needed to use additional adapters or Arduino boards. Not anymore!

Since few months you can flash or program your BLHeli ESCs using just your flight controller. It’s called: BLHeli passthrough. In this article I will show you how to easy flash your ESCs.

What you need:

  • Cleanflight/Betaflight/Raceflight capable flight controller. Example: Naze32, CC3D, Sparky 2.0
  • BLHeli Suite software
  • BLHeli ESCs

For those of you, who are new in this hobby: Betaflight is a fork of the famous Cleanflight firmware, developed by the FPV pilot BorisB. Most of the popular Cleanflight flight controllers, like Naze32, are also supported by Betaflight. Here is the official project thread.

Download the latest Cleanflight/Betaflight/Raceflight firmware for your board. Flash it on your flight controller using the Cleanflight Configurator by clicking on the “Load Firmware [Local]” button and choose the downloaded .hex file.


If you have the CC3D flight controller with the original OpenPilot firmware, you should flash the Betaflight firmware using an FTDI adapter and the STM Demonstrator, like I described in one previous article. Just use the downloaded Betaflight .hex file instead of the Cleanflight .hex.

Download and extract the latest BLHeli Suite software on your PC.

If your ESCs are preloaded with BLHeli, like mine FVT LittleBee 20A, then you can go to the next step. If you have some non-BLHeli ESC, you need to flash these first. I have done this on my XRotor ESCs, so you can check the How-To.

Flashing BLHeli using passthrough

First of all please remove all your propellers! It is for your safety. Then connect the flight controller to the PC, while all ESC are connected just as normal to it.

CC3D / Sparky 2.0: You need an FTDI adapter to connect the flight controller to the PC. But you will not be able to flash the ESC, while connected the board to the “Main Port”. You need to use the “Flexi Port” and enable MSP on UART3.


Run the BLHeli Suite. Choose the ATMEL / SILABS interface – Cleanflight.


Then click on “Connect”, power the ESC from the LiPo battery and click “Read Setup” (If you are using Sparky 2.0 board, you don’t need to connect the battery).  You should get a message, that your ESCs were found:


After that you can flash the BLHeli firmware just as normal by clicking on “Flash BLHeli”. You can also easily change the BLHeli settings using this method.

The BLHeli passthrough is an amazing feature, which helps for easy ESC flashing and configuration. A big thanks for all the developers made the flashing process so easy! If you have any questions, do not hesitate to leave me a comment or ask on Facebook.

Update 2017.10: You will need Betaflight 3.2 to use BLHeli passthrough with any BLHeli32 ESC. However the newest Betaflight 3.2 currently does not work for BLHeliS ESCs, so you will need to stick with previous versions.

Leave a Reply


  1. Tim

    This also works with the latest version of CF, beta flight isn’t a requirement

    • Sergey

      Hey Tim, thanks for the info. I thought Dominic has not integrated it in Cleanflight yet. Will definitely try it 🙂 Cheers, Sergey

  2. Szmidtek

    I have 4 four brand new xrotor 20A and I notced that the Last upgrade of Betaflight 2.61 allow passthrough for both Simonk and blheli bootloader ESCes. Those it mean that I do not have to Flash the xrotor via arduino with blheli bootloader?

    • Sergey

      The brand new XRotor 20 have their own firmware from HobbyWing, so you still need to flash the BLHeli via Arduino once. Cheers, Sergey