AVR Programmers

Some different types of programmers that can be used for flashing AVR microcontrollers

AVR ISP Pinouts

On all boards developed by me, I'm using only the 6 Pin Variant.

AVR ISP Pinout

Fast USBasp clone

My Fast USBasp Clone My FastUSBasp Clone

My preferred programmer. It just works without problems and even very fast (writing 32 KiBytes in a little more than 6 seconds). It's default SCK clock is so fast that many of my AVRs can't handle it, therefore I have to use the -B 2 option.

avrdude -c usbasp-clone -B 2 -p m328p -U hfuse:w:0xde:m

See FastUSBasp for more info.

MyAVR USB programmer

My USB AVR-Programmer My USB AVR programmer

I bought this one at http://www.myavr.de but I would not do so again. With the firmware delivered when I bought it, I could not program the fuses with avrprog. It just said this memory type was unsupported. What a stupidity. Maybe it would have worked with the provided windows software, but it did not want to buy and install Windows just to program AVR microcontrollers!
Meanwhile, with firmware version 2.5 it is sometimes (very unreliable) possible to program the fuses.

# -c avr910 does NOT work for me e.g. with the ATtiny13 avrdude -c avr911 -P /dev/avr911 -p m8 -t

udev rule for that programmer

/etc/udev/rules.d/99-myavr.rules
# myavr programmer SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", \ GROUP:="uucp", MODE:="0660", SYMLINK+="myavr%n"

Simple parport programmer

My simple AVR parport programmer My parport AVR programmer

This type of programmer is easy to build and very cheap. You basically need (beside the DB-25 plug) a 74LS244 buffer and a 100 kΩ pull-up resistor.
The disadvantage: Modern computers often have no parport, and the use with a USB to parallel converter will most likely not work because the timing is not accurate enough (or it will work, but painfully slow).

avrdude -c stk200 -P /dev/parport0 -p m8 -t