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.

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.

10 comments

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
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
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