Flash ESC with 1-Wire Bootloader Interface – Via Signal cable – SN20A with BLHeli

by Oscar

As explained previously about what ESC bootloader does, we can use so called “1-wire” interface to flash and configure your ESC firmware settings.

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.

Basically that means you can just plug your ESC signal and ground wire into your USB linker programmer, or Arduino board, and no need to rip apart the heatshrink to access the Atmel chip any more.

If you have SimonK Bootloader on the ESC already (safe to assume so if you already have SimonK Firmware on the ESC), you can use 1-wire flashing for both BLHeli and SimonK. If you have BLHeli Bootloader, you can only use 1-wire with BLHeli firmware.

Flashing ESC directly on the chip, using flash tool.

how-to-flash-ESC-with-atmega-flash-tool-orientation

Flashing ESC using one-wire interface through signal cable.

arduino-nano-flash-esc-configure-one-wire-blheli-linker-programmer-sn20a

Let’s Get Started

With 1-wire flashing, you can either use a dedicated USB Linker programmer, which are designed for 1-wire flashing, or you can setup yours with Arduino UNO or Nano board. In this post I will show you how to do this with both Arduino boards.

Setup Arduino for 1-Wire

First, prepare your Arduino for one-wire interface – Choose the correct Arduino board and COM port, then press “Make Arduino 1-wire Interface”.

flash-esc-one-wire-blheli-linker-programmer-software-gui-1

Connection between Arduino and ESC

For both cases, you need to power the ESC with your lipo. Don’t let the motor wires touch each other. It doesn’t matter if you have connected the ESC to motor or not, it should still work for 1-wire.

Arduino Uno

Using Pin 0 (RX) and GND on the Arduino to connect to the signal/GND pins on the ESC. (BLHeli Bootloader 1-wire)

(Note for SimonK bootloader and ArduinoUSBLinker (in BLHeliSuite), you need to use Pin 2 to connect to Signal.)

arduino-uno-flash-esc-configure-one-wire-blheli-linker-programmer

Arduino Nano

All you need to connect is the GND and D3.

arduino-nano-flash-esc-configure-one-wire-blheli-linker-programmer

Connecting on BLHeli Suite GUI

Before connecting, choose the ATMEL 1-wire bootloader Interface in the dropdown menu.

flash-esc-one-wire-blheli-linker-programmer-software-gui-2

And choose the correct COM port down below, and you should be good to connect. :)

Flashing DYS SN20A ESC with BLHeli

It’s quite amazing that the BLHeli version of DYS 20A ESC got sold out almost everywhere, but not the SimonK version.

In fact, you can flash the SN20A ESC with BLHeli firmware, using the 1-wire programmer, and you have the exact same ESC as BL20A!

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.

41 comments

Gary S 8th April 2020 - 3:31 pm

Hi

Great guide. Will this work with a ZTW Beatles SBEC ESC. I can’t seem to get it to connect to BLHELI 32 or BLHELI Configurator. Using iMac and Arduino UNO.

Reply
Stolerant 5th November 2018 - 1:17 am

Anyone have an issue where arduino flash fails in blheli via avrdude? I’ve tried on an unofficial and a nano with the same failure but I can’t find anything online related to my issue.

Reply
Grigory 7th January 2018 - 3:46 pm

Thank you, you saved me! I finally managed (not from the first time though) to connect to my littlebee 30A opto with arduino nano and find out the reason why it ran my emax 3506-650kv with 1555 props in half a power only. It was low power protection activated, which i neglected to check being used to run noname ESCs “as-is” without any configuration! Thank you, Oscar!

Reply
Austin Chopra 29th March 2016 - 3:24 am

Hi Oscar
Can you re do this post, or update it, i am having so many problems with mine not even connecting to the arduino.

Reply
Erick Medina 6th February 2016 - 6:15 am

Hi Oscar I have a 30A slim opto multistar ESC, can I do this with my arduino Uno and this ESC?

Reply
Shaun 12th January 2016 - 1:20 pm

Hi Oscar,

Thanks for this post, I was able to successfully connect to my Little Bee 20’s using this method and an Arduino Nano.

Reply
Will 20th November 2015 - 6:01 pm

Can this be done with Arduino Leonardo board. Did not realize it was board specific, if so how plz?

Reply
Oscar 24th November 2015 - 5:13 pm

Leonardo is not an option in BLHeliSuite i don’t think…

Reply
TempleClause 5th November 2015 - 10:38 pm

Hi Oscar

Is it correct that sislab ESC’s do not support 1 wire interface?
When I flashed my ATMEL ESC’s I was asked if I want to put BL Heli Bootloader on it.
But when I flashed my sislab ESC’s I saw no option for this…

Thanks

Reply
Oscar 6th November 2015 - 3:41 pm

I guess you mean Siblabs?
no they should work, my RG20A and Littlebee 20A both working fine.
They don’t ask because Siblabs only support BLHeli bootloader not SimonK, due to memory issue.

Reply
TempleClause 7th November 2015 - 11:52 am

Hi Oscar

Whoops, yes I meant Siblabs! Hmm strange, would you mind updating this tutorial for the newest version of the BlHeli Suite? The context menus have changed a lot and I can’t get it working.

Thanks a lot

Reply
Oscar 10th November 2015 - 10:40 am

yes it’s in my plan to do..

Reply
EquinoxFPV 24th November 2015 - 12:29 am

Hi Oscar. You said this work with littlebees escs? I can’t get it to work with my chinese UNO board. I’m going to put 14.2 on so I can access them through betaflight (Seems you need 14.2 to do that in latest betaflight).

Reply
Oscar 24th November 2015 - 6:17 pm Reply
Fuzz 2nd November 2015 - 1:06 am

Hi,

Can this method be used to install the BLHeli Bootloader onto DYS20A ESC’s? I have a couple that have the SimonK firmware and I want them to have the BLHeli Bootloader firmware. Thanks.

Reply
Oscar 4th November 2015 - 7:04 pm

no.. to change bootloader you will need to connect the soldering pads next to the processor to an Arduino ISP programmer…

Reply
Qamal 19th August 2015 - 8:51 am

Hi Oscar,
Nice write up.
I was having trouble flashing my DYS BL20A from BG with Arduino Uno using your guide i.e. interface with ATMEL BLHeli Bootloader USB/Com. Must have tried it half a dozen times using different pins on the Uno for the ESC signal cable.
Fortunately I read your note highlighted in RED regarding the SimonK bootloader and ArduinoUSBLinker.
Set-up the interface to ArduinoUSBLink SKBootloader and connected ESC signal to Pin 2 and the whole flashing thing WORKS. Now my ESC is flashed with BLHeli rev:14.0.
Thanks and regards.

Reply
Oscar 20th August 2015 - 9:51 am

Fantastic Qamal! have fun flying!

Reply
jhawk 8th August 2015 - 8:10 am

Hi Oscar

I setup the Arduino Uno board, followed the steps.
Connect the Afro Esc 12A, but got error message on screen as follow.
Stk500v2 connection to ESC at COM8 failed.
Error:”CMD_SIGN_ON: read=>Yimeout(no answer)

uno board malfunction ?

Reply
Oscar 10th August 2015 - 12:56 pm

might be a bootloader issue?
What bootloader do you have on the ESC?
What pin are you using on the ARduino to connect to signal on ESC?
What Arduino Interface did you use on BLHeliSuite?

Reply
jhawk 11th August 2015 - 4:37 pm

Hi Oscar

The Afro ESC is 12A with FW afro_nfet.hex should have the SK bootloader enabled. Bought it 2 weeks ago from Hobby King. In BLHeilSuite (14003) I selected ArduinoUSBlink in the “make Arduino interface boards” . this part is success.
Connect ESC signal to pin 2 (the 3rd one above TX )/gnd to gnd on Uno board.
The interface chosen was ATMEL SKbootloader (arduinoUSbLinker).
select correct com8 and connect. Any idea ?

Reply
Oscar 12th August 2015 - 5:00 pm

sounds correct to me!
and you press “connect” or “read setup” before you connect the lipo battery?
have you also got the ATMEL chip flash tool just in case 1-wire doesn’t work for you?

Reply
Gryffin 5th August 2015 - 12:55 am

Hi Oscar,

I need to flash my sn20a’s with new firmware. (a couple esc’s are glitchy and incidentally they are the 06.2015 batch, which have supposedly been recalled for bad firmware. I cannot find where to get an arduino nano locally, and really don’t want to wait for international shipping. I do however have a teensy lying around, and was wondering if I could use the teensy instead. Do you know if I can do this, and if I can, what pins do I have to use?

Thanks

Reply
Oscar 6th August 2015 - 1:07 am

sorry i am not familiar with the Teensy. BLHeli has only written the interface software for Arduino anyway so i doubt it will work…

Reply
Hans 30th July 2015 - 8:10 pm

Hi Oscar, thanks for your blog and this article, i really like it. I want to configure my ESC via the 1-wire interface, but with the latest version of the BLHeliSuite (14.0.0.2) there is no button “Make Arduino 1-Wire interface”.
abload.de/image.php?img=interfacebuilder_30.0ebu4w.png
I tried to get your version, but google didn’t help and i could’n find a source for downloading your version.
Can you help me?

Reply
Oscar 6th August 2015 - 12:21 am

it’s changed in version 14. depends on what the ESC bootloader you have got.
SimonK bootloader => ArduinoUSBLinker
BLHeli bootloader => Arduino BLheli bootloader

Reply
hulandy 27th June 2015 - 9:10 am

I wanna ask a question,that is which pin does the mega2560 used to 1Wire . thanks a lot!

Reply
Oscar 1st July 2015 - 1:29 am

I am not sure to be honest. have you tried the same pin as on the UNO?

Reply
hulandy 9th July 2015 - 5:57 am

I have tried the same pin as UNO. Even set the pin by manually doesn’t work either. So I buy a UNO, It’s seems very smooth..

Reply
eimis 21st October 2015 - 1:56 pm

pin 19 bro. if you’ve selected port d pin 2 in blheli (default)

Reply
Matt 23rd June 2015 - 5:45 am

The first picture shows (I think) a blue series HK ESC. Can this be used instead of the expensive ATMEL cable to flash those particular ESCs? I’m guessing not as they won’t have the SK bootloader, but I’d love to be pleasantly surprised

Reply
Oscar 23rd June 2015 - 4:31 pm

if they come directly from Hobbyking? no… you can only use 1-wire if they have previously flashed with SimonK or BLheli :)

Reply
Ernesto 17th June 2015 - 12:41 pm

Hello Oscar, greetings from Cancun Mexico.
Thank you for this great site full of usefull information!
I have a question, is it possible to do this 1 wire flashing using a more “generic” adapter, say like a FTDI or USBASP card?
You see, I bought 4 emax 20A “simon” (ibe read they actually have blheli, not simonk) ESCs, and all 4 of them are defective, but i suspect their problem is faulty firmware. The store is replacing them under warranty, but i would like to try to “revive” them if possible.
I dont have an arduino board, but i do have an FTDI adapter i use with my minimOSD, and a USBASP i used to flash my flyshky9x.
Maybe i can use one of those? if so, do you have any idea of where would i connect the ESC signal cable?

thanks in advance.

Reply
Oscar 19th June 2015 - 12:46 pm

I don’t know to be honest. I Guess is no as it’s not using two wire RX/TX serial communication clearly. Get yourself an Arduino, or dedicated one wire USB linker, worth the investment :)

Reply
Jeremy 4th July 2015 - 12:44 am

Oscar , thanks for this great article. I had some trouble with SN30 programing. I have 1 ESC without any motor connected, worked like a charm with my arduino.

My others ESCs are already soldered with my motors and when I try to connect them , I had a beeping motors , and Blhelis suite won’t connect.

Have you got an idea ? thanks a lot !

Reply
Oscar 4th July 2015 - 12:16 pm

sorry i am not so sure, mine works like a charm with or without motors connected. Make sure you press “connect” before plug the battery?

Reply
Jason Dalli 8th June 2015 - 9:51 am

Hi, I am having an issue with the DYS SN20A. Mine are ready with BLHELI but I am thinking that they came with the BLHELI bootloader. I am trying to read the parameters but I am having issues. Do I need to use the 1-wire procedure? Do I need to get an Arduino Nano or UNO? I have the duemilanove which is an old version of Arduino.

Can someone help me please?

Thanks
Jason

Reply
Oscar 8th June 2015 - 1:17 pm

SN20A comes pre-flashed with SimonK, so i assume they have SK bootloader.
So yes you should be able to use 1-wire interface to change settings.
you should be able to use any USB linker programmers i think… but I have only used Arduino so far…

Get yourself a new Arduino Uno :) they are good tool and good investment!

thanks
Oscar

Reply
teralift 7th June 2015 - 7:30 am

Hi.
I always enjoy reading and referencing your entries; they are so educational and useful!

For this entry, I just wanted to point out two things:

1. At the beginning, it sounds like it is going to show us flashing on SK bootloader AND BH bootloader, but the actual procedure described is, I believe, for the BH bootloader only.

2. I’m not sure if the arduino 1-wire interface programmed by BLHeliSuite 13.1 on uno uses the RX pin for signal. Many others including OP documentation suggest the use of Digital pin #2.

Happy flying!

Reply
Oscar 8th June 2015 - 1:10 pm

Thanks :)
1. I think I did point out how you can flash SK/BH bootloaders in the first link in this article, maybe you missed it :) (flash ESC directly on the chip)
2. not sure, I didn’t see any documentation that mentioned the use of pin2… pin0 just works for me.

Reply
teralift 9th June 2015 - 3:20 pm

Thanks for the comment.

Oh, one more thing. Isn’t it better to substitute “Arduino USB Linker connections” in your pic with ” `Arduino 1-wire interface’ connections” (even though they may be identical) ? The “Arduino USB Linker” refers to an interface for flashing BLHeli on top of SK boot loader in the BLHeliSuite context.
I may be too picky, but there were great deal of confusion when I did this my self for the very first time and eventually finding out that the “Arduino 1-wire Interface” and the “Arduino USB Linker Interface” are actually both 1-wire.

Reply