Using The ISP Shield
- Note: Unless you specifically need it, be sure to remove or otherwise disconnect the pin on the stacking header that carries the RESET signal!
...To program the Arduino Bootloader onto an ATmega168/ATmega328
- Attach the ISP Shield to the Arduino
- Connect the Arduino to your computer and bring up the Arduino IDE
- If necessary, configure the Arduino IDE for your Arduino or Arduino clone
- In the File menu, select Examples, and open the ArduinoISP sketch
- Upload this sketch to your Arduino or Arduino clone
- At this time place an ATmega168 or ATmega328 into the ZIF socket on the ISP Shield and lock it in place
- In the Tools menu, select Board, and select either:
- Arduino Duemilanove or Nano w/ ATmega328 if you are programing an ATmega328
- Arduino Diecimila, Duemilanove, or Nano w/ ATmega168 if you are programing an ATmega168
- In the Tools menu, select Burn Bootloader, and select w/ Arduino as ISP
...To program the Arduino Bootloader onto an ATmega168/ATmega328 located on an external target board
If your target board has a standard AVR programming header (or you can hack one together) you can still use the ISP Shield. Follow the instructions above, however instead of placing a microcontroller into the ZIF socket connect the ISP Shield to the target board with either the 6 pin (2x3 DIL) ribbon cable or a 10 pin (2x5 DIL) ribbon cable. If you are programming an ATmega168 your target board will need the appropriate crystal and related capacitors. If you are programming an ATmega328 your target board may have an appropriate crystal and related capacitors. However if you wish to use the internal oscillator instead you need to install support for an additional hardware configuration. Check the From Arduino to a Microcontroller on a Breadboard tutorial by the Arduino Team - under the Minimal Circuit (Eliminating the External Clock) section there are instructions for downloading and installing the ATmega328 on a breadboard (8 MHz internal clock) hardware configuration in the Arduino IDE. Once installed, select this Board type when programming an ATmega328 on an external target board that has no crystal.
...To use the ISP Shield in place of an AVR ISP
The ArduinoISP sketch mimics the Atmel AVRISP programmer. The Arduino IDE won't let you use it to upload sketches, but you can use avrdude to upload compiled programs to an ATmega168/ATmega328 via the ISP Shield ZIF socket or either of the ISP headers. When using an Arduino and ArduinoISP in this capacity the avrdude programmer type should be set to 'avrisp'. Check the avrdude webpage for detailed instructions and documentation regarding the use of avrdude.