Back to tutorial index
FabISP: Electronics Production
What is the FabISP?
The FabISP is an in-system programmer for AVR microcontrollers, designed for production within a FabLab. It allows you to program the microcontrollers on other boards you make.
The Electronics Production assignment is to mill the board, stuff it with components and program it. We will be using these programmers through the semester to program the other boards we create.
The geneology of the FabISP design is interesting in its own right; Neil's FabISP is based on David Mellis's FabISP which is based on Limor's USBTinyISP which is based on Dick Streefland's USBTiny.
Download the Board Files and Mill the Board
Milled FabISP Board
Download the FabISP labeled board diagram so that you can see what components you need to and where to place them on the board.
Solder the components to the board using a soldering iron and solder (or solder paste and then baking.)
These are the all the parts you need to build the board.
- 1 ATTiny 44 microcontroller
- 1 Capacitor 1uF
- 2 Capacitor 10 pF
- 2 Resistor 100 ohm
- 1 Resistor 499 ohm
- 1 Resistor 1K ohm
- 1 Resistor 10K
- one 6 pin header
- 1 USB connector
- 2 jumpers - 0 ohm resistors
- 1 Cystal 20MHz
- two Zener Diode 3.3 V
- one usb mini cable
- one ribbon cable
- two 6 pin connectors
Mini USB Header
- Solder the mini USB header first. This is the most difficult part and if you are going to destroy the board, you are going to do it here.
- J2 USB is the mini USB header
- Solder with a blob, then wick solder away with desoldering braid.
- Solder the microcontroller second.
- "IC1 t44" in the diagram is an attiny44a chip.
- There is a little circle on the chip that should be facing to the top left if your board is oriented in the same direction as Neil's diagram.
- I have marked the circle on the pinout diagram below
Here is the datasheet for the attiny44.
- Marked as "20 MHz" on board diagram.
- Tin the pads first, then place the component on top.
- Hold component down with tweezers, the reflow solder at either end.
- NOTE: crystals do not have polarity, orientation does not matter.
- Diodes have polarity the "C" or cathode end is marked with a tiny line.
- Place the side with the line on it over the "C" side pad in the diagram.
- You may need a magnifing glass.
- NOTE: it is helpful to solder the 1K resistor first, otherwise it is hard to get to after you have soldered the diodes.
- Components marked with an "R" (R1, R2, etc) are resistors.
- Here is a handy SMD (surface mount) resistor code calculator.
- NOTE: resistors do not have polarity, orientation does not matter.
- Components marked with a "C" (C1, C2, etc) are capacitors.
- Capacitors are not marked, be careful not to mix them up.
- NOTE: capacitors do not have polarity, orientation does not matter.
- The components marked SJ1 and SJ2 are solder jumpers.
- SJ1 can be bridged with solder.
- Put a 0 ohm resistor over SJ2 on this board
6 pin programming header
- The components marked J1 ISP is the 6 pin programming header.
- Orientation does not matter.
Plug the FabISP into your computer via the mini USB cable.
- If you get an error message from your computer that the board is drawing too much power and that the computer is shutting down the USB port.
- You have a short somewhere on your board. See (Troubleshooting Short Circuits).
If you do not recieve any messges, proceed to "Install the necessary software for AVR programming."
Troubleshooting Short Circuits:
- First, do a visual inspection of the board and reflow any solder joints that look cold (not shiny and smooth).
- Then, get out your multimeter and check all the connections to make sure that:
- power and ground are not connected
- there is not a short on the power line.
- Common problem areas on the FabISP are:
- the pins on the 6-pin programming header are connected to each other.
- the tiny pins on the front of the mini USB header are connected to each other.
- none of these pins should be connected.
use your meter to determine which pins are connected.
use flux and desoldering braid to remove the excess solder and disconnect the pins.