Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. General Discussion
  3. CNC PCB milling

CNC PCB milling

Scheduled Pinned Locked Moved General Discussion
933 Posts 28 Posters 135.5k Views 27 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ben999B ben999

    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 done

    You 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...

    andrewA Offline
    andrewA Offline
    andrew
    wrote on last edited by andrew
    #99

    @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:
    https://www.youtube.com/watch?v=D7eMQi2_eQE

    ben999B 1 Reply Last reply
    2
    • NeverDieN Offline
      NeverDieN Offline
      NeverDie
      Hero Member
      wrote on last edited by NeverDie
      #100

      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?

      1 Reply Last reply
      0
      • E executivul

        @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: https://www.super-tech.com/root/graphics/EMC-XYAZ-MU-Parallel_Pinout.gif and grbl pinout https://cdn.instructables.com/FZY/QJE4/IM55X292/FZYQJE4IM55X292.MEDIUM.jpg
        and connect the step&dir pins and Z probe

        My 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 :rage: 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.

        zboblamontZ Offline
        zboblamontZ Offline
        zboblamont
        wrote on last edited by
        #101

        @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...

        1 Reply Last reply
        0
        • andrewA andrew

          @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:
          https://www.youtube.com/watch?v=D7eMQi2_eQE

          ben999B Offline
          ben999B Offline
          ben999
          wrote on last edited by
          #102

          @andrew Oooooo i like that, porn to my eyes :hearts:

          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)

          1 Reply Last reply
          0
          • mfalkviddM Offline
            mfalkviddM Offline
            mfalkvidd
            Mod
            wrote on last edited by
            #103

            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.

            zboblamontZ ben999B 2 Replies Last reply
            1
            • mfalkviddM mfalkvidd

              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.

              zboblamontZ Offline
              zboblamontZ Offline
              zboblamont
              wrote on last edited by
              #104

              @mfalkvidd Is this AFTER mapping the surface ?

              mfalkviddM 1 Reply Last reply
              0
              • mfalkviddM mfalkvidd

                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.

                ben999B Offline
                ben999B Offline
                ben999
                wrote on last edited by
                #105

                @mfalkvidd forgetting to connect the crocodile clip right before probing can be desastrous too... :D

                I put your comment in my todo list :+1:

                1 Reply Last reply
                0
                • NeverDieN Offline
                  NeverDieN Offline
                  NeverDie
                  Hero Member
                  wrote on last edited by NeverDie
                  #106

                  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.

                  NeverDieN 1 Reply Last reply
                  0
                  • NeverDieN NeverDie

                    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.

                    NeverDieN Offline
                    NeverDieN Offline
                    NeverDie
                    Hero Member
                    wrote on last edited by
                    #107

                    correction: I guess it's bCNC that does the auto-leveling.

                    andrewA 1 Reply Last reply
                    0
                    • zboblamontZ zboblamont

                      @mfalkvidd Is this AFTER mapping the surface ?

                      mfalkviddM Offline
                      mfalkviddM Offline
                      mfalkvidd
                      Mod
                      wrote on last edited by
                      #108

                      @zboblamont no, before. To my knowledge, it would be hard to map the surface without connecting the alligator clip.

                      zboblamontZ 1 Reply Last reply
                      0
                      • mfalkviddM mfalkvidd

                        @zboblamont no, before. To my knowledge, it would be hard to map the surface without connecting the alligator clip.

                        zboblamontZ Offline
                        zboblamontZ Offline
                        zboblamont
                        wrote on last edited by
                        #109

                        @mfalkvidd :joy: Touche...

                        1 Reply Last reply
                        0
                        • E Offline
                          E Offline
                          executivul
                          wrote on last edited by
                          #110

                          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.

                          1 Reply Last reply
                          1
                          • ben999B Offline
                            ben999B Offline
                            ben999
                            wrote on last edited by
                            #111

                            Anything similar to OctoPrint, but for CNC ?

                            1 Reply Last reply
                            0
                            • NeverDieN NeverDie

                              correction: I guess it's bCNC that does the auto-leveling.

                              andrewA Offline
                              andrewA Offline
                              andrew
                              wrote on last edited by
                              #112

                              @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.

                              NeverDieN 1 Reply Last reply
                              0
                              • andrewA andrew

                                @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.

                                NeverDieN Offline
                                NeverDieN Offline
                                NeverDie
                                Hero Member
                                wrote on last edited by NeverDie
                                #113

                                @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.

                                1 Reply Last reply
                                0
                                • andrewA Offline
                                  andrewA Offline
                                  andrew
                                  wrote on last edited by
                                  #114

                                  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.

                                  1 Reply Last reply
                                  1
                                  • NeverDieN Offline
                                    NeverDieN Offline
                                    NeverDie
                                    Hero Member
                                    wrote on last edited by NeverDie
                                    #115

                                    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?

                                    sundberg84S E 2 Replies Last reply
                                    3
                                    • NeverDieN NeverDie

                                      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?

                                      sundberg84S Offline
                                      sundberg84S Offline
                                      sundberg84
                                      Hardware Contributor
                                      wrote on last edited by
                                      #116

                                      @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.

                                      Controller: Proxmox VM - Home Assistant
                                      MySensors GW: Arduino Uno - W5100 Ethernet, Gw Shield Nrf24l01+ 2,4Ghz
                                      MySensors GW: Arduino Uno - Gw Shield RFM69, 433mhz
                                      RFLink GW - Arduino Mega + RFLink Shield, 433mhz

                                      NeverDieN 1 Reply Last reply
                                      1
                                      • NeverDieN NeverDie

                                        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?

                                        E Offline
                                        E Offline
                                        executivul
                                        wrote on last edited by
                                        #117

                                        @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 low

                                        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?
                                        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 resahrpening

                                        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.
                                        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 size

                                        And 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) **

                                        1 Reply Last reply
                                        0
                                        • E Offline
                                          E Offline
                                          executivul
                                          wrote on last edited by
                                          #118

                                          Example script:
                                          Manually written gcode for good feedrate discovery

                                          DON'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)
                                          
                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          18

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.1k

                                          Posts


                                          Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • MySensors
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular