Step 1: Go Get Stuff
- ATMEGA328 (as many as you want to program)
- An Arduino board
- A ZIF socket
- A breadboard
- 10K resistor
- (x2) 22pF capacitor
- 16mhz crystal
- Solid core wire
Step 2: Microcontroller Pins
A chip that has been properly inserted into an Arduino socket will have pins which are straight (at a right angle to the body of the chip). The chip in the middle is an example of this.
Unfortunately, chips that have been through the process of being forcibly inserted and removed from a normal socket sometimes end up looking like the chip on the right. Notice the pins are bent in every which direction.
Step 3: Remove the Chip
The implication in the picture sequence you can simply pull it out with your fingers is a lie (unless your fingers are like vice grips).
The proper way to do it is with a special tool called a chip extractor.
Barring that, I find that anything skinny, flat, and metal works well. For instance, I like to use a mini flathead screwdriver or a dental spatula to do this. I wedge one end under one side, gently wiggle it a little to lift it, and then I repeat this on the other side. After going back and forth a couple of times, the chip should be free and no pins should be bent.
Step 4: Breadboard the Circuit
Note which row of the breadboard that pin 1 (the top left pin of the chip) is inserted.
Count down to pins 9 and 10. Connect a 22pF capacitor from each of these pins to the ground rails. Also, instal a 16mhz crystal between pins 9 and 10. Be careful that the leads from the capacitors are not touch the body of the crystal.
Connect pin 8 to the ground rail with wire and also connect pin 7 to the power rail.
Now, connect a 10K resistor between pin 1 and the power rail.
Pin 20 and 21 needs to be connect to the power rail and pin 22 should be connected to ground.
Lastly, connect the power rails on each side of the board together and also do the same for the ground rails.
Step 5: Connect the Boards
Connect the reset pin from the Arduino to pin 1 of the ZIF socket.
Connect together the 5V pin to the power rail on the breadboard and the ground from the Arduino to the ground on the breadboard.
pin 11 to pin 17
pin 12 to pin 18
pin 13 to pin 19
Step 6: Attach the ISP
Step 7: Insert the Chip
Don't forget that pin 1 is to the left of the notch on the chip and this is on the side with the lever.
Once the chip is inserted, pull down the lever to lock it into place.
Step 8: Bootload
Open the Arduino IDE.
From the top menu select:
Tools > Board > Arduino Uno
Tools > Burn Bootloader > w/ USBtinyISP
It will then display at the bottom of the IDE window:
Burning bootloader to I/O Board (this may take a minute)...
A few minutes later it will state:
Done burning bootloader.