To complete this tutorial you will need…
- An Arduino
- A proto shield kit
- 28-pin ZIF (zero-insertion force) socket
- A piezo
- Some wire
- Blank ATmega328P (that you will program)
First up, place the ZIF socket on the proto shield like so:
Solder the following wires to the ZIF socket
- Pin 1 to digital 10 - Blue (this wire connects underneath to the ZIF socket so make sure to 'jumper it so it solders directly to the ZIF pin, see the photos below)
- Pin 7 to 5V - Red
- Pin 8 to Ground - Black
- Pin 9 to digital 9 - Gray
- Pin 17 to digital 11 - Brown
- Pin 18 to digital 12 - Orange
- Pin 19 to digital 13 - Yellow
- Pin 20 to +5V - Red
- Pin 22 to Ground - Black
Next add S1switch which you will press to start the programming process. You can just solder a wire (yellow) from the breakout near S1 to Analog 1.
We also soldered in a Piezo beeper, to give us feedback. One side is soldered into Analog 3 the other side is soldered to the ground rail right next to the analog breakouts.
Next, install the AVRProg Library which will be used to build the programmer firmware. It can be installed via the Arduino IDE's Library Manager.
In the Arduino IDE, open the Library Manager:
Tools -> Manage Libraries...
Then search for Adafruit AVRProg. The library should be found in the listing. Then click the Install button.
Once the library is installed, open the atmega328_optiboot example in the Arduino IDE:
File -> Examples -> Adafruit AVRProg -> atmega328_optiboot
Upload this example to your Arduino board.
Using the Programmer
Once the programmer sketch has been uploaded to the Arduino board, programming chips is easy:
- Insert the chip into ZIF socket.
- Lock it down via lever on ZIF socket.
- Press the button on the shield.
- While programming, the green LED is lit. When done, the piezo will beep once. If the red LED is lit, a problem occurred.