FabISP, a fab-able in-system programmer using ATtiny44

The FabISP is an in-system programmer for AVR microcontrollers, designed for production within a FabLab. That is, it allows you to program the microcontrollers on other boards you make, using nothing but a USB cable and 6-pin IDC to 6-pin IDC cable. It’s based on the USBtiny and V-USB firmwares, which allow the ATtiny44 to perform USB communication in software. Programming can be done through avrdude. The schematic (PDF) is super simple: USB connector, ATtiny44, and 6-pin ISP header, with assorted passive components. I started with the Eagle files for the USBtinyISP, although there’s almost nothing left of it. Most of the parts for the FabISP are in the FabLab inventory. Exceptions include the Mini-B USB connector (SparkFun, Digi-Key), 12 MHz crystal (Digi-Key), and 18 pF capacitors for the crystal (Digi-Key).Eagle:fabisp.sch, fabisp.brdSchematic:fabisp.pdfPNGs:fabisp.png, fabispdim.pngFirmware:firmware.zip

Hardware Interface

The board connects to the computer using a Mini USB cable. It connects to the target (the board being programmed) with an 6-pin cable on the 2×3 ISP header.
The FabISP board contains two solder jumpers: pairs of adjacent pads with no components mounted on them. These can be closed (connected with solder) to configure the board. They are:

SJ1 (between the crystal and microcontroller)

Close to program the ATtiny44 on the FabISP. (Connects reset on the 2×3 ISP header with reset on the ATtiny44.)