The FabISP in-circuit programmer


This week was about electornics - PCB fabrication, electronic components and assembly. Our assigment for the week was to make the FabISP in-circuit programmer : mill, stuff and program.

I chose Neil’s hello.ISP.44 design with the 20Mhz crystal.

Milling

After spending some time with a few other students on the modela (big thanks to Jonathan) I’ve reached the following settings (right modela, eastern section):

traces (1/64)

  • cut depth = 0.1
  • tool diameter = 0.3

interior (1/32)

  • cut depth = 0.6
  • cut thickness = 1.7

Milling

Stuffing

Although I had some experience with soldering, surface mount soldering proved to have a steep learning curve. The technique I used for soldering most of the components was:

  1. apply some solder to the first terminal (not too much, not too little) without the component.
  2. place the component with tweezers and heat the solder until leg is in place.
  3. solder rest of the legs (component is already in place).
  4. pray.

This took 3 hours and later I found out that I’ve put a resonator instead of a crystal. OOPS.

Stuffing

Programming

Before programming, you need both avrdude and avr-gcc installed. On my mac I prefer managing software via the homebrew package manager.

install avrdude using homebrew
brew install avrdude
install avr-gcc using homebrew and an external repository
brew tap larsimmisch/avr
brew install avr-libc

Now you can run the make commands included in the firmware but make sure the proper usbdriver is used in the Makefile. in the tiny44 case:

AVRDUDE = avrdude -c usbtiny -p $(DEVICE)
Program!
make clean
make hex
sudo make fuse
sudo make program

And… It didn’t work. make fuse failed suggesting something is wrong with the board. This brought me back to the magnifying glass and checking traces with the multi-tool. I found some short circuits and places where the traces cracked. After some quick fixes I tried make fuse again and… Voila!. It worked along with make program

Programming

(and yes, that somehow worked although I put a resonator instead of a crystal. explanations, anyone?)

P.S: My original plan was to fabricate a custom skull shaped FabISP board with the teeth as USB connectors and eyes as power LEDs. Unfortunately, I kept screwing the circuit with eagle so I gave up for now. Skull.ISP is left for a later week.