Howto – Flashing BLHeli bootloader to XRotor ESC’s

Buildlog, Howto, RC

Today I will give some tips how to flash the BLHeli bootloader to Xrotor ESC’s.

This won’t be a complete step by step tutorial. Nathan already has an excellent step by step guide over at his blog. What I will do here is share my experiences doing it and give some tips and advice.

First of all a word of advice; When doing this, be careful and don’t rush things!
Out of the 5 ESC’s I received I destroyed 2, just because I didn’t have enough concentration and was trying to hurry it too much. Take your time and always double-check what you are doing before doing it.

These ESC’s are still fragile pieces of electronics. Heres on example of what can happen if you aren’t careful with them.
IMG_20160510_174251I ripped the control wire of the ESC off and took the complete soldering pad with it…

I made a little setup where I could connect, flash and disconnect the ESC’s relatively quickly, I also wanted to prevent having to solder temporary leads etc to the ESC’s. My ‘solution’ looked like this:


I used 2 seperate aligator clips to connect the ESC’s power wires to a charging cable with an XT60 on it. I would recommend getting a safer solution then this, if the 2 clips touch eachother your going to smoke the ESC and possibly set fire to your LiPo!

I used a male to female servo extension cable for the cable between the Arduino and the ESC. I swapped the red and white cable and removed the plastic around the female part to expose the 3 pins. I then hotglued the connector to some foam to make a little stand that I could position so that the pins hit the correct solder pads on the ESC and no other parts. because the stand was a little too light I used some cutters to prevent things from sliding around.


The first real problem I ran across when following the guide were the solder pads, as nathan says:

First, I made a programming cable that matches these pads, but there appears to be a thin layer of epoxy or something covering the board. I tried cleaning the pads with alcohol, but it didn’t help.

Since I couldn’t get good contact just holding the pins against the ESC, I ended up soldering leads onto each ESC. Soldering worked fine. It doesn’t take too long, so consider just soldering temporary leads before building a cable.

I didn’t want to solder leads to the ESC since the pads are very small and they are hard to reach due to their placement in between other components.
The solder pads have a coating covering them, so simply putting the pins on the pad didn’t work. I fixed that by carefully scraping the coating off from the pads with an exacto-knife.

After scratching the coating off of he pads, I carefully placed the pins on them, making sure the alignment is correct. Then apply a little bit of pressure on the pins, I just pressed down slightly on the pins with 1 hand, and then control the laptop with the other.
If it doesn’t find an ESC, make sure you have scraped the coating off and that the pins are making good contact with the pads.

Make sure to disconnect both the LiPo and the arduino before moving the pins!

Make it a habit to never move the pin header on and from the pads before all power has been disconnected. 1 of the pins from the arduino is +5V, you don’t want to apply +5V to parts of the ESC that aren’t designed to handle that!

When flashing the bootloader to the ESC’s with an arduino, you will have to set your BLHeli’s interface mode to “SILABS C2 (4way-if)”. The originial guide does not mention which mode you need to set it to.blhelic2mode

If all goes to plan, BLHeliSuite will see the ESC and flash it with the BLHeli bootloader.
After the bootloader is on, first disconnect the LiPo, unplug the arduino from the USB port, and only then remove the pins from the solder pads to prevent destroying your ESC.

Once the BLHeli bootloader is on your ESC, you can flash it via the 1-wire pass-through of your flight controller or a USB programming stick. You won’t need to access the solder pads again.