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.
21 comments
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.
is this working for blheli32 too?
No.
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.
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.
Is there a way to do this without Windows?
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!
hi bro
can you tell to me whre is pin C2D and C2CK on FC Geprc 12A AIO V.1.4
Thanks
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!
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.
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
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! =)
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 ?
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
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
Wow, this is amazing! Very informative tutorial.
Today It helped me to recover missing ESC on my Diamond F4 AIO :)
Thank you!
how did you determine which were the D and CK pads without them labeled on the diamond F4 board? at least mine aren’t.
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!
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!
could this also be done with an FTD1232 unit..im trying to unbrick a pyro drone esc.thanks in advance
No, only the Arduino because it needs to be flashed with a special code. Arduino is cheap anyway, only a few bucks.