For a long time I've been meaning to start working with microcontrollers. Even though I bought a STK500 development board a couple of years ago, I never really got started using it. Now I want to try again :)
For that purpose I bought the book Hardware und C-Programmierung in der Praxis. It's a german book giving the basics on microcontrollers. You should check it out. That is. If you understand german... Else I'm sure there are books available in english that can help you along.

In this book there is a description for a serial port programmer. And although I could use my STK500 as a programmer, I thought it could be interresting to build this one myself.
Here. Take a look at the schematic.


The pinout of X2 is compatible to the Atmel 10 pin ISP connector.
I modified the circuit to include X3 which is for supplying the circuit. And J1 which is used if you need to supply your target circuit with power. The resistor R6 is only there for eaglecad to properly autoroute the pcb layout.

PCB Layout:

Here is a list of the components used:
R1, R5 = 10K
R2, R3 = 47K
R4 = 33K
R6 = 0R (or just use a piece of wire)
C1 = 150p
D1, D2, D3 = Zener 5V1
T1 = BC547B
X1 = 9 pin SUB-D female for PCB mounting
X2 = 5x2 pin connector
X3 = 3 pin
J1 = 2 pin connector for the jumper

And here are the photos of my stripboard version

ponyser_top ponyser_bottom ponyser_con

Programming cable

Working with a breadboard setup the 10 pin connector is not very practical. That's why I made my own 6 pin single line connector layout to be used with my circuits.
The numbers on the small stripboard corresponds to the pins on the 10 pin connector (X2).

prg_cable prg_con prg_cable_use

Using the programmer

As it turned out this programmer is compatible with the PonyProg serial programmer. (Didn't know until I tried to use it with avrdude and needed to specify the programmer on the command line.) You can find details on the original programmer on

A simple example to read from the flash on an ATmega16:
avrdude -p m16 -P /dev/ttyS0 -c ponyser -U flash:r:test.hex:i

I2C adapter

Having found the above mentioned homepage, I also found a schematic of an I2C adapter. So I build a simple version of that too, just to see if it really works. And guess what. It actually does!
You'll have to check that website for the schematic, as I can not show it here due to copyright.

But I have a couple of photos for you:

i2c_top i2c_bottom i2c_con

The software PonyProg2000 from that website is needed to communicate with any I2C units.