HardwareDifferent ESCs come with different micro-controller, it can be
Atmel (8 bit AVR),
SiLabs (8 bit 8051) or even
STM32 (32 bit Cortex-M). At least these are I heard about.
Many of them can be flashed with open-source firmware. Micro-controller usually comes with bootloader and firmware. Bootloader starts firmware and allows programming over
servo wire. Alternative way is cutting shrink-tube and hooking up programmer (can be Arduino) to programming pads, this way allows changing everything on the chip, including bootloader, but also changing fuses on some chips and potentially bricking them.
So two ways of programming:
- Servo wire (bootloader allows that)
- Programming pads
Now as you can probably imagine, every ESC differs not only by chip, but also by FETs type (their speed), gate-drivers and all sorts of technical details which requires different code for programming them. SimonK or BLHeli are in fact not just one firmware but a set of them, suitable for each specific ESC. If you flash wrong firmware and provide enough current, you are likely to damage your ESC. Of course some cloners make ESCs that have different name, but can be flashed with firmware written for original ESC.
If you want to flash you ESC you have to determine what firmware was there and is safe to use.Firmware and bootloader- SimonK bootloader: Can run SimonK firmware or BLHeli firmware
- BLheli bootloader: Can run only BLHeli firmware
So if you have Atmel chip you can flash with both SimonK or BLHeli, given that there is firmware written for that ESC or compatible one.
Programming toolsServo wire programming tools
You can also use Arduino, but I never tried that. It would be awesome if someone could contribute to Wiki with nice write-up how to do that.
ProgrammingI suggest you try hooking up Arduino or Afro ESC programming tool and reading ESCs using very friendly
https://blhelisuite.wordpress.com/It should recognize your ESCs bootloader and determine what firmware it was flashed with, as well as offer an update of firmware. This tool would flash BLHeli firmware working with SimonK bootloader. If you don't want to update firmware to BLHeli and be on a safe side, you can still use it just to read (without writing anything) to determine correct SimonK firmware.
OptionsBLHeliSuite should automatically detect correct firmware for your ESC based on string encoded in previous firmware flashed. If that string was "Afro 20A ESC Multi-rotor" then it will assume these are the ESCs you have, will offer matching firmware upgrades and show previously hidden options that can be enabled/disabled/tunned for this very specific ESC hardware known as Afro 20A.
I don't know how to determine if ESC response is too slow and anything faster is needed, but if you flash BLHeli version >= 13.0 then OneShot125 is supported by default. OneShot125 gives you also gyro synchronization which is more important than faster response. Unfortunately, I don't know how that works with SimonK, probably you need to enable some option in the code and recompile firmware. You can also enable active-barking in BLHeliSuite if your ESC supports that. It's a feature that actively slows down motors, instead of just passively relaying on friction between air and propellers.