Tutorial: KISS 24A ESC Firmware Upgrade

by Oscar

In this tutorial we will explain the steps to update KISS 24A ESC v1.01, to newer firmware version. Also how to flash firmware in the KISS FC GUI Configurator.

Some of the links on this page are affiliate links. I receive a commission (at no extra cost to you) if you make a purchase after clicking on one of these affiliate links. This helps support the free content for the community on this website. Please read our Affiliate Link Policy for more information.

We described briefly how to update firmware on the KISS 24A ESC before in our review. But it’s slightly trickier for newer firmware like 1.03, as you first need to flash 1.02 to update the bootloader. The 1.02 bootloader allows you to flash future firmware via KISS FC GUI chrome app.

On v1.01, you cannot flash firmware using the GUI directly and that’s why this whole process is required. That means we cannot flash 1.03 directly from 1.01 even with FTDI.

This tutorial is written by Artur Banach.

Tools Required

  • USB to serial converter
  • 3 x 1-Pin male to 1-Pin female servo wires
  • XT60 wire with Crocodile clips + LiPo  battery (for powering on the ESC)

Software needed

Wiring

Before we start, it’s a good idea to remove signal, telemetry and ground wires from the ESC, so there is no connection to the flight controller to avoid potential issues during the flashing process.

Depending on how you have your ESC installed on the quadcopter, you may need to de-solder them from the PDB to get easy access to the pads we need to connect to for the process.

If motors are still attached to the ESC make sure that the propellers are removed before the process.

Layout of the pads on KISS 24A ESC:

formatfactorylayout

We only need RX, TX and GND outputs on serial converter:

formatfactorykiss_flash_02

Wires should be connected as follows:

  • RX on serial converter to TX on ESC (red wire on the photo)
  • TX on serial converter to EX on ESC (green wire on the photo)
  • GND to GND (ground) on the ESC (blue wire on the photo)

I soldered the header pins on these pads.

formatfactorykiss_flash_01

Step 1 – Getting ESC Serial Number

Once you have connected the serial converter to the ESC as shown above, we can now connect the ESC to our computer, and get the serial number from it.

Plug the serial converter into the computer, and then power up the ESC using LiPo.

1 . Open Arduino IDE Software and go to Serial Monitor

kiss_flash_06

2. In next window type ‘info’ and press ENTER (Make sure the 2 settings at the bottom are set correctly: Both NL & CR and 115200 Baud rate

kiss_flash_07

3. You should see the ESC info appearing along with serial number (S/N):

kiss_flash_08

4. Copy the serial number, and go to http://ultraesc.de/hexGen/index.php. Paste your serial number in the first text box

kiss_flash_09

5. Press ‘get hexfile’ – a hex will be created and downloaded. We will need it to flash ESC in the next step

You can now disconnect ESC from the battery and computer.

Step 2 – Flashing boot loader to a newer version (1.02)

1 . Go to http://www.st.com/web/en/catalog/tools/PF257525 to download STM32 Flash loader demonstrator software:

kiss_flash_10

2. Before connecting ESC to a computer, make sure you’ve shorted Bootloader pads (BT). You can either solder it together or use a pencil to draw MANY lines crossing both pads (carbon is conductive). When the ESC is in bootloader mode, none of the LED’s should be on when connected to power (LiPo). If you can still see LED lights up, it means it’s not in bootloader mode yet.

3. Connect ESC to a computer and then power the ESC up.

4. Open STM32 Flash loader demonstrator, choose Baud Rate of 57600 and press next

kiss_flash_25

5. There will be a message asking for ‘Removing protection‘ , read the warning and click the the button:

kiss_flash_17

Press ok here

kiss_flash_18

Press Next here

kiss_flash_19

6. On next window click Next

kiss_flash_11

7. Choose your HEX file you have just downloaded. Make sure you select HEX extension from the filter. Select “Global Erase” and tick “Verify after download“. After HEX was selected hit Open, then Next :

kiss_flash_13

kiss_flash_12

8. At this stage actual flashing commenced:

kiss_flash_14

9. Verification in progress:

kiss_flash_15

10. Flashing completed:

kiss_flash_16

11. Now you can desolder boot loader pads (BT) or use rubber to remove the pencil traces :)

Summary

  • You will have to repeat Step 1 and 2 for all the ESC’s (because each ESC has a unique Serial Number therefore the hex files are unique)
  • It might seem like a big task, but after all ESC’s are flashed with the 1.02 bootloader, we can now flash ESC using KISS FC GUI app – which makes future ESC flashing much easier

Step 3 – Flashing ESC with KISS FC GUI

After we’ve completed Step 1 and 2 for all the ESC’s, we can now flash newer ESC firmware (v1.03h) via KISS FC GUI without the need of soldering wires to ESC and using Serial Converter.

0. Solder your ESC’s back to the FC and PDB first (which we previously had signal and ground removed from)

1 . Download the latest ESC firmware from http://kiss.flyduino.net

2. Connect to KISS FC without LiPo, press ESC Flasher in the top right corner:

kiss_flash_20

3. A message will appear. Make sure read the warning, and that you actually understand what you are doing before pressing “I KNOW WHAT I AM DOING” :)

kiss_flash_21

4. ESC flasher will open, and you can press SELECT FIRMWARE green button. Select your downloaded firmware hex file.

kiss_flash_22

5. Connect LiPo to the quad – so that your ESC’s are powered.

6. Click “FLASH FIRMWARE” and the process of flashing will begin. It will take a minute or two. During the process ESC LEDs will be flashing

kiss_flash_23

7. A message will appear once the process is complete.

kiss_flash_24

Congratulations, you’ve just updated your KISS 24A ESC to 1.03h :) . Time for a cup of tea and some biscuits :) or…your choice of favourite brewery – you’ve gone through the whole process, you need one.

What else do I need to know?

Any further ESC firmware updates can now be done using KISS FC GUI (after you have completed the above 3 steps).

You need to pay extra attention when doing this firmware update. Equipment can get damaged during the process. I was the perfect example, because when I was flashing one of my ESCs, the power wires snapped off and touched signal wire and shorted the ESC. I could only watch and smell the magic smoke before it hit the rubbish bin. :-(

Author: Artur Banach

Leave a Comment

By using this form, you agree with the storage and handling of your data by this website. Note that all comments are held for moderation before appearing.

15 comments

Manuel Helbling 16th June 2021 - 3:34 pm

Thanks for this guide I having a problem I using kiss esc 2-5S 25A (40A limit) but i don`t see any leds; there sould be leds visible while flashing right ?

Reply
Jacob Haddan 20th February 2017 - 3:31 pm

I have one ESC not showing a blue light in the GUI flashing via the Kiss FC. Now I’m back and thinking I made a mistake flashing a baud of 56000. Your site says 56k and Arturs says 115.2k. Is this Baud rate important will it cause me to have this problem in the GUI if not correctly set up? If so I am not sure how to get my hex file again as I have 4 ESC Serial numbers and I’m not sure what what is connected to this ESC. Any recommendations greatly appreciated. Jacob Haddan AKA GostfalconFPV

Reply
Oscar 20th February 2017 - 9:03 pm

You should use matching baud rate between the flashed device and flashing device. Where did you see 56K?

Reply
Slic 6th March 2017 - 4:16 am

After FC firmware update, loosing one KISS ESC is the norm now (usually number 4). KISS ESC’s are complete garbage as far as reliability goes.

Reply
Torben 16th January 2017 - 2:39 pm

How do I flash an dshot compatible firmware to the KISS 24A ESC wihtout having an KISS FC?

Reply
Oscar 21st January 2017 - 6:13 pm

use an USB serial adapter

Reply
Nathan Imig 2nd December 2016 - 3:28 am

So idk why but i had to use “Newline” instead of “Both NL & CR” in Arduino v1.6.12

Reply
Hayden 30th November 2016 - 6:22 am

Thank you very much for this tutorial :)

Reply
Glen 24th September 2016 - 1:06 pm

Do you think desoldering signal ground and telem from fc and powering esc through pdb with motors still attached will work ?

Reply
Oscar 3rd October 2016 - 3:39 pm

as long as there isn’t any data connection between FC and ESC you should be fine.

Reply
Mark 16th September 2016 - 11:22 pm

I’ve completed the 1.02 hex upload, but if I de-soldered the bootloader pins and run “info” in Arduino, it still reports “101”…. is that correct?

(maybe “101” is a hardware version?)

Reply
Salmizar 5th November 2016 - 11:37 pm

As stated on ultraesc.de/hexGen/index.php

“KISS24A FW v1.02 (1.01 but with bootloader)”

It will show as 101 is read after flashing to 1.02. Only when you flash beyond will it display the correct version #.

Reply
Giacomo 13th September 2016 - 8:19 pm

Can FCs other than Kiss flash future firmwares or you also need a Kiss FC to perform this task?

Reply
Oscar 14th September 2016 - 2:38 pm

It has to be KISS FC with their own firmware.

Reply
Alwischy 13th September 2016 - 2:06 pm

Thankyou brilliant tutorial.
A1

Reply