How to upgrade ATMEGA8U2 Firmware

If you are building your own Arduino UNO board from scratch, you will probably run through some issues such as how to update Arduino bootloader and how to update ATMEGA8U2 firmware in the way that Arduino Drivers (and IDE) will recognize it in order to be programmed.

The ATmega8U2 chip on your Arduino board acts as a bridge between the computer’s USB port and the main processor’s serial port. It runs software called firmware (so named because you couldn’t change it once it had been programmed in the chip) that can be updated through a special usb protocol called DFU (Device Firmware Update).

The first step is to download the ATMEL programmer. There are a couple of programmers available on the ATMEL web’s site, the most complete one is the “suite”, a great IDE programmer for many (almost every) ATMEL chips. But we don’t need to download the entire suite for this little tutorial. We just need the tool called FILP (Download FLIP). If you are a MAC user you can use dfu-programmer (from port: sudo port install dfu-programmer). If you are on Linux you can use dfu-programmer too (from sudo apt-get install dfu-programmer ).

Note on drivers: before connecting the “hands made” ’s Arduino UNO to your PC, install the drivers placed into the Arduiuno IDE, and be sure that once the “hands made” ’s Arduino Uno is connected to your PC in your device manager appears ATMEGA8U2.

The second step is to download the last firmware version from here.

The third step is to add a temporary 10k resistor to your board, as the following image.


The fourth step is to connect the “hands made”’s Arduino to your PC, and to put it into DFU mode by connecting the RESET and the GND pin for “one second”. Those pins are placed on the top of theATMEGA8U2 like in the following picture.

Note on drivers: Once your device is correctly putted in DFU mode, you should see in your device manager ATMEGA8U2-DFU. If you don’t see it, you need to upgrade the installed drivers (from your device manager) with the ones placed in the FLIP directory.

The fifth step is to run FLIP and to select ATMEGA8U2 from the menu.

The sixth step is to run the USB connection from FLIP (Top Left Button).

The seventh step is to run tests (left most column ).

The eighth step is to open the download firmware from second step.

The last step is to programming the ATMEGA8U2 running programming (still left most column).

Now lets remove the 10k resistor, and boot the board. Now you should have programmed your 8U2 chip. You should have no problems to program your “hands made” ’s Arduino (if you have already programmed Arduino Bootloader)

Note on drivers: if you had upgraded the Arduino drivers, during the fourth step, now you need to downgrade the drivers to the original Arduino ones. Just uninstall the current drivers and rerun the Arduino ’s drivers installation.

Enjoy your “home made” ’s Arduino UNO ;).