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

    Jerk Control M566

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    9
    45
    3.0k
    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.
    • kroybalundefined
      kroybal
      last edited by

      Using a Duet 3 MB6HC with RR Firmware 3.1.1 (2020-05-19b2)

      when it comes to tweaking the jerk control settings, my machine has a heavy gantry running an IDEX setup so it runs pretty slow.

      My config.g declares my instantaneous speed change as such

      M566 X2 Y2 Z10 U2 E10:10
      

      using the command prompt passing through a M566 command returns:
      Maximum jerk rates: X6.0 Y6.0 Z10.0 U6.0 E10.0:10, jerk policy :0

      the 2's have become 6's...

      Is there a minimum value for this command? I am experiencing layer shifting printing CFNylon which I have not experienced while using ABS. I have monitored the print job and adapted a Z hop and no tool changes for the print to prevent collision and losing steps.

      Even pausing the print, homing the motors and resuming it goes back to printing shifted. Really bizarre and hard to diagnose, but I am pretty sure it lies in settings.

      note: even using the same settings that have worked for me prior do not work for me now? 🙄

      deckingmanundefined 1 Reply Last reply Reply Quote 0
      • PCRundefined
        PCR
        last edited by

        what motors are you using and which currents. best is to post the config.g

        kroybalundefined 1 Reply Last reply Reply Quote 0
        • Phaedruxundefined
          Phaedrux Moderator
          last edited by

          https://duet3d.dozuki.com/Wiki/Gcode?revisionid=HEAD#Section_M566_Set_allowable_instantaneous_speed_change

          Note: The minimum jerk speed supported in as at firmware version 2.02RC3 is 0.1mm/sec.

          0.1mm/sec = 6mm/min

          If even that low of a jerk value is too much, perhaps the acceleration value should be lowered as well?

          You can also try jerk policy 1 (M566 P1) Though I wonder if that might actually make it worse.

          The default jerk policy is 0, which replicates the behaviour of earlier versions of RRF (jerk is only applied between two printing moves, or between two travel moves, and only if they both involve XY movement or neither does). Changing the jerk policy to 1 allows jerk to be applied between any pair of moves.

          I second what @PCR says. Your motor currents should be ~80% of rated max. Also post your config.g.

          Z-Bot CoreXY Build | Thingiverse Profile

          1 Reply Last reply Reply Quote 0
          • kroybalundefined
            kroybal @PCR
            last edited by

            @PCR said in Jerk Control M566:

            what motors are you using and which currents. best is to post the config.g

            It is difficult to identify which motors are exactly being used I would imagine NEMA 17's but the rated current is not obvious. They're pretty well mounted and covered with a water cooling system.

            @Phaedrux

            0.1mm/sec = 6mm/min

            If even that low of a jerk value is too much, perhaps the acceleration value should be lowered as well?

            You can also try jerk policy 1 (M566 P1) Though I wonder if that might actually make it worse.

            understood I can try the policy 1 ... I'll be more reserved with my accelerations and current rating just observe the effects of changing those parameters.

            Consider my config.g, note that I have yet to implement any changes to the following:

            ; Configuration file for Duet 3 (firmware version 3)
            ; executed by the firmware on start-up
            ;
            ; generated by RepRapFirmware Configuration Tool v3.1.4 on Fri Sep 04 2020 17:16:08 GMT-0600 (Mountain Daylight Time)
            
            ; Axis Definitions====>>>>>
            ; X = Left (on X-axis) Extruder U = Right (on X-axis) Extruder /// Y = Y-Axis /// Z = Z-Axis  
            
            ; ======={ Drives }========================================	
            ; 0.x corresponds to main board /// 20.x corresponds to tooloard-1 /// 21.x corresponds to toolboard-2
            ; X
            M569 P20.0 S0                                   ; physical drive 0.0 goes forwards
            M569 P21.0 S0									; physical drive 0.1 goes forwards
            ; Y
            M569 P0.2 S0                                    ; physical drive 0.2 goes forwards
            M569 P0.3 S1									; physical drive 0.3 goes backwards 
            ; Z
            M569 P0.4 S0                                    ; physical drive 0.4 goes backwards
            M569 P0.5 S0									; physical drive 0.5 goes backwards
            
            ; ======={ Extruders }=====================================
            M569 P0.0 S1                                    ; physical drive 1.0 goes forwards
            M569 P0.1 S1                                    ; physical drive 2.0 goes forwards
            M584 X20.0 Y0.2:0.3 Z0.4:0.5 U21.0 E0.0:0.1     ; set drive mapping
            
            ; ======={ Movement }======================================
            M350 X16 Y16 Z16 U16 E16:16 								; configure microstepping with interpolation ... 1/16 of a step for each motor
            
            M92 X80.872 Y80.306 Z1641.704 U80.872 E483.57:480.23		; set steps per mm
            ;M92 X81.387 Y80.500 Z1606.43 U80.904 E483.57:480.23		; Old Calibration 10/17
            ;M92 X81.387 Y80.500 Z1606.43 U80.904 E484.7:484.7			;===========>	Previous calibration of the extruders had steps/mm set to 484.7 for both.
            
            M566 X6 Y6 Z10 U6 E10:10									; set maximum instantaneous speed changes (mm/min) [JERK CONTROL]
            M203 X8000.00 Y8000.00 Z600.00 U8000.00 E8000:00:8000.00	; set maximum speeds (mm/min)
            M201 X500.00 Y500.00 Z20.00 U500.00  		 				; set accelerations (mm/s^2)
            M906 X700 Y700 Z700 E700:700 U700 I30						; set motor currents (mA) and motor idle factor in percent
            M84 S20                                         			; Set idle timeout
            
            ; ======={ Axis Limits }===================================
            M208 X0 Y0 Z0 U0 S1                                    		 ; set axis minima
            ;M208 X579 Y437 Z640 U582.165 S0                      	     ; set axis maxima
            M208 X579 Y437 Z640 U582.58 S0                      	     ; set axis maxima //// Update U maximum portionately (<-- subract to move left
            
            ; ======={ Endstops }======================================
            M574 X1 S1 P"!20.io0.in"							;X-Min Homes Left carriage as Endstop index 0
            M574 Y1 S1 P"!io5.in"								;Y-Max Homes Y as endstop index 1
            M574 Z1 S1 P"!io3.in+!io4.in"						;Z-Min Homes Z (bed) as endstop index 2
            M574 U2 S1 P"!21.io0.in"							;U-Max Homes Right carriage as Endstop index 3
            
            ; ======={ Z-Probe }=======================================
            M558 P0 H5 F120 T6000                           ; disable Z probe but set dive height, probe speed and travel speed
            M557 X15:439 Y15:439 S20                        ; define mesh grid
            ;M558 P2 H5 F120 T6000							; enable modulated IR Z probe sensor, dive height, probe speed and travel speed
            
            ; ======={ Heaters }=======================================
            ; Bed>>>
            M308 S0 P"temp0" Y"thermistor" T100000 B4138 A"Bed"    ; configure sensor 0 as thermocouple temp0 pin
            M950 H0 C"out1" T0                              ; create bed heater output on out1 and map it to sensor 0
            M307 H0 A66.6 C305.2 D0.3 V24.3 B0                    ; enable bang-bang mode for the bed heater and set PWM limit
            ;M307 H0 B0
            M140 H0                                         ; map heated bed to heater 0
            M143 H0 S150                                    ; set temperature limit for heater 0 to 150C
            
            ; Left nozzle>>>
            M308 S1 P"spi.cs0" Y"rtdmax31865" A"PT100 (L)"  ; configure sensor 1 as thermocouple via CS pin spi.cs0
            M950 H1 C"out0" T1                              ; create nozzle heater output on 1.out0 and map it to sensor 1
            M307 H1 A797.1 C281.0 D4.8 V24.3 B0             ; disable bang-bang mode for heater  and set PWM limit
            M143 H1 S510									; set temperature limit for heater 1 to 510C
            ;LAST TUNE M303 H1 P1.0 S135 >>>> M307 H1 A863.6 C276.4 C4.9 V24.3
            
            ; Right nozzle>>>
            M308 S2 P"spi.cs1" Y"rtdmax31865" A"PT100 (R)"  ; configure sensor 2 as thermocouple via CS pin spi.cs1
            M950 H2 C"out3" T2                              ; create nozzle heater output on 2.out0 and map it to sensor 2
            M307 H2 A797.1 C281.0 D4.8 V24.3 B0             ; disable bang-bang mode for heater  and set PWM limit
            M143 H2 S510									; set temperature limit for heater 2 to 510C
            ;LAST TUNE M303 H2 P1.0 S150 >>>> M307 H2 A933.8 C307.9 D5.6 V24.3
            
            ; Chamber>>>
            M308 S3 P"temp1" Y"thermistor" T100000 B4138 A"Chamber" ; configure sensor 1 as thermocouple via temp1 pin
            M950 H3 C"out2" T3                              		; create chamber heater output on out2 and map it to sensor 1
            ; ================Summer tuned
            ;M307 H3 A14.2 C66.7 D18.7 V24.3 B0                      ; Summer tuned chamber heater
            ; ================Winter tuned
            M307 H3 A17.8 C79.1 D30.8 V24.3 B0						; winter tuned chamber heater
            M141 H3                                         		; map chamber to heater 1
            M570 H3 S65
            
            ; ======={ Fans }==========================================
            M950 F0 C"out4" Q500                            ; create fan 0 on pin out4 and set its frequency
            M106 P0 S1 H-1                                  ; set fan 0 value. Thermostatic control is turned off
            M950 F1 C"out7" Q500                           ; create fan 1 on pin out7 and set its frequency
            M106 P1 S1 H-1                                 ; set fan 1 value. Thermostatic control is turned off
            
            ; ======={ Tools}==========================================
            
            
            M563 P0 S"LEFT" D0 H1 							; define tool 0
            G10 P0 X-80 Y-10 Z0 U-80                    ; set tool 0 axis offsets
            G10 P0 R0 S0
            
            M563 P1 S"RIGHT" D1 X3 H2			            ; define tool 1 --- Map to U to X-Axis
            G10 P1 X502.58 Y-11.17 Z0.09 U-80                 ; BASELINE set tool 1 axis offsets
            G10 P1 R0 S0
            
            M563 P2 S"Chamber" H3							; added for Simplify3d compatibility
            G10 P2 R0 S0
            
            ; ========{ Filament Monitoring }==========================
            ;M591 D0.0 P5 C"io1.in" R60:120 E3.0 S1			;Driver 0.0, laser sensor, pinname, Tol. 10-120%, 5.0mm detection, 0=disabled 1=enabled ===== RIGHT EXTRUDER
            ;M591 D0.1 P5 C"io2.in" R1:120 E5.0 S0			;Driver 0.1, laser sensor, pinname, Tol. 10-120%, 5.0mm detection, 0=disabled 1=enabled ===== LEFT EXTRUDER
            
            M591 D0 P5 C"io1.in" R5:400 E5.0 S1
            M591 D1 P5 C"io2.in" R10:400 E5.0 S1
            
            ; ========={ Miscellaneous }===============================
            M575 P1 S1 B57600                               ; enable support for PanelDue
            
            
            
            engikeneerundefined 1 Reply Last reply Reply Quote 0
            • engikeneerundefined
              engikeneer @kroybal
              last edited by

              @kroybal well there's your problem...

              M906 X700 Y700 Z700 E700:700 U700
              

              700ma seems a very low motor current to be running (particularly if you've got a big heavy gantry!).
              You really ought to find out what motors you've got and what their rated current is. Then set the motor currents to 70-80% of that.

              E3D TC with D3Mini and Toolboards.
              Home-built CoreXY, Duet Wifi, Chimera direct drive, 2x BMG, 300x300x300 build volume
              i3 clone with a bunch of mods

              kroybalundefined 1 Reply Last reply Reply Quote 0
              • deckingmanundefined
                deckingman @kroybal
                last edited by deckingman

                @kroybal said in Jerk Control M566:

                ............, but I am pretty sure it lies in settings.
                .........................
                note: even using the same settings that have worked for me prior do not work for me now?...............

                Those two statements are contradictory so only one of them can be true.

                What sort of moving mass do you think you have? Also, why do you think the solution lies in reducing the instantaneous speed change threshold to a value where segmented arcs would be printed at less than 6mm/sec?

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

                kroybalundefined 1 Reply Last reply Reply Quote 0
                • kroybalundefined
                  kroybal @engikeneer
                  last edited by

                  @engikeneer

                  700ma seems a very low motor current to be running (particularly if you've got a big heavy gantry!).
                  You really ought to find out what motors you've got and what their rated current is. Then set the motor currents to 70-80% of that.

                  Sure thing. I do not know for myself, but the person that sold my company the printer told us that the motors were 800mA rated. It is a heavy gantry but each axis has 2 motors connected. I dropped my x-axis and y-axis motors down to 600mA and they're working great still. My Z-axis appears to have larger motors for each lead screw so I left it at the 700mA. I will look deeper into it, though the decision isn't solely mine to make.

                  Phaedruxundefined 1 Reply Last reply Reply Quote 0
                  • kroybalundefined
                    kroybal @deckingman
                    last edited by kroybal

                    @deckingman said in Jerk Control M566:

                    @kroybal said in Jerk Control M566:

                    ............, but I am pretty sure it lies in settings.
                    .........................
                    note: even using the same settings that have worked for me prior do not work for me now?...............

                    Those two statements are contradictory so only one of them can be true.

                    What sort of moving mass do you think you have? Also, why do you think the solution lies in reducing the instantaneous speed change threshold to a value where segmented arcs would be printed at less than 6mm/sec?

                    I felt looking into jerk control could be a possible fix due to the fact that one of my curved prints were very noticeably line segments even more so than you would like coming from a large format printer. My analogy would be that the parts appeared like graphics in a nintendo 64 video game, but we would like to see at the least 2001 Xbox graphics.

                    Edit: increasing jerk control parameters consistently resulted in skipped steps and huge and/or subtle layer shifts.

                    Alex.crundefined dc42undefined 2 Replies Last reply Reply Quote 0
                    • Alex.crundefined
                      Alex.cr @kroybal
                      last edited by

                      @kroybal said in Jerk Control M566:

                      I felt looking into jerk control could be a possible fix due to the fact that one of my curved prints were very noticeably line segments even more so than you would like coming from a large format printer. My analogy would be that the parts appeared like graphics in a nintendo 64 video game, but we would like to see at the least 2001 Xbox graphics.

                      @kroybal If you model has the line segments(ie a low resolution model) modifying the jerk settings will not make those go away.

                      That can only be fixed by using a high res model.

                      Voron2.4/Duet3 SBC+6HC+3HC+1LC+1HCL(x2) - Delta/Duet2 Wifi - CubePro/Duet2 Wifi+Duex5 - Laser/Duet3 Mini5+ - Cel Robox - U̶p̶3̶0̶0̶+/D̶u̶e̶t̶3̶ ̶6̶H̶C̶+̶LC1̶ - F̶T̶-̶5̶/̶D̶u̶e̶t̶2̶ ̶W̶i̶f̶i̶ - S̶o̶l̶i̶d̶o̶o̶d̶l̶e̶

                      1 Reply Last reply Reply Quote 0
                      • Phaedruxundefined
                        Phaedrux Moderator @kroybal
                        last edited by

                        @kroybal said in Jerk Control M566:

                        I do not know for myself, but the person that sold my company the printer told us that the motors were 800mA rated.

                        That may be the case but it would be good to know the specs of the motors if possible. There are some truly awful motors for 3d printers being used in 3d printers because the designers just didn't know any better.

                        You can experiment with higher currents and monitor the temps. Anything up to 80c over a long duration is probably alright. If you're able to increase the current and the temp stays well below that then the motors were likely rated for much higher.

                        Getting a model number off the motor would be ideal.

                        Z-Bot CoreXY Build | Thingiverse Profile

                        kroybalundefined 1 Reply Last reply Reply Quote 0
                        • dc42undefined
                          dc42 administrators @kroybal
                          last edited by

                          @kroybal said in Jerk Control M566:

                          ... one of my curved prints were very noticeably line segments even more so than you would like coming from a large format printer.

                          That is almost certainly caused by how the model is described in the STL file. In STL, curves are represented as segments. It's up to the person who designed or exported the model to STL to decide how small those segments are.

                          Duet WiFi hardware designer and firmware engineer
                          Please do not ask me for Duet support via PM or email, use the forum
                          http://www.escher3d.com, https://miscsolutions.wordpress.com

                          kroybalundefined 1 Reply Last reply Reply Quote 0
                          • botundefined
                            bot
                            last edited by

                            I've noticed that with very low "jerk" rates, the facets of the model are much more visible. This is likely due to the extrudate "bulging" as the print head slows down to the jerk rate. In the case of OP, this is 0.1 mm/sec.

                            This is why I'm very glad to see progress being made soon towards a better alternative for instantaneous speed changes. The limitation is significant in preventing faster printing around curves, while slowing down enough on sharp corners.

                            *not actually a robot

                            kroybalundefined dc42undefined 2 Replies Last reply Reply Quote 0
                            • kroybalundefined
                              kroybal @Phaedrux
                              last edited by

                              @Phaedrux I have been incrementing the currents up and monitoring their temperatures (~50C in 40C hot chamber). I have them set to 1A but looking up lists of motors that they might be suggest they could have a rated current of around 2.8A. I will remain conserved with it but before I take the thing apart I called in a request for the support team to see if I can obtain those part numbers without having to take apart the water cooling and gantry.

                              1 Reply Last reply Reply Quote 0
                              • kroybalundefined
                                kroybal @dc42
                                last edited by

                                @dc42 said in Jerk Control M566:

                                @kroybal said in Jerk Control M566:

                                ... one of my curved prints were very noticeably line segments even more so than you would like coming from a large format printer.

                                That is almost certainly caused by how the model is described in the STL file. In STL, curves are represented as segments. It's up to the person who designed or exported the model to STL to decide how small those segments are.

                                Interesting, I sort of played around with that idea but I have results that do not support that statement:

                                IMG_1774.jpg IMG_1775.jpg

                                above are images of the same STL file printed on different printers using the same parameters in Simplify3D. The difference is night and day. There is visible segments and layer shifting. I am frustrated with how difficult this has been to diagnose what could cause such lackluster quality, but I am determined to get to the bottom of this.

                                1 Reply Last reply Reply Quote 0
                                • kroybalundefined
                                  kroybal @bot
                                  last edited by

                                  @bot said in Jerk Control M566:

                                  I've noticed that with very low "jerk" rates, the facets of the model are much more visible. This is likely due to the extrudate "bulging" as the print head slows down to the jerk rate. In the case of OP, this is 0.1 mm/sec.

                                  I think that could be the case, consider the images in my response to @dc42

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

                                    Can you provide some photos and details on the printer itself so we can see what you're dealing with? Maybe a video of it printing?

                                    Z-Bot CoreXY Build | Thingiverse Profile

                                    kroybalundefined 1 Reply Last reply Reply Quote 0
                                    • kroybalundefined
                                      kroybal @Phaedrux
                                      last edited by

                                      @Phaedrux Sure, I am running an Aon-M1 legacy printer. Just for sake of preparation does this forum allow videos or is it best to upload to to YouTube first?

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

                                        MP4 should work but there are size limits. So putting a video on YouTube or something would probably be best.

                                        Z-Bot CoreXY Build | Thingiverse Profile

                                        kroybalundefined 1 Reply Last reply Reply Quote 0
                                        • kroybalundefined
                                          kroybal @Phaedrux
                                          last edited by kroybal

                                          EDIT:
                                          @Phaedrux okay, so I caught it subtly layer shifting as it tends to do. I will try to upload the video after lunch and give you an example. Usually after the bottom solid layers it starts gradually shifting, an analogy would be if you place a book flat on a table and press down firmly on the cover and apply sheer force to it causing the pages (in our case layers) to skew. In theory after catching a layer shift pausing the print and homing the toolhead should fix it (if it were to have mechanically skipped a step). Instead it typically returns to the same layer-shifted location as before and resuming the print resumes the layer shifting. This time it didn't even do that. Mind you, it has more amperage, higher jerk rates and accelerations this time around. In the video it resumed the print with no precision. Leading me to believe low acc. and low jerk rates are our better bet.

                                          stay tuned.

                                          1 Reply Last reply Reply Quote 0
                                          • MikeSundefined
                                            MikeS
                                            last edited by MikeS

                                            At my eyes it seems that with so low jerk values the printhead is stopping at every STL triangle and the extruder is overextruding there due to low speed and higher temperature on the already layed plastic. I would try to increase the jerk and print speed. These result are impossibile to be caused but too high jerk. You can clearely see the mesh triangles and still the model seems to be really low on poly count.
                                            Just my 2 cents.

                                            Note: My jerk is at 900 in a medium size corexy with directdrive extruder so i think your values are really too low also with taking account of a heavy toolhead.

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