Skip to content

5. Electronics production

IT WORKS! It took me a while to realize I needed to install some windows drivers to get the FabISP to register as a USB device.

Roland SRM-20 Machine Setup

I started by making a sacrifice board to line the bed of the desktop CNC mill. I chose to use 2 pieces of 3/4” MDF cut to the same size of the bed. Then, using wood glue and clamps the boards werelaminated together. The exhisting holes in the platform were too small and close to the edge to securily hold the sacrifice board to the platform. So, new holes were drilled allowing me to use wood screws inset from the edge 1/2”.

With the sacrifice board in place and the FR1 copper clad board was fixed to the MDF with double sided scotch tape.

I ran several tests with a board I drew in Eagle to determine the best bit size, cut speed and depth. It took several passes to make sure the bit went deep enough to consistantly cut all the way through the copper but not too deep that the traces would become fragile.

Bits and Machine Settings

Cutting Traces

Bit - 1/64” 2FL Endmill

Speed - 10mm/sec

Depth - 0.1mm

Spindle - 12,000 RPM

Drilling Through Holes

Bit - .8mm Drill

Depth - 2mm

Spindle - 6,000 RPM

Cutting Board Profile

Bit - 1/16” 2FL Endmill

Speed - 10mm/sec

Depth - 2mm

Depth per Pass - 0.2mm

Spindle - 12,000 RPM

Setting X/Y Origin & Zeroing Z Axis

By loosening the set screw I inserted the 1/64” bit to it extended from the bottom of the spindle 1/2”. Then, using the VPanel for SRM-20 I moved the x & Y axis so the bit was located over the bottom left corner of where I wanted to board cut. By pressing the x/y button on the top right of the screen the x/y was reset to the position I wanted my home position to be.

To zero the Z axis I lowered the bit so it was about 1/4” above the surface of the bed. Then, I loosed the set screw and manually lowered the bit so it touched surface of the copper clad. After tightening the set screw, I pushed the Z button at the top right of the screen to zero the Z.

Designing a Board in Eagle

I really wanted to go through the entire process from start to finish and recreating Neil’s FabISP. I downloaded Eagle.

I added all the components to the schematic using existing libraries.

I attempted to use the autoroute feature but it wanted to make the board two layers with many vias.

After an hour or so trying to change the setting on the autoroute tool I finally decided to manually route all the wires.

Exporting Eagle Files

Since I my goal is to use a CopperCAM to cut the PCB board I exported GRB files for the traces and drills. I like this meathod because the GRB files prevent any loss of detail that happens during the MODs image conversion to vector lines.

Once the Eagle files were exported using the CAM Processor tool, I started importing the files into Copper CAM. The first file I imported was the top layer. Before creating the cut outline I input all my tools into the tool library using the tool/feeds/speeds setting above.

The CALCULATE CONTOURS tool at the top allows you to selected the number of tool paths around the traces and pads. I just did one around both because I am going to surface the entire area.

The HATCHES tool allows you to select any areas to cut. For each tool I made a sequence traces, hatching, drilling, and cutting out.

Stuffing the Board

Before stuffing the board I realized that the traces were cut too deep and flaked off (left). I cut a second one and widened the traces and didn’t cut so deep (right). This fixed the issue.

Before starting to solder the parts I deburred the PCB by rubbing it on another piece of copper clad board. This removed any sharp buts of copper from the surface. Then, I washed it with soap and water. There appears to be some sort of protective layer on the copper to prevent tarnishing but it also makes soldering difficult.

One of my favorite parts about Fab Academy is there is a huge library of simple circuits. The fabISP tutorial is on of those resources and I referenced that to know where to solder all the parts. In the image belows you can see it maps out very clear where to place all te components.

FabISP parts

  • IC1 - Atmel Tiny44 Micro Controller
  • J2 USB - Mini USB Connector
  • J1 ISP - ICSP Connector (Programming Header)
  • 20 MHz - 20 MHz Crystal
  • C2 and C3 - 10pF capacitors
  • SJ1 - Solder Jumper here for programming (no component)
  • R5 - 10K Ohm Resistor
  • C1 - 1UF capacitor
  • SJ2 - 0 Ohm resistor (can’t use solder blob like SJ1 because there is a trace between the pads)
  • R3 and R4 - 100 Ohm Resistor
  • D1 and D2 - Schottky Diodes
  • R2 - 499 Ohm Resistor
  • R1 - 1K Ohm Resistor

Component orientation is always something to consider. Most of the componenets on this board don’t have polarity, meaning they can face two directions because electricty flows through them the same either orientation.

The USB connector is easy to see how it lines up on the pads but the IC1 and two diodes aren’t so obvious. You need good eyes to see it but there a little circle divot on IC1 - Tiny44 to indicate pin 1 (VCC). The diodes have a little like on the bottom side in the image to indicate the cathode.

To solder the parts on I started by applying solder to one pad. Then, I aligned the part and soldered one pin to the board. This allowed me to anchor the part straight. Finally, I soldered each pin one by one.

After each part was soldered I visually inspected each part and checked for continuity with a volt meter. The only soldering issue I had was with the small pins if I added to much solder. It was easy to fix by removing some solder with a clear solder tip.

Programming the FabISP

The first hurdle is an easy one to cross, the Smoke Test. I just plugged the board into a power supply with mini USB cable. I’ve see some people plugging them into a computer to smoke test but that seem like a good way to short a computer’s USB jack.

Next, I connected th FabISP to my commercial programmer with a ICSP cable that came with the programmer. I am a remote student and no one at Fab Lab Houston has taken Fab Academy so I need the commercial programmer to program my first FabISP. After the first one I sould be able to program future FabISPs with this one.

It is important to make sure the pins on the ribbon cable and the FabISP match. The amazon mosting has an image from the manual that shows the connectors pins in reference to a square hole indicating the MISO pin.

The instructions also explain that the target board (FabISP) should be powered from another power supply (the mini USB cable).

I downloaded the FabISP firmware , unzipped the files and moved them to the desktop of my computer.

I was following the Fab Academy tutorial on how to set the fuses on the FabISP but when I opened the MakeFile in Notepad like suggested the formating was missing. After a bit of struggling I opened it in WordPad and the formatting was there.

The # symbol is used to comment out line and the file came with the correct options not commented out fot my setup. my crystal speed is 20000000 and I am using the avrisp.

Once the files were edited I opened the Command Prompt and navigated to the location of the files on the desktop

Command followed by the enter key: -make clean -make hex -sudo make fuse -sudo make program

Finally, once successfully programmed I removed the solder blob from SJ1. This takes the board out of programming mode.