CNC PCB milling
-
@NeverDie oh, you've a lot of stuff and update since my last visit here. I've just a couple of minutes now, so I just quickly checked the new posts. let me give some further details/tips to you based on the issues I see:
- flatcam does support hole milling. when you select the given drl file (project tab) you can select all of the given holes (selected tab) which you want to mill, then scroll down (see screenshot below) where you can generate the hole milling geometry.

- you can find my edge cutting related details/setting in my previous posts. using the edge cuts grbl file loaded to flatcam you can generate the corresponding milling path. I use multiple passes to be sure that the spindle will be able to handle the process. you can generate the tool path from the gui as well, but I prefer the gui's command line (see the bottom line at the screenshot). use the "help" command there. for non rectangular boards I use the combination of isolate command, together with exteriors or interiors commands and with the geocutout command if it is necessary.
- in case of the autoleveling there is a safety related parameter which describes the max touch depth/travel. if the spindle has to move more, than that will trigger an error. be sure, that the safe moving Z distance and the max touch probe distance on Z axis is properly configured.
- some of your isolation results are not too nice. I would double check your cnc assembly. be sure that the x axis is parallel with the cnc bed, which is also "flat" and do not have any angle. autoleveling could make the results better, but properly adjusted xyz axis with bed is essential.
- for isolation I use multiple passes. usually 3-5 times of the tool width. I do use overlapping, usually I calculate the overlapping to be 10-20% of the given tool width.
happy hacking with the cnc :)
@andrew said in CNC PCB milling:
I would double check your cnc assembly. be sure that the x axis is parallel with the cnc bed, which is also "flat" and do not have any angle.
To that end, it sure would help to have some adjustment knobs. Is there a kit for that? Then I could dial it in exactly.
Lacking that, though, I suppose if the sacrifice board is flat enough then I could just shim it with sheets of paper at the corners near the hold-downs. That might be more precise than just loosening and re-tightening (after nudging) the guide rail bolts, hoping for improvement.
- flatcam does support hole milling. when you select the given drl file (project tab) you can select all of the given holes (selected tab) which you want to mill, then scroll down (see screenshot below) where you can generate the hole milling geometry.
-
So, I decided to relax the constraints and go for something easier, like a simple circuit for a load switch that uses an SOT23-6 and three 0603 SMD components:

The etching came out perfect the very first time. :) I cut it using a new Jack bit, and I cut it to a depth of z=-0.15 using three flatcam passes, each -0.05 deeper than the prior one. I tested it with a contuinity meter, and isolation is perfect. :)BTW, I used OpenCNCPilot to break line segments down to 0.5mm, and I probed the board surface at 1mm for the autoleveling.
Next, I need to try soldering it to see what life without solder mask is like. To that end, would I be better off with wider cuts?
-
So, I decided to relax the constraints and go for something easier, like a simple circuit for a load switch that uses an SOT23-6 and three 0603 SMD components:

The etching came out perfect the very first time. :) I cut it using a new Jack bit, and I cut it to a depth of z=-0.15 using three flatcam passes, each -0.05 deeper than the prior one. I tested it with a contuinity meter, and isolation is perfect. :)BTW, I used OpenCNCPilot to break line segments down to 0.5mm, and I probed the board surface at 1mm for the autoleveling.
Next, I need to try soldering it to see what life without solder mask is like. To that end, would I be better off with wider cuts?
@neverdie perfect result. I would however go for -0.15 depth from the start and maybe more passes for wider engraving, or using a 0.2mm bit. The small copper between pads of the chip should be gone, at least for my sloppy soldering sessions😉
LE. I always try to look in flatcam at the cnc paths (blue) if they cover completely the space between pads.
-
So, I decided to relax the constraints and go for something easier, like a simple circuit for a load switch that uses an SOT23-6 and three 0603 SMD components:

The etching came out perfect the very first time. :) I cut it using a new Jack bit, and I cut it to a depth of z=-0.15 using three flatcam passes, each -0.05 deeper than the prior one. I tested it with a contuinity meter, and isolation is perfect. :)BTW, I used OpenCNCPilot to break line segments down to 0.5mm, and I probed the board surface at 1mm for the autoleveling.
Next, I need to try soldering it to see what life without solder mask is like. To that end, would I be better off with wider cuts?
@neverdie I've had a nasty idea: try using a sharpie (very thin permanent marker) as soldermask, a few lines between the pads, just enough to stop the solder from bridging.
Might resist the heat for a short while and do the job, specially the nasty chemical smelling ones, I believe they are more like a paint than like water colours.
PS. It's just a never tested idea, don't blame me for weird drawings on your pcb. -
@neverdie I've had a nasty idea: try using a sharpie (very thin permanent marker) as soldermask, a few lines between the pads, just enough to stop the solder from bridging.
Might resist the heat for a short while and do the job, specially the nasty chemical smelling ones, I believe they are more like a paint than like water colours.
PS. It's just a never tested idea, don't blame me for weird drawings on your pcb.@executivul Yes, or use solder mask with a fountain pen or syringe or something to get it into those crevices. I do think the squeegee idea might work. Pack it in, wipe off the copper with a paper towel, and then bake it with uv. Seems like it might be fast and easy. Seems like you could always burnish any remainder off the pads. Not having tried it, but I don't see what can go wrong. And you only need it around the tricky pads, not the entire board.
-
Also, there's this solder mask, which you can cure with a heat gun:
https://www.amazon.com/MG-Chemicals-Peelable-Solder-Mask/dp/B009V1JZE6/ref=sr_1_1?ie=UTF8&qid=1514496094&sr=8-1&keywords=solder+mask
and maybe you can peel it off any pads that it accidently stick to. -
Solder maks repair pens do exist. Maybe that could work?
https://www.mgchemicals.com/products/prototyping-and-circuit-repair/pens/overcoat-pen-419dEdit: no, it won't work :(
Reference: http://www.digikey.com/en/pdf/c/chemtronics/solder-resist-repairs -
@neverdie perfect result. I would however go for -0.15 depth from the start and maybe more passes for wider engraving, or using a 0.2mm bit. The small copper between pads of the chip should be gone, at least for my sloppy soldering sessions😉
LE. I always try to look in flatcam at the cnc paths (blue) if they cover completely the space between pads.
@executivul said in CNC PCB milling:
I would however go for -0.15 depth from the start
Why is that better than multiple passes to get that depth? Isn't the tip less likely to break if multiple passes are used?
BTW, I ordered the peelable solder mask, so I'll see how that goes. It should arrive tomorrow.
-
Exact same procedure as last time, except this time using the Model 20 and a different etching pattern:

Meh, I'm not sure it's really an improvement. The model 20 jbit ust doesn't seem to cut as cleanly as a Jack bit.
BTW, I increased the windows task priority of the browser (and, there, Chilipeppr) and also the serial port jason server, both to High. Since then I haven't had any probe failures. Causation, or luck? Time will tell.
-
So, I decided to relax the constraints and go for something easier, like a simple circuit for a load switch that uses an SOT23-6 and three 0603 SMD components:

The etching came out perfect the very first time. :) I cut it using a new Jack bit, and I cut it to a depth of z=-0.15 using three flatcam passes, each -0.05 deeper than the prior one. I tested it with a contuinity meter, and isolation is perfect. :)BTW, I used OpenCNCPilot to break line segments down to 0.5mm, and I probed the board surface at 1mm for the autoleveling.
Next, I need to try soldering it to see what life without solder mask is like. To that end, would I be better off with wider cuts?
@neverdie said in CNC PCB milling:
So, I decided to relax the constraints and go for something easier, like a simple circuit for a load switch that uses an SOT23-6 and three 0603 SMD components:

The etching came out perfect the very first time. :) I cut it using a new Jack bit, and I cut it to a depth of z=-0.15 using three flatcam passes, each -0.05 deeper than the prior one. I tested it with a contuinity meter, and isolation is perfect. :)BTW, I used OpenCNCPilot to break line segments down to 0.5mm, and I probed the board surface at 1mm for the autoleveling.
Next, I need to try soldering it to see what life without solder mask is like. To that end, would I be better off with wider cuts?
I think ideally the CNC would remove all of the extraneous copper that's near the pads. That way there'd be no risk of solder bridging to the extraneous copper. However, how to do that? The software doesn't obviously support removing extraneous copper.
Here's an example:
 -
Here's the Model 20 bit again, but this time with flatcam being told that its width is 0.25mm:

The pad widths are just not as uniform as with the Jack bit. On the other hand, it looks like it should be less prone to solder bridging.
-
@andrew How are you managing the alignment on your double sided boards, such that when you flip the PCB over to mill the other side too, all the via holes, etc., are lined up where they should be?
@neverdie said in CNC PCB milling:
Here's the Model 20 bit again, but this time with flatcam being told that its width is 0.25mm
how flatcam told you the width or how do you calculate the tool width? it should be specified by you, flatcam does not know how to calculate the tool width in case of carving bits, it varies with the milling depth and depends on the tip's angle and end width. please see the corresponding mathematic formula mentioned in my previous posts.
you have to generate the isolation routing G code for a specific tool/bit, it cannot be re-used for a different sized one.
- flatcam supports double sided pcb milling with proper alignment holes. using them the isolation routing will be precisely aligned on both sides. you have to drill the alignment holes first, then make the isolation routing on the bottom side, then turn the pcb and finish the isolation routing and the drilling on the top side. it is also highlighted on flatcam's website: http://flatcam.org/manual/procedures.html#side-pcb
- for isolation routing it is useless to make multiple passes for multiple depth.
- to make the isolation routing width larger, you should use multiple passes. this is necessary to create a large enough isolation width. to be sure that all copper will be removed between the different passes (e.g. due to cnc inaccuracy or backlash) you should use overlapping. see http://flatcam.org/manual/procedures.html#wide-isolation-routing
- flatcam supports full copper removal, so it is possible to keep only the traces and pads, although with a carving bit it is very time consuming. you should use endmils for this job. see http://flatcam.org/manual/procedures.html#copper-area-clear
- it is possible to solder smd parts without solder mask, it is just question of the technique / tool. I've no problem with 0805 sized smd parts and tqfp100 housed ICs, however it is easier to do it if you have solder mask, of course. if you would like to prevent the oxidation only, then you can use tinning. for this purpose I use chemical tinning.
-
@neverdie said in CNC PCB milling:
Here's the Model 20 bit again, but this time with flatcam being told that its width is 0.25mm
how flatcam told you the width or how do you calculate the tool width? it should be specified by you, flatcam does not know how to calculate the tool width in case of carving bits, it varies with the milling depth and depends on the tip's angle and end width. please see the corresponding mathematic formula mentioned in my previous posts.
you have to generate the isolation routing G code for a specific tool/bit, it cannot be re-used for a different sized one.
- flatcam supports double sided pcb milling with proper alignment holes. using them the isolation routing will be precisely aligned on both sides. you have to drill the alignment holes first, then make the isolation routing on the bottom side, then turn the pcb and finish the isolation routing and the drilling on the top side. it is also highlighted on flatcam's website: http://flatcam.org/manual/procedures.html#side-pcb
- for isolation routing it is useless to make multiple passes for multiple depth.
- to make the isolation routing width larger, you should use multiple passes. this is necessary to create a large enough isolation width. to be sure that all copper will be removed between the different passes (e.g. due to cnc inaccuracy or backlash) you should use overlapping. see http://flatcam.org/manual/procedures.html#wide-isolation-routing
- flatcam supports full copper removal, so it is possible to keep only the traces and pads, although with a carving bit it is very time consuming. you should use endmils for this job. see http://flatcam.org/manual/procedures.html#copper-area-clear
- it is possible to solder smd parts without solder mask, it is just question of the technique / tool. I've no problem with 0805 sized smd parts and tqfp100 housed ICs, however it is easier to do it if you have solder mask, of course. if you would like to prevent the oxidation only, then you can use tinning. for this purpose I use chemical tinning.
@andrew said in CNC PCB milling:
to make the isolation routing width larger, you should use multiple passes. this is necessary to create a large enough isolation width. to be sure that all copper will be removed between the different passes (e.g. due to cnc inaccuracy or backlash) you should use overlapping. see http://flatcam.org/manual/procedures.html#wide-isolation-routing
Just to clarify that what andrew is talking about is multiple radial passes with an offset further away from the track/pads each time.
Not multiple passes in the depth.:confused: -
@andrew said in CNC PCB milling:
to make the isolation routing width larger, you should use multiple passes. this is necessary to create a large enough isolation width. to be sure that all copper will be removed between the different passes (e.g. due to cnc inaccuracy or backlash) you should use overlapping. see http://flatcam.org/manual/procedures.html#wide-isolation-routing
Just to clarify that what andrew is talking about is multiple radial passes with an offset further away from the track/pads each time.
Not multiple passes in the depth.:confused:@rmtucker said in CNC PCB milling:
@andrew said in CNC PCB milling:
to make the isolation routing width larger, you should use multiple passes. this is necessary to create a large enough isolation width. to be sure that all copper will be removed between the different passes (e.g. due to cnc inaccuracy or backlash) you should use overlapping. see http://flatcam.org/manual/procedures.html#wide-isolation-routing
Just to clarify that what andrew is talking about is multiple radial passes with an offset further away from the track/pads each time.
Not multiple passes in the depth.:confused:exactly
-
Bah! It did drill 6 holes, but it grouped them so close together that it looks like two holes instead:

I suspect an inches instead of mm error may be the culprit, but I haven't checked it yet. For sure the scaling for positioning the drill holes seems way off.
-
Strangely, flatcam seems to show roughly the correct hole size (0.9mm), yet the x and y dimensions are way off:

So, I took a wild guess that maybe it was off by a scaling factor of 25.4. Well, that did produce 6 separate holes, but they missed the target pads by a huge amount:

I'm stumped. I'm not sure where the disconnect is. Anyone seen this problem before?
-
So, I tried a couple more wild guesses, and the last guess was a match. It turns out that the scaling is off by a factor of 10x:

I have no idea why the scaling is in error, but at least now I have an antidote. :)
-
@executivul I've now done a couple thousand auto-leveling probes in Chilipeppr with no probe failures. If it helps you at all, I think elevating the task priority to "High" on the browser (I use chrome) and the serial port jason is what made the difference. I've not had any probe failures at all since doing that.
-
The corrected drilling works:

The etching, though, seems to have a lot of variability in crispness from one etching to the next.