This tutorial explains how to use an Arduino board as an AVR ISP (in-system programmer). This allows you to use the board to burn the bootloader onto an AVR (e.g. the ATmega168 or ATmega328 used in Arduino). The code in this example is based on the mega-isp firmware by Randall Bohn.
To use your Arduino board to burn a bootloader onto an AVR, you need to follow a few simple steps.
This procedure works with the boards that have the SPI signals on the indicated pins. For boards for which this isn't valid (32u4 boards like Leonardo) the SPI signals have to be connected to the ISP connector whose pinout is reported below.
An Arduino board serving as an ISP to program the ATmega on another Arduino board. On the Arduino Uno, you'll need to connect a 10 uF capacitor between reset and ground (after uploading the ArduinoISP sketch). Note that you need access to the reset pin on the target board, which isn't available on NG or older boards.
On NG or older boards, connect the reset wire to pin 1 of the Atmega chip on the board, as shown above.
See the Arduino to Breadboard tutorial for details.
|Using an Arduino board to program an ATmega. Because no external clock source is connected, the ATmega must be configured to use its internal clock.||Using an Arduino board to program an ATmega, with external crystal and associated capacitors (18 or 22 picofarads).|