As explained previously about what ESC bootloader does, we can use so called “1-wire” interface to flash and configure your ESC firmware settings.
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.
Flashing ESC using one-wire interface through signal cable.
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”.
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 Nano
All you need to connect is the GND and D3.
Connecting on BLHeli Suite GUI
Before connecting, choose the ATMEL 1-wire bootloader Interface in the dropdown menu.
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!
42 comments
Hi!! are all ESCs configurable with arduino and blheli?
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.
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.
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!
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.
Hi Oscar I have a 30A slim opto multistar ESC, can I do this with my arduino Uno and this ESC?
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.
Can this be done with Arduino Leonardo board. Did not realize it was board specific, if so how plz?
Leonardo is not an option in BLHeliSuite i don’t think…
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
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.
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
yes it’s in my plan to do..
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).
really? maybe try flashing your ESC via flight controller?
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.
no.. to change bootloader you will need to connect the soldering pads next to the processor to an Arduino ISP programmer…
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.
Fantastic Qamal! have fun flying!
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 ?
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?
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 ?
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?
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
sorry i am not familiar with the Teensy. BLHeli has only written the interface software for Arduino anyway so i doubt it will work…
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?
it’s changed in version 14. depends on what the ESC bootloader you have got.
SimonK bootloader => ArduinoUSBLinker
BLHeli bootloader => Arduino BLheli bootloader
I wanna ask a question,that is which pin does the mega2560 used to 1Wire . thanks a lot!
I am not sure to be honest. have you tried the same pin as on the UNO?
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..
pin 19 bro. if you’ve selected port d pin 2 in blheli (default)
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
if they come directly from Hobbyking? no… you can only use 1-wire if they have previously flashed with SimonK or BLheli :)
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.
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 :)
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 !
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?
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
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
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!
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.
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.