Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Steps per mm keep changing

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    8
    41
    2.7k
    Loading More Posts
    • 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.
    • akhilnexundefined
      akhilnex
      last edited by

      [Steps per mm] keeps changing

      Hello,
      I have built my own 3D printer and installed a Duet 3 to control the extruder and axis steppers.

      My issue is that the error on the distance traveled is variable and keeps changing. So far I have played with different settings (microsteps, current, speed, acceleration, etc.) on the config.g file. The code is shown below:

      ; Drives
      M569 P0.0 S1 ; physical drive 0.0 goes forwards
      M569 P0.5 S1 ; physical drive 0.5 goes forwards
      M569 P0.4 S1 ; physical drive 0.4 goes forwards
      M569 P0.2 S0 ; physical drive 0.2 goes backwards
      M569 P0.1 S0 ; physical drive 0.1 goes backwards
      M569 P0.3 S0 ; physical drive 0.3 goes backwards
      M584 X0.0 Y0.5 Z0.4 E0.2:0.1:0.3 ; set drive mapping
      M350 X32 Y128 Z128 I1 ; configure microstepping with interpolation
      M350 E128:128:128 I0 ; configure microstepping with interpolation
      M92 X6400.00 Y5120.00 Z5120.00 E1207.22:1207.22:1207.22 ; set steps per mm
      M566 X100.00 Y200.00 Z12.00 E200.00:200.00:200.00 ; set maximum instantaneous speed changes (mm/min)
      M203 X400.00 Y400.00 Z18.00 E1200.00:1200.00:1200.00 ; set maximum speeds (mm/min)
      M201 X20.00 Y50.00 Z20.00 E50.00:50.00:50.00 ; set accelerations (mm/s^2)
      M906 X2500 Y2500 Z2500 E2100:2100:2100 I20 ; set motor currents (mA) and motor idle factor in per cent
      M84 S15 ; Set idle timeout

      I tried to change several things by far and all the drives have the same issue for which I have calibrated steps per mm setting to move 10 mm. I recorded the actual moved with respect to requested for one of the extruder motors in the table below:

      Capture.PNG

      I am not sure what is causing it and will greatly appreciate your help!

      theruttmeisterundefined JoergS5undefined 2 Replies Last reply Reply Quote 0
      • Vetiundefined
        Veti
        last edited by

        @akhilnex said in Steps per mm keep changing:

        M350 X32 Y128 Z128 I1 ; configure microstepping with interpolation
        M92 X6400.00 Y5120.00 Z5120.00 E1207.22:1207.22:1207.22 ; set steps per mm

        can you give more info on what setup you have?

        your steps/mm seem very high.

        akhilnexundefined 1 Reply Last reply Reply Quote 0
        • akhilnexundefined
          akhilnex @Veti
          last edited by

          @Veti I have NEMA 23 1.8 Degree 200 step/rev steppers on x,y and z axis. Each stepper drives a 2005 lead screw that moves the gantry in x,y and z axis.

          My extruder steppers are NEMA 17 1.8 Degree 200 step/rev steppers. They are mounted with a 7.5mm hob nut to drive 1.73mm filament.

          All steppers are directly connected to the stepper drivers on the Duet 3 board. Please let me know if you need more information.

          Thanks!

          Vetiundefined 1 Reply Last reply Reply Quote 0
          • Vetiundefined
            Veti @akhilnex
            last edited by

            @akhilnex said in Steps per mm keep changing:

            I have NEMA 23 1.8 Degree 200 step/rev steppers on x,y and z axis. Each stepper drives a 2005 lead screw that moves the gantry in x,y and z axis.

            5mm lead with 200 steps would be 640 steps/mm at x16 interpolation.
            see https://blog.prusaprinters.org/calculator_3416/
            at x32 that would be 1280
            at x128 5120

            see if you did not enable corexy mode by accident.

            post your entire config.g

            akhilnexundefined 1 Reply Last reply Reply Quote 0
            • theruttmeisterundefined
              theruttmeister @akhilnex
              last edited by

              @akhilnex said in Steps per mm keep changing:

              [Steps per mm] keeps changing

              Hello,
              I have built my own 3D printer and installed a Duet 3 to control the extruder and axis steppers.

              My issue is that the error on the distance traveled is variable and keeps changing. So far I have played with different settings (microsteps, current, speed, acceleration, etc.) on the config.g file. The code is shown below:

              ; Drives
              M569 P0.0 S1 ; physical drive 0.0 goes forwards
              M569 P0.5 S1 ; physical drive 0.5 goes forwards
              M569 P0.4 S1 ; physical drive 0.4 goes forwards
              M569 P0.2 S0 ; physical drive 0.2 goes backwards
              M569 P0.1 S0 ; physical drive 0.1 goes backwards
              M569 P0.3 S0 ; physical drive 0.3 goes backwards
              M584 X0.0 Y0.5 Z0.4 E0.2:0.1:0.3 ; set drive mapping

              This is odd... I believe that the drives should be in the format 0,1,2,3. Not 0.1,0.2,0.3 etc.

              M350 X32 Y128 Z128 I1 ; configure microstepping with interpolation
              M350 E128:128:128 I0 ; configure microstepping with interpolation
              M92 X6400.00 Y5120.00 Z5120.00 E1207.22:1207.22:1207.22 ; set steps per mm

              You say that your axies are all running that same leadscrew... but your settings don't match that. Your Y and Z match what you say, your X is off.

              Off the top of my head, 2005 (5mm pitch?) leadscrew, 200 step motor, that should give you an M92 value of 1280. For X,Y and Z. At least if you were using identical microstepping (using the X32 value). Obviously you are not, but they should still be multiples. (And note that running really high microstepping doesn't get you any higher practical resolution, the motors just can't do that. And with interpolation turned on you are already getting the smoothing/noise benefits of x256 microstepping anyway).
              I would expect/suggest the following:
              M350 X16 Y16 Z16 I1
              M92 X640 Y640 Z640 (etc etc)

              Your acceleration, max speed and motor current all also seem... off. But without knowing more about your setup I can't tell if that's important.
              Although the M203 values are just... waaaaay off. If you can't get more than 400mm/min, your machine is very very heavy with tiny tiny motors (and the high microstepping isnt helping there!*). And your E values are off in the other direction (although that's less important).
              *If you run really high microstepping you will run into the limits of the CPU of the Duet, there's a limit to how fast it can sent pulses to the drivers.

              M566 X100.00 Y200.00 Z12.00 E200.00:200.00:200.00 ; set maximum instantaneous speed changes (mm/min)
              M203 X400.00 Y400.00 Z18.00 E1200.00:1200.00:1200.00 ; set maximum speeds (mm/min)
              M201 X20.00 Y50.00 Z20.00 E50.00:50.00:50.00 ; set accelerations (mm/s^2)
              M906 X2500 Y2500 Z2500 E2100:2100:2100 I20 ; set motor currents (mA) and motor idle factor in per cent
              M84 S15 ; Set idle timeout

              I tried to change several things by far and all the drives have the same issue for which I have calibrated steps per mm setting to move 10 mm. I recorded the actual moved with respect to requested for one of the extruder motors in the table below:

              Capture.PNG

              I am not sure what is causing it and will greatly appreciate your help!

              The fact that your results are not consistent makes me think that either your methodology is flawed or is that drive 0.1 vs 1 thing screwing up everything else.

              And I realise you weren't asking about machine design... but consider using belts to drive your screws, there's no way any FDM printer can actually make use of the kind of resolution you have and you have sacrificed speed in the process. A 3:1 or 5:1 stage would get you back some of that speed and still keep more resolution that you can see.

              Isolate, substitute, verify.

              akhilnexundefined 1 Reply Last reply Reply Quote 0
              • Vetiundefined
                Veti
                last edited by

                @theruttmeister said in Steps per mm keep changing:

                This is odd... I believe that the drives should be in the format 0,1,2,3. Not 0.1,0.2,0.3 etc.

                0.X notation is for the duet 3

                theruttmeisterundefined 1 Reply Last reply Reply Quote 0
                • theruttmeisterundefined
                  theruttmeister @Veti
                  last edited by

                  @Veti said in Steps per mm keep changing:

                  @theruttmeister said in Steps per mm keep changing:

                  This is odd... I believe that the drives should be in the format 0,1,2,3. Not 0.1,0.2,0.3 etc.

                  0.X notation is for the duet 3

                  Well...
                  That's... obtuse.

                  I hesitate to ask why on earth that came to be.

                  Isolate, substitute, verify.

                  Vetiundefined 1 Reply Last reply Reply Quote 0
                  • Vetiundefined
                    Veti @theruttmeister
                    last edited by

                    @theruttmeister

                    because you need to address canbus extension. thats the number before the dot.
                    so ie 121.0

                    theruttmeisterundefined 1 Reply Last reply Reply Quote 1
                    • theruttmeisterundefined
                      theruttmeister @Veti
                      last edited by

                      @Veti

                      Ok, an otherwise incoherent burst of irrational OCD rage averted 😉

                      Someone might want to add that to the wiki though.

                      https://duet3d.dozuki.com/Wiki/Gcode#Section_M569_Set_motor_driver_direction_enable_polarity_and_step_pulse_timing

                      Makes no mention of such a thing. And a 3 minute browse of the Duet 3 pages also fails to mention it.

                      But then I'm one of those people poking around and grumbling about the fact that the SCARA guide is now out of date due to 3.0 changes.

                      (I know, I know, its a wiki, if I really want it fixed I should go fix it).

                      I assume that just single digit entries still work the same? 0 or 1 working the same as 0.0 and 0.1?

                      Isolate, substitute, verify.

                      deckingmanundefined A Former User? 2 Replies Last reply Reply Quote 0
                      • deckingmanundefined
                        deckingman @theruttmeister
                        last edited by

                        @theruttmeister The Can address for the main board is optional. That is to say, the preceding "0." Is not needed if one only uses a duet 3 main board. If no preceding board number is specified, then the firmware will default to assuming the driver referred to is on the main board. So 0.0 and just 0 would both refer to driver zero on the main board.
                        Personally, I prefer to always explicitly define values which would otherwise have a default setting - just in case a firmware change altered the default behaviour. Also, because I use 3 expansion boards where the board number is required, it makes config.g more legible if all drivers are referred to using board.driver format.

                        Ian
                        https://somei3deas.wordpress.com/
                        https://www.youtube.com/@deckingman

                        1 Reply Last reply Reply Quote 0
                        • A Former User?
                          A Former User @theruttmeister
                          last edited by

                          @theruttmeister said in Steps per mm keep changing:

                          Makes no mention of such a thing. And a 3 minute browse of the Duet 3 pages also fails to mention it.

                          only needed when using expansion boards, so its covered there.

                          1 Reply Last reply Reply Quote 1
                          • JoergS5undefined
                            JoergS5 @akhilnex
                            last edited by JoergS5

                            @akhilnex said in Steps per mm keep changing:

                            M350 X32 Y128 Z128 I1 ; configure microstepping with interpolation
                            M350 E128:128:128 I0 ; configure microstepping with interpolation
                            M92 X6400.00 Y5120.00 Z5120.00 E1207.22:1207.22:1207.22 ; set steps per mm

                            The settings don't fit for a 2005 spindle.

                            The calculation is steps/rotation * microsteps / mm/rotation,

                            • i.e. 200 * 32 / 5 = 1280 for X
                            • 200 * 128 / 5 = 5120 for Y and Z
                              so the M92 for X is wrong.

                            You can also check the M122 and check for hiccups whether you have lost steps.
                            Your M203 setting of speed is very low (only about 6 mm/s), this is also strange.

                            But your question was about the extruder:
                            E128 with I0 without interpolation could mean too high step rate (3 extruders, plus xyz steps), but this would show up in the hiccup reporting of M122. Speed for extruder is maximum 20 mm/s for each extruder, and 1200 steps/mm meaning 24 kHz for every extruder, total 72 kHz. And I would check the current for the Nema 17 steppers, whether 2100 mA is 50 to 80% of the RMS current in the datasheet.

                            I read an intersting article yesterday https://www.geckodrive.com/support/step-motor-basics/accuracy-and-resolution.html about accuracy of steppers. The linearity of steppers of microsteps varies by stepper models. A high microstepping doesn't mean high accuracy. Imho a high ratio gear is a better idea if you want to achieve a high precision of the extruders.

                            1 Reply Last reply Reply Quote 1
                            • akhilnexundefined
                              akhilnex
                              last edited by

                              Gentlemen,

                              I have now taken a bunch of pictures to clear things up and I apologize for little information past evening. Let me start by explaining the setup in a more detailed manner. The entire CNC/3D printer is an experimental build and I had been running the CNC (X,Y,Z) portion of it originally through another chipset and external drivers for steppers with good results and accuracy.
                              The reason I changed to Duet 3 was to make a machine that can also 3D print and take advantage of being a CNC mill when needed.

                              stepspermmtable.PNG

                              This is based on the reprap configurator tool:
                              reprap motor config.png

                              Pictures below show the entire build and the controller with dual Z-axis (that I plan to manually change to based on either I am using CNC mill or 3D print function)
                              xyz axis.PNG

                              The picture below shows the 3 filaments mounted on a tool board with NEMA 17 motors. The filament runs through a 7.5 mm hob nut and to the hot end (hot end never tested still working on steppers):

                              Extruder and hotend.PNG

                              What I have tried so far?

                              • Changed the microstepping to 16x, 32x, 128x with and without interpolation with same results.

                              • Changed motor current in hopes to reduce any back EMF that may be causing deviation in steps per mm

                              • Played with steps per mm, acceleration, max speed, current etc. to see if it makes any difference.

                              So far I have deviation in all drives that is off by a known amount and I have been wondering if there was a possibility to use a multiplying factor based on deviation that I have been noticing.

                              Please find the config.g file attached. I may have tweaked a few things.

                              config.g

                              1 Reply Last reply Reply Quote 0
                              • akhilnexundefined
                                akhilnex @Veti
                                last edited by

                                @Veti Thanks. I checked and I am using the cartesian type. Also I have posted the config.g file in my reply to the main thread.

                                1 Reply Last reply Reply Quote 0
                                • akhilnexundefined
                                  akhilnex @theruttmeister
                                  last edited by

                                  @theruttmeister said in Steps per mm keep changing:

                                  You say that your axies are all running that same leadscrew... but your settings don't match that. Your Y and Z match what you say, your X is off.

                                  @theruttmeister you are right and I forgot to mention past evening that I installed a gear reducer (5:1) to run the heavy Y axis gantry.

                                  1 Reply Last reply Reply Quote 0
                                  • Vetiundefined
                                    Veti
                                    last edited by

                                    those are some beefy stepper motors. can you post the specs for them?

                                    akhilnexundefined 1 Reply Last reply Reply Quote 0
                                    • akhilnexundefined
                                      akhilnex @Veti
                                      last edited by

                                      @Veti

                                      NEMA 17: https://www.omc-stepperonline.com/nema-17-bipolar-1-8deg-65ncm-92oz-in-2-1a-3-36v-42x42x60mm-4-wires-it.html

                                      NEMA 23: https://www.omc-stepperonline.com/nema-23-bipolar-3nm-425oz-in-4-2a-57x57x114mm-4-wires-stepper-motor-cnc.html

                                      Specification table is on the second tab. I didn't find a torque curve or any performance graph though.

                                      Vetiundefined 1 Reply Last reply Reply Quote 0
                                      • Vetiundefined
                                        Veti @akhilnex
                                        last edited by

                                        @akhilnex

                                        you should aim for about 75% of the rated current.

                                        so around 3150 for the nema23.

                                        and stay with x16 with interpolation for now.
                                        going high puts unnecessary load on the cpu.

                                        akhilnexundefined 1 Reply Last reply Reply Quote 1
                                        • akhilnexundefined
                                          akhilnex @Veti
                                          last edited by

                                          @Veti I have made the changes to 16x and the deviation is still present. Although the amount of deviation is slightly different for requested [actual] readouts: 50 [ 48.5 mm], 100 [102 mm], 150 [155 mm], 200 [210 mm], 250 [265 mm], 300 [317.5]. It seems like the pattern changed but the amount exceeding follows a similar trend starting with low deviation and increasing at 2.5 mm increments as the the requested distance goes up.new reprap 16x.PNG config (1).g

                                          JoergS5undefined 1 Reply Last reply Reply Quote 0
                                          • JoergS5undefined
                                            JoergS5 @akhilnex
                                            last edited by JoergS5

                                            @akhilnex please be aware that 1:5 gears are often 1:5.18 gears (exactly 1: 5+2/11 = 1: 5.181818). The datasheet will tell you.

                                            akhilnexundefined 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA