.: week 3.pcb design, fabrication, and assembly :.

Electronics is clearly the winner of the day.
--John Ford

This week, we milled and stuffed a FabISP - an in-system programmer for AVR microcontrollers. This was my first foray into surface mount soldering - I've only done through-hole boards in the past. This is what my final FabISP board looks like:



First I milled the board. After a failed attempt on the MODELA (the cuts were uneven), I used David Carr's fantastic Mantis (and it worked and only took half the time). My milled board:

Milled board

Board Stuffing

Next it was time for stuffing the board, so I set up my soldering station...

Soldering station

It took me a few tries to get acclimated to surface mounted parts, but I finally found my magic ingredients. Plenty of flux, pre-soldering a single pad to get the part in place, and patience. Some of my first solders:

First solders

I got all the parts on the board (the USB connector was the most difficult - tiny pins!) and crossed my fingers for encoding. Sure enough, it worked on the first try!

Encoded - woohoo

And then it stopped.


About 20 seconds after encoding my board, OS X spit out an error message stating "Your USB device is drawing too much power". I unplugged the board, plugged it back in, and heard a faint 1 second "hiss". Bummer. After some hunting with my trusty multimeter, I found that USB pin 1 was connected to the USB casing. I removed the USB connector, and found a glob of stray solder underneath. It looked toasty.

Crispy USB connector

During removal of the USB connector, one of the copper pads for the connector came off, and one of my traces broke. I used some very thin wire to reconnect the trace, and just settled for 3 pads on the connector. USB connector with a tiny wire soldered in:


The board still didn't work, so I started more maintenance. I found a suspect resistor (R10), so I uprooted it to find a small short with the center trace. Here's a picture of the short:

Short in resistor

Finally, I ended up removing almost all the components in between Vcc and Gnd, as there was a connection between pins 4 and 6 of the ISP header. I don't know which component was the problem, but my FabISP finally works and is recognized in OS X.

Finished Board