David A. Mellis
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 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.brd
PNGs: fabisp.png, fabispdim.png
Firmware: firmware.zip
An assembled version of the previous revision of the board. Pin 1 of the 6-pin header was marked with a black dot from a Sharpie. |
To program the board, you'll need another in-system programmer (like an AVRISP mkII) or serial cable and dasa (level convertor) board. First, close the solder jumper between the 0 ohm resistor, crystal, and microcontroller (connect the two silver pads in the photo above). Edit the Makefile and modify the line
AVRDUDE = avrdude -c usbtiny -p $(DEVICE)
for your programmer. For example, to use an AVRISP mkII replace the -c usbtiny with -c avrispmkii -P usb. For serial cable and dasa board, use -c dasa. Run make program from the command line to program the firmware onto your FabISP. Once the FabISP is programmed, open the solder jumper (disconnect the two pads) to use the board as a programmer.
Close the solder jumper in the corner of the board to provide power to the target board.