CNC PCB milling
-
@dbemowsk said in CNC PCB milling:
@neverdie I have been kind of following this topic, but don't have a CNC mill, but wouldn't the thickness of the copper clad on the board be your depth?
Makes sense to me. Well, doing that it would be 0.01mm. But since this isn't a perfect process, it likely needs some added depth to guarantee it's removed. The effective tool width gets wider the deeper you cut, so in some sense I suppose there's that as an added constraint on how deep you can cut before it becomes more than 6 mil isolation. We could try to arrive at an answer analytically from first principles only, but I thought it might be easier to just ask what depth others who are doing this successfully are using.
-
@neverdie See what depth you need to go with that bit to get 6 mil routing, and that will be your max. I would think that would be more than 0.01mm, but I haven't seen your bit, so I don't know.
-
@neverdie you should use one depth, regardless of the trace width. for me 0.05mm worked, see my shared settings above. you should decide the isolation width, this is the main property for the given config, but you should stick for one milling depth only. if the requires isolation width is bigger than the tool width at a given depth, then it will use multiple rounds to reach the given width, but still, with one milling depth.
-
I'm stuck. I converted my gerber to gcode using flatcam, and imported it into Chilipeppr:
On the one hand, it seems to have gotten the dimensioning right, as indicated by the Y1.48in and X1.43in. However, the grid that it's showing is out of sync with that. Each square on the grid is 5mm. It's as though Chilipeppr thinks the entire design fits easily inside a 5mm square, and so when I attempt to do the autoleveling, it comes out completely wrong.
-
@neverdie said in CNC PCB milling:
I'm stuck. I converted my gerber to gcode using flatcam, and imported it into Chilipeppr:
On the one hand, it seems to have gotten the dimensioning right, as indicated by the Y1.48in and X1.43in. However, the grid that it's showing is out of sync with that. Each square on the grid is 5mm. It's as though Chilipeppr thinks the entire design fits easily inside a 5mm square, and so when I attempt to do the autoleveling, it comes out completely wrong.you can mark the zero point in the pcb designer tool before you export the gergbel, or in flatcam, during the post processing. if you do not define it, then maybe the given zero point could have some "offset" to the effective design. it is not problem, but it could make your life easier if your zero is e.g. at the pcb's corner.
if you don't want to update the files, then in chilipeppr you can update the probe area to not start from 0,0 but from a given offset.
-
Thanks! I don't know why, but somehow that fixed the problem:
-
I found these copper clad boards that seem to be made out of bakelite (?) rather than fiberglass. So, hopefully not the same level of toxic dust concern as with FR4's.
I double sided taped the non-copper side:
and soldered a ground wire on the copper clad side:
Now I'm ready for autoleveling and then my first PCB etch.
-
Here are the results of the autoleveling:
For some reason it's hard to read some of the numbers.
-
@neverdie It looks like everything in the top right corner is above the level bed surface. which puts it above the grid that is shown. Looks like the bed is tilted.
-
@dbemowsk Fortunately the auto-leveling should render it a moot issue.
-
LOL, except that unfortunately it did not:
OK, my bad. I hadn't sent the auto-leveled g-code to the workspace (I had thought this would be done automatically, but no), so this picture shows what would happen without auto-leveling.
I've made the change and am now re-running the job with the auto-leveled g-code.
-
@neverdie Looks about on par with your final matrix, only it is following the grid and not the auto leveling values.
-
So, I re-ran the job over the same area with the g-code modified by auto-leveling, and this time I got a better result:
So, now I'll try it on a fresh area of the PCB, after doing a new auto-leveling.
-
Judging from the looks of the photo directly above though, it looks like quite a bit of copper wasn't removed where it needed to be. I'm guessing I will need to:
- etch to a deeper depth; and/or,
- use a finer mesh for auto-leveling; and/or
- ???
-
Etch 0.1mm. The groove between tracks also helps with soldering. I currently use 0.1mm and even 0.15 when in a hurry.
-
@neverdie
The last photo looks like the tip is missing from the cutter?
-
@rmtucker Good catch! Here it is in contrast to a new one:
I'll replace it with the new one.
-
@neverdie
Just for future reference i would use a duff cutter for autolevelling then change to a good cutter to cut the job after resetting the z0.
It is so easy to smash the front of an engraving cutter when using this method for autolevelling as the machine takes a little time to stop after touching the pcb.
Just my advice anyway
-
@rmtucker said in CNC PCB milling:
Just for future reference i would use a duff cutter for autolevelling then change to a good cutter to cut the job after resetting the z0.
What's a "duff cutter"? Did you mean "dull cutter"?
-
@neverdie
Yes sorry a used one
-
@rmtucker Thanks! Makes sense to me. I'll do it that way.
-
Argh. I ran the job, and the first cut went great. All subsequent cuts though didn't penetrate the surface:
Afterward, when I checked the zero on z, I found that it was off by 0.049. That explains it, since the cut-depth was 0.05.I'll re-zero and try running the same job again.
-
That made a much better result:
It corresponds to this as the actual PCB:
-
However, what's telling is that it obliterated the traces on either side of a 6 mil separation:
This is how it should look instead:
So, what happened?
My current hypothesis: the first cutting sheared 0.049mm off the tip of the blade, making it wider than it should be. Then, after re-zeroing, the wider blade cut too wide as it cut the traces for the solder jumper.
Is that reasonable, or is there a better hypothesis?
If it's true, then what do I do about it? Perhaps use a higher quality bit than the freebie that came with the kit?
Actually, I'm not even sure what the dimensions were on the freebie. It wasn't labeled. Perhaps it was too wide to begin with.
-
Well, to explore this more, I think I'll create a test board consisting purely of a few solder jumpers. That way I can put the focus directly on the 6 mil issue and won't be wasting time on etching that's unrelated to that.
-
Doing just a single solder jumper, with the same bit, and autoleveling every 1mm, the result is:
which is pretty close, actually. Looks like maybe the bit is a little too wide, or else there's runout which is making it appear wider than it actually is.I'll try it with a fresh bit next and see if it improves.
-
Well, that went horribly:
and I have no idea why:
-
I tried again with the same bit, after removing and re-inserting it. Got a better result this time:
Unless someone has suggestions on how to tweak this, I think that may represent approximately the best this CNC can do.
-
In truth, though, I think it may be a flawed gcode algorithm:
Instead of two separate cutting passes through the center section, one would do, and would produce a better result.How to tweak flatcam to do that? I probably haven't configured flatcam correctly. i.e. user error.
-
@neverdie said in CNC PCB milling:
Actually, I'm not even sure what the dimensions were on the freebie. It wasn't labeled. Perhaps it was too wide to begin with.
Maybe this is where your problem lies.
How did you write the g-code without knowing?
Too many variables here wich could give you these results.
The bigger tracks,Are they measuring the correct width with a vernier after you have cut them?
-
I assumed the width on the freebies was 0.1mm, because that's what was advertised on Jack's posting for the machine. However, I don't know how to verify that, so the uncertainty comes in whether Jack actually delivered what was advertised or slipped in something else. I chose to give Jack the benefit of the doubt.
-
If I were to enter a wider tool diameter of 0.155mm (instead of 0.1mm) into flatcam, I think I can coax flatcam into generating better g-code for this situation. I'll do that and then post the results.
-
@neverdie have you verified isolation between the parts? The cut is good?
-
No improvement really:
I think this means that the effective cutting width is actually greater than that, either from the bit itself or from runout or from who knows what else.
Probably nothing I can do about runout, except buy a different/better motor.
I'll have to wait for the etching bits from Aliexpress to try what is maybe (?) a proper 0.1mm etching bit. Like I say, I have no way of judging whether the freebies that came with the kit really are that or not, as I have nothing to compare.
By the way, my reason for picking the 0.155mm tool width in flat cam is that it produces this g-code path, which should have preserved more of the copper pad where it was being obliterated:
-
Yes you can. Get the gcode I've posted above, adjust for your feedrate, autolevel it in cp and give it a go. Really curious about the results.
-
@mfalkvidd said in CNC PCB milling:
@neverdie have you verified isolation between the parts? The cut is good?
Good question. I have doubts about how well I could measure it using calipers. However, maybe if I put the board onto a flatbed optical scanner, which would have a known DPI, I could measure the actual cut width with reasonable accuracy. I haven't done that yet, though.
-
@NeverDie Using traces one next to other at known distance you can determine the exact width of the engraving for a wanted depth of cut. I know you don't want to mess with gcode, but it's simpler than you think. Please look at the code: you have init (g92 for setting zero, g21 for mm, etc) you set the feedrate in mm/sec, you have a few movements (g0) a "dwell" to pierce the copper for 0.5seconds (g4) then some cutting moves (g1) all have absolute cartesian coordinates. Eg you're at (0,0) then g1 x0y10 means travel at (0,10) move only the y axis 10mm to the back of the machine, g1 x0.1y10 means move 0.1mm to the right, etc.
You have the whole script posted above, set your feedrate the same as you set in flatcam, and set the depth in the first z-0.1mm line, maybe you want 0.05mm for eg. After editing the file run it in cp with autoleveling and post the results.
-
@neverdie said in CNC PCB milling:
Oh, sorry, I realize now you were asking something else. No, I haven't verified that yet. This is all just early attempts. Good question though.
-
@executivul said in CNC PCB milling:
Using traces one next to other at known distance you can determine the exact width of the engraving for a wanted depth of cut.
OK, I think I see what you mean. In other words, when the two cuts just barely bleed into one another, then one can deduce the width of the cut as being the absolute width between the absolute coordinates of the lines it's trying to cut. Makes sense. I'll give it a try. Thanks for the suggestion.
-
Good news. I just received my model 2 bits from Aliexpress. Model 2 is 20 degrees with a 0.1mm tip. I compare it here to the freebie bits from Jack:
Model 2 is on the right, and Jack is on the left. Looks like the angle is wider on Jack, which I presume (?) means that the tip is wider than 0.1mm.
-
Well, I thought the model 20 would do better, but it actually did worse:
It does seem to cut smoother lines though.
-
I also received model 6, which is the variety pack that includes a 10 degree bit with a 0.1mm angle. Should I give it a try? I've read that they're prone to create flying shrapnel. Anyone here have experience with them? If it doesn't blow up, it might be just the ticket for doing this cut.
-
I just now tried the Model 10:
Rougher edges, but it didn't decimate the pads as badly as the model 20.
-
@neverdie sorry for being unclear. I was thinking of just using a multimeter in continuity mode to verify that there is no connection between parts that should have no connection.
-
Merry Christmas, @executivul
Here is the output of your script using a Model 20 bit:
-
@neverdie Marry Christmas!
What feedrate did you use? (F parameter) and what engraving depth? (G01 Z-0.1?)
The jagged edges make me believe your feedrate is a bit high for the used rpm. You can run the first gcode to determine the best feedrate, or just use something low like 200mm/min and maybe a little deeper engraving.
It seems that your engraving is about 0.25mm wide, the 0.1mm is clear, 0.2mm is clear, 0.3mm is partially clear, from 0.4mm onwards you see the spacing between passes.
-
@executivul said in CNC PCB milling:
G01 Z-0.1
I did it again with F200 this time:
Doesn't look like the autoleveling is working so well, even though I had it probe every 2mm.
I think I may try covering 100% of the back of the pcb with tape. Maybe spacing it out has created this kind of artifact.
Not that it matters, but here's how it looks in ChiliPeppr:
-
@neverdie Oops. It was F1400.00, which is what your script had. It must have overridden the F200 I had entered manually before running it.
-
Here it is again, after I modified @executivul script to be F200:
-
Here's something I've noticed. Before running the auto-leveling, I run a test probe and then zero everything out when it makes contact. After running auto-leveling, if I run the test probe again, it generally reads about 0.05 higher than where I zeroed it out after the first test probe before the auto-leveling. Meaning?
-
Wow! Here's Jack's bit at a cutting depth of 0.05 and a feedrate of 200:
Seems to blow away the Aliexpress Model 20.
-
Anyhow, I'm not sure what all this means, but 6mil isolation milling seems like a stretch, unless there's more that I can do to get there.
What's a conservative number for mill isolation that I can count on getting without having to fuss over it? @executivul was getting 8mil. @andrew was getting 6 mill. So, maybe I can bank on getting 12 mill for sure without much effort such that it "just works"?
-
@NeverDie
The last bit tested is under 0.1mm wide. WOW!
Remember to:
-pre run: set the autolevel probe limits and a speed of 25mm/s
-run the probing: and DON'T redo Z probing after autolevel, it messes things up, use the same bit for probing and engraving.
-post run: "send autoleveled gcode to workspace"
Go slower, 100-150mm/min, afterall you don't need 6mil traces for a huge board so time is not an issue here.PS. try some water/shampoo mix, it kinda' helps with engraving, cooling, lube, I don't know.
PPS. I've moved to opencncpilot lately (last 2 boards), free on github, a short tut on the tube, it has a great feature that is to break long moves in 5mm segments, works better for bowed/wavy boards.
-
@executivul Do you cut everything in one pass, or do you use multiple passes (each pass at a deeper depth)? Flatcam supports multiple passes, though I have been using only 1 pass.
-
@executivul
Thanks for the tips. Here is Jack's bit again, this time at F100. Even better!
-
Here are Jack's etching bits: https://www.aliexpress.com/store/product/Freeshipping-10pcs-3-175mm-Flat-Bottom-CNC-wood-Router-machine-Tools-Cutting-Bits-Carving-V-Shape/424291_32718430291.html?spm=2114.12010612.0.0.6cc36820P3WAXu
It says 30 degree angle and 0.1mm tip.
-
Time to see whether this machine can cut the mustard or not. I just did a 5mm autoleveling on the following:
and now I'll try cutting it using Jack's bit.
-
Here's the result:
The above was cut at a depth of z=-0.1, and still not all the paths cut completely through. Yet, In the middle one of the traces got obliterated.I'm afraid I'm unlikely to make it work at the resolution that I'm able get from the fab. It's close, but no cigar. So I think it's better suited for earlier prototyping work that's not so optimized for space. For that it might be very handy. Then I can both cut deeper and also not worry about trace obliteration.
-
By the way, do any of the programs have built-in verification after the cutting, where it can probe to verify that the trace is throughly cut (i.e. no continuity with ground)? Seems like it should be easy to do, at least in theory, by using a method similar to the probing for auto-leveling, except probing each track instead.
-
@neverdie Congrats for your result, I use a "copper pour" all over the board, that makes it pass at least 2 times, once for the track and once for the pour isolation. I never mess with flatcam's multiple passes, but I believe you can get the same results. What you see in the middle are copper "silvers" that is copper left behind between traces.
From the last picture of the width test is seems your bit is engraving 0.1mm wide.
Try to use OpenCNCPilot instead of Chillipeppr and set the lines to be split at 1-2mm lengths and probing each 2-3mm. That should make the engraving depth more uniform.
I see a couple copper flakes, maybe go even slower than 100? And give it a light sandpaper with 1000 grit or a scotchbrite sponge and some abrasive detergent for dishes?
-
@executivul Thanks!
For the convenience of others reading this thread, here's a quick youtube:
OpenCNCPilot relased - new Autolevelling GCode Sender for GRBL β 03:28
β martin2250I'm surprised to learn that not all auto levelers do it that way, because it seems like the only right way to do it. I'll give it a try.
-
Well, for some reason when I connect using OpoenCNCPilot, it turns the spindle on at maximum speed. I tried turning it off with the command 'S0', but it had no effect. So, I manually disconnected the wire that powers the spindle. Surely, there's a better way?
Anyhow, after doing that, I notice that the motors are making a really loud shrill sound, even though they're not moving. So, something is definitely FUBAR the moment I connect.
I had to disconnect and then connect using chilipeppr to have it all return to normal.
Maybe @andrew can try it? Perhaps there's a workaround that's not self-evident to me, but perhaps would be to someone else.
-
@neverdie OpenCNCPilot needs latest grbl 1.1f
-
OK, I'll resume the search for my dragon....
Meanwhile, I should be receiving my CNC drill bits and routing bits (to cut the board outline) fairly soon. Will I be using Chillipeppr to do those tasks (I'm guessing so) or something else?
-
@neverdie I have an idea, why don't you open the gcode in Opencncpilot, simplify it, split long moves, save it and then open in chillipeppr and do the probong and actual milling?
-
@executivul Brilliant idea! Simplifying, the line count went from 3609 to 3608. Converting arcs to line segments had no effect. Then, splitting every 1mm, it went to 4114. I copied it into a new file, and now I'll see how it runs using chilipeppr.
-
Results look much better this time:
Using Chilipeppr, I probed every 3mm and then let it rip. As before, it was cutting at z=-0.1 and a feedrate of 76.2 (the feedrate wasn't a conscience choice but rather just what flatcam gave me, for whatever reason).The good news is that it doesn't have the blatantly obvious trace obliteration that it had the first time. All in all, it looks like a definite improvement.
-
@neverdie Seems like it's getting better, still some traces in the middle are hairthin, maybe increasing tool size in flatcam a tad? like 0.12mm so it lets the tracks be wider. Bare in mind this is a prototyping machine, I use mine for low batch home automation boards, under 20 boards of the same kind, at the price of a blank pcb I can buy 10 for the price of one fab made 100x150mm, not to speak of wait time.
After you are satisfied with the board is time to get some plumber's paste for soldering copper pipes, that is used for tinning, or maybe you can find some liquid tinning solution, but that's more expensive here, I use the paste.
Then some soldermask and some uv led strips to make an exposure unit and there you have your own pcb fab at home
-
@executivul How much overlap in flatcam are you using? I've been using zero. Would changing it to something non-zero help, or is it irrelevant?
-
@neverdie I never do multiple passes, so overlap is irrelevant to me...
-
When I probe at 2mm, it often randomly fails with messages like this:
Moving to {x:12,y:28} probe failed, clear controller alarm before resuming Paused Working on probe for {x:12,y:26} Found lowest Z:0.17499999999999996 Paused
What is causing these "probe failed" to happen? And how exactly am I supposed to "clear controller alarm"? It always seems that I need to disconnect from the serial port and then reconnect to get any further movement. But if I do that, it clears the x,y,z positions, effectively preventing any kind of sensible resumption.
-
Argh, it just happened again. This time when doing 3mm probing.
Moving to {x:12,y:27} probe failed, clear controller alarm before resuming Paused Working on probe for {x:12,y:24} Found lowest Z:0.23000000000000004 Paused
How does it even decide that a probe error has happened?
-
@neverdie timing racing condition is f*king spjs, ugly hack is to try to increase probing starting height from 0.5mm to 1.0mm
-
It's hard to photograph these etchings. They actually look better by eye. I tested out the last one with a continuity meter, and it seems that it would be functional (in the sense that the traces were isolated from what they should be and they connected the pads that they should.
However, without the solder mask, I'm doubtful those closely packed micro-usb pads on the middle left near the edge would be solderable without bridging.
I really hadn't considered I would ever need to do solder mask, I guess because the demo boards I've seen other people make don't seem to have it.
So, maybe a better question is: what is the minimum isolation width so that I won't need solder mask? Perhaps that becomes the limit for prototyping.
Anyhow, I'll look into it, but I really hadn't planned on taking that extra step.
-
neverdie said in CNC PCB milling:
It's hard to photograph these etchings.
Do you have a flatbed scanner? Not sure if the copper reflects too much light, but the focus should be good.
-
They keep getting better!
I used a fresh Jack bit to get this one. The tip on the bit used in the previous etching was a bit worn down, which I think explains the undesirable width of its cuts. I also dropped the feedrate to 50mm/minute, which may have helped also. Anyhow, most of the cuts seem very crisp compared to earlier attempts. As before, I split the line segments into 1mm lengths using the OpenCNCPilot. I think that is probably helping a lot.I did this one is two passes. The first pass was z=-0.05, and it didn't cut through enough of the copper. The second pass was z=-0.1, which is what you see above. Yet, some of the traces on the micro-usb on the middle left still don't seem fully isolated, so I'm about to try a third pass at z=-0.15
Also, this was the first job I ran with autoleveling set at 2mm. Perhaps that helped also.
-
I received my end-mill bits for cutting the PCB loose from the rest of the copper clad blank. Which got me thinking: since I have doubled sided tape on the back of the PCB blank, I presumably don't need mouse bites or similar, right? I should be able to just cut the board outline by cutting through to the sacrificial board underneath, right? Is that what others here are doing? Or are you milling tiny little supports that you break away at the end?
Regardless, what diameter end mill bit should I use for the task? What cutting depth? I'll look back to see if it's in @andrew 's list of magic numbers, but anyone else feel free to post what you like to use and do.
-
Here's what @andrew had to say:
edge cut or hole milling with the 0.8mm endmill: feed rate: 170 z cut: -1.7mm multi depth, depth/pass: 0.2mm
So, I guess by "z cut: -1.7mm", he likely meant that as a Z that's -1.7mm below the depth of the PCB? I'm not sure how else to interpret that.Hmmm.. I think he assumed the board thickness of 1.5mm, so he gave is 0.2mm more than that. Mine (being single sided) is 1.35mm, so I'll set cutting depth to 1.6mm, just to be sure.Aside from that, 0.8mm end mill and multiple passes at a feed rate of 170. So, I guess I use flatcam to produce the gcode that conforms to this and then run it in Chilipeppr.
And, it looks like flatcam adds the cut-out supports automatically. Nice.
-
Argh. Another probe failure:
Moving to {x:4.430000007152557,y:19.430000007152557} probe failed, clear controller alarm before resuming Paused Working on probe for {x:4.430000007152557,y:24.430000007152557} Found lowest Z:0.051000000000000156 Paused
even though I have it set to start probing at z=1.0mm. This really needs to be fixed.
-
Unfortunately, I botched the third etching pass. My fault. But I decided to try the board cutout anyway:
I didn't see a way for flatcam to do a circular cut-out, so I just went with the rectangular cut-out. Anyhow, it worked.
I receive my CNC drill bits on Friday, so after that I should be able to do a complete PCB of some kind.
-
@neverdie said in CNC PCB milling:
This really needs to be fixed.
I wonder whether increasing the priority of the tasks using the Windows task manager might help at all? Perhaps some background tasks are interfering and slowing things down to the point where cp can't keep up with real-time?
-
@neverdie there is a tutorial for custom board cutout in flatcam, "google it baby", it involves manually using open_gerber and follow commands. I'm on the phone and can't find it right now.
Regarding cutout I sugest you use 0.5mm depth and 100-150mm/min with 0.8mm endmill. Your spindle is pretty low rpm. I use 1mm depth and 300-400mm/min, 2 passes, 1.6mm thick pcb, about 40k rpm.
-
For those who are interested, this is the best solder mask tutorial I was able to find:
Green Solder Mask / Dynamask / Solder Resist on PCB's by Rembrandt Electronics β 08:53
β Rembrandt LightsIt doesn't look too bad, but I'd still rather not go there if I can avoid it.
However, this process doesn't seem optimized for people who are doing, say, .1mm etchings around their pads. I mean, couldn't one squeegee in the solder mask, uv cure it, and then remove what trace amounts might remain on the pads themselves by burnishing it off with a scotchbrite pad or something? I mean, for quick and dirty results that work well enough for prototyping, that's what I'd have in mind. Anyone try something like that?
The techniques on youtube for using solder mask goop aren't optimized for people who have veritable canals around their solder pads. Why not take advantage of that?
-
@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
-
Are you doing solder mask, or have you been able to avoid that? I take it that you're also not tinning?
BTW, @executivul 's suggestion of using the OpenCNCPilot to break line segments into smaller lengths prior to autoleveling is genius. A+ Recommended.
-
@mfalkvidd said in CNC PCB milling:
neverdie said in CNC PCB milling:
It's hard to photograph these etchings.
Do you have a flatbed scanner? Not sure if the copper reflects too much light, but the focus should be good.
Yes, I may give that a try. Also, I think using a usb microscope to pan over the surface might make a lot of sense, since it would show more detail.
-
@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.
-
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.
-
@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
-
@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.
-
@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:
![alt text]()
-
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.
-
@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.