Someone in our Multicopter group asked me what is the difference between BLHeli bootloader and SimonK bootloader. When he was ordering ESC he was given this option and he wasn’t sure which bootloader to choose.
To put it in the layman’s terms, bootloader affects the way how you can flash your ESC firmware. If you don’t have bootloader on your ESC, you can only flash it using the soldering pads provided (Remove heatshrink tube and you should see it). If they don’t provide soldering pads, you will have to solder directly to the chip, or using those flashing tools that sit right over the chip.
If you have bootloader enabled (SimonK or BLHeli), you will be able to flash latest ESC firmware and write custom settings to the ESCs by connecting to only the input signal wire (ESC servo lead), using a USB linker Programming tool such as ArduinoUSBLinker, Afro USB Programming Tool or Turnigy USB Linker. I believe you can also configure your Arduino to work as a USB linker. This method of flashing is commonly called 1 wire due to the data only passes through the signal wire.
Here is an example of 1-wire flashing.
If bootloader is not loaded, you can optionally install the bootloader while flashing firmware with a AVR ISP programmer. When you do it in BLHeli Suite, you are given this option.
However You cannot use ArduinoUSBLinker, Afro USB Programming Tool or Turnigy USB Linker to enable the bootloader because they can not change fuses.
You can flash your ESCs directly on the chip and not using the ESC servo lead, if you don’t have a USB linker. But that means you will have to undo the heatshrink wrap every time, or when you want to make changes to the ESC firmware or settings. I don’t mind though the troubles though.
This flasing tool makes the flashing easier for Atmel chips, the 32 pin SMD type.
Differences between bootloaders and which one to use
Here are some of the differences between SimonK and BLHeli bootloader in more detail.
The two bootloaders are basically the same, they both allow you to to program your ESC over the signal cable without recompiling. Most users will not even notice what bootloader they have, The main differences are
- BLHeli bootloader is smaller than SimonK Bootloader
- SimonK bootloader allows you to flash both SimonK and BLHeli firmware using one-wire connection (ESC signal servo cable). BLHeli bootloader allow flashing BLHeli firmware with one-wire method, but not SimonK.
BLheli bootloader is smaller, halve the size (512KB VS 1024KB) compared to SimonK bootloader. ESC with issue of not enough memory for SimonK bootloader can try BLHeli one.
If your ESC came pre-flashed with SimonK, it’s reasonable to expect it will have the SimonK bootloader. But when you have a choice between the two, just stick to the one same to the firmware you are going to use. Unless you expect to be changing over between SimonK and BLheli then go for SimonK bootloader.
ESC Firmware Software
I really like the user friendly BLHeli Suite software for flashing ESC firmware, configuring settings. With the latest version it supports SimonK Bootloader as well, that allows you to use the servo cable and USB linker. It will keep the simonk bootloader so you could always switch back to simonk firmware easily wihtout having to flash using the AVR ISP pads.
Alternatively the other popular software for flashing SimonK firmware is the kkmulticopterflash. Or you can even just use the CMD command line in Windows. But they don’t offer some setting options such as COMP_PWM. If your ESC doesn’t have SimonK bootloader, these are the only ways to install it.