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 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 ;).