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 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