How to Unbrick ESC – Flash BLHeli_S Firmware through C2 Interface

by Oscar

If your BLHeli_S ESC died or is simply not responding after getting a “Flash Failed” error, or somehow your ESC is bricked, you can try re-flashing BLHeli firmware through the C2 Interface to “revive” it.

Some of the links on this page are affiliate links. I receive a commission (at no extra cost to you) if you make a purchase after clicking on one of these affiliate links. This helps support the free content for the community on this website. Please read our Affiliate Link Policy for more information.

Your ESC could be bricked when the bootloader is corrupted, flashing through the C2 interface might be able to fix that.

Preparing Arduino

You will need an Arduino board to flash ESC through C2 interface. Either Arduino Uno or Nano would work fine and they only cost a few bucks. I will be using the Arduino Nano in this tutorial, you can get it from here: https://amzn.to/3uAzcJL

  • Download BLHeliSuite here: https://github.com/bitdump/BLHeli
  • Plug in your Arduino, a new COM port should appear. Pick the Arduino COM port in BLHeliSuite
  • Go to the “Make Interfaces” tab, and click on “Arduino 4way-interface” option

You will be asked to select a firmware for the Arduino, choose the one that contains “PD3PD2”.

And that’s all you have to do to enable your Arduino to flash ESC via C2 interface.

Identifying the C2 Pins on ESC

You will need to connect two pins on the ESC: C2D (Data) and C2CK (Clock).

These pins are normally broken out to two small solder pads near the ESC MCU (processor, BB21). By following the traces and checking the pinout diagram above, you should be able to identify which pads are C2CK and C2D.

To give you an example, here’s the Zeus5 AIO FC, and the C2CK/C2D pins for each ESC on the board.

Connections

From Arduino Nano to ESC

  • GND => GND
  • D2 => C2D
  • D3 => C2CK

From Arduino General to ESC

  • GND => GND
  • D12 => C2D
  • D11 => C2CK

Soldering to those tiny pads are tricky, just be patient and careful.

Flashing BLHeli Firmware via C2 Interface

In BLHeliSuite, select “SILAB C2 (4way-if)” under SILABS Interface.

Plug in the battery to power the ESC.

Then hit the “Connect” button in BLHeliSuite, and “Read Setup”.

If everything works correctly, you should be prompted to re-flash your ESC with BLHeli firmware. Just click “Yes” and follow the instructions and flash the latest official firmware.

Hopefully this rescued and unbricked your ESC. You should repeat the same steps for all four ESC’s.

Leave a Comment

By using this form, you agree with the storage and handling of your data by this website. Note that all comments are held for moderation before appearing.

21 comments

Scot Needham 26th March 2023 - 8:25 am

If you mistakenly flashed BLheli32 onto Blhelisuite esc(Betafpv Xknight) is this the remedy? I can’t get configurator or blhelisuite to connect to my esc.

Reply
pooria 21st February 2023 - 5:04 pm

is this working for blheli32 too?

Reply
Oscar 21st February 2023 - 5:11 pm

No.

Reply
Josh 9th December 2022 - 11:06 pm

What if it’s only 1 esc on a 4in1 that has disappeared? Like your pic of BLHeli Suite it shows as ESC#1 but it looks like you’re wiring is to the #4 esc? I can’t see how to change from esc #1 to esc#4(the one that vanished on mine) in BLHeli Suite.

This happened flashing to Bluejay(all 4 worked on BlHeli_S previously). After Bluejay 3 esc’s were fine, #4 disappeared. Flashed back to Blheli_s but it was still gone. Followed these instructions but it’s saying it not connecting to #1 esc.

Reply
Stuart B 19th December 2022 - 2:17 pm

Josh , I have 3 esc’s lost [100%] with only #4 motor showing. Will arduino board restore these esc’s so BLH can refresh them. Anyone know?? I won’t be using Bluejay again.

Reply
JETTY 22nd November 2022 - 1:06 pm

Is there a way to do this without Windows?

Reply
Darrel 14th September 2022 - 1:53 am

Thanks Oscar I had a bricked ESC as I flashed my diatone gt200 on 4.x
With blheli pass threw and couldn’t get it to work direct to normal pad.
My diatone sat for well over 2 years until I came across this.
🍻From ONT 🇨🇦 thanks for all the great info!

Reply
Alfa 26th May 2022 - 8:17 am

hi bro
can you tell to me whre is pin C2D and C2CK on FC Geprc 12A AIO V.1.4
Thanks

Reply
Zack 25th October 2021 - 2:24 am

Would like to add myself to the list of those having issues with Babyhawk II Escs. Flashed JazzMaveric, everything worked great, then went to reverse motor direction on ESCs for props out rotation. Now only three motors were turning. After repeated attempts to reflash the ESCs firmware, I am down to only one motor turning in Betaflight and only two motors show non corrupted firmware in BLHeliSuite. I would like to try to flash using the direct connection with Arduino, but like others, have not found any solder pads to use, I’m guessing its one of the pins on the escs themselves that would have to be soldered to? Those things are microscopic!

Reply
Ivan 25th September 2021 - 12:13 am

Thanks a lot. This article helped me to restore the Flywoo Goku EVO AIO F4.

I was trying to flash JazzMaverick, but it failed at all 4 ESCs: motors didn’t rotate, I wasn’t able flash anything to it. After soldering and reflashing the regular BLHeli_S the ESCs came to live. Then I flashed JazzMaverick successully. idk, why it failed it first time.

Soldering to C2 pads was the trickiest part, I even partially teared off one pad.

Reply
Humberto 14th August 2021 - 12:14 am

in blheli_s when I read my 4 in 1 esc I get a sign that tells me: ESC connection # 1 failed, channel number 1 exceeds the capabilities of the current interface. …What do I do..? Thank you

Reply
Eric Li 23rd September 2022 - 7:42 pm

Hey Humberto!

I know this is a year later, but I had the exact same issue on my friend’s drone and I fixed it. I went thru C2 interface and it all flashed and was able to read and write to Bluejay/BlHeli S Firmware, but the FC still wont recognize it. It turned out the fix was SUPER SIMPLE. No need for C2 interface at all!

My friend had accidentally updated Betaflight to a newer firmware but wrong board target. Instead of choosing the proper AIO, he chose the HD board. And the resource pin mapping of the motors were incorrect and assigned to some other stuff that’s why I get that error “ESC connection # 1 failed, channel number 1 exceeds the capabilities of the current interface”

Best of luck! =)

Reply
Radek 7th August 2021 - 2:59 pm

Hi just happend to me on babyhawk 2 hd itis all in oneboard I can not see where are the spots to solder cables do not know it might not be there can sny one help where to conect arduino on babyhawk 2 hd board please ?

Reply
ImpFPV 12th August 2021 - 1:14 pm

here are diagramms of the FC with some undocumented solder pads, don’t know if it can help you. rcgroups.com/forums/showthread.php?3900915-EMAX-BabyHawk-II-HD-and-GPS-with-Softserial-LED-Strip-fixed#post47175787

Reply
ImpFPV 3rd August 2021 - 7:38 am

so I was flashing BLHeli_m 16.9 via the BLHeli configurator (the chrome app) to the EMAX Babyhawk, like I did it with a bunch of my other quads befor.I powered the board by using the vifly v2 smokestopper, I just read in the wiki, you should use some kind of current stopping security.
Next, the flashing process on all 4 ESCs faild with some kind of chrome-app error message.

I tried again without the smokestopper, but not only couldn’t the programm read the ESC settings in 8 of 10 cases, the times I came up until the flashing process, it failed again.
After some trys I change to BLHeli Suite, just hoping to save the ESC by flashing the original 16.7 firmware.
Long story short, until now, I wasn’t able to flash the correct, error free firmware on all 4 ESCs.
One time, I thought I did it, …was cheering. But as I teste the Motordirections in Betaflight, only 3 out of 4 Motors started spinning up.
Could my problem be related to the above mentioned? I read about ESC not showing up all the time, and sure thats a bootloader problem….but I haven’t found any other problem exactly like mine…
Thanks for help
ImpFPV

Reply
Simonas 6th July 2021 - 9:38 pm

Wow, this is amazing! Very informative tutorial.
Today It helped me to recover missing ESC on my Diamond F4 AIO :)
Thank you!

Reply
Jim 26th September 2021 - 6:11 am

how did you determine which were the D and CK pads without them labeled on the diamond F4 board? at least mine aren’t.

Reply
Plamen 25th October 2021 - 8:39 pm

You should be looking where the chip is facing (orientating by the 1st pin).
Then identify the 5 and 6 pins , 5 is C2CK and 6 is C2D.
I was able to do it via this method on Diamond F4 as well. Good luck!

Reply
Jack 14th June 2021 - 1:23 am

Which pad would be comparable to the signal wire? I saw a video how you could save a 4-1 board with a fried mosfet, by using an equivalent amperage stand alone esc and just pulling that motors wire from the wire harness soldering straight to signal wire of stand alone esc. I’m attempting that on an Iflight 40amp/F4 AIO board. It has four tiny pads next to each esc and group of mosfets, 3 round 1 square. Any suggestions? thanks!

Reply
Levi Thompson 11th May 2021 - 11:44 am

could this also be done with an FTD1232 unit..im trying to unbrick a pyro drone esc.thanks in advance

Reply
Oscar 11th May 2021 - 12:54 pm

No, only the Arduino because it needs to be flashed with a special code. Arduino is cheap anyway, only a few bucks.

Reply