Change Bootloader on ESC – ATMEL

Just a quick post on how to change bootloader on an ESC, from SimonK to BLHeli. Or if you are not sure what bootloader you have got, you can just flash it anyway to make sure.

The benefit of having a bootloader is to allow you to use 1-wire interface or Flight controller pass-through connections, when you configure or update ESC firmware.

If you are not sure what Bootloader you have got on your ESCs, easiest way to check is try to establish 1-wire interface in BLHeliSuite, try both SimonK and BLehli options see which one works. If none of these works, it probably indicates there is no bootloader installed.

To install or change bootloader on a ATMEL chip based ESC, you need to write to the chip directly with an USBASP programmer, something like an Arduino UNO or Nano. 1-wire interface CANNOT change bootloader!

Examples of ATMEL ESCs are: DYS SN20A, Blue Series ESC, Afro ESC, and Armattan ESC.

To connect to the chip, easiest way is to get a ATMEL chip Flashing Tool, which goes on top of the chip directly. Here is a quick demo of how it works.


Some ESC’s ATMEL chips are too small for the flashing tool, so they provide soldering pads such as the SN20A / BL20A, they are connected to the pins on the chip directly. Therefore you can solder wires to the pads and no need for a flashing tool.



Flashing through USBASP, ESC doesn’t require connecting to any battery. 5V source goes thought the harness from Arduino. Note: Steady hands are required :)

arduino-flash-esc-header-pin-solder-pad-clamp-diy dys-sn20a-esc-blheli-flash-firmware


And when you flashing the BLHeli firmware on your ESC, you will be asked to to


We don’t get asked as often with Silabs ESC, because they usually come with BLHeli bootloader already.

16 thoughts on “Change Bootloader on ESC – ATMEL

  1. Casey Morton

    About the SiLabs remark on at the end: The stock ESCs for the Eachine Racer 250 are SiLabs with the SK bootloader. When flashing through the 3 pads on the boadrd I dont get an option in BLHeli Suite to change the BL. How do you accomplish this?

    1. Oscar Post author

      It’s likely that you are not flashing the ESC MCU directly but through the bootloader interface.
      There should be 4 pads you need to connect on the Silabs i think? (GND, PWR, c2d, c2ck)

  2. Jason

    Oscar, thanks so much for all your efforts!! I have a USBasp tool, and trying to figure out if I am flashing only the bootloader with this tool, or if I can use it to flash firmware also. I do not have an Arduino. I know my SN20a have SK bootloader, so I cannot use the FC to flash the latest BL firmware. If I understand this post correctly, I can use the USBasp to flash BL bootloader, which would allow me to flash firmware with my Naze32 via Betaflight in the future. I don’t want to solder to the 6-pin pads everytime, so flashing the BL bootloader would be helpful. Will this work with my USBasp? Thank you.

    1. Oscar Post author

      Hi Jason, yes a USBASP should work for flashing bootloader as well as firmware.. in fact the Arduino is being used as a USBASP programmer here…
      lastly… i would really appreciate it if you could post your questions on the forum: … I only check my blog comments once a week, but I use the forum everyday!

  3. ronald

    hi oscar
    i got no luck when connecting sn20a with my china nano v3
    able to let the nano know the esc is here, but wont be able to write the bootloader can u help?

  4. John

    Hi Oscar, this is great stuff. I tried tonight on my SN20A using a Adruino Nano V3 and BLHeli 14301. I couldn’t get it to connect. I searched online for the proper pin out and used this as reference I verified with a multi-reader that 5v was coming off the lead but still no luck.

    What type of interface do I need to use within BLHeli? I tired AdruinoUSBLinker (SK Bootloader). This is what I used to flash BLHeli using pin D3 and GRND on my Arduino. It worked without issue.

    Any other advice?


    Sorry I was at work and rushed, I have read your blog and understand the difference between sk and bl bootloader. I think my problem is that I only have a afro stick and rcx usb linker which if I read correctly won’t work with bl bootloader, is that correct, and if so what would I need to change settings, oneshot dampened light etc on esc. THANK YOU FOR ANY HELP YOU CAN OFFER.


    High Oscar, I have the my rcmart littlebee with blheli, how to I change the settings? I cannot get the esc to connect to blheli suite. It did work with a afro 30a so I know everything is working on the computer side. What am I doing wrong?


        Thanks for the reply! I tried them all, what I am reading an understanding is that if I have a silab esc with blheli bootloader I need to use somthing like a arduino nano for programming, does that sound right to you? And thanks again for your help.

  7. Markus

    Hi Oscar
    Thanks for that! I always ask myself how to change the bootloader on my SN20a’s without programming tool. Could you tell me/us which pins on the arduino uno are needed? 5V and Ground is no problem, but what about the other 4 pins? Thanks and greets from Germany! Markus

    1. Oscar Post author

      Try this

      // pin name:    not-mega:         mega(1280 and 2560)
      // slave reset: 10:               53 
      // MOSI:        11:               51 
      // MISO:        12:               50 
      // SCK:         13:               52
      // 5V:          5V:               5V
      // GND:         GND:              GND
      1. Oscar Post author

        BLHeliSuite has a tool to make your arduino a ESC programmer, maybe have a read in their manual?

Leave a Reply

Your email address will not be published. Required fields are marked *

For prompt technical support, please use our forum I check blog comments weekly.