I had some ideas to go out before, but as i got terrible cold last Friday, I had to postpone all of them.

I feel a bit better today, so decided to build USBasp – an USB port ISP programmer for Atmel product family. I used STK 200/300 dongle before, but it works from parallel port only.
USBasp: fresh PCB
Lets start: the schematics is from http://www.fischl.de/usbasp/ . You can find some schematics and pre-routed PCB’s there.

What I need is USB B type or MiniUSB connector, SMD parts, small footprint, single – sided PCB. The one I liked is by Thomas Pfeifer, http://thomaspfeifer.net/atmel_usb_programmer.htm. The problem is I found no files for Eagle there and had to re-create the PCB.

Additional features are:

  • RC filters on MOSI, MISO and SCK lines to suppress ringing, as suggested in AVR Freaks forum;
  • Signal from oscillator (XTAL1) is routed to the pin 3 on IDC connector via jumper – a handy feature to debrick the MCU if you accidentally fused external oscillator;
  • Inductor on the power line.

The PDF files with the layout are here, an A6 – size mirrored image for direct printing on OHP is here.

Added on 2008-10-01:
USBasp top side, populated
USBasp bottom side, populated
First, it works. Both connected directly or via USB hub.
Second: don’t create anything while you are ill. Actually, pin number 5 on miniUSB connector MUST be grounded, while pin number 4 can be grounded or left floating. I’ve used i jumper wire to solve the issue.