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 134.7k 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.
  • andrewA andrew

    @neverdie said in CNC PCB milling:

    @andrew Are you planning to provide more detail about how to setup and do double sided PCBs, or is it pretty much RTFM at this point? Just wondering. Your earlier posts were very thorough and helped a lot.

    did you manage to create double sided PCB jobs in the meantime based on my suggestion and on flatcam's documentation? it is not a hardcore process, let me know if you stuck at a given step.

    regarding to the mentioned upgrades. I agree with @executivul, it doesn't worth to do that with this machine. feedback from steppers, elevation measuring etc are overkill.

    it's capabilities are more than enough for very precise pcb milling, if you would like to do much more with it, then a different machine could be better instead. if you have issues with the results, then it is configuration / settings / cnc job issue. if you loose steps, then the given stepper driver is not properly adjusted (did you checked the pololu driver configuration from the linked documentation?) or your tool/spindle speed/cutting depth/feed rate is not good for the given job.

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

    @andrew said in CNC PCB milling:

    did you checked the pololu driver configuration from the linked documentation?

    See post immediately above yours.

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

      I guess measuring Vref is moot, because jack's stepper motor driver included in the kit (https://www.aliexpress.com/store/product/board/424291_32807192686.html?spm=2114.12010612.0.0.e009a31x1CJ1s) does not have an exposed via hole for measuring Vref.

      So, that leaves the first Pololu method, which is:

      The A4988 supports such active current limiting, and the trimmer potentiometer on the board can be used to set the current limit. One way to set the current limit is to put the driver into full-step mode and measure the current running through a single motor coil while adjusting the current limit potentiometer. This should be done with the motor holding a fixed position (i.e. without clocking the STEP input). Note that the current you are measuring is only 70% of the actual current limit setting, since both coils are always on and limited to this value in full-step mode, so if you later enable microstepping modes, the current through the coils will be able to exceed this measured full-step current by 40% (1/0.7) on certain steps; please take this into account when using this method to set the current limit. Also, note that you will need to perform this adjustment again if you ever change the logic voltage, Vdd, since the reference voltage that sets the current limit is a function of Vdd.
      

      So, it would appear that in order to put the driver into "single step mode," I must remove the driver board and put it into a test jig (or breadboard) which shorts MS1, MS2, AND MS3 to ground, but otherwise wire up the motor according to this diagram:
      alt text
      but connecting the STEP pin to Vcc on the logic power supply (?) so as to allow a fixed, but continuous, current through a single motor coil, which is what will be measured.

      As to the target current through a single coil that I'll be measuring, I guess it should be (0.7)*1.3=0.91amps?

      andrewA 1 Reply Last reply
      0
      • NeverDieN NeverDie

        @andrew said in CNC PCB milling:

        did you checked the pololu driver configuration from the linked documentation?

        See post immediately above yours.

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

        @neverdie said in CNC PCB milling:

        @andrew said in CNC PCB milling:

        did you checked the pololu driver configuration from the linked documentation?

        See post immediately above yours.

        ok, I thought that you already did it, I told it to you long time ago ;)

        my controller has 0.1ohm Rcs. the steppers are rated to 1.3A, I configured the drivers to 0.9V which limits the stepper's current to 1.125A.

        NeverDieN 1 Reply Last reply
        0
        • NeverDieN NeverDie

          I guess measuring Vref is moot, because jack's stepper motor driver included in the kit (https://www.aliexpress.com/store/product/board/424291_32807192686.html?spm=2114.12010612.0.0.e009a31x1CJ1s) does not have an exposed via hole for measuring Vref.

          So, that leaves the first Pololu method, which is:

          The A4988 supports such active current limiting, and the trimmer potentiometer on the board can be used to set the current limit. One way to set the current limit is to put the driver into full-step mode and measure the current running through a single motor coil while adjusting the current limit potentiometer. This should be done with the motor holding a fixed position (i.e. without clocking the STEP input). Note that the current you are measuring is only 70% of the actual current limit setting, since both coils are always on and limited to this value in full-step mode, so if you later enable microstepping modes, the current through the coils will be able to exceed this measured full-step current by 40% (1/0.7) on certain steps; please take this into account when using this method to set the current limit. Also, note that you will need to perform this adjustment again if you ever change the logic voltage, Vdd, since the reference voltage that sets the current limit is a function of Vdd.
          

          So, it would appear that in order to put the driver into "single step mode," I must remove the driver board and put it into a test jig (or breadboard) which shorts MS1, MS2, AND MS3 to ground, but otherwise wire up the motor according to this diagram:
          alt text
          but connecting the STEP pin to Vcc on the logic power supply (?) so as to allow a fixed, but continuous, current through a single motor coil, which is what will be measured.

          As to the target current through a single coil that I'll be measuring, I guess it should be (0.7)*1.3=0.91amps?

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

          @neverdie no. you don't have to remove the drivers. you have to measure everything in place.
          in the mentioned pololu doc/demonstration it is also noted that the given Vref could be measured on the top of the potentiometer (video 3:15)

          1 Reply Last reply
          1
          • andrewA andrew

            @neverdie said in CNC PCB milling:

            @andrew said in CNC PCB milling:

            did you checked the pololu driver configuration from the linked documentation?

            See post immediately above yours.

            ok, I thought that you already did it, I told it to you long time ago ;)

            my controller has 0.1ohm Rcs. the steppers are rated to 1.3A, I configured the drivers to 0.9V which limits the stepper's current to 1.125A.

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

            @andrew said in CNC PCB milling:

            ok, I thought that you already did it, I told it to you long time ago

            It's done now. The default voltages had been about 0.6v. I just now raised them to 0.9v, same as yours. :)

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

              How many microsteps are being used, anyway? I'm not sure where that's defined. Apparently these drivers support up 1/16 steps, but it might be that larger steps are actually being used (?). If so, then maybe going to smaller steps would help?

              I notice one of the Pololu boards has the potential for doing 1/32 steps: https://www.pololu.com/product/2133
              and might even be drop-in compatible.

              andrewA 1 Reply Last reply
              0
              • NeverDieN NeverDie

                How many microsteps are being used, anyway? I'm not sure where that's defined. Apparently these drivers support up 1/16 steps, but it might be that larger steps are actually being used (?). If so, then maybe going to smaller steps would help?

                I notice one of the Pololu boards has the potential for doing 1/32 steps: https://www.pololu.com/product/2133
                and might even be drop-in compatible.

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

                @neverdie said in CNC PCB milling:

                How many microsteps are being used, anyway? I'm not sure where that's defined. Apparently these drivers support up 1/16 steps, but it might be that fewer are actually being used (?). If so, then maybe going to smaller steps would help?

                I notice one of the Pololu boards has the potential for doing 1/32 steps: https://www.pololu.com/product/2133
                and might even be drop-in compatible.

                this cnc controller board is directly pulls the drivers' MS1,2,3 pins to high, which means that it is "hardcoded" to 1/16 microstep. you really don't need smoother steps than this.

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

                  @andrew Great that you're back. Did you alter your max speed and max acceleration values at all from the defaults? You didn't list them in your earlier list of magic numbers.

                  andrewA 1 Reply Last reply
                  0
                  • NeverDieN NeverDie

                    @andrew Great that you're back. Did you alter your max speed and max acceleration values at all from the defaults? You didn't list them in your earlier list of magic numbers.

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

                    @neverdie I still use my default settings (see below). I re-applied these settings after I flashed the board to grbl 1.1f.
                    to be honest, after I found the right parameters for the PCB milling jobs I did not went further to fine tune the CNC settings, due to the lack of time. maybe later of the year, but currently I'm more than happy with the results.

                    $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=800.000 (x max rate, mm/min)
                    $111=800.000 (y max rate, mm/min)
                    $112=500.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)```
                    NeverDieN 2 Replies Last reply
                    0
                    • andrewA andrew

                      @neverdie I still use my default settings (see below). I re-applied these settings after I flashed the board to grbl 1.1f.
                      to be honest, after I found the right parameters for the PCB milling jobs I did not went further to fine tune the CNC settings, due to the lack of time. maybe later of the year, but currently I'm more than happy with the results.

                      $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=800.000 (x max rate, mm/min)
                      $111=800.000 (y max rate, mm/min)
                      $112=500.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)```
                      NeverDieN Offline
                      NeverDieN Offline
                      NeverDie
                      Hero Member
                      wrote on last edited by NeverDie
                      #378

                      @andrew said in CNC PCB milling:

                      @neverdie I still use my default settings (see below). I re-applied these settings after I flashed the board to grbl 1.1f.
                      to be honest, after I found the right parameters for the PCB milling jobs I did not went further to fine tune the CNC settings, due to the lack of time. maybe later of the year, but currently I'm more than happy with the results.

                      $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=800.000 (x max rate, mm/min)
                      $111=800.000 (y max rate, mm/min)
                      $112=500.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)```
                      

                      Looks like the only difference is that your default max rates for x and y were 800, whereas mine were 5000, and your max rate for z was 500, whereas my default was 800 before I cut it by 50% to 400.

                      In the interest of minimizing differences, I'll adopt your defaults instead.

                      1 Reply Last reply
                      0
                      • andrewA andrew

                        @neverdie said in CNC PCB milling:

                        @andrew Are you planning to provide more detail about how to setup and do double sided PCBs, or is it pretty much RTFM at this point? Just wondering. Your earlier posts were very thorough and helped a lot.

                        did you manage to create double sided PCB jobs in the meantime based on my suggestion and on flatcam's documentation? it is not a hardcore process, let me know if you stuck at a given step.

                        regarding to the mentioned upgrades. I agree with @executivul, it doesn't worth to do that with this machine. feedback from steppers, elevation measuring etc are overkill.

                        it's capabilities are more than enough for very precise pcb milling, if you would like to do much more with it, then a different machine could be better instead. if you have issues with the results, then it is configuration / settings / cnc job issue. if you loose steps, then the given stepper driver is not properly adjusted (did you checked the pololu driver configuration from the linked documentation?) or your tool/spindle speed/cutting depth/feed rate is not good for the given job.

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

                        @andrew said in CNC PCB milling:

                        did you manage to create double sided PCB jobs in the meantime based on my suggestion and on flatcam's documentation? it is not a hardcore process, let me know if you stuck at a given step.

                        Not sure what kind of pins to use for the alignment.

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

                          Even after all this tweaking, the z-axis was off by 0.048mm after the latest set of probing.

                          E andrewA 2 Replies Last reply
                          0
                          • NeverDieN NeverDie

                            Even after all this tweaking, the z-axis was off by 0.048mm after the latest set of probing.

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

                            @neverdie said in CNC PCB milling:

                            Even after all this tweaking, the z-axis was off by 0.048mm after the latest set of probing.

                            What do you mean by "off"? Afaik grbl doesn't have a M48 equivalent command for probe/machine repeatability... So it can't probe the same place automatically. You have to write your own code for that, based on G32.2 command, take a few measurements and see the difference.
                            If you mean across the whole board, depending on the size of the measured area that's not bad at all.

                            1 Reply Last reply
                            0
                            • NeverDieN NeverDie

                              Even after all this tweaking, the z-axis was off by 0.048mm after the latest set of probing.

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

                              @neverdie could you please explain how did you find/measure this? also please let me know the details of the executed job, including the G code generation properties/settings (e.g. feed rate, depth, multiple passes etc.) used in flatcam.

                              NeverDieN 1 Reply Last reply
                              0
                              • andrewA andrew

                                @neverdie could you please explain how did you find/measure this? also please let me know the details of the executed job, including the G code generation properties/settings (e.g. feed rate, depth, multiple passes etc.) used in flatcam.

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

                                @andrew said in CNC PCB milling:

                                could you please explain how did you find/measure this?

                                1. Decided upon an origen. Used Chilipeppr to "run test probe" to find the zero z-height. Zeroed x,y,z at that location.
                                2. Did an autolevel, at 1mm spacing, over a 20x10mm area.
                                3. Following this, returned to x=0, y=0. Ran another test probe. Ideally it would have come back as z=0. Instead, it came back as z=-0.048.

                                So, if at that point I were to actually run g-code with a cutting depth of z=-0.05, it would barely scratch the surface. Somehow during the 1mm autolevel probing, z became uncalibrated. If I were to re-zero z based on the second test probe, it would cut, but the cutting depth wouldn't be uniform.

                                Anyhow, my new rule is that if I come across a situation like the above, I throw out the auto-leveling and start over rather than executing the g-code. Often, the next autoleveling will have less discrepancy by step 3.

                                rmtuckerR andrewA 2 Replies Last reply
                                0
                                • NeverDieN NeverDie

                                  @andrew said in CNC PCB milling:

                                  could you please explain how did you find/measure this?

                                  1. Decided upon an origen. Used Chilipeppr to "run test probe" to find the zero z-height. Zeroed x,y,z at that location.
                                  2. Did an autolevel, at 1mm spacing, over a 20x10mm area.
                                  3. Following this, returned to x=0, y=0. Ran another test probe. Ideally it would have come back as z=0. Instead, it came back as z=-0.048.

                                  So, if at that point I were to actually run g-code with a cutting depth of z=-0.05, it would barely scratch the surface. Somehow during the 1mm autolevel probing, z became uncalibrated. If I were to re-zero z based on the second test probe, it would cut, but the cutting depth wouldn't be uniform.

                                  Anyhow, my new rule is that if I come across a situation like the above, I throw out the auto-leveling and start over rather than executing the g-code. Often, the next autoleveling will have less discrepancy by step 3.

                                  rmtuckerR Offline
                                  rmtuckerR Offline
                                  rmtucker
                                  wrote on last edited by
                                  #384

                                  @neverdie
                                  Maybe run step 1
                                  Then run some g-code but above the job.(for a few mins).
                                  Then run step 3.
                                  This could be an autolevel problem.

                                  NeverDieN 1 Reply Last reply
                                  0
                                  • rmtuckerR rmtucker

                                    @neverdie
                                    Maybe run step 1
                                    Then run some g-code but above the job.(for a few mins).
                                    Then run step 3.
                                    This could be an autolevel problem.

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

                                    @rmtucker said in CNC PCB milling:

                                    Maybe run step 1
                                    Then run some g-code but above the job.(for a few mins).
                                    Then run step 3.

                                    How might that help?

                                    rmtuckerR 1 Reply Last reply
                                    0
                                    • NeverDieN NeverDie

                                      @rmtucker said in CNC PCB milling:

                                      Maybe run step 1
                                      Then run some g-code but above the job.(for a few mins).
                                      Then run step 3.

                                      How might that help?

                                      rmtuckerR Offline
                                      rmtuckerR Offline
                                      rmtucker
                                      wrote on last edited by
                                      #386

                                      @neverdie
                                      What if you have broken .048 off the end of the tool during autolevel?
                                      So run some g-code above the job then re-probe so you know you have not twatted the tool.:relaxed:

                                      NeverDieN 1 Reply Last reply
                                      0
                                      • rmtuckerR rmtucker

                                        @neverdie
                                        What if you have broken .048 off the end of the tool during autolevel?
                                        So run some g-code above the job then re-probe so you know you have not twatted the tool.:relaxed:

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

                                        @rmtucker said in CNC PCB milling:

                                        What if you have broken .048 off the end of the tool during autolevel?

                                        Good point. I'll have a closer look for that the next time it happens.

                                        Also, I'll try repeating the test using a dull bit (which presumably won't break) and see whether it still happens or not.

                                        Thanks!

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

                                          @NeverDie grbl 1.1 probing command is G38.2 Z-10 F25 where Z tells it how low should go before erroring if it doesn't touch and F is the speed.
                                          You should try manually issuig G38, then G92 Z0 to set new Z0 position and then finally G0 Z10 F100 to lift the probe, rinse and repeat without the G92, how repeatable is the reading, does it stay at 10.00?
                                          Then do the air job, or some simple moving (G0 X5 Y5 Z5, G0 X0 Y0 Z10 a few times )and retest manually with G38

                                          LE. The probing command is G38.2, I've edited the post to correct it.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          15

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.0k

                                          Posts


                                          Copyright 2019 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