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

    Stepper motors grinding, banging and layers shifting

    Scheduled Pinned Locked Moved Solved
    Tuning and tweaking
    3
    6
    257
    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.
    • Phrayzurundefined
      Phrayzur
      last edited by

      I'm using a Duet 3 Mini 5+ board with firmware and DWC version: 3.5.0-rc.2 and Duet WiFi Server: 2.1beta4 on a cartesian frame.

      The problem I'm having is my stepper motors are grinding and banging and I'm having probelems with layers shifting. I think it's related to my Creality stepper motor settings. So I was going to start there. They're all Nema 17s. I'm using 2 x 42-40s on my X and Y axis, 1 x 42-40 on my extruder and 2 x 42-34 on my Z axis. I'd link to the datasheet if I knew where to look. I've found so many and there's so much contradiction between them that I didn't know which are applicable and which aren't. So, sorry for that. My printer was originally a CR-10S and that's where the stepper motors came from.

      I've spent the last couple of days trying to figure out exactly how to set the values for these motors for Stealthchop, etc. I've hit a wall and have given up sorting it out. On the tuning page, it seems like you need to know what you're looking for already to put the values in. I have no idea what to test for or how to test. I looked at the EMF calculator page but I couldn't tell you what to do with those values or what they represent.

      I have to be honest. I really like not having to flash the firmware everytime I'd like to make a change, but I'm hitting so many walls when it comes to configuring this board that it's beyond frustrating. The major problem I have is that most of the guides/instructions/discussions I can find are full of non-standard terms, acronyms, slang and written with an assumption of a very high level of knowledge. I'm finding it impossible to sort out things out without a herculean effort. The basic instructions are great, but I found I was out of my depth really quickly.

      Here's my config.g:

      ; Configuration file for RepRapFirmware on Duet 3 Mini 5+ WiFi
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v3.5.0-rc.2+1 on Fri Jan 05 2024 09:31:31 GMT-0600 (Central Standard Time)
      
      ; General
      M550 P"CR-10S Duet 3 Mini 5+" ; set hostname
      
      ; Accessories
      M575 P1 S0 B57600 ; configure PanelDue support
      
      ; Network
      M552 S1 ; configure WiFi adapter
      M586 P0 S1 ; configure HTTP
      
      ; Smart Drivers
      M569 P0.0 S1 D3 V91 ; driver 0.0 goes forwards (X axis)
      M569 P0.1 S0 D3 V91 ; driver 0.1 goes backwards (Y axis)
      M569 P0.2 S1 D3 V18 ; driver 0.2 goes forwards (Z axis)
      M569 P0.3 S1 D3 V18 ; driver 0.3 goes forwards (Z axis)
      M569 P0.4 S0 D3 V75 ; driver 0.4 goes backwards (extruder 0)
      
      ; Motor Idle Current Reduction
      M906 I30 ; set motor current idle factor
      M84 S30 ; set motor current idle timeout
      
      ; Axes
      M584 X0.0 Y0.1 Z0.2:0.3 ; set axis mapping
      M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation
      M906 X800 Y800 Z800 ; set axis driver currents
      M92 X80.91 Y80 Z403 ; configure steps per mm
      M208 X0:303 Y0:300 Z0:370 ; set minimum and maximum axis limits
      M566 X480 Y480 Z144 ; set maximum instantaneous speed changes (mm/min)
      M203 X12000 Y12000 Z1200 ; set maximum speeds (mm/min)
      M201 X1000 Y1000 Z100 ; set accelerations (mm/s^2)
      
      ; Extruders
      M584 E0.4 ; set extruder mapping
      M350 E16 I1 ; configure microstepping with interpolation
      M906 E800 ; set extruder driver currents
      M92 E403.841 ; configure steps per mm
      M566 E300 ; set maximum instantaneous speed changes (mm/min)
      M203 E3000 ; set maximum speeds (mm/min)
      M201 E5000 ; set accelerations (mm/s^2)
      
      ; Kinematics
      M669 K0 ; configure Cartesian kinematics
      
      ; Probes
      M558 K0 P9 C"io3.in" H5 F1500:60 T6000 R0.1 A30 S0.01 ; configure BLTouch probe via slot #0
      M950 S0 C"io3.out" ; create servo #0 for BLtouch
      G31 K0 P25 X46.3 Y7.8 Z2.027 ; Z probe parameters
      
      ; Endstops
      M574 X1 P"io5.in" S1 ; configure X axis endstop
      M574 Y1 P"io6.in" S1 ; configure Y axis endstop
      M574 Z1 S2 ; configure Z axis endstop
      
      ; Mesh Bed Compensation
      ; These coordinates are the probe locations. Not the hotend. Just tell it where you want it to probe
      M557 X46.5:302 Y7.68:299 P8:8 
      
      ; Sensors
      M308 S0 P"temp0" Y"thermistor" A"Bed Temp" T91785 B4571 ; configure sensor 0 as thermistor on pin temp0
      M308 S1 P"temp1" Y"thermistor" A"Hotend Temp" T90904 B4505 C5.391309e-9 ; configure sensor #1
      
      ; Heaters
      M950 H0 C"out0" T0 ; create Bed Heater #0
      M143 H0 P0 T0 C0 S120 A0 ; configure monitor #0 for Bed Heater #0
      M307 H0 R0.101 K0.178:0.000 D0.46 E1.35 S1.00 B0 ; configure model of Bed Heater #0
      M950 H1 C"out1" T1 ; create Hotend Heater #1
      M143 H1 P0 T1 C0 S280 A0 ; configure monitor #0 for Hotend Heater #1
      M307 H1 R1.181 K0.290:0.005 D6.74 E1.35 S1.00 B0 V11.6 ; configure model of Hotend Heater #1
      
      ; Heated beds
      M140 P0 H0 ; configure heated bed #0
      
      ; Fans
      M950 F0 C"out3" Q100 ; create Part Cooling Fan on pin out3 and set its frequency
      M106 P0 C"Part Cooling Fan" S0 H-1 ; set fan 0 name and value. Thermostatic control is turned off
      M950 F1 C"out4" ; create Hotend Fan on pin out4 and set its frequency
      M106 P1 C"Hotend Fan" S1 H1:0 T45 ; set Hotend Fan name and value. Thermostatic control is turned on
      M950 F2 C"out5" ; create Case Fan on pin out5 and set its frequency
      M106 P2 C"Case Fan" S1 H-1 ; set Case Fan name and value. Thermostatic control is turned off
      
      ; Tools
      M563 P0 S"V6 Volcano" D0 H1 F0 ; create tool #0
      M568 P0 R0 S0 ; set initial tool #0 active and standby temperatures to 0C
      
      ; Miscellaneous
      G29 S1 ; load heightmap.csv
      M501 ; load saved parameters from non-volatile memory
      T0 ; select first tool
      
      ; Custom settings
      M280 P0 S160 ; Alarm Release and Push-Pin UP```
      

      And here's my config-override.g:

      ; config-override.g file generated in response to M500 at 2024-01-27 13:57
      ; This is a system-generated file - do not edit
      ; Heater model parameters
      M307 H0 R0.101 K0.178:0.000 D0.46 E1.35 S1.00 B0
      M307 H1 R1.181 K0.290:0.005 D6.74 E1.35 S1.00 B0 V11.6
      ; Z probe parameters
      G31 K0 P25 X46.3 Y7.8 Z2.027
      ; Workplace coordinates
      G10 L2 P1 X0.00 Y0.00 Z0.00
      G10 L2 P2 X0.00 Y0.00 Z0.00
      G10 L2 P3 X0.00 Y0.00 Z0.00
      G10 L2 P4 X0.00 Y0.00 Z0.00
      G10 L2 P5 X0.00 Y0.00 Z0.00
      G10 L2 P6 X0.00 Y0.00 Z0.00
      G10 L2 P7 X0.00 Y0.00 Z0.00
      G10 L2 P8 X0.00 Y0.00 Z0.00
      G10 L2 P9 X0.00 Y0.00 Z0.00
      

      Any help you can offer would be greatly appreciated.

      droftartsundefined 1 Reply Last reply Reply Quote 0
      • droftartsundefined
        droftarts administrators @Phrayzur
        last edited by

        @Phrayzur Is there a particular point in a print where you hear the grinding and banging?

        I think the banging is to do with your changeover speed, set by the V parameter in M569. If I set my Mini 5+ using the same motor settings as you, and then check the settings using M569 P[driver number]:

        M569 P0.0
        Drive 0 runs forwards, active low enable, timing fast, mode stealthChop, ccr 0x00053, toff 3, tblank 0, tpwmthrs 91 (101.9 mm/sec), pwmScaleSum 11, pwmScaleAuto 0, pwmOfsAuto 36, pwmGradAuto 14, pos 8
        M569 P0.1
        Drive 1 runs in reverse, active low enable, timing fast, mode stealthChop, ccr 0x00053, toff 3, tblank 0, tpwmthrs 91 (103.0 mm/sec), pwmScaleSum 11, pwmScaleAuto 0, pwmOfsAuto 36, pwmGradAuto 14, pos 8
        M569 P0.2
        Drive 2 runs forwards, active low enable, timing fast, mode stealthChop, ccr 0x00053, toff 3, tblank 0, tpwmthrs 18 (103.4 mm/sec), pwmScaleSum 9, pwmScaleAuto 0, pwmOfsAuto 36, pwmGradAuto 14, pos 8
        M569 P0.3
        Drive 3 runs forwards, active low enable, timing fast, mode stealthChop, ccr 0x00053, toff 3, tblank 0, tpwmthrs 18 (103.2 mm/sec), pwmScaleSum 4, pwmScaleAuto 0, pwmOfsAuto 36, pwmGradAuto 14, pos 8
        M569 P0.4
        Drive 4 runs in reverse, active low enable, timing fast, mode stealthChop, ccr 0x00053, toff 3, tblank 0, tpwmthrs 75 (24.8 mm/sec), pwmScaleSum 9, pwmScaleAuto 0, pwmOfsAuto 36, pwmGradAuto 14, pos 8
        

        The variable to look at here is the 'tpwmthrs' and the speed setting after it. This is the speed it changes from stealthChop to spreadCycle. You have most of these set at 100mm/second. You have top speed (M203) for X and Y set at 12000mm/min, which is 200mm/second. Do you run at this speed, maybe for travel moves? At these speeds, you will get a 'bang' as it changes from stealthChop to spreadCycle, which can cause layer shifting.

        Our general advice is to run in spreadCycle all the time; you will experience fewer missed steps, particularly at high speed, though the motors will be noisier. You can set the motors to stealthChop when stationary so they are quieter, by setting the changeover speed to be lower than the 'jerk' speed (maximum instantaneous speed changes) in M566; yours are set to 480mm/minute, or 8mm/second.
        For this, set M569 with a high V value, eg:

        M569 P0.0 S1 D3 V4000
        M569 P0.0
        Drive 0 runs forwards, active low enable, timing fast, mode stealthChop, ccr 0x00053, toff 3, tblank 0, tpwmthrs 4000 (2.3 mm/sec), pwmScaleSum 11, pwmScaleAuto 0, pwmOfsAuto 36, pwmGradAuto 14, pos 8
        

        Now the changeover is at 2.3mm/sec. So when stationary they will be in stealthchop, and when moving in spreadcycle.

        Alternatively, if you want to run stealthchop all the time, for quieter operation at the expense of top speed and less torque, set V to zero, eg:

        M569 P0.0 S1 D3 V0
        M569 P0.0
        Drive 0 runs forwards, active low enable, timing fast, mode stealthChop, ccr 0x00053, toff 3, tblank 0, tpwmthrs 0 (inf mm/sec), pwmScaleSum 11, pwmScaleAuto 0, pwmOfsAuto 36, pwmGradAuto 14, pos 8
        

        inf = infinite mm/sec means it will never change over to spreadcycle.

        It would be good to find the motor specification. As far as I can tell, Creality use the same stepper motors for all their printers, at least people selling spare motors show this: https://www.3djake.uk/creality-3d-printers-spare-parts/stepper-motor

        However, there's not much info on the motor specifications. If you can see any other part number on your motors, apart form 42-40 and 42-34, that may be useful. About the only thing I can find is that the 42-40 appears to be a 1A motor, and the 42-34 is a 0.8A motor. I would imagine they are quite high inductance motors, which limits their speed and may make them noisier; see https://docs.duet3d.com/en/User_manual/Connecting_hardware/Motors_choosing#inductance

        In summary, I think your motors have high inductance, so will not run well at high speed, and will produce more noise. That, coupled with a high changeover speed between stealthchop and spreadcycle, are probably causing most of the noise, bangs and layer shifting.

        Ian

        Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

        Phrayzurundefined 1 Reply Last reply Reply Quote 2
        • Phaedruxundefined
          Phaedrux Moderator
          last edited by

          How does it run without the stealthchop parameters?

          Z-Bot CoreXY Build | Thingiverse Profile

          Phrayzurundefined 1 Reply Last reply Reply Quote 0
          • droftartsundefined
            droftarts administrators @Phrayzur
            last edited by

            @Phrayzur Is there a particular point in a print where you hear the grinding and banging?

            I think the banging is to do with your changeover speed, set by the V parameter in M569. If I set my Mini 5+ using the same motor settings as you, and then check the settings using M569 P[driver number]:

            M569 P0.0
            Drive 0 runs forwards, active low enable, timing fast, mode stealthChop, ccr 0x00053, toff 3, tblank 0, tpwmthrs 91 (101.9 mm/sec), pwmScaleSum 11, pwmScaleAuto 0, pwmOfsAuto 36, pwmGradAuto 14, pos 8
            M569 P0.1
            Drive 1 runs in reverse, active low enable, timing fast, mode stealthChop, ccr 0x00053, toff 3, tblank 0, tpwmthrs 91 (103.0 mm/sec), pwmScaleSum 11, pwmScaleAuto 0, pwmOfsAuto 36, pwmGradAuto 14, pos 8
            M569 P0.2
            Drive 2 runs forwards, active low enable, timing fast, mode stealthChop, ccr 0x00053, toff 3, tblank 0, tpwmthrs 18 (103.4 mm/sec), pwmScaleSum 9, pwmScaleAuto 0, pwmOfsAuto 36, pwmGradAuto 14, pos 8
            M569 P0.3
            Drive 3 runs forwards, active low enable, timing fast, mode stealthChop, ccr 0x00053, toff 3, tblank 0, tpwmthrs 18 (103.2 mm/sec), pwmScaleSum 4, pwmScaleAuto 0, pwmOfsAuto 36, pwmGradAuto 14, pos 8
            M569 P0.4
            Drive 4 runs in reverse, active low enable, timing fast, mode stealthChop, ccr 0x00053, toff 3, tblank 0, tpwmthrs 75 (24.8 mm/sec), pwmScaleSum 9, pwmScaleAuto 0, pwmOfsAuto 36, pwmGradAuto 14, pos 8
            

            The variable to look at here is the 'tpwmthrs' and the speed setting after it. This is the speed it changes from stealthChop to spreadCycle. You have most of these set at 100mm/second. You have top speed (M203) for X and Y set at 12000mm/min, which is 200mm/second. Do you run at this speed, maybe for travel moves? At these speeds, you will get a 'bang' as it changes from stealthChop to spreadCycle, which can cause layer shifting.

            Our general advice is to run in spreadCycle all the time; you will experience fewer missed steps, particularly at high speed, though the motors will be noisier. You can set the motors to stealthChop when stationary so they are quieter, by setting the changeover speed to be lower than the 'jerk' speed (maximum instantaneous speed changes) in M566; yours are set to 480mm/minute, or 8mm/second.
            For this, set M569 with a high V value, eg:

            M569 P0.0 S1 D3 V4000
            M569 P0.0
            Drive 0 runs forwards, active low enable, timing fast, mode stealthChop, ccr 0x00053, toff 3, tblank 0, tpwmthrs 4000 (2.3 mm/sec), pwmScaleSum 11, pwmScaleAuto 0, pwmOfsAuto 36, pwmGradAuto 14, pos 8
            

            Now the changeover is at 2.3mm/sec. So when stationary they will be in stealthchop, and when moving in spreadcycle.

            Alternatively, if you want to run stealthchop all the time, for quieter operation at the expense of top speed and less torque, set V to zero, eg:

            M569 P0.0 S1 D3 V0
            M569 P0.0
            Drive 0 runs forwards, active low enable, timing fast, mode stealthChop, ccr 0x00053, toff 3, tblank 0, tpwmthrs 0 (inf mm/sec), pwmScaleSum 11, pwmScaleAuto 0, pwmOfsAuto 36, pwmGradAuto 14, pos 8
            

            inf = infinite mm/sec means it will never change over to spreadcycle.

            It would be good to find the motor specification. As far as I can tell, Creality use the same stepper motors for all their printers, at least people selling spare motors show this: https://www.3djake.uk/creality-3d-printers-spare-parts/stepper-motor

            However, there's not much info on the motor specifications. If you can see any other part number on your motors, apart form 42-40 and 42-34, that may be useful. About the only thing I can find is that the 42-40 appears to be a 1A motor, and the 42-34 is a 0.8A motor. I would imagine they are quite high inductance motors, which limits their speed and may make them noisier; see https://docs.duet3d.com/en/User_manual/Connecting_hardware/Motors_choosing#inductance

            In summary, I think your motors have high inductance, so will not run well at high speed, and will produce more noise. That, coupled with a high changeover speed between stealthchop and spreadcycle, are probably causing most of the noise, bangs and layer shifting.

            Ian

            Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

            Phrayzurundefined 1 Reply Last reply Reply Quote 2
            • Phrayzurundefined
              Phrayzur @Phaedrux
              last edited by

              @Phaedrux They sound like they've got sand in them.

              1 Reply Last reply Reply Quote 0
              • Phrayzurundefined
                Phrayzur @droftarts
                last edited by

                @droftarts I think I understand. That's huge help. I'm going to look into some new motors with lower inductance. Thanks for explaining it!

                droftartsundefined 1 Reply Last reply Reply Quote 1
                • Phrayzurundefined Phrayzur marked this topic as a question
                • Phrayzurundefined Phrayzur has marked this topic as solved
                • Phrayzurundefined Phrayzur has marked this topic as unsolved
                • Phrayzurundefined Phrayzur has marked this topic as solved
                • droftartsundefined
                  droftarts administrators @Phrayzur
                  last edited by

                  @Phrayzur try the settings I suggested before buying motors. And keep the speed down.

                  Ian

                  Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

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