BLHeli Programming Adapters
BLHeli Programming Adapters
BLHeli ESCs can be divided into two different hardware platforms, depending
upon whether they use a SiLabs MCU or an Atmel MCU.
The programming adapter options for the two are partly different.
Both SiLabs and Atmel ESCs support bootloader. A bootloader is a small piece of
code in the ESC, that can be used to update firmware and change parameters via
the signal input wire.
All versions of the Atmel firmware support bootloader, but a bootloader is not
installed in all ESCs. There are two versions of bootloader for Atmel ESCs, a
SimonK version and a BLHeli version. They have different requirements for
programming adapter.
SiLabs firmware versions from rev13.2 and onwards support bootloader, and the
bootloader is an integral part of the code, meaning that all ESCs have it. For
rev13.1 and below none have it. SiLabs ESCs only support the BLHeli bootloader.
Unfortunately there are also other hardware differences among ESCs. Often SiLabs
ESCs have a resistor on the signal input, and due to this resistor some
programming sticks can not be used. Also, some Atmel ESCs have a transistor
based inverter on the input, and a bootloader can not be used with these ESCs.
This document describes some of the more common methods and adapters, but is
not an exhaustive list on connection options.
A special note on the 4-way interface (4w-if). This is a code for the Arduino and
various programming boxes that is very versatile.
Once the box or Arduino is programmed for 4-way interface it can be used for:
- SiLabs initial flash over C2 interface
- SiLabs BLHeli bootloader interface
- Atmel BLHeli bootloader interface
- Atmel Simonk bootloader interface
Then a final notice on using a current limited power supply when flashing and
programming ESCs. Sometimes things go wrong when flashing, and that can lead
to a toasted ESC, unless a current limited supply is used.
Current limiting can be done in several ways:
- A current limited power supply
- A weak battery
- A resistor in series with the battery
- A light bulb in series with the battery
- A fuse in series with the battery
- etc...
-3- v1.1
Initial flash of SiLabs ESCs are done over a "C2" interface, which requires 3 wires.
They are marked with black, red and white circles in this document, and also in
the " BLHeli supported SiLabs ESCs" document.
They can usually be easily soldered manually.
A note on the wires: Black is always ground. And a caution: Red is not V+.
-4- v1.1
This picture shows an Arduino Nano. Many more Arduinos are supported.
See "BLHeliSuite 4w-if interfaces pinout" for more details. Also see this document
for options on programming many ESCs in parallel.
First the Arduino must be loaded with the appropriate code. Plug in the USB cable,
select the appropriate COM port in BLHeliSuite and program the Arduino:
Note that COM7 shown here is just an example. The actual COM port assigned will vary.
The appropriate baud rate will change by selection of the Arduino board and is determined by
the installed Arduino bootloader. In the shown case 57600 baud is set for the Nano board.
-5- v1.1
For the Arduino Nano using the pins circled in the above picture, use this file:
Note that COM7 shown here is just an example. The actual COM port assigned will vary.
SiLabs Toolstick:
The green circle in the above image indicates where two pins on the connector
shall be shorted.
Note that the number shown here is just an example. The Toolstick number will vary.
Does the same Job as SiLabs Toolstick and fits plug and play to the
Origin 10A ESC, or the Origin double ESC. If you want to
use it with a different plug, be aware that the
colors are different from the "standard" colors.
The colors and assignments of the wires from this stick are:
Yellow = C2D .
Black = C2CK .
Red = GND .
Note that the number shown here is just an example. The Toolstick number will vary.
TQFP32 package
- 11 - v1.1
USBasp:
The most convenient adapter to go with the above socket tool, is the USBasp.
Note that there are two versions of the connector for the ISP interface, 10pin and
6pin. The "socket tool" uses the 10pin connector.
Note that some adapters will have to use a "usbasp-clone" or "new-usbasp-clone" selection.
Power up the ESC (connect a battery) and click Read Setup, Write Setup or Flash.
- 12 - v1.1
This picture shows an Arduino Nano. Many more Arduinos are supported.
See " How to Make an ArduinoISP" for the location of the 6 programming pins on
the Arduinos.
First the Arduino must be loaded with the appropriate code. Plug in the USB cable,
select the appropriate COM port in BLHeliSuite and program the Arduino:
Note that COM7 shown here is just an example. The actual COM port assigned will vary.
The appropriate baud rate will change by selection of the Arduino board and is determined by
the installed Arduino bootloader. In the shown case 57600 baud is set for the Nano board.
- 13 - v1.1
Note that COM7 shown here is just an example. The actual COM port assigned will vary.
Power up the ESC (connect a battery) and click Read Setup, Write Setup or Flash.
- 14 - v1.1
Bootloaders
Atmel MCUs can have bootloader installed (but not all have). It is not part of the
BLHeli hex file. There are two types of bootloaders for Atmel MCUs, a SimonK
type and a BLHeli type.
- The BLHeli Bootloader uses a serial protocol (rs232).It can write and
verify (functionally not yet integrated into BLHeliSuite) flash area and
read/write eeprom area. It consumes only 512 bytes of the flash space.
This bootloader operates at a fixed 19200 baud rate.
(If flashed with BLHeliSuite prior rev. 13.2, this bootloader had auto detected
baud rate).
SiLabs MCUs that have BLHeli FW rev 13.2 and higher include a BLHeli
bootloader within the BLHeli hex file. This bootloader operates at a fixed 19200
baud rate.
Only two wires are required for the bootloader interfaces, ground and the signal
wire. Normally, it is ok to connect also the third terminal (V+) to the programming
stick. But in some cases, if the ESC has a BEC voltage that is higher than 5V, it
may damage the adapter.
- 15 - v1.1
With the BLHeli bootloader, in general there is no need to make a fuss about
choosing Atmel vs. SiLabs. BLHeliSuite will connect in either way and will switch
to the appropriate mode, if necessary.
These are valid for USB/Com type and these for 4w-if type interfaces.
- 16 - v1.1
This picture shows an Arduino Nano. Many more Arduinos are supported.
See "BLHeliSuite 4w-if interfaces pinout" for more details. Also see this document
for options on programming many ESCs in parallel.
First the Arduino must be loaded with the appropriate code. Plug in the USB cable,
select the appropriate COM port in BLHeliSuite and program the Arduino:
Note that COM7 shown here is just an example. The actual COM port assigned will vary.
The appropriate baud rate will change by selection of the Arduino board and is determined by
the installed Arduino bootloader. In the shown case 57600 baud is set for the Nano board.
- 17 - v1.1
For the Arduino Nano using the pins circled in the above picture, use this file:
Note that COM7 shown here is just an example. The actual COM port assigned will vary.
This picture shows an Arduino Nano. A few more Arduinos are supported.
The pin circled in yellow in the picture above shall be connected to the signal input
of the ESC, and the pin circled in black to ESC ground.
First the Arduino must be loaded with the appropriate code. Plug in the USB cable,
select the appropriate COM port in BLHeliSuite and program the Arduino:
Note that COM7 shown here is just an example. The actual COM port assigned will vary.
The appropriate baud rate will change by selection of the Arduino board and is determined by
the installed Arduino bootloader. In the shown case 57600 baud is set for the Nano board.
- 20 - v1.1
Note that COM7 shown here is just an example. The actual COM port assigned will vary.
Favourite stick:
Note: The FVT stick will not work with Atmel BLHeli Bootloader flashed with
BLHeliSuite prior rev 13.2
- 22 - v1.1
FTDI stick:
In general, and for use with SiLabs ESCs in particular, the pullup resistor R1
described in the document needs to be large. 47kohm is a good value.
Note that COM7 shown here is just an example. The actual COM port assigned will vary.
Multistar stick:
Without modifications this stick can be used with Atmel BLHeli bootloader.
In order to use it with SiLabs BLHeli bootloader, it is necessary to change the red
circled 3.3Kohm resistor (“332”) with a 27 to 47Kohm resistor.
Note that COM7 shown here is just an example. The actual COM port assigned will vary.
This picture shows an Arduino Nano. Many more Arduinos are supported.
See "BLHeliSuite 4w-if interfaces pinout" for more details. Also see this document
for options on programming many ESCs in parallel.
First the Arduino must be loaded with the appropriate code. Plug in the USB cable,
select the appropriate COM port in BLHeliSuite and program the Arduino:
Note that COM7 shown here is just an example. The actual COM port assigned will vary.
The appropriate baud rate will change by selection of the Arduino board and is determined by
the installed Arduino bootloader. In the shown case 57600 baud is set for the Nano board.
- 28 - v1.1
For the Arduino Nano using the pins circled in the above picture, use this file:
Note that COM7 shown here is just an example. The actual COM port assigned will vary.
This picture shows an Arduino Nano. Some more Arduinos are supported.
The pin circled in yellow in the picture above shall be connected to the signal input
of the ESC, and the pin circled in black to ESC ground.
First the Arduino must be loaded with the appropriate code. Plug in the USB cable,
select the appropriate COM port in BLHeliSuite and program the Arduino:
Note that COM7 shown here is just an example. The actual COM port assigned will vary.
The appropriate baud rate will change by selection of the Arduino board and is determined by
the installed Arduino bootloader. In the shown case 57600 baud is set for the Nano board.
- 31 - v1.1
Note that COM7 shown here is just an example. The actual COM port assigned will vary.
Afro stick:
Caution: Do NOT connect the middle Pin (V+) to ESC! This could toast the stick.