CNC PCB milling
-
@neverdie For Austria the threshold for import tax (=VAT substitute, 20%) is 22 Euros (value of the goods, excluding shipping and insurance costs) and for additional customs duties it's 150 Euros.
-
I've used my CNC for milling PCBs for more than a year now.
Here are a few tips:
1st: don't skimp on the machine itself, the 3020 and 3040 are ages ahead of 2018 in terms of quality and reliability (the numbers show the machine size in cm) as the the 3020 and 3040 have no moving bed, but a moving gantry instead, search for the ballscrew ones (normally Z-DQ but also some T-DQ, initially T meant Trapezoidal screws and Z ballscrewZ, but now a lot of T-DQ come with ballscrews). Get the parallel port ones, the usb ones are flaky, you can run an old parallel port (centronix) computer with old WinXP or LinuxCNC or attach an arduino nano/uno (328p) and run GRBL, just attach that to the parallel cable and you're set.
https://www.ebay.co.uk/itm/USB-CNC-ROUTER-ENGRAVER-ENGRAVING-CUTTER-3-AXIS-3040T-DQ-WOODWORKING-3-USB-PORT/282593206065?hash=item41cbde1f31:g:ibsAAOSwC9VZfuV02nd: if you buy it stock it comes with a 300-400W aircooled 12,000rpm ER11 spindle, good but not good enough, I've upgraded for a watercooled 300W 60,000rpm spindle (costs almost as much as the machine itself) but I can run it at 1400mm/min and being watercooled it doesn't spread the "deadly" fiberglass dust everywhere.
LE. you can also buy just the frame and buy separately the spindle, 3 nema 23 steppers, 3 tb6560 or 6600 drivers and a 24v or 36v PSU, we are tinkerers after all, aren't we?
https://www.ebay.co.uk/itm/300W-ER8-Spindle-Motor-Water-Cooled-60000rpm-1-5KW-VFD-Inverter-Bracket-Pump-Kit/192035995150?hash=item2cb63cbe0e:g:kz8AAOSw-0xYNoey3rd: it is said that milling fiberglass boards (FR4) can create very very very small dust ("charf") under 3 microns which when inhaled is never released from the lungs, gets it's way to the pleural membrane where it creates small cysts that can degenerate in lung cancer, a very slow an painful death. So a good vacuum cleaner which exhausts OUTSIDE is a must, unless you buy very high end and expensive professional HEPA filters. I use a Philips HEPA vacuum cleaner, being a hepa means all exhaust is from the back port and no additional airflow is created (my shopvac has dual airflow, one for debris and one to cool the motor, guess what they are not at all isolated between them) and after the exhaust filter I 3d printed a 50mm hose adapter and exhaust it outside. I've wrapped the contraption in a thick garbage bag and sealed it with tape so no air can escape inside.
Another way of doing it would be wet milling using a lubricant as WD40, oil or even liquid soap but might interfere with number 4 below (swell the mdf sacrificial layer).4th: you have 3 options to fix the blank pcb to the sacrificial layer:
-clamps/screws: easiest, cheapest way, buy you will almost always get a bow in the board, it can be as bad as 0.5mm in a 100x150mm board, especially if you don't want to waste real estate and mill the whole board from side to side, I know you could use a 200x150mm board and leave an inch or two as a border and clamp there but that doubles the costs, I use 148x98mm out of the 150x100mm blank
-double sided tape: use 3M Scotch 665, it handles well, sticks well but is not very hard to remove the board from the mdf sacrificial layer in the end, some other double sided tapes hold so well that you bend the board trying to remove it, or jut let loose and you lose alignment
-vacuum table: I've just bought a vacuum pump but haven't got the time to play with it yet.5th: ALWAYS use registration holes, put a small known size hole at a known position, if you reset or stop any GRBL controller you lose position, specially when milling small traces 0.1mm out of alignment can make a huge difference
6th: don't be afraid to test feeds and speeds, as other people said buy mills in bulk and sacrifice one of each to make tests, you can learn a bit GCODE and write a simple program to mill a zig-zag pattern at different feedrates (G1 X100 Y10 F300; G1 X0 Y20 F300; G1 X100 Y30 F350; G1 X0 Y 40 F350; etc) then inspect using a magnifier/microscope and settle for the best quality speed. I use titanium coated engraving bits from 0.1mm 10deg for very very small smd traces up to 0.4-0.5mm 30 deg for normal th boards. A 0.4mm 30 deg titanium coated bit can last for up to 10 heavily packed 100x150mm boards as you can see below. At the price it comes ( under $1/piece) it's cheaper to use a new bit then to destroy a blank board, which you will anyway at least a few dozen times
https://www.aliexpress.com/item/10x-Titanium-Coated-Carbide-PCB-Engraving-CNC-Bit-Router-Tool-10-Degree-0-1mm-Tip/1535712782.html?spm=2114.search0104.3.60.32Or0K&ws_ab_test=searchweb0_0,searchweb201602_5_10152_10065_10151_10344_10068_5000016_10345_10342_10343_51102_10340_5060016_10341_5130016_10609_10541_10084_10083_10304_10307_10301_10539_5080015_10312_10059_10313_10314_10534_100031_10604_10603_10103_10605_10594_10596_10142_10107,searchweb201603_14,ppcSwitch_3&algo_expid=e598dd4d-29ef-4a85-af37-7bfefdd92c46-7&algo_pvid=e598dd4d-29ef-4a85-af37-7bfefdd92c46&rmStoreLevelAB=07th: after milling sandpaper or use a scothbrite sponge on the board to remove copper edges
Here are some pics of a few boards, I mainly do through hole since I find easier (cheaper) to buy modules from ali than to order the original circuits, none has failed until now
LE. before you ask, the boards are HA light switches, 6 way, rotary encoded, led ring lights, led halo around them (as in car switches), MQTT enabled, w5500 eth connected, 100% designed and home made, 3d printed frame and buttons, laser cut acrylic and faceplates, cnc milled pcbs.
-
@executivul Thanks!
What sold me on the CNC2418, aside from its low price, was @andrew stating that he can mill isolation at 6 mil, which is no worse than what I could get from using a fab like OSH-PARK. What mill isolation are you able to get down to reliably using your gantry based CNC machine with ball screws and everything else you mentioned?
-
About 0.2mm (8 mil I believe). Never needed to get smaller than that. Smallest chips I use are rfm69 or atsha 8 pin. The problem is not on a 20x30mm board but on a much larger one where having x and y axis not square makes a difference, where you need faster speeds since traces are much longer, etc.
-
@executivul said in CNC PCB milling:
-double sided tape: use 3M Scotch 665
How much do you apply? i.e. Do you cover the entire back of the PCB, or use just a few strips of it, or....?
-
@neverdie a few strips, 20mm width each, 30-40mm apart.
-
in Hungary the VAT is pretty high (27%) which we have to pay on top of the customs fee. moreover, our customs and post response and processing time is very bad. the process could be speeded up if the shipping happens with e.g. dhl and they are allowed to do the customs, but then it also costs extra.
in the past year customs started to focus very much on packages coming from China, even cheaper and smaller products are captured by them and you are forced to pay them before you can get your stuffso for me it was better to buy the cnc from EU, even if it was more expensive compared to the direct Chinese sellers, because at the end of the day, the overall cost was about the same (assuming that I would had to pay the customs and the VAT) but I received the package much more faster.
-
@executivul thank you for the tips and for the shared experience.
I agree, that the mentioned CNCs, have more robust structure, more powerful spindle, but I guess that the mentioned extra upgrade on the spindle is a bit overkill, especially just to create ad hoc proto PCBs at home.
just be clear, I know that higher rpm and more powerful spindle could produce better and faster result, ballscrews provide smother and more precise movement, I don't questioning that, but for the price/value/reason of the usage combo I think the cheap smaller versions also do their job quite acceptably.
2418 is not the fastest, not the strongest, but precise enough for this purpose and it is pretty cheap.btw, once I'll have a dedicated working area for my hw hacking stuffs, I'll definitely buy a 6040 or 9060, it is long time ago on my wish list
-
@executivul regarding to the parallel port question, these days, for these tasks it is worth to have compatibility with the latest open source toolsets, so usb and grbl compatibility is a key point.
if you do professional cnc work, then you might need something different.
btw, it does not mean that parallel port version could not work, most of them could be easily "upgraded" to support the mentioned needs. e.g:
Build a ChiliPeppr Driven 3040 CNC – 24:26
— John Lauer
-
very interresting post guys
I have one of these in the garage (top of my head table is 10x15cm)
I have never used it for pcb but @andrew tikkled my curiosity... very narrow tracks!
For what it is worth and because i don't recall reading anything about it here, i have added endstops to my CNC
It is well supported by the standard board supplied and GRBL takes care of it.
I dont want to get involved in a fight between "Normaly Open" people and "Normaly Closed" people, so i wont tell you which i chose again GRBL and board can manage both
https://www.ebay.com/itm/New-10PCS-Tact-Switch-KW11-3Z-5A-250V-Microswitch-3PIN-Buckle/173021165954?hash=item2848dd7982:g:xFsAAOSwGotWjjHoI get a very reliable "zero" on each axis. I actually home the 3 axis even after a tool change, just to be on the safe side
It all runs on an old windows XP laptop. AutoCad for drawings, Dxf2GCode for... dxf to Gcode conversion and GCodeSender for feeding GCode to CNC.
-
Are the end stops needed, and if not, how does the 2418 zero itself between tool changes? Or, I'm guessing, are end stops already part of the standard kit?
-
I would say that endstop are mendatory to get a reliable zero
I know that z-axis can be zeroed with a "conductive probe"...
https://www.ebay.com/itm/Router-Z-Axis-Check-Touch-Plate-Setting-Probe-Milling-Engraving-Machine-Tools-SG/112541889535?epid=2209276811&hash=item1a3404f3ff:g:ekkAAOSwyc1Zom5B
I personnaly dont use that tool
I just slide the drill or mill bit in the collet (loose). Lower the z-axis a bit. Let the bit come down to the pcb board. Then tighten it. Then manually zero the z-axis in my GCode sender. Job doneYou could get away with the endstops by pushing the x- and y-axis manually upto their mechanical stops... and then zero via the gcode sender software...
No endstops in the kits AFAIK. All you need it the endstops, 2-conductor wire and 2.54mm plugs (servo plugs will do)
Then inform GRBL about Homing settings like homing direction, speed and so on.One more handy setting in GRBL : apply brake to steppers so they dont skip steps while machining (when not stepping themselves) or tool change. Mind the stepper drivers as they will send full power to the steppers while in "brake mode"... they might get fairly hot...
-
@neverdie most of these entry level CNCs do not have limit switches. the controller board and the grbl firmware is able to to handle them, so you can install them anytime.
when you power up the CNC, then it will have a "zero" point at the given x/y/z position. then, you can move every axis to the right position and set relative zero (usually at the bottom corner of your PCB) through the controller GUI. every movement declared in the G code will be calculated and will happen from this point. at the end of the given job (e.g. one round of drilling, or one round of isolation routing) the spindle will move back to the relative zero point, and will give back the control to you.
here I elevate the spindle on the z axis and change the tool, then I zeroing out the z axis again with the new tool, load the next G code job and run it again.if you have limit switches then you can declare a tool change position which will be used every time and the cnc can do homing to real physical zero point as well.
it is nice to have features, but you can do and handle everything without these.
-
@andrew Just be careful with 6040, not to mention the 6090, they mostly use the same round rods as guides and at that sizes you tend to get a lot of "droop" (sagging), more than 1 mm across the long axis, which is ok if you're using them to carve wood or whatever but is very bad for pcb engraving.
About the endstops, I don't have them and never felt the need for them, a cheap switch has a huge 0.1mm of error which can lead to holes milled between pads, cut traces, etc. What I do is place a hole in the sacrificial layer or the pcb near the edge, later if I need to reset the machine move the gantry manually so that the bit can enter the hole (spindle stopped of course), raise the bit and set zero.
For all of you wondering, just by connecting an Arduino to the parallel port of the control box you can turn any kind of cnc in a grbl machine, you just need the normal Mach 3 pinout: and grbl pinout
and connect the step&dir pins and Z probeMy toolchain is Altium Designer (Schematics->PCB->Gerber/Excellon) -> FlatCAM -> chilipeppr.com/grbl (autolevel->mill)
LE. Don't ask me about stupid taxes in a 3rd world country (Romania), in a small city where the nearest p-channel mosfet is 120miles away Here dhl morons ask $22 only for passing papers to the customs, plus 19% VAT for the whole amount, including the shipping(why since it's already arrived in my country?), plus additional taxes if they can find one to match the content, so I prefer to buy from ebay.co.uk from within EU, even though the shipping is insanely expensive compared to direct Chinese free shipping, that's how I got the CO2 laser, the CNC, the spindle and vacuum pump for it and a few other heavy items. For small items I have no problem to get them through normal post no matter what the cost is.
-
@ben999 for pcb milling the z touch probe is not so useful. you should do autoleveling instead, on the whole target pcb surface.
for this the pcb surface and the tool itself should be connected to the cnc controller board dedicated pins (usually the tool is connected with a crocodile clips) during the mapping.
just quickly googled a video for that:
CNC 2418 bCNC pcb-gcode – 00:41
— TheVinylrider
-
So, if I understand correctly, flatcam will import the gerber files and export a g-code file. Then, bCNC will spoonfeed the g-code to the CNC2418 control board. i.e. whatever hardware the bCNC is running on is physically connected by wire to the CNC2418. Right? If so, what kind of computer hardware do you recommend running the bCNC on? A Raspberry Pi Zero W, or something with more oomph?
Also, do you recommend having a monitor display next to it, or is running headless just as good?
-
@executivul I had to laugh at your final paragraph, sums up my own experience with DHL also.
I wonder if they are ex ANAF employees?
I don't have deadlines to meet so order parts in advance from TME or Farnell etc who deliver usually quicker than local suppliers who say they have stock but ultimately don't, and at least I know the parts are genuine from the main suppliers...
-
@andrew Oooooo i like that, porn to my eyes
Can GRBL do bed compensation like Marlin does (for 3D printers) ? That's an awsome feature (and to be honest i couldn't live without it for 3D printing)
-
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 ?
-
@mfalkvidd forgetting to connect the crocodile clip right before probing can be desastrous too...
I put your comment in my todo list
-
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.
-
@zboblamont no, before. To my knowledge, it would be hard to map the surface without connecting the alligator clip.
-
@mfalkvidd 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.
-
Anything similar to OctoPrint, but for CNC ?
-
@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?
-
@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.
-
@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 M05
When you see copper "silvers" between the passes you know your bit is 0.1mm narrower than the corresponding width
-
@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.
-
@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
CNC 2418 assembly timelapse – 05:41
— András KabaiI'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...
-
@andrew Nice. How long did that take in earth minutes?
-
@NeverDie about 6 hours, in two nights
-
Best way to get rid of the dust seems to be not making dust to start with.
Enjoy!
Wet milling pcb on the 3040 CNC – 00:34
— executivul
-
@executivul Which car shampoo?
How well does it work? Would it work better if you flooded it a bit more so that it was sitting, say, a couple mm under shampoo solution?
-
I suppose your etching bit might last longer too, since maybe the liquid would help cool it.
-
Unfortunately I can not disclose this secret recipe, all I can tell you is that s some cationic surfactant mixed with some dihydrogen peroxide
To be honest I don't know the brand, I've first tried liquid soap undiluted but was to thick and was gathering around the bit like a small tornado and splashing everywhere, decided to add some water and went looking for a spray bottle, found one with some handwriting "car shampoo", it is thicker than plain water, but not as thick as liquid soap, so it might be diluted, I still have some for a few more boards then I'll go by trial and error with dish/hand/car wash and water.
So much better not to have windows open at 0C(32F) and the vacuum howling. Only the 2.0mm endmill still creates dust, normal engraving and drilling do not.
Don't forget to mill on acrylic/plastic as mdf will swell if wet.
-
Looks like my CNC2418 is on track to be delivered this Monday. It has already cleared customs.
So, since it will be arriving well ahead of all the various bits and such, I'm guessing that just a few etching bits will be enough to get me started and confirm whether my machine can route 6 mil isolation.
The kit itself includes 0.1mm bits (Diameter: 3.175mm tip: 0.1mm length: 30mm).
-
It arrived!
-
@neverdie Yay! Where can we find the live stream of the build process?
-
@neverdie so, I expect your first boards tomorrow
-
@andrew said in CNC PCB milling:
@neverdie so, I expect your first boards tomorrow
But wait, I'm still waiting for the magic numbers from you. Otherwise, I'll be all dressed with nowhere to go.
-
@neverdie once the assembly is done, you should adjust the stepper drivers' current limiting as well.
it is pololu a4988, you can find the corresponding details here:
https://www.pololu.com/product/1182then, it is always good idea to have the basic settings exported from the board, just in case... you can do it by "$$" command sent from the g code sender gui or directly from the serial terminal.
currently I use the following settings, the machine might be able to create nice results with higher feed rates, but I did not have enough time to test it and I sticked to the current working config.
isolation routing with 2001 bits:
- z cut: -0.05mm
- feed rate: 200
you can calculate the V carving bit's tool width for the given milling depth with the following formula:
tan(bit angle/2) * milling depth * 2 + bit's end width
for excel formula the bit angle should be provided in radians, so it should look like this
tan(radians(bit angle/2)) * milling depth * 2 + bit's end widthedge cut or hole milling with the 0.8mm endmill:
- feed rate: 170
- z cut: -1.7mm
- multi depth, depth/pass: 0.2mm
drilling:
- feed rate: 130
- z cut: -1.8
the spindle should be 1000 everywhere.
most probably your board will not have a bootloader, so it will not be possible to update the firmware via usb serial connection (with avrdude), but it is worth to try it. for me it did not work, so I traced back the MCU pins to the pin rows and used ISP to upgrade the firmware to grbl v1.1f (the board will come with 0.9j if I remember correctly). do not forget to export the gerber settings before you upgrade the firmware, as it will loose those, and you have to re-assign the given values again, after the update.
the ISP pinout (from the pin row's top left corner):
Reset -> pin 2
SCK -> pin 3
MISO -> pin 12
MOSI -> pin 135v -> pin1
gnd-> bottom row(!) e.g. pin 1
-
The assembly instructions came as a file on a mini CD. Attached for anyone who is interested.
[0_1513463653125_2418-Assembly instructions - English.doc](Uploading 100%)
Hmmm.. I guess the forum only lets me upload photos. Sorry.
-
I thought that the ER11 would come pre-installed ("shrink fit" onto the spindle), but it arrived as a separate piece and apparently I'm supposed to attach it by hand. That would seem to be a discrepancy with Jack's store advertises for this device, but, oh well.
Also, I was a bit surprised to see that most, and maybe all, of the plastic parts were 3D printed.
-
@andrew said in CNC PCB milling:
do not forget to export the gerber settings before you upgrade the firmware, as it will loose those, and you have to re-assign the given values again, after the update.
Where are the gerber settings, and how do I export them? Are they in EEPROM, so I just do a complete copy of that? Or does the $$ handle it?
-
I finished putting together the first frame. It was a bit frustrating, because the T-slot nuts they use can come out of the groove, and so to prevent that I had to keep constant tension on it while I tightened it down. I do think most of the T-slot nuts should have been the kind that don't slip out that way.
-
@NeverDie
firmware settings: it is stored in the EEPROM, but nothing guarantees that the same location will be used for the same parameters in case of different versions, so the output of "$$" command should be saved, this contains everything which you can manually set up if necessary.ER11: take extra care during the installation process to not "harm" the motor's axis. usually the ER11 is pretty tight and howtos mention that the motor should be cooled (by the freezer) and the ER11 should be warmed up before putting them together, to help the mounting process and to prevent unwanted distortion.
I put the CNC 2418 assembly guide to my share, for ones it is interesting.
-
@andrew
1000rpm for the spindle seems very slow,is that number correct?
-
@rmtucker it is not 1000rpm, but the pwm control for the whole spindle speed range. see the details in the official document.
once you use the spindle speed with the value of $30 or above, then the controller will drive the spindle with continuous voltage, without pwm, so it will use its maximum rpm.
compared to bigger cncs with bigger spindles (e.g. what you can see from @executivul's video above) , 2418's is not that fast (in rpm), on the other hand it should not be "very slow". can you show a video on that?
-
@andrew
I see.
So what would be your best guess at your actual spindle rpm when cutting under your feed/depth of cut examples given above.?
-
@andrew said in CNC PCB milling:
I put the CNC 2418 assembly guide to my share, for ones it is interesting.
Yes, those are exactly the same instructions I received with my kit too.
-
@andrew
I tried connecting to the Woodpecker board using the Arduino serial terminal at 115200 baud. It greets me by saying:Grbl 0.9j ['$' for help]
However, if I send it $ I get no response. If I send it $$, I get no response either.
Is this normal?
How do I send it $$ and get it to respond?
-
@neverdie no, that is not normal, but this is most probably just a communication issue. which software is used for the terminal connection? try to change the cr/lf settings, or the flow control options.
-
@rmtucker I did not measure the max rpm for the given spindle, but I use it on "max" (so spindle setting is 1000) for the given jobs.
-
Ah, nevermind. I changed the terminal to send it a carriage return, and now it works. Here is the output from asking it $ and $$:
Grbl 0.9j ['$' for help] $$ (view Grbl settings) $# (view # parameters) $G (view parser state) $I (view build info) $N (view startup blocks) $x=value (save Grbl setting) $Nx=line (save startup block) $C (check gcode mode) $X (kill alarm lock) $H (run homing cycle) ~ (cycle start) ! (feed hold) ? (current status) ctrl-x (reset Grbl) ok $0=10 (step pulse, usec) $1=25 (step idle delay, msec) $2=0 (step port invert mask:00000000) $3=5 (dir port invert mask:00000101) $4=0 (step enable invert, bool) $5=0 (limit pins invert, bool) $6=0 (probe pin invert, bool) $10=3 (status report mask:00000011) $11=0.010 (junction deviation, mm) $12=0.002 (arc tolerance, mm) $13=0 (report inches, bool) $20=0 (soft limits, bool) $21=0 (hard limits, bool) $22=0 (homing cycle, bool) $23=0 (homing dir invert mask:00000000) $24=25.000 (homing feed, mm/min) $25=500.000 (homing seek, mm/min) $26=250 (homing debounce, msec) $27=1.000 (homing pull-off, mm) $100=800.000 (x, step/mm) $101=800.000 (y, step/mm) $102=800.000 (z, step/mm) $110=5000.000 (x max rate, mm/min) $111=5000.000 (y max rate, mm/min) $112=800.000 (z max rate, mm/min) $120=10.000 (x accel, mm/sec^2) $121=10.000 (y accel, mm/sec^2) $122=10.000 (z accel, mm/sec^2) $130=200.000 (x max travel, mm) $131=200.000 (y max travel, mm) $132=200.000 (z max travel, mm) ok
-
Here's the current build status:
I'm guessing I'm something more than half-way done.
-
@andrew said in CNC PCB milling:
the ER11 should be warmed up
how exactly? Heat gun?
I've put the motor assembly in the freezer....
-
I'll let it freeze overnight and then try it in the morning.
-
-
@sundberg84 see andrew's earlier post.
Freezing the motor axis makes it a bit smaller.
-
@sundberg84 And heating up the other part makes it expand and get bigger allowing the two to fit together easier. Has to do with tight tolerances.
-
@andrew
Since I probably have only one shot at this, how hot should I heat up the ER11 before trying to fit it onto the frozen spindle? Should it be burning hot, or is luke-warm enough?
-
@neverdie unfortunately, as I mentioned, I don't have ER11 (yet), and I just read articles and vendor suggestions on the installation method, so I cannot provide experience based suggestions to that. as far as I remember nor concrete temperature was mentioned, so I would say you should not "overheat" it.
-
@andrew said in CNC PCB milling:
@neverdie unfortunately, as I mentioned, I don't have ER11 (yet), and I just read articles and vendor suggestions on the installation method, so I cannot provide experience based suggestions to that. as far as I remember nor concrete temperature was mentioned, so I would say you should not "overheat" it.
I slipped it on, no problem at all. After freezing the motor overnight, what I did was heat the ER11 with my wife's crafting hot air gun. I held it with an insulated glove as I warmed it up. When it started to become uncomfortable to hold with even the insulated glove, I slipped it on without any resistance.
Hopefully this info will help you when you receive yours.
-
@neverdie nice, so your wife saved the project :)))
be patient and do not power the spindle for couple of hours, while it is cold, as it could be wet inside which could cause shorts and other issues.
-
I seem to be finished with the mechanical assembly:
However, these washers came with the kit, and I'm not sure what they're for:
Anyone know? Are they for mounting the woodpecker board to the frame?Next I need to do the firmware upgrade and then wire things up.
-
@neverdie yes, it is for "isolating" the pcb from the frame.
-
@neverdie said in CNC PCB milling:
ER11
FYI - Was reading on another forum where the user was going to replace the ER11 with a larger version so he could use 8mm bits (fairly standard metric size for wood routing bits, but incredibly strong)...
Somebody pointed out to the guy that there are collets available for the ER11 specifically for 8mm shafted toolbits...
https://www.sorotec.de/shop/Spannzange-ER-11---8-00mm-DIN-6499B-4008E-Klasse-II.html
-
@neverdie
You have gone quiet
Must be beavering away cutting pcb's?
-
Carved this on my home made cnc router recently.
Bit off topic but good fun.
It is about 2ft diameter and 8" thick(old millstone)
-
@rmtucker
And this for our lass
-
@rmtucker said in CNC PCB milling:
@neverdie
You have gone quiet
Must be beavering away cutting pcb's?No, I've simply misplaced my Dragon AVR programmer for the firmware upgrade, so I need to hunt it down.
-
Anyway, once I do get the firmware upgraded and it wired up, what's the best way to start testing it? Do I need to learn GRBL as execuval seems to imply, or are there some simple tests I can run? I imagine some kind of calibration would be the need step, but I haven't read that far ahead because there's nothing to read (well, haven't googled it out yet either).
-
@neverdie
Stick some g-code in and press cycle start
-
@zboblamont said in CNC PCB milling:
was going to replace the ER11 with a larger version
Given how it's installed, I don't see how you can get it off. I would assume it's permanent.
-
@neverdie From memory the guy got it off with a hub-puller, and a persuader, but the point I was trying to make was that there is a collet assembly for the ER11which takes 8mm...
-
@neverdie said in CNC PCB milling:
Anyway, once I do get the firmware upgraded and it wired up, what's the best way to start testing it? Do I need to learn GRBL as execuval seems to imply, or are there some simple tests I can run? I imagine some kind of calibration would be the need step, but I haven't read that far ahead because there's nothing to read (well, haven't googled it out yet either).
First watch the video (now I can't get it out of my head )
The Ting Tings - That's Not My Name (lyrics) – 05:05
— GrubbyTubbyThen, after you update to grbl 0.9j go to chilipeppr.com/grbl, download the SPJS, start it and start playing.
-
I hope these heatsinks that came with the kit don't short things out. Seems rather dicey.
In any case, until I can find my Dragon, I'm going to limp along with GRBL 0.9j so I can finish up the build. I'll upgrade later after I find it.
-
@neverdie the er-11 should be permanent. this spindle is not powerful enough to handle bigger tools and to mill harder materials.
you can start with grbl 0.9j, but it is worth to upgrade to 1.1f.
to the fw upgrade you can use a simple arduino as ISP programmer as well if you do not find your dragon.with chilipeppr (in case of grbl 0.9j go for http://chilipeppr.com/grbl , for 1.1.f go for http://chilipeppr.com/jpadie) you can quickly run its default logo engraving path for testing / demo purposes.
-
Done! Jack was certainly, uh, generous with the length of the wiring. I provisionally tacked it out of the way with the zip ties provided. I'll secure it better after I'm sure it's all working.
-
@neverdie for the cable issue I ordered this cable organizer spiral, although not yet installed it
-
@andrew said in CNC PCB milling:
with chilipeppr (in case of grbl 0.9j go for http://chilipeppr.com/grbl , for 1.1.f go for http://chilipeppr.com/jpadie) you can quickly run its default logo engraving path for testing / demo purposes.
Thanks! That provided exactly what I was looking for. I ran the demo with no etching bit installed, and at first both X and Y seemed to be working, but the adapter coupling eventually loosened on both of them to the point where there was no longer X and Y movement. I've re-tightened tem, and it's working again. I hope it lasts.
Not sure where I should go next from here though.
-
@neverdie said in CNC PCB milling:
@andrew said in CNC PCB milling:
with chilipeppr (in case of grbl 0.9j go for http://chilipeppr.com/grbl , for 1.1.f go for http://chilipeppr.com/jpadie) you can quickly run its default logo engraving path for testing / demo purposes.
Thanks! That provided exactly what I was looking for. I ran the demo with no etching bit installed, and at first both X and Y seemed to be working, but the adapter coupling eventually loosened on both of them to the point where there was no longer X and Y movement. I've re-tightened tem, and it's working again. I hope it lasts.
Not sure where I should go next from here though.
so, as this machine does not have limit switches installed, it is your responsibility to move the gantry to a position, from where you would like to start the job and which provides enough space for each direction movement. usually you have to set a relative zero at the given starting point.
what is next? did you adjusted the stepper drivers? if not, then do it (I shared the link above). this is necessary to be sure, that the steppers will be powered with enough current (so they will be powerful enough for the given speed related movement and to provide enough force) or will not be overdriven.
then, I would say try to engrave the chilipeppr logo to a soft material first, have some experience with the cnc.
then, as I mentioned, discover the flatcam tool and try to create an isolation routing job for a test pcb.
I already mentioned my confirmed settings for the given jobs (edge / hole milling, isolation routing).
you should sacrifice some boards for your experiencealso, try to find your ideal g code sender tool by trying multiple ones.
-
I don't see any plugs on the woodpecker board that are designated for connecting to a touch plate. So, I guess it's configured using the woodpecker header pins? How is that best set up?
By the way, after re-tightening the set-screws on the adapters used to connect the step-motors to the screw rods, they seem to be holding now and not slipping loose.I take it back, one of them just came loose again.
-
@neverdie said in CNC PCB milling:
one of them just came loose again
And now the other one did too. Is anyone using a threadlocker on the set screws to keep this from happening?
I think I'll put on some locktite and let it dry overnight and then see if it still happens tomorrow. I'll start with just the threaded rods.
Anyhow, the good news is that the heat sinks plainly did not short out the GRBL controller boards. I guess the adhesive must act as an electrical insulator.
-
Thinking about it now, an alternative might be to grind one side of the threaded rod flat in the region where it fits into the adapter. That would match the concept of the motor rotor, where that has already been done.
Ideally I would notch it in just the region where the set screw makes contact. I suppose I could do that with a Dremel.
Investigating now, I see that the adapter came loose on the motor rotor also. So, I think locktite will be a must.
http://www.loctiteproducts.com/tds/T_LKR_BLUE_tds.pdf
Looking at the datasheet, it takes 24 hours to cure.
-
Well, humbug! I'm all out. Maybe tomorrow I'll buy the red threadlocker, which is even stronger.
-
@rmtucker Which g-code sender is it that you like best?
-
@neverdie, or anyone else that can answer this with some logic, just because the topic came up. Why does Loctite red come in a blue container and loctite blue come in a red container?
-
@dbemowsk said in CNC PCB milling:
Why does Loctite red come in a blue container and loctite blue come in a red container?
Made in China?
-
Probably historical reasons.
-
@yveaux LOL