The ArduinoISP is a tiny AVR-ISP (in-system programmer) based on David Mellis' project FabISP (http://fab.cba.mit.edu/content/projects/fabisp/). With this programmer you can upload sketches and burn the bootloader on any Arduino (or other brand) AVR based boards. By uploading a sketch with an external programmer you can remove the bootloader and use the extra space for your sketch. The ArduinoISP can also be used to burn the bootloader on your Arduino, so you can recover it if you accidentally corrupt the bootloader. Burning the bootloader is also necessary when you use a new ATmega microcontroller in your Arduino, and you need the bootloader in order to upload a sketch in the usual way.
Supply voltage 5 V
Connection with the computer micro USB
Connection with the target board ICSP
Eagle files : fabisp_eagle.zip
How to use
Using the Arduino ISP is very simple. Connect it to your Arduino board throught the ICSP connector being sure to match the orientation. Look at the white dot on the corner of the connector to check if you plugged it correctly. FOTO! Now all you have to do is to open the Arduino IDE and select the ArduinoISP in the Programmers menu under Tools. When you finish your sketch and you want to upload it just go to File and click on "Upload using programmer". If you want to burn the bootloader into the AVR chip just go to Tools and click on "Burn bootloader".
Note: The ArduinoISP is supported by ArduinoIDE 1.5.7 or newer version.
Powering the target board:
The ArduinoISP is able to provide the 5 V power supply voltage for the board being programmed. If you want to power the board trough the ISP you have to close the SJVCC jumper on the board.
Reprogramming the on board ATtiny44
The firmware on the ATtiny44 inside the ArduinoISP can be updated or replaced. To program the ATtiny you have to close the SJFAB jumper and connect an ISP programmer in the ICSP connector.
Linux and MacOsX
On these operating systems you don't need any driver, so you can plug in your ArduinoISP and you are ready to use it.
On windows you need to install the correct driver in order to use the ArduinoISP board. Download it from here [LINK!] and extract it. Once you have the needed files go on Device Manager and you should see an unknow device called "ArduinoISP" with a warning. Right click on it and "Update Driver Software" and then click on "Browse my computer for driver software". Select the folder containing the files you extracted before and confirm. After Windows installs the driver you should see the ArduinoISP in device manager without the warning symbol and you are ready to use it.
Verification error problem
If you encounter this kind of problem you should power the board you are trying to program with the ArduinoISP with external power rather than with USB power. For example if you are burning the bootloader to an Arduino Leonardo you have to power the Leonardo through the power jack with a 9V wall wart power supply.
Unknown USB device
If your computer does not recognize the device try a different USB port. Some particular USB ports cause problems during the communication, changing the USB port usually fix the problem.