• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

BLHeli USB Linker interface with Arduino


Senior Member
This seems to be a pretty standard feature of the BLHeli Suite, but I found very little discussion of it online, so I'm sticking this here in case it helps someone who comes along later.

If you have BLHeli ESCs that have been flashed with the BLHeli bootloader, then you can flash and program the ESCs via the signal wire, which is awesome. But you need a one-wire interface or a USB linker. The good news is that you can use an Arduino board, which is something that a lot of RC hobbyists may have laying around. And the extra super-duper good news is that BLHeli Suite makes it dead simple.

Plug in your Arduino board. Then start up BLHeli Suite and go to the "Interfaces for Atmel" (assuming you have an Atmel processor in your ESC). In that tab, go to the "Arduino Interfaces for Atmel" section. Select the type of Arduino board you have and select your COM port. Then click "Make ArduinoUSBLink Interface"


BLHeli Suite will now flash your Arduino with code that makes it act like a USB Linker. Now connect GND on your Arduino to the ground pin on your ESC's signal wire; connect Arduino pin D2 (digital pin 2) to the signal pin on your ESC's signal wire. DO NOT CONNECT THE ESC'S 5v WIRE TO ANYTHING. If your ESC has a BEC, bad things can happen to your Arduino if you hook it up. Now click the "ATMEL / SILABS" menu and select "Atmel ArduinoUSBLinker Interface." Finally, go to the "Atmel BESC Setup" tab. Power up the ESC, click "Connect" to the COM port, and click "Read Setup". You're good to go!


Senior Member
Hi Mr Bell,

I have ZTW Atmel ESC's and I flashed them with BLHeli. When I did, I chose to write the BLHeli bootloader as I thought that is the right thing to do and I wanted the option to program via the servo cable.

Now I tried your method above and it simply doesn't connect, and after some research I saw some whisperings that the USB linker only works with the SimonK bootloader and the the "single wire interface" works for the BLHeli bootloader.

Well I tried both, but the documentation is very scarce, so I'm not even sure which pin is used on the Arduino, some say 2, some say 3 and some say 9. Then of course it changes depending on the arduino board used.

Please shed some light :)


Senior Member
I'm afraid I can't provide any more details than this.
No Worries, I ended up flashing again by removing the heatshrink and flashing the SimonK bootloader.
Now the BLHeli USBLinker works a treat.

So from what I deduce, for BLHeli with BLHeli bootloader you have to use the "1 wire interface on Pin 11"
For BLHeli with SimonK bootloaded use "USBLinker on Pin 3"