Ariel Ekblaw - HTMAA Portfolio

Milling and stuffing the FabISP board

Starting from a blank copper-covered, composite board, this week's process uses table-top milling and surface-mount soldering to fabricate the FabISP Board. This circuit functions as a programmer, able to load code onto other devices. Our self-made versions are intended to replace the more expensive, off-the-shelf models such as the AVRISP2 or Amtel Ice. This device must first be programmed, in order to take on the full functionality as a programmer in its own right--the steps toward the end of this entry detail how we "program the programmer".

Below, you'll see an evolution from clean board to a copper ciruit path, showing the "traces" where current will later flow. We use an MDX-20 table-top mill to selectively leave copper for the desired circuit path. We use a 1/64" end-mill for the bulk of the design, and a 1/32" end-mill to cut the circuit area out from the rest of the board.

Summary of Steps for the Milling Process

A few notes on using the CBA software interface for the MDX-20:

From blank board to circuit-trace board!

After milling the board, we now proceed to "stuffing," or filling the board with it's necessary electrical components like resistors, capacitors, diodes, etc. For this instance, we use surface-mount soldering-- a technique where components are electrically connected to the copper traces not through wires and holes but through flat-surface attachment via the solder.

An important preliminary step before soldering: wash the board with soap and water, gently. This helps remove oils from your fingertips that would otherwise disrupt the solder bonding. Below, you can see the board (after cleaning and drying), laid out with all components in their future places. This is to help catalog all the required components and prepare for the soldering.

A few notes on components. In our circuit, the components that require a particular directionality of connection are the diodes and the microchip. There is a small line on the cathode side of the diode, indicating this direction. In our spec for the circuit configuration, the board design software indicates both a C (for cathode) side and an A (for anode) side. You want to allign the cathode side of the diode with the C side of the trace from the circuit diagram. For the microchip, there is a small, circular depression on one corner and this should again be lined up with the proper traces as made explicit in the circuit diagram.

A note on resistors. These can be laid in via either direction, and the numbers on the top of the black side help to identify the resistor values. For the stock of resistors we were working with, you can look at the last digit to determine the factor of 10 by which to multiply the first 3 digits. That is, a resistor showing "1000" is a 100 * 10^0 = 100 Ohm resistor. The "1002" resistor is a 100 * 10^2 = 10K Ohm resistor.

A note on soldering. When you are ready to begin soldering, make sure any long hair is tied back and turn on the soldering iron, allowing it to warm up before use. Soldering surface-mount boards requires a particular technique. It is best to start by warming up the traces by placing the tip of the soldering iron on the copper pad you wish to begin with. Then bring the coil string of solder into the tip, allowing a small amount of solder to flow and fill the pad. Repeat for other pads. Once several components-worth of pads have been soldered, bring in the component in one hand while using the solder iron to re-heat that solder pad, then place one end of the component gently. Reheat the other pad and press the component gently into place. Solder should be visibly making a solid connection between the copper trace and the component's conductive areas. Clean the soldering tip regularly, as you work, with the steel wool or wetting pad.

Below, you'll see a series of photos documenting the soldering process:

First, laying a few pads of solder on the first areas I plan to solder components to:

Next, a close up as more of the components are soldered. This shows how the tip is brought on to warm up the trace, and then the solder coil string is brought in close, until touching the tip, to fill the warmed pad:

Further progression of the soldering, in batches of components:

A setback! In trying to soldering the final component onto the board, the USB-power connector, I allowed solder blobs to cross several of the delicate connections. In trying to remove the excess solder with the solder wick, I pulled too much on the component and ripped off the copper traces. This means starting over with milling a new board and redoing all that soldering! I updated my strategy after this, to start with the hardest component of the board (so that if another mistake is made and requires a new board, I haven't spent all that time soldering the other easier components).

Here's the start of my new board, with the soldering of the USB-power connector and the final board with soldering of the other parts:

After completion of the board soldering, we now move on to programming the board! I was able to validate that the basic soldering connections on the board were working, by plugging the board into the AVRISP programmer (and observing the green diagnostic light below) after following the OS and firmware instructions on the tutorial site.

I hit several roadblocks in actually getting the board programmed, however. Trouble with windows drivers that blocked even the initial make clean and make hex steps led me to use the linux computer in 043. I was then able to proceed through most of the compiling and building steps, but the process failed on the final "make program." I am still in the process of debugging my board, and will post more pictures below when I have determined the cause.

Update! Thanks to some assistance from Brian Mayton, we were able to determine that the programming failure was likely the chip being unable to access the crystal (this was diagnosed by recounting that the first time I ran the steps, the make fuse worked, and program failed, but the second time the make fuse didn't work). We examined the board and made a repair to a connection between the chip pin and the oscillator (where a trace had in fact been severed but was hidden by excess solder). You can see a picture of this "fix" below, reconnected using enameled wire. After this modification, the board was successfully programmed!