How to make

Burning the Bootloader without external AVR-Writer on “Arduino UNO Rev.3”

I found the method to burn the bootloader by “Arduino Diecimila” itself without external AVR-writer.
And I reported it as below on July 27 2008.

My web site Burning the Bootloader without external AVR-Writer Forum Burning the Bootloader without  AVR-Writer playground Turn your Diecimila into an AVR Writer

It is called “FTDI-Bitbang method”.

Today , I tried  the method to burn the bootloader by “Arduino UNO Rev.3” itself, just like “FTDI-Bitbang method”.

I report about this method as below.

1. Arduino UNO Rev.3

This method is available  in “Arduino UNO Rev.3” and etc equipped with Atmega16U2 usb-serial.

2. Softwears

  1. Windows
    This method is running on Windows environment. But Windows10 is not supported.
  2. Flip-tool
    “Flip” is writing-tool for ATmega16U2. Downloading from the Atmel’s website.
    “Flip” dose not run under the Windows10.
  3. AVRISPmk2-Clone firmware
    Extract AVRISP-MKII_ATmega16u2.hex from this .zip
  4. usbserial
    “usbserial” is a file to make  ATmega16u2  become  usbserial-converter . It is attached to “Arduino IDE”. There is it in the  folder as below.
    C:\Program Files\Arduino\hardware\arduino\avr\firmwares\atmegaxxu2\UNO-dfu_and_usbserial_combined.hex

3. Add  header-pins

There are four pads written as JP2 near the ATmega16U2 on a UNO PCB. (These pads are connected to the I/O pins of ATmega16U2.)
Remove the solder of these pads and insert a pin-header. And soldering it. (Fig.1)


4. AVRISPmk2-Clone

  1. Set the short plug
    Short the No.5 with No.6 pins on ICSP of ATmega16U2.(Fig.2)



  2. Connect to USB
    Connect Arduino UNO to USB port. And after, remove the short-plug 5 with 6 on ICSP of ATmega16U2.
    ATmega16U2 run on DFU-mode.
  3. Install Driver
    Windows detect new USB device “Atmel Corp IOUSB Host Device”(or ATmega16U2 DFU). and install drivers.
    There are drives file in the  folder as below.
    C:\Program Files\Atmel\Flip 3.4.7\usb\
  4. Write “AVRISP-MKII_130303_toggle_driver.hex”
    (1)Run the Flip-tool
    (2)Select device ATmega16U2.(Fig.3)
    (3)Open the USB port. (Fig.4)



    (4)Load the “AVRISP-MKII_ATmega16u2.hex” file. (Fig.5)
    (in Fig. AVRISP-MKII-avrdude.hex is old ver.)
    (5)Click [Run] botton to write. (Fig.6)




5. Burn the bootloader

  1. Re-connect
    Re-connect Arduino UNO without the short plug 5-6pin on ICSP of ATmega16U2.
    Windows detect new USB device “ATMEL AVRISP mkII”.
    If the device driver is required, install “libusb” generic USB driver. How to install it (google search)
  2. Start the “Arduino IDE” and set as belows.
    (1) Tool –> Board –> Arduino UNO (Fig.6)
    (2) Tool –> Programmer –> AVRISP mkII (Fig.7)


  3. Wiring
    Connect ATmega16U2-ICSP with Arduino UNO-ICSP by wires. (Fig.8)

  4. Burn the bootloader of UNO ATmega328P
    Tool –> Burn Bootloader (Fig.9)


6. Return to usbserial

  1. Run the DFU-mode on ATmega16U2.
  2. Start the Flip-tool.
  3. Write the “UNO-dfu_and_usbserial_combined.hex”

7. Another hack

Arduino UNO Rev.3 / Leonardo Rev.3 / Maicro becomes AVR Programmer AVRISP mkII Clone (include TPI mode).

  1. Make the AVRISP mkII Clone from Arduino UNO Rev.3
  2. Make the AVRISP mkII Clone from Arduino Leonardo Rev.3 / Maicro


Update 2016.12.24 adapted  present environment
Upload 2013.12.01 Kimio kosaka

Copyright © kosakalab All Rights Reserved.
Powered by WordPress & BizVektor Theme by Vektor,Inc. technology.