Summary of Making a USB based AVR Programmer using ATMEGA8 Microcontroller
The article describes the author's journey from using a parallel port-based programmer to building a USBasp programmer for programming ATMEGA microcontrollers. Initially, programming was done via a parallel port using the DAPA programmer and a simple setup involving an ATMEGA8 chip on a breadboard, a DB25 parallel port connector, and a USB cable for power. Later, the author learned to build a USBasp programmer, which is faster, cheaper, and laptop-friendly, improving convenience for programming AVR chips on the go.
Parts used in the USBasp Programmer Project:
- ATMEGA8 microcontroller
- Breadboard
- DB25 parallel port connector
- USB cable (for 5V power and GND)
Around time when I was beginning to learn about microcontrollers. I had exchanged my laptop with a senior at college for his desktop – that’s because the only way I knew how to program an ATMEGA chip was through either a serial port or a parallel port. USB programmers were not available widely and were generally thought to be expensive. The programming setup using a parallel port was very simple. I followed the DAPA programmer for my needs for some time. Here is a pic of the setup – ATMEGA8 chip on breadboard (pinouts matched against the one shown in above link). A parallel port DB25 connector and a USB cable that just to get 5V and GND quick and dirtly without any batteries and voltage regulators:
Over the time I learned about an inexpensive way of making a USB based AVR programmer called USBasp. It’s faster, cheaper and has the convenience of letting you program AVRs from laptops. Here is a pic of the first USBasp programmer that I built, and promptly got my laptop back (in the link you can see more designs):
Plugging it into the laptop and seeing it get recognized was pure fun! Having it work right also meant that you could get it to a competition venue easily, in case you had to program the microcontroller again.
For more detail: Making a USB based AVR Programmer using ATMEGA8 Microcontroller