Programming an ATmega328 using an in-system programmer (ISP) is pretty straightforward. I was tasked with using an Adafruit ArduinoISP shield to make an ATmega328 run standalone using its internal 8MHz clock. These are my notes.
Create A New Board Definition
The Arduino web site doesn’t have very clear instructions for creating a minimal circuit aren’t too clear for the Mac.
- Close the Arduino IDE if it’s open.
- Download the Breadboard.zip file.
- Extract the file contained therein.
- Append it to the list of definitions found in
When you start the Arduino IDE, you should see ATmega328 on a breadboard (8 MHz internal clock) in the menu.
Burning the Bootloader
The code to turn the host Arduino into an ISP is here. Copy/paste into a new sketch and upload.
- Install an ATmega328 in the ZIF socket.
- Set the programmer to Arduino as ISP.
- Choose Burn Bootloader.
The board should sing, the green light should blink rapidly while burning, and finally go dark. The Arduino IDE should say Done burning bootloader in the status bar at the bottom of the sketch window.