Last year 0.2 mm trace pitch seemed pretty tight:
"... just think of the precision required to take off the copper layer and only the copper layer, and leave traces down to 0.2 mm behind." -- HaD Prize 2023 finalist announcement
Here's half that...
Admittedly more tedious than $pendier option$ with a big friendly START button, but this little machine got the job done.
- From counting pixels[1] and a little more math than expected[2], I figure the 0.1 mm center-to-center traces (the skinny ones) are 46% trace and 54% space. So 0.046 mm trace and 0.054 mm space. Not 0.050 but both round to 0.05 so I'll go ahead and plant that flag. In barleycorn units: 1.8 mil trace and 2.1 mil space out of 3.9 mil pitch, and again I'll conveniently round to 2 mil trace/space of 4 mil pitch.
- I have to stop thinking about how to interpret the various irregularities -- maybe that will be another log entry later. For example, the horizontal segments at top-left (which are diagonal) are straight but the similar horizontal (diagonal) segments at top-right are wavy. Both were cut by moving in the same direction at the same rate. The segments on the right were the first in their loops where the bit plunged at their left (in that pic), moved not-so-straight to the right, then continued clockwise. The 2nd and 4th of those (down from top) were approached from about the same direction and have about the same kink. The same segments came out better when cut with ~30 μm (~1 mil) more backlash in Y (found and fixed before cutting the example shown). The "vertical" (diagonal) segments at the left look generally straight but a little more rough than the rest -- those came out worse when cut with a little more backlash in Y. It looks like the cut path deflects a few tenths (of a mil) to the left relative to travel. Etc.
- But mostly: hey look at that! Not "just barely" but actually pretty decent. Another increment of exceeding already much exceeded expectations for this extremely low cost, extremely compact CNC design. !.
did he say "tedious"?
Yeah. It was a development exercise. Lessons learned may help make future work at this scale less tedious, but probably not not tedious.
how
You're already reading this project about how to build a little CNC mill. Elements of coaxing the built thing to carve tiny isolation lines through copper cladding include,
- stable hands-free magnification
- design to X/Y stepper full steps
- repeat to refine
- pointy v-bits
- runout
- density test cuts
- repeat to refine
- level
- level test cuts
- laps
stable hands-free magnification
This time I went straight for the stereo microscope because not needing one wasn't an objective. I've also used my phone on a little tripod for nearly no (incremental) cost, and a USB camera for le$$ than the microscope, either of which might have adequately supported this exercise.
design to X/Y steppers' full steps
The small steps in the least-stepped segments adjacent to straight segments match the 0.025 mm practical limit of horizontal positioning for the motor+screw units used here. (The little jog segment length is step×√2 for diagonals (pic at 45°).) That step-over distance corresponds to one full motor step. I'm running x8 microstepping for best acceleration & speed (another log entry "soon"...) but single microsteps are so uneven that there's no fraction of a 0.025 mm step cycle that's useful for positioning. Designing to a 0.025mm "snap grid" puts each feature at the same phase in the microstep cycle for each motor. I haven't tried to actually synchronize the motor driver step cycle phase(s) because stopping at the same phase of the next/final cycle seems to yield sufficiently consistent steps. (now that I've typed that sentence: maybe cycle phase detectably affects backlash....)
Cutting diagonal traces at 0.1 mm pitch would require stepping over 0.1 mm diagonally or 0.1/√2 = 0.071 mm along X & Y, but that's not a multiple of 0.025 mm. Instead the thinnest diagonal traces in the example are 0.75×√2 = 1.06 mm center-to-center, which isn't far off.
Aside: The next full step thinner would, at this milled path width, leave ~46 - 25 = ~21 μm traces -- narrower than their thickness (in 1oz Cu). I gave that a try with results better than total failure, then decided that I really can stop any time I want to.
pointy v-bits
I've been using cheap "0.1 mm" v-bits for fine-pitch circuit milling. Random example of the type. Mostly 30° but tried 15° for this. The points of these bits, at least the ones I've collected so far, are pretty random. So "0.1 mm" is more name than dimension. Randomness affords the opportunity to line up a bunch of bits and select the pointy one -- see "stable magnification". That approach got me down to 0.2 mm trace pitch last year and was where I started with this round of trying for smaller. But then I broke the pointy one in the 15° box, which proved helpful because that got me started on re-grinding points for more smallness. "Grind" seems like the wrong word for the lightest possible short drags over a cheap "fine" (not really) diamond hone between checks under magnification.
Here's the bit that cut a couple copies of the test pattern shown in the top couple of photos, opposite the tip of a sewing needle that I used for a reference for tweaking runout:
runout
I'm using a cheap generic Dremel-like rotary tool in keeping with the low-cost theme of this project. My "spindle" uses a ball joint for a collet, as do, as far as I know, all similar tools. The, um, versatile collet affords the advantage of requiring deliberate attention to tweak runout. So less runout is a simple matter of more tweaking[*]. Sufficient magnification and a finer center reference help. In this case I used a sewing needle stuck point-up in a lump of "blu tack" and set on the XY table for fine positioning under the rotational axis. The photo above shows that arrangement turned sideways for page layout. While the needle is blunt (relatively) it's also round, so reflected light makes high contrast sharp edges for more precise reference.
I don't know what deviation I was able to see & correct, but it was much smaller than the width of the cut path.
Since the bit axis gets tweaked in any case, it's ok for re-grinding to move the point of the bit.
Maybe another day I'll write another log about better/worse orientation of these half-cone+wing v-bits vs. rotational axis -- or find that someone else already has.
[*] there's always a *
density test cuts
To see if I had a sufficiently pointy bit set up, with sufficiently small & harmlessly oriented runout, to keep some copper between cut lines when cutting deep enough to cut through the copper layer: I cut a lot of parallel 0.5 mm lines 0.1 mm apart. Or 0.075 mm apart before deciding to defer that target.
level
At this scale, leveling the copper surface is a big deal. Because depth of cut is a big deal. Failure to cut clean through the copper is failure (if the goal is electrical isolation). Cutting any deeper than just-through with a v-bit expands the cut line which doesn't help when aiming for greatest thinness. With a narrow-angle bit the line width is less sensitive to cut depth, but then the more fragile point is more sensitive to cut depth.
While sitting on (double-sided tape on) a spoil board previously milled "level", the copper surface was far enough out of level to cut too deep on one side and/or not deep enough on the other across a ~4mm square area. I figured the small area of the test pattern was probably close enough to flat and, eventually, got it close enough to level by sliding paper shims under corners and sides of the copper-clad board.
I didn't try surface mapping, which might be necessary over a larger area.
Hey y'all, this is going to get more terse 'cause I've got to get this out. Maybe I'll come back and write more later.
level test cuts
To check/evaluate levelness, I set a Z level so that a 0.5mm line would just barely leave a witness mark on the surface outside each corner of the area to be cut. Or indicate which corners were higher or lower.
laps
While watching closely with magnification.
If I recall correctly, I ran the pattern seven times:
- level/zero check: just barely polishing a line on the copper surface
- down about half of about 0.026mm (Z steps are uneven: two steps is the practical resolution; one step is more or less than half of that)
- down the other ~half of 0.026mm -- that was really close
- down another half-step: nominally 0.006mm but imprecisely so
- three more times at the same Z level -- the next two times clearly cleaned more copper out of the cut lines and the last time around still cleaned out a little more material and left cleared cuts that I felt ok about.
Notes
[1] Trace/space boundaries are fuzzy in the photo. Which makes pixel counting subject to bias. I tried to drop lines in the middle of the fuzzy regions. I suppose it all gets more fuzzier if you have to account for imperfect boundaries between clear isolation gaps and full thickness current bearing traces -- or net effects of variability.
[2] I expected something easy like average some traces, average some spaces, and divide each average by their sum to get two fractions that sum to 1. That result is close enough and I'd have done well to stop there and not try to check that sum against an average of trace+space intervals. The short version of the long version is that each trace or space between two spaces or/traces is a member of, and different fraction of, two different trace+space intervals.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.