Made some great progress on my PCB CNC mill in the past week. For our new readers: I built a machine, that manipulates copper-covered board under a Dremel rotary cutting tool to carve out electronic circuit boards to support our rapid prototyping capabilities.
More after the break…
It took many tweaks of the mill and related software to get this level of consistency and resolution on this engraving.
First up was getting a more stable spindle. Needs to be rock solid to get a clean cut of the right depth. I’m now using this flex-shaft attachment for the dremel because it allows me to hard-mount the metal flex shaft handle rather than muffler-clamping the whole plastic dremel (motor and all) to the z-axis.
So this z-axis, as we call it, moves up and down over the work piece to allow different depths of cutting. The “table” below the cutting head slides left and right as well as forward and back. That’s the x and y axes respectively. So that’s why it’s called a 3-axis mill. The motors on the end of each axis slide the table around under computer control while the Dremel is cutting.
Pulling back, we see the dremel motor suspended, now right off the mill, on a bungee, which isolates all that vibration that messes up the required fine engraving cuts.
To do this etching successfully you need (a) a very flat table with respect to the cutting head. To achieve this I’m using 1″ pink insulating foam from the hardware store. I double-side-tape the foam to the mill table, and then, using an end mill, I run a program that cuts back and forth into the foam making a nice and flat surface. If you are out more than 0.001″ from one end of the table to the other, then that can mean the difference between cutting through the copper or not on your work piece.
Now (b) was trickier, and that’s determing a consistent “zero” position for the z-axis (up and down). I’m using a 60 degree V point cutting bit. That means the deeper you plunge into the material, the wider the cuts are going to be. The important thing for improving the mill was to get a consistency. Initally I was slipping some shim stock under the cutting tool and then jogging it down to the copper surface. At that point, minus the thickness of the shim, I would call zero for the z axis. Very subjective. Shown here is a more consistent method where I use my digital multimeter’s continuity check. If the two probes on the DMM touch, then a beep sounds. Since both the cutting head and my material are conductive, I just clip one probe onto the cutting tool and rest the other on the copper. I jog the z-axis down until I get the very first beep. Each step while jogging Z down is 0.00025″ so it takes a little patience, but I’m getting the hang of it, so it’s getting faster. Works great.
The tie wraps work well. Had to stuff a hunk of aluminum bar behind the spindle to move it out to clear the nut and bolt at the bottom end. The bolt is in there to really lock the spindle in place when the tie wraps are cranked down.
The board I’m working on here measures about 1.5″ x 3.5″. It’s a simple design to just illustrate the capabilities of the mill. My constraints in the project were low-cost and sufficient precision to etch PCB’s. So I gave up on size to get the precision at a still-low cost.
Part of being able to improve and tune the mill is to be able to measure its output. I picked up this simple 100x microscope on DealExtreme for about $8. Another key advancment.
With this, I can look at the cut width and smoothness to determine if changes to the mill are making things better or worse.
This was a tricky shot to get through the microscope, but you can see the built-in reticle in the scope that allows me to measure down to the 0.02mm level. Show here, from left to right, are three vertical strips of copper remaining. Between the strips, the fibreglass substrate is visible now after engraving. The fibreglass is non-conductive so the etching creates “islands” of conductivity so current can flow within the circuit.
Tons of small test cuts. I send the cutter over (or up) an inch, raise the cutting tool, move over and down again, and then return back near the beginning. This allowed me to quantify the amount of backlash in the x and y axis. Backlash is the mechanical “slop” that occurs when the motors reverse their direction to move the table in the opposite direction. Note the not-round circles here. That’s backlash in the system.
I gotta keep notes on the back of the boards with the various settings recorded. Otherwise it’s hard to know when you’re doing better.
Oh, how far we’ve come from this early board. Crikey! Wobbly spindle, backlash, unlevel table, etc all add up to this sort of result.
I cranked out a lot of test “blanks” of copper clad board using the shear at the lab. That is such a sweet tool.
Poor-man’s Scotch-Brite abrasive are handy to remove some slivers of remaining copper post-engraving. This also removes oxidation to allow for better soldering.
Rinse and repeat many times with different settings. I milled out another 0.020″ of the foam for each piece to ensure a flat surface.
Routing out the edge of the board produced a lot of board dust and made for a…
Ultimately a vacuum hose will be hooked up near the spindle to remove dust and swarf.
For this run, I also ran the generated drill file to drill out the corner stand-off holes. This summer I’ll be documenting (along with Karl) the end to end process. It’s a great mix of design, software, and hardware skills.
Serendipity in full force here, this backlit shot makes me want to experiment with different cutting depths and patterns. A whole new design medium for me that I hadn’t considered.
Of course at some point you have to actually make a working circuit out of all this. So I started soldering these 0805-sized resistors down. I put some solder on one pad, then tack the part down with a reflow on that side, and then solder the other pad down. Works like a charm, thanks JB!
These resistors are 2mm by 1.25mm. Originally I designed the board for bigger 1206 components, which are a fat 3.2mm x 1.6mm, but Sayal only had 805-sized parts and I was impatient, so I just reworked the board to use these smaller parts. That’s the beauty of rapid prototyping.
After the resistors were on, I laid down the LEDs (on the left). you gotta use tweezers to manage these grain-of-salt-sized parts. Smaller than this would require a microscope. James gave me a passing grade on this, my first attempt at surface-mount soldering.
Lastly, I added the ATTINY2313 8-bit microcontroller. It’s the brain that I’ll program to blink these LED’s. Same deal: tack the corners and then go one pin at a time.
Today, I added a pin header for In Circuit Serial Programming (ICSP) so I can connect the AVR Dragon programmer to this board. Working on the code now and should have something basic out shortly.
It’s a real achievement to finally get usable boards from this mill. It was 10 years ago that my buddy Dan and I started making CNC mills. The mill shown here is actually my third attempt after a number of Significant Learning Opportunities. This was built with a drill press, file, square, and a hacksaw. With careful planning and design, it is possible to make a precision tool with less precise tools. The project is an awesome grab-bag of challenges involving mechanics, fabrication, electronics, and software.
I’m very fortunate to have a close circle of massively talented friends who shared their brain-power with me on the mill. James (dude!), Karl, Ben, and Gus all shared their unique perspectives, knowledge, and encouragement. Thanks guys. kwartzlab magic!