Week 2: PCB Milling

The week has blown by super quickly and already we're on the next topics. This time: milling our own circuit boards!

As usual, the first task is to play with the machine and figure out what range of operations are possible. The machine this week is a small router which we use with copper boards. By removing the upper layer of copper, we can cut out our circuit board layouts to any specification wanted. A small test cut let us test out how thin the machine could operate at.


Similarly to the vinyl cutting from last week, I loaded up a PNG into the mod software hooked up to the router. The computer then calculates the edges of the cut and calculates what kinds of movements the router head should do.

Before running the job, I also had to setup the router's head, set to 1/64 inch for removing the copper layer. The heads replace super easily with a little screw so it is simple to switch them out for different types of cuts. It is also important to manually set the head to be just touching the top of the material before starting the job.


Happy with the test cut, I could now start to mill the real circuit for the week! The assignment is to build an in-circuit programmer -- basically a small board that lets us program other boards through a USB connection and a couple of wires. I decided to use the well-documented FabTinyISP from the class site.


I loaded up the circuit layout onto the mill, and began cutting out the copper layer. That part worked cleanly, and I swapped out the mill head for the thicker 1/32 bit to cut an outline of the board all the way through. Unfortunately, I had misplaced the home coordinates, the the cut ended up going right through the design...

After a couple of misadventures such as accidently sucking the board into a vaccuum cleaner and misaligning the z-axis of the router head, the circuit board was finally finished! Little did I know, that would be the easy part. Because next came the task of assembling all the real electronic components, with only a soldering iron and the strength of willpower.


Through what ended up bring significantly more trial-and-error than I expected, the soldering job was done! I figured out a couple of tricks along the way -- the strategy that worked the best was to first heat the board and the component, then only slightly touch the joint with the solder. If done correctly, the solder should instantly attach itself to both parts instead of clumping up. If all else failed, the solder wick could fix most mistakes, and solder paste could save the day for more complicated parts like the microcontroller and six-pin header.


Last but not least, we needed to program the programmer itself in order to get logic into the microcontroller. This is basically an infinite recursion problem, since you need a pre-programmed programmer in order to make a programmer... thankfully someone apparently solved it way back when, and the original programmer existed. I was able to use a classmate's programmer in order to setup my own. We ended up using a homebrew solution, with a USB-C adapter and six female-to-female wires, along with two laptops, but in the end the programmer was recognized by my laptop and should hopefully be ready for whatever is thrown at it!