This guide assumes you have a flight controller running BetaFlight connected to KISS 24A ESCs. Alternatively, use a USB-UART converter to program the ESCs.
Download the latest ESC firmware from here: https://github.com/flyduino/kissesc-firmware/releases
Pre 1.02 Firmware
If your ESCs have firmware less than 1.02, you'll need to go through the extra steps of flashing the bootloader as follows:
Install the Arduino IDE if you don't have it already. https://www.arduino.cc/en/Main/Software
Download and install the STM8 flasher from STM: http://www.st.com/en/development-tools/flasher-stm8.html
Choose the right port in the Arduino IDE
Open the serial console, set the line endings to NL and CR
and set the BAUD to 115200
, then type info
and hit enter. You'll see something like this
Copy the serial number and paste into this website and http://ultraesc.de/hexGen/index.php and hit download
Solder some leads to the TX and RX pads and short the boot jumper on the ESC. Plug connect the UART ground to the ESC ground, UART TX into the ESC RX pin and UART RX into the ESC TX pin and the battery to the ESC.
Open the STM8 Flash Demonstrator GUI. Set the following settings and hit "Next":
Choose "Remove Protection"
Then "OK"
Note: this will erase your ESC, so if you do this before reading the serial and downloading the right hex, you'll need to flash http://ultraesc.de/hexGen/KISS_ESC_SpamSerialNumber.zip to get the serial number to download the correct firmware. You'll want to flash this hex with the Flash Loader Demonstrator
Hit "Next"
Choose the right target, if not already selected, and hit "Next"
Choose "Download" and pick the hex file you downloaded (or spam serial number if you need to find the serial, but erased the ESC on accident), choose "Global Erase" and Verify" then hit "Next"
It will flash, then verify:
This is what it looks like when it's been flashed successfully:
Now remove the short on the boot jumper.
Upgrading from 1.02 Onward
Once your ESCs have 1.02 installed, you can use passthrough programming in BetaFlight and the KISS ESC Flashloader to upgrade your ESCs.
Download the latest firmware from here: http://kiss.flyduino.net/download/kiss-esc24a-re-firmware-v1-11/
Download and install the latest BetaFlight Configurator from: https://github.com/betaflight/betaflight-configurator/releases
Download and install the KISS ESC Flashloader as an unpacked chrome extension: https://www.dropbox.com/s/s46g87op7rg6r4e/flashloader.zip?dl=1
Using BetaFlight Passthrough
Connect your ESCs to your flight controller like normal
Open the BetaFlight configurator and run: escprog ki 255
in the CLI
You'll see:
Entering CLI Mode, type 'exit' to return, or 'help'
# escprog ki 255
Using all outputs.
Hit disconnect in the BetaFlight Configurator and head to Flashing an Update
Using a USB-UART adapter
I'm using a CP2102
Alternatively, just connect the ESC PWM input to your USB-UART TX pin and the ground pin on the ESC to ground on the USB-UART like so
Flashing an Update
Open the KISS ESC Flashloader. Choose the serial port and pick USB-UART. Pick the 1.11 hex file you download from the kiss website and hit "Write flash" You'll see the ESC LED flash.
Here's what it looks like when flashing:
You'll hear the motor/ESC chime when done and you're good to go!
Debugging & Further Reading
When things go wrong, it can be hard to figure out what's happening.
Here are some links from RCGroups user ronnw that might help:
https://www.rcgroups.com/forums/showpost.php?p=35582651&postcount=2287
https://www.rcgroups.com/forums/showpost.php?p=36178585&postcount=2841