After happily ignoring the microcontroller revolution of the 1980s in favor of analog electronics, I more recently found myself needing embedded code for various purposes. Microchip PIC and Atmel AVR families both seemed inexpensive and widely used; I settled on AVR for its many free development toolchain options. (For programming in AVR Assembly, I'd like to plug Gerd's AVR assembler. It's reasonably friendly and bug-free.)
I started with Atmel's STK500 development board, but it seemed unreasonably cumbersome for the simple in-system programmed applications I had in mind. So I used it to program an AVR for a small serial ISP programmer based on Atmel's AVR910 application note.
What fun is a programmer without a target? So I built a pair of simple boards incorporating the ATtiny2313 and 10 high-efficiency LEDs. One had pin headers installed to serve as a flexible breakout board, and the other was outfitted with a CR2032 3V coin cell and momentary switch to make a persistance-of-vision toy.
Click on the images below for PDFs containing solder-side PCB artwork, reversed for toner transfer, and a component placement diagram. There are two versions of the programmer: one uses a right-angle PCB-mount DE-9 connector, and the other uses a solder-cup style connector in an "end launch" configuration.
A significant drawback to a homebuilt programmer is that the firmware needs to be kept up-to-date to support modern variants. These days I just use an AVR Dragon. If I were starting again from scratch, I would buy an AVRISP mkII.
Contact: reboots at g-cipher.net