![adam.setapen...how.to.make.(almost).anything](../images/header.png)
.: 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:
![Done!](done.jpg)
Milling
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](milled_board.jpg)
Board Stuffing
Next it was time for stuffing the board, so I set up my soldering station...
![Soldering station](soldering_station.jpg)
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](first_solders.jpg)
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](encoding.jpg)
And then it stopped.
Debugging
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](fried_usb.jpg)
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:
![Maintenance](maintenance.jpg)
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](resistor_short.jpg)
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](done_top.jpg)