Atmel AVR
Serial Programmer

This programmer is based on Application Note AVR910 on techniques for in-system programming.  The following modification have been made to the ap note's design:

The programmer uses the AT90S1200 microcontroller to handle the serial communications and programming signal timing.  Of course, this leads to a kind of chicken-and-egg problem: How do you program the programmer?  There are some simple programmers that require only a parallel port, such as this one. Such programmers won't work, however, under advanced operating systems like NT or Windows 2000 (which was why I built this one in the first place), but you could certainly bootstrap yourself through an older system.  I can also program the chip for you for the cost of postage, drop me an email at if you want to go that route.

The board above was made through the services of ExpressPCB.  For $62, they will make and ship three 3.8x2.5-inch double-sided PC boards, and the software to lay out the board is free.  The serial programmer here fits into a third of one of these boards, so you can make nine in a shot, for a per-board price of $6.89.  The layout files below are in ExpressPCB format, this program and the ExpressSCH schematic capture application can be downloaded from the ExpressPCB web site.

The circuit will program with the original code from Atmel, but I've made minor modifications to it for the added LED.  The LED will be turned on when the microcontroller reaches the main command loop, and turned off again when it exits.  This will cause the LED to turn on when the power-up steps have successfully completed, and flicker during programming.

Schematic for programmer in PDF

Schematic for programmer in ExpressSCH format

PC board layout in ExpressPCB format

Programmer assembly source code

Windows programming application for use with programmer