CNC PCB milling
-
on our 2418, the crocodile clip for z probing can be connected to the chassis of the motor, which somehow internally is electrically connected to the drill bit. Thanks to that, we can leave it connected all the time. Otherwise, turning on the spindle without removing the crocodile clip results in bad stuff happening.
@mfalkvidd Is this AFTER mapping the surface ?
-
on our 2418, the crocodile clip for z probing can be connected to the chassis of the motor, which somehow internally is electrically connected to the drill bit. Thanks to that, we can leave it connected all the time. Otherwise, turning on the spindle without removing the crocodile clip results in bad stuff happening.
@mfalkvidd forgetting to connect the crocodile clip right before probing can be desastrous too... :D
I put your comment in my todo list :+1:
-
I just realized: is it flatcam that does the auto-leveling? In which case, it would need to run on the Pi (or whatever the answer is to my earlier question) too. -
I just realized: is it flatcam that does the auto-leveling? In which case, it would need to run on the Pi (or whatever the answer is to my earlier question) too.correction: I guess it's bCNC that does the auto-leveling.
-
@mfalkvidd Is this AFTER mapping the surface ?
-
@zboblamont no, before. To my knowledge, it would be hard to map the surface without connecting the alligator clip.
@mfalkvidd :joy: Touche...
-
I hate bCNC, looks like Win95 era software and I hate chilipeppr even though looks like iOS 19, it's online only and the main dev, John Lauer, is a tinyg guy as he states so grbl workspace is neglected quite a lot. A tinyg is too expensive to bother, and even though an Arduino Due can run tinyg code (g2core project) probing is unreliable and I've tried getting help from the devs on git but couldn't solve the issues.
Another alternative would be OpenCNCPilot but haven't tested it enough, one good thing about it is that it can split long gcode movements, which is VERY important, chilipeppr does the grid mapping and then compensates for the z-height at start and end of a line, but if the board has a bump/dip to be traversed then the milling won't be ok, if you split long moves then and then import in chilipeppr then it can compensate for each segment and you get a much better engraving. -
@NeverDie the autoleveling is the g code sender tool's responsibility, so from the mentioned toolsets chilipeppr or bcnc could do it. the given sw tool controls the cnc to probe the pcb's surface, measures when the given bit touches the pcb then makes a 3d map from the pcb roughness. later this 3d map is aligned to the g code which you get from other tools (from my mentioned example, it is exported from flatcam, which processes the gerber files exported from the pcb design software).
@ben999 this is the way how "bed compensation" could be done, and for precise isolation milling it is essential. for drilling it is enough if you just set an approximately zero on z axis, which could be also result of a manual setup or the g code sender tools also could handle the single touch probe.
this is the case when your mentioned touch probe could help, but without touch plate it is possible to do the probing the same way like in case of the autoleveling measurement but with one touch only. -
@NeverDie the autoleveling is the g code sender tool's responsibility, so from the mentioned toolsets chilipeppr or bcnc could do it. the given sw tool controls the cnc to probe the pcb's surface, measures when the given bit touches the pcb then makes a 3d map from the pcb roughness. later this 3d map is aligned to the g code which you get from other tools (from my mentioned example, it is exported from flatcam, which processes the gerber files exported from the pcb design software).
@ben999 this is the way how "bed compensation" could be done, and for precise isolation milling it is essential. for drilling it is enough if you just set an approximately zero on z axis, which could be also result of a manual setup or the g code sender tools also could handle the single touch probe.
this is the case when your mentioned touch probe could help, but without touch plate it is possible to do the probing the same way like in case of the autoleveling measurement but with one touch only.@andrew said in CNC PCB milling:
chilipeppr or bcnc
Which of the two do you recommend for beginners like me?
Also, is a raspberry pi sufficient for running it, or do you recommend something with more oomph like a PC?
Looks like I'll be getting the CNC2418 on Monday rather than this Friday because the twits at Jack's store didn't physically ship it until today (before that, it was evidently just a mailing label). Also, if anyone cares, the weight is 7.2kg, as measured by Fedex, not 5 kilograms, as entered by Jack.
-
to drive/control these CNCs a simple Pi is powerful enough, but it is not necessary to use a separated computer for that.
chilipeppr runs in a browser (just open chilipeppr.com/grbl). it needs a "remote" serial service to connect over the network (on your local lan/wifi) as from the browser it cannot directly interface with usb. this remote serial service is just an additional software, which should run on a host what is connected to the CNC. this could be the same where you run the browser or really a "remote" host (e.g. a pi). chilipeppr also could stream webcam picture, so if you have one installed to the cnc then you can get realtime remote video as well.
it is nice, "modern", but online.although bcnc isn't that nice as @executivul also mentioned, but I like it. it should run on that host which is connected to the CNC. I didn't have any issues with it so far, single touch z probing and autoleveling worked fine for me. this is what I use now.
both of them are cross platform tools.
as I work on os x and linux I did not tested windows tools. there are several more other options both for *nix like systems and for windows as well, but I don't have experience with them, so I cannot recommend anything else.
I don't use separated computer for the controlling sw, I use my laptop for this job. you can't leave the cnc alone for a long time, the whole process needs multiple manual activities, so from this perspective the "remote" controlling solution maybe not the best idea.
-
Sorry for all the noob questions, but maybe others can learn from this as well.
How do I know when a bit has become worn-out enough that it should be replaced with a newer, sharper bit? Does the software provide any feedback (e.g. maybe the motors are drawing more current than expected due to dullness)?
Or do you just wait for a bit to completely fail (i.e. snap or shatter), then insert a new one, and then re-run the job from the beginning when that bit was first used?
Also, do you have a particular test board you like to use to check out the system and see if it's running up to snuff? i.e. something that would challenge the system to surface problems in advance of trying it on a a more serious board.
And is feedrate arrived at purely by trial and error, or are there good magic numbers to use for that? Since we're running the same system, maybe I could use your magic numbers (i.e. the hardware-specific constants which must be entered into the software)? If so, what are they?
-
Sorry for all the noob questions, but maybe others can learn from this as well.
How do I know when a bit has become worn-out enough that it should be replaced with a newer, sharper bit? Does the software provide any feedback (e.g. maybe the motors are drawing more current than expected due to dullness)?
Or do you just wait for a bit to completely fail (i.e. snap or shatter), then insert a new one, and then re-run the job from the beginning when that bit was first used?
Also, do you have a particular test board you like to use to check out the system and see if it's running up to snuff? i.e. something that would challenge the system to surface problems in advance of trying it on a a more serious board.
And is feedrate arrived at purely by trial and error, or are there good magic numbers to use for that? Since we're running the same system, maybe I could use your magic numbers (i.e. the hardware-specific constants which must be entered into the software)? If so, what are they?
@neverdie I'm saving up some money for a CNC as well and I would love if you have time to document your process. Might be to much to ask but I guess many newbie errors could be avoided. I know there are some on YouTube but I have not found any which address the questions we have had above in this thread.
-
Sorry for all the noob questions, but maybe others can learn from this as well.
How do I know when a bit has become worn-out enough that it should be replaced with a newer, sharper bit? Does the software provide any feedback (e.g. maybe the motors are drawing more current than expected due to dullness)?
Or do you just wait for a bit to completely fail (i.e. snap or shatter), then insert a new one, and then re-run the job from the beginning when that bit was first used?
Also, do you have a particular test board you like to use to check out the system and see if it's running up to snuff? i.e. something that would challenge the system to surface problems in advance of trying it on a a more serious board.
And is feedrate arrived at purely by trial and error, or are there good magic numbers to use for that? Since we're running the same system, maybe I could use your magic numbers (i.e. the hardware-specific constants which must be entered into the software)? If so, what are they?
@neverdie said in CNC PCB milling:
Sorry for all the noob questions, but maybe others can learn from this as well.
How do I know when a bit has become worn-out enough that it should be replaced with a newer, sharper bit?
How do you know when you shaver is going dull? You inspect the result using a maginfying glass or microscope (I have at least one of my usb microscopes next to the cnc, if the edges are getting worse I replace the bit
Does the software provide any feedback (e.g. maybe the motors are drawing more current than expected due to dullness)?
No, maybe when milling metal that would be detectable, for pcb milling the forces are very lowOr do you just wait for a bit to completely fail (i.e. snap or shatter), then insert a new one, and then re-run the job from the beginning when that bit was first used?
yes, just to mention you can resharpen the bit. If it's Ti coated you lose that, but normal bits can be resharpened using a stone, then tested for width since you change that when resahrpeningAlso, do you have a particular test board you like to use to check out the system and see if it's running up to snuff? i.e. something that would challenge the system to surface problems in advance of trying it on a a more serious board.
LEARN GCODE, I can not emphasize it enough, half an hour taken to understand 5-10 commands is all it takes, G90/G91/G92; G0/G1 is all you need! Than you can take your time and write small scripts, for eg. that do a zigzag like pattern with passes at increasing distances and you can check your actual bit sizeAnd is feedrate arrived at purely by trial and error, or are there good magic numbers to use for that?
Mostly yes, read the comment above, and your script just change the F parameter of the G1 moves and see for yourself using your microscope which speed yelds the best results
Since we're running the same system, maybe I could use your magic numbers (i.e. the hardware-specific constants which must be entered into the software)? If so, what are they?
**Steps/mm for a certain machine is the only hard-coded magic number, if you don't know it you can throw the machine into trash for milling wrong dimensions!!!!! (or use a caliper and calculate that number yourself, but don't tell that to anyone) ** -
Example script:
Manually written gcode for good feedrate discoveryDON'T run it on your machine untill you understand exactly what each line of code does!
G21 (Unit of Measure - millimeter) G90 (Set to Absolute Positioning) G94 (Feed Mode - Units per minute) F200.00 (feed rate mm/min) G00 Z0.5000 M03 (start spindle) G4 P1 (Dwell/Pause) G01 Z-0.1000 G4 P0.5 (Dwell/Pause) (test 1) F200.00 (feed rate mm/min) G01 X10.0000Y5.0000 G01 X0.0000Y10.0000 F400.00 (feed rate mm/min) G01 X10.0000Y15.0000 G01 X0.0000Y20.0000 F600.00 (feed rate mm/min) G01 X10.0000Y25.0000 G01 X0.0000Y30.0000 F800.00 (feed rate mm/min) G01 X10.0000Y35.0000 G01 X0.0000Y40.0000 F1000.00 (feed rate mm/min) G01 X10.0000Y45.0000 G01 X0.0000Y50.0000 (test2) G00 Z1.5000 (raise spindle) G00 X5Y0 (go right) G01 Z-0.1000 (down spindle) G4 P0.5 (Dwell/Pause) F1200.00 (feed rate mm/min) G01 X15.0000Y5.0000 G01 X5.0000Y10.0000 F1400.00 (feed rate mm/min) G01 X15.0000Y15.0000 G01 X5.0000Y20.0000 F1600.00 (feed rate mm/min) G01 X15.0000Y25.0000 G01 X5.0000Y30.0000 F1800.00 (feed rate mm/min) G01 X15.0000Y35.0000 G01 X5.0000Y40.0000 F2000.00 (feed rate mm/min) G01 X15.0000Y45.0000 G01 X5.0000Y50.0000 G00 Z1.5000 G00 X0Y0 M05 (stop spindle) -
Manually written gcode to determine milling bit width
DON'T run it on your machine untill you understand exactly what each line of code does!
G21 G90 G94 F1400.00 G00 Z0.5000 M03 G4 P1 G01 Z-0.1000 G4 P0.5 (test 0.1mm) G01 X0.0000Y5.0000 G01 X0.1000Y5.0000 G01 X0.1000Y0.0000 G01 X0.2000Y0.0000 G01 X0.2000Y5.0000 G01 X0.3000Y5.0000 G01 X0.3000Y0.0000 G01 X0.4000Y0.0000 G01 X0.4000Y5.0000 G01 X0.5000Y5.0000 G01 X0.5000Y0.0000 G01 X0.6000Y0.0000 G01 X1.6000Y0.0000 (test 0.2mm) G01 X1.6000Y5.0000 G01 X1.8000Y5.0000 G01 X1.8000Y0.0000 G01 X2.0000Y0.0000 G01 X2.0000Y5.0000 G01 X2.2000Y5.0000 G01 X2.2000Y0.0000 G01 X2.4000Y0.0000 G01 X2.4000Y5.0000 G01 X2.6000Y5.0000 G01 X2.6000Y0.0000 G01 X2.8000Y0.0000 G01 X3.8000Y0.0000 (test 0.3mm) G01 X3.8000Y5.0000 G01 X4.1000Y5.0000 G01 X4.1000Y0.0000 G01 X4.4000Y0.0000 G01 X4.4000Y5.0000 G01 X4.7000Y5.0000 G01 X4.7000Y0.0000 G01 X5.0000Y0.0000 G01 X5.0000Y5.0000 G01 X5.3000Y5.0000 G01 X5.3000Y0.0000 G01 X5.6000Y0.0000 G01 X6.6000Y0.0000 (test 0.4mm) G01 X6.6000Y5.0000 G01 X7.0000Y5.0000 G01 X7.0000Y0.0000 G01 X7.4000Y0.0000 G01 X7.4000Y5.0000 G01 X7.8000Y5.0000 G01 X7.8000Y0.0000 G01 X8.2000Y0.0000 G01 X8.2000Y5.0000 G01 X8.6000Y5.0000 G01 X8.6000Y0.0000 G01 X9.0000Y0.0000 G01 X10.0000Y0.0000 (test 0.5mm) G01 X10.0000Y5.0000 G01 X10.5000Y5.0000 G01 X10.5000Y0.0000 G01 X11.0000Y0.0000 G01 X11.0000Y5.0000 G01 X11.5000Y5.0000 G01 X11.5000Y0.0000 G01 X12.0000Y0.0000 G01 X12.0000Y5.0000 G01 X12.5000Y5.0000 G01 X12.5000Y0.0000 G01 X13.0000Y0.0000 G01 X14.0000Y0.0000 (test 0.6mm) G01 X14.0000Y5.0000 G01 X14.6000Y5.0000 G01 X14.6000Y0.0000 G01 X15.2000Y0.0000 G01 X15.2000Y5.0000 G01 X15.8000Y5.0000 G01 X15.8000Y0.0000 G01 X16.4000Y0.0000 G01 X16.4000Y5.0000 G01 X17.0000Y5.0000 G01 X17.0000Y0.0000 G01 X17.6000Y0.0000 G01 X18.6000Y0.0000 (test 0.7mm) G01 X18.6000Y5.0000 G01 X19.3000Y5.0000 G01 X19.3000Y0.0000 G01 X20.0000Y0.0000 G01 X20.0000Y5.0000 G01 X20.7000Y5.0000 G01 X20.7000Y0.0000 G01 X21.4000Y0.0000 G01 X21.4000Y5.0000 G01 X22.1000Y5.0000 G01 X22.1000Y0.0000 G00 Z1.5000 G00 X0Y0 M05When you see copper "silvers" between the passes you know your bit is 0.1mm narrower than the corresponding width :sunglasses:
-
Manually written gcode to determine milling bit width
DON'T run it on your machine untill you understand exactly what each line of code does!
G21 G90 G94 F1400.00 G00 Z0.5000 M03 G4 P1 G01 Z-0.1000 G4 P0.5 (test 0.1mm) G01 X0.0000Y5.0000 G01 X0.1000Y5.0000 G01 X0.1000Y0.0000 G01 X0.2000Y0.0000 G01 X0.2000Y5.0000 G01 X0.3000Y5.0000 G01 X0.3000Y0.0000 G01 X0.4000Y0.0000 G01 X0.4000Y5.0000 G01 X0.5000Y5.0000 G01 X0.5000Y0.0000 G01 X0.6000Y0.0000 G01 X1.6000Y0.0000 (test 0.2mm) G01 X1.6000Y5.0000 G01 X1.8000Y5.0000 G01 X1.8000Y0.0000 G01 X2.0000Y0.0000 G01 X2.0000Y5.0000 G01 X2.2000Y5.0000 G01 X2.2000Y0.0000 G01 X2.4000Y0.0000 G01 X2.4000Y5.0000 G01 X2.6000Y5.0000 G01 X2.6000Y0.0000 G01 X2.8000Y0.0000 G01 X3.8000Y0.0000 (test 0.3mm) G01 X3.8000Y5.0000 G01 X4.1000Y5.0000 G01 X4.1000Y0.0000 G01 X4.4000Y0.0000 G01 X4.4000Y5.0000 G01 X4.7000Y5.0000 G01 X4.7000Y0.0000 G01 X5.0000Y0.0000 G01 X5.0000Y5.0000 G01 X5.3000Y5.0000 G01 X5.3000Y0.0000 G01 X5.6000Y0.0000 G01 X6.6000Y0.0000 (test 0.4mm) G01 X6.6000Y5.0000 G01 X7.0000Y5.0000 G01 X7.0000Y0.0000 G01 X7.4000Y0.0000 G01 X7.4000Y5.0000 G01 X7.8000Y5.0000 G01 X7.8000Y0.0000 G01 X8.2000Y0.0000 G01 X8.2000Y5.0000 G01 X8.6000Y5.0000 G01 X8.6000Y0.0000 G01 X9.0000Y0.0000 G01 X10.0000Y0.0000 (test 0.5mm) G01 X10.0000Y5.0000 G01 X10.5000Y5.0000 G01 X10.5000Y0.0000 G01 X11.0000Y0.0000 G01 X11.0000Y5.0000 G01 X11.5000Y5.0000 G01 X11.5000Y0.0000 G01 X12.0000Y0.0000 G01 X12.0000Y5.0000 G01 X12.5000Y5.0000 G01 X12.5000Y0.0000 G01 X13.0000Y0.0000 G01 X14.0000Y0.0000 (test 0.6mm) G01 X14.0000Y5.0000 G01 X14.6000Y5.0000 G01 X14.6000Y0.0000 G01 X15.2000Y0.0000 G01 X15.2000Y5.0000 G01 X15.8000Y5.0000 G01 X15.8000Y0.0000 G01 X16.4000Y0.0000 G01 X16.4000Y5.0000 G01 X17.0000Y5.0000 G01 X17.0000Y0.0000 G01 X17.6000Y0.0000 G01 X18.6000Y0.0000 (test 0.7mm) G01 X18.6000Y5.0000 G01 X19.3000Y5.0000 G01 X19.3000Y0.0000 G01 X20.0000Y0.0000 G01 X20.0000Y5.0000 G01 X20.7000Y5.0000 G01 X20.7000Y0.0000 G01 X21.4000Y0.0000 G01 X21.4000Y5.0000 G01 X22.1000Y5.0000 G01 X22.1000Y0.0000 G00 Z1.5000 G00 X0Y0 M05When you see copper "silvers" between the passes you know your bit is 0.1mm narrower than the corresponding width :sunglasses:
@executivul Good stuff! I imagine I'll get there eventually, but on Day 1 I'd rather start with some reasonable magic constants that at least put me in the ballpark.
-
@neverdie I'm saving up some money for a CNC as well and I would love if you have time to document your process. Might be to much to ask but I guess many newbie errors could be avoided. I know there are some on YouTube but I have not found any which address the questions we have had above in this thread.
@sundberg84 said in CNC PCB milling:
@neverdie I'm saving up some money for a CNC as well and I would love if you have time to document your process. Might be to much to ask but I guess many newbie errors could be avoided. I know there are some on YouTube but I have not found any which address the questions we have had above in this thread.
Yes, that's what I'm attempting to do on this thread. :)
-
JFYI: CNC 2418 assembly by me :)
https://www.youtube.com/watch?v=T2_18-ObvP0
I'll try to make a blog to describe the whole pcb cnc milling, tools etc, as well as other diy projects. I'll let you know if there is any notable progress...
-
JFYI: CNC 2418 assembly by me :)
https://www.youtube.com/watch?v=T2_18-ObvP0
I'll try to make a blog to describe the whole pcb cnc milling, tools etc, as well as other diy projects. I'll let you know if there is any notable progress...