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
arduino.cc Forum Burning the Bootloader without AVR-Writer
arduino.cc 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.
This method is running on Windows environment.
“Flip” is writing-tool for ATmega16U2. Downloading from the Atmel’s website.
- AVRISPmk2-Clone firmware
Extract AVRISP-MKII_ATmega16u2.hex from this .zip
“usbserial” is a file to make ATmega16u2 become usbserial-converter . It is attached to “Arduino IDE”. There is it in the folder as below.
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)
- Set the short plug
Short the No.5 with No.6 pins on ICSP of ATmega16U2.(Fig.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.
- 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\
- 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
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)
- Start the “Arduino IDE” and set as belows.
(1) Tool –> Board –> Arduino UNO (Fig.6)
(2) Tool –> Programmer –> AVRISP mkII (Fig.7)
Connect ATmega16U2-ICSP with Arduino UNO-ICSP by wires. (Fig.8)
- Burn the bootloader of UNO ATmega328P
Tool –> Burn Bootloader (Fig.9)
6. Return to usbserial
- Run the DFU-mode on ATmega16U2.
- Start the Flip-tool.
- 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).
- Make the AVRISP mkII Clone from Arduino UNO Rev.3
- Make the AVRISP mkII Clone from Arduino Leonardo Rev.3 / Maicro
Update 2016.12.24 adapted present environment
Upload 2013.12.01 Kimio kosaka