This week was about making the "FabISP," an AVR microcontroller programmer. It involved learning to mill boards and some tricky surface mount soldering.

I milled a board using the Mantis, which I was extremely impressed by. I played with the circular sander to clean the edges of the board, deciding to give it an organic look by making it rounded rather than squared off.

I gathered all the required components and "stuffed" the board (a term I did not know before this). I had soldered before, but almost never anything so tiny and surface mount. What helped me was pre-applying solder to one of the pads, using tweezers to hold the component while attaching one side using the existing solder, and then doing the other side. Soldering would be significantly easier if humans had three hands rather than two.

Where I ran into trouble was the USB connection. I got almost all of the pins, except the most difficult to fix: the middle one. A blob of solder shorted with the pin next to it. To fix it, I applied solder wick and removed some of the solder. In the process, I ended up removing the copper trace, which was more fragile than I realized. I ended up using a piece of very fine wire (a single strand from a piece of stranded wire) to bridge the gap. This took several tries and a lot of patience but finally succeeded. A close-up view of the trouble area:

I then programmed the board using the class AVRISP, then desoldered the programming solder jumper. It worked, and showed up as a device! To really test it, I tried programming someone else's board with mine, which also worked. Here's the final programmed board:

It was great working on this with others from the class around, we were able to share what worked and did not. What I learned from the experience with the USB connection was the incredible usefulness of flux. While I did not know to use it when I made my board, now that I know I have been using it on other projects, where it has been making my life much easier. Go flux!