Tutorial: How to use the ArduinoISP Deluxe Shield
This tutorial will show you how to upload the Blink example sketch to an AVR microcontroller using the ArduinoISP Deluxe Shield v2.5. If you need the instructions for a previous version of the shield, you can find them here: v1.0 & v2.0. You can verify the version of your shield by checking the version number printed on the shield or by colour: v1.0 shields are red, v2.0 shields are green, and v2.5 shields are black.
If you have not already installed additional hardware support files for ATtiny microcontrollers, you can get them from here. Installation instructions are included in the readme.txt file.
1. Plug your Arduino into your computer. Open up the Arduino IDE and then open ArduinoISP sketch from the File > Examples menu.
2. When the ArduinoISP sketch is finished uploading, unplug your Arduino and plug the ArduinoISP Deluxe shield in.
3. Set the Auto Reset jumper to “OFF.” In the “OFF” position, sketches will be uploaded to the microcontroller in the ZIF socket instead of the ATmega328 on the Arduino.
4. Set the switches and jumpers according to the microcontroller you wish to program. Ensure that only the relevant bank of switches is ON and all others are OFF. The image below shows the switch/jumper configuration for programming an ATtiny 24/45/85.
Warning: be sure the jumpers and switches are set properly before inserting your microcontroller. Failure to do so may result in damage to your Arduino, the shield, and the microcontroller.
5. Insert your microcontroller into the ZIF socket, with pin 1 in the left-most contacts. Make sure that the dot or half-circle is facing the LEFT. See the photos below for clarification. Make sure that you insert your microcontroller properly, or you may damage the Arduino, the shield, and the microcontroller.
6. Plug the Arduino back into your computer.
7. Open up the Blink sketch from the File > Examples > 01.Basics menu.
8. In the Blink sketch, change the led pin from pin 13 to either:
- Pin 1 for ATtiny24/44/84/2313/4313 or ATmega mircocontrollers
- Pin 4 for ATtiny13/25/45/85 microcontrollers.
9. Change the board under the Tools > Board menu to the microcontroller that you will be using.
Note: for ATtiny microcontrollers, you will have to use the internal clock (either 1MHz or 8MHz) as there is no external clock source available on the shield. If you choose a different value then you may not be able to program the microcontroller with this shield again. ATmega microcontrollers can make use of the 16MHz crystal on the shield. If you are trying to program an ATmega328, you can select “Arduino Uno” as the board.
10. Under the Tools > Programmer menu, make sure you have “Arduino as ISP” selected.
11. If you are using a brand new microcontroller that has never been programmed before, then you will need to set the fuses on it and / or burn the Arduino bootloader to it. If you are not using a new microcontroller or have purchased one with a bootloader pre-loaded, then skip to step 12. If you are unsure, then just follow this step.
The fuses on a microcontroller are used to control things like clock speed, clock source, brown-out detection, etc. If you’d like a more technical explanation of AVR fuses, you can read a little more about them here, but in this tutorial we’ll just be using the default fuse settings. To set the fuses / upload the bootloader, you simply go to the Tools menu and select “Burn bootloader.” This process may take about 20 seconds.
12. After setting the fuses, you can now upload the blink sketch. Go to File > Upload Using Programmer to upload the sketch.
Note: when programming an ATtiny microcontroller, you can simply use the regular “File > Upload” to upload your sketches. ATmega microcontrollers require you to use “Upload Using Programmer” or else it will try and upload your sketch to the Arduino your shield is plugged into.
And that’s it! You should now see the “Blink” LED flashing.
- When your sketch is uploading to the microcontroller, the blue “Prog” LED on the shield will light up / flash. When it goes out, the upload is complete.
- The “Error” LED will blink if there is an error during the upload.
Note: You may encounter the following error when uploading a sketch, but feel free to ignore it:
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny85
If you encounter any other errors, double-check that you have all of the proper jumpers set. Also be sure that you have the microcontroller inserted properly into the ZIF socket, and that the shield is securely inserted into the Arduino.
12 Comments + Add Comment
Got anything to say? Go ahead and leave a comment!