In the interest of time, and seeing how well my Lantronix breakout board came out on the CNC mill, I decided to CNC my own PCB for the entire suit. I knew it would be fairly simple since most of the components are built on to the Arduino Pro Mini. I still haven't found a decent way to design a PCB to be milled. I use Altium for my circuit design, but this time I had to put my nerves to the test by taking the design into SolidWorks.
First, I started by drawing the overall board shape. Then I extruded a .002" layer of copper on top of the board as a separate body. Then I made a sketch containing all of the drilled through-holes for every component. This took a lot of time because it involved looking up every component (luckily there weren't very many) and creating the footprint in the 2D sketch. In the next feature I extruded away the excess copper, leaving only the rings around the holes I drilled. This is accomplished by offsetting all of the entities in the previous sketch by a certain amount that I varied accordingly for each component. Each piece of copper is a separate body in Solidworks at this point.
Next I began drawing traces. Thankfully Solidworks lets me draw a single line, then extrude it in two directions to create a trace of the same height as the copper layer and with a thickness I choose. Unfortunately it won't let me create multiple traces in one sketch and extrude them all at once. So for now I am stuck drawing each trace in its own sketch and extruding them over and over again. It was a very slow and painful process, but once I got used to it I knocked it out in a few hours.
Most PCB design software, including my favorite one, Altium, lets you design a PCB by viewing from the top, but while drawing traces on the top or bottom layer. Unfortunately I forgot about this when getting started with the PCB in Solidworks, but that was easily fixed with a Body Move/Copy to flip the copper to the other side without mirroring it. Then I performed the same steps on the other side for a few more traces. To check my sanity, I drew up the larger components and placed them to check for interference.
I chose a right-angle slider switch for the power, and screw terminals (not pictured) for attaching the wires on the right side. I knew it would be a heavy toll for a 3.3v linear regulator powering the Lantronix module (~250mA) from approximately 12 volt supply voltage. That is a lot of heat to burn off. I found this awesome little 1 amp 3.3v switching regulator that is a drop-in replacement for the TO-220 style linear regulators, but it is way more efficient.
Being the impatient person I am, I didn't want to spend any more time on the design. It was time to start milling right now! First, all the tools were set up in the tool changer and indicated. Then a piece of double-sided copper-clad FR4 PCB material was taped down to a 1/4" aluminum plate and clamped in the mill vise. The first operation involved drilling the different sized holes, and then the traces were routed out with a .020" endmill.
After the traces got routed out and the operations for one side were complete, I cleaned up the burrs and the finish with a Scotchbrite pad. With some acetone, the tape's adhesive broke down and I removed the board from the aluminum plate. Then, using the holes that were just drilled, the aluminum plate was tapped for #4-40 screws, and I flipped the board over and mounted it back to the aluminum plate to perform the operations on the other side. Then with a razor blade under a microscope, the excess copper was separated then peeled away from the board with pliers, leaving just the traces.
Since the Lantronix module was not cheap (around $65) I knew I wanted to make it removable in case this PCB turned into a disaster. I had some 2mm headers from Sparkfun, but they needed a little work to fit properly. The ends of the headers had extra material, which kept me from placing them in line with each other. I took care of this in a few minutes on a manual mill.
I was ready to start soldering the components. I used a DIP socket for easy Arduino removal as well. Because the board is double-sided but the through-holes are not plated, I purposely designed some through-holes just to insert pieces of wire to transfer traces from one side to another. Cool, everything fits!
Now it was back to Solidworks to design an enclosure. When you have access to a FDM printer, it is fun to reminisce about all the adventures you've had with radio shack project boxes, but it's so nice to move on. My friend Alex taught me all the tricks to plastic enclosure design in Solidworks: Lip & Groove, Snap Hooks, and good practices in general.
And seriously, no lie, I pressed "PRINT" and it appeared a few hours later. I had picked up a 2.4ghz antenna, and added a right-angle male header to my Arduino Mini for easy programming using the FTDI Basic Breakout.
That wraps up the controller for the most part. I added a tactile pushbutton switch and a LAN activity LED after I took these pictures, but that is what those little holes in the top are for. Now it's time to get on to more important things, like coding this shenanigans...