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

    Extruders Not Obeying G1 Feed Rate

    Scheduled Pinned Locked Moved
    General Discussion
    5
    13
    752
    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.
    • tfjieldundefined
      tfjield
      last edited by tfjield

      Hi! I'm running RRF 3.4.1 on a Duet 2 WiFi v1.05 with a DueX5 v0.11.

      I've seen this problem a couple of times, but let me describe the most recent time, because it's the most fresh in my memory.

      I ran out of filament, and I tried to use a replace filament macro. But when it ran, it tried to move the extruders really fast, way faster than the feed rate that was supplied to G1. I tried to extrude via the PanelDue and the first time, same thing, way too fast. Then I changed the rate from 10 to 20 then back to 10 and extruded again and it worked fine. I'll show it below, but the exact command was G1 E-100 F300. This should have taken 20 seconds, but extruder zipped for 1 or 2 seconds, then was done.

      My thought is that somehow something is happening that causes the Duet to ignore the feed rate specified in G1.

      Because my printer manufacturer (Modix) only has config files for RRF 3.3, I created the following file, my filament-error.g file:

      M25				; first, pause the print as pre-RRF 3.3 did
      
      if {param.D == 0}		; now call the right pre-RRF 3.4 subroutines.
      	M98 P"filament-error0.g"
      elif {param.D == 1}
      	M98 P"filament-error1.g"
      

      Here is filament-error0.g:

      M300 S1111 P222					; beep
      M83            					; relative extruder moves
      M300 S1111 P222					; beep
      G1 E-5 F800  					; retract 5mm of filament
      G91            					; relative positioning
      
      if {(move.axes[2].machinePosition) < (move.axes[2].max - 10)} 	; check if there's sufficient space to raise head
      	M291 P{"Raising head to...  " ^ move.axes[2].machinePosition+5}  R"Raising head" S0 T3	; message
      	G1 Z+5 F3000 		; move Z up a bit
      else
      	M291 P{"Cannot raise head- insufficient space  " ^ move.axes[2].machinePosition ^ " : " ^ (move.axes[2].max - 10) ^ "."} R"Raising head" S0 T3
      	G4 S3 		; wait for popup to display
      
      G90			; absolute moves
      G1 X1 Y1 F6000  		; move quickly to the front left
      M300 S1111 P333	; beep
      M106 S0				; set fans to 0
      T-1 P0					; deselect tools
      
      M291 R"Attention!" P"Filament Sensor Raised An Error On E0" S1	; message
      

      My machine paused as expected. I then ran the 02_Filament Change macro:

      ; Macro file for Duet WiFi
      ; Generated by Modix - Version 3.3 Macro B
      
      M300 S1111 P333		; beep
      M25			; pause the print
      M291 R"Filament Change" P"Please wait for the temperature to reach the target" 
      T R1 		 	; select previous tool
      M116 S3			; wait for hotend temperatures to stabilise
      M291 S2 R"Unload filament" P"Hotend will now retract 100mm. Pull out the rest of the filament by hand. Press OK to start the retraction"
      M83			; relative extruder moves
      G1 E-100 F300 		; retract 100mm of filament
      G4 P0			; wait for the moves to finish       
      M300 S1111 P222		; beep 
      M291 S2 R"Load filament" P"Load filament into the filament sensor and feed it all the way into the extruder. Press OK once completed"
      M300 S1222 P222		; beep
      M291 S0 P"Extruding - Please wait" 			
      G1 E120 F300   		; extrude 120mm of filament
      G1 E20 F120   		; extrude 20mm of filament
      G1 E-3 F360   		; retract 3mm of filament
      G4 P0			; wait for the moves to finish 
      M300 S1111 P333		; beep
      M291 R"Attention !" P"It is recommended to turn off the heaters if the pause is expected to last a long time" T46
      

      The hot end heated up, and it told me it was going to retract. Then I hit OK to retract the filament, and it tried to retract, but REALLY FAST, and not enough.

      A video to the event is here: Fast Retraction. Turn the sound on to hear the steppers. Again, this should have taken 20 seconds (100 mm / 300 mm/min = 1/3 min) but it takes just a second or two, so it's not like the steppers are slipping. If they were, they should have made noise for 20 seconds.

      Any idea why this is happening? I'm guessing it's something stupid, but looking at the macro, I see no idea why G1 E-100 F300 doesn't work as expected. Could it have something to do with calling M25 when the print is already paused?

      Thank you!
      02_Filament Change.g (Added .g to the filename to make the dumb forum happy.)
      filament-error.g
      filament-error0.g
      config.g

      fcwiltundefined deckingmanundefined 2 Replies Last reply Reply Quote 0
      • fcwiltundefined
        fcwilt @tfjield
        last edited by

        @tfjield

        A quick check on my printer running 3.4.1 doing the follow works as expected:

        M118 S"START"
        M83
        G1 E50 F300
        M400
        M118 S"DONE"
        

        The console reports 10 seconds between the two messages.

        So something that simple works.

        Frederick

        Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

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

          This post is deleted!
          1 Reply Last reply Reply Quote 0
          • tfjieldundefined
            tfjield
            last edited by

            @fcwilt Thank you. I expected that would work fine. My print has been running as expected for about 36 hours, now, and the only weirdness is with this macro.

            fcwiltundefined 1 Reply Last reply Reply Quote 0
            • fcwiltundefined
              fcwilt @tfjield
              last edited by

              @tfjield said in Extruders Not Obeying G1 Feed Rate:

              @fcwilt Thank you. I expected that would work fine. My print has been running as expected for about 36 hours, now, and the only weirdness is with this macro.

              Well, then I will have to take a close look at your code and see if I can spot anything.

              Frederick

              Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

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

                Do you happen to have increased flow rate percentage set? Just a thought.

                Z-Bot CoreXY Build | Thingiverse Profile

                tfjieldundefined 2 Replies Last reply Reply Quote 0
                • tfjieldundefined
                  tfjield @Phaedrux
                  last edited by

                  @phaedrux Nope, just set to 100%. My long print is almost done, and I'm going to try to duplicate the problem and gather more info.

                  1 Reply Last reply Reply Quote 1
                  • tfjieldundefined
                    tfjield @Phaedrux
                    last edited by tfjield

                    @phaedrux @fcwilt
                    Here's an update. After my print finished today I ran a test print and I triggered several filament errors. It turns out that even when manually operating the extruder it does the same thing: it tries to retract and extrude at an extremely high rate. This happens the first couple of times I try to retract / extrude, but then it starts working correctly. It starts working correctly after trying to retract / extrude a couple(?) of times. And here's the kicker: after it starts working correctly, it keeps working correctly on subsequent trigger faults!

                    I realize that when I upgraded from 3.3 to 3.4, I didn't fully understand the ramifications of the change, and I didn't really understand the macros. I dug in a bit more and I've updated them. Please ignore the previous files. And please let me know if you see anything wrong in these.

                    Now, here's my filament-error.g:

                    ; filament-error.g
                    ; called on any filament error
                    M25							; first, pause the print
                    M118 P0 S"Print paused due to filament error." L2	; message
                    G4 P1							; dwell for 1 ms
                    
                    M291 R"Attention!" P"Filament Sensor raised an error for E" ^ param.D ^ "." S1	; message
                    

                    And since M25 will call pause.g, here it is:

                    ; pause.g
                    ; called when a print from SD card is paused
                    M300 S1111 P222						; beep
                    M117 "Print is being paused."				; message
                    G4 P1							; dwell 1ms
                    M83            						; relative extruder moves
                    G1 E-5 F800  						; retract 5mm of filament
                    G91							; relative moves
                    if {(move.axes[2].machinePosition) < (move.axes[2].max - 10)}	; check if there's sufficient space to raise head
                    	M291 P{"Raising head to...  " ^ move.axes[2].machinePosition+5}  R"Raising head" S0 T3	; message
                    	G1 Z+5 F3000 					; move Z up a bit
                    else
                    	M291 P{"Cannot raise head- insufficient space  " ^ move.axes[2].machinePosition ^ " : " ^ (move.axes[2].max - 10) ^ "."} R"Raising head" S0 T3
                    	G4 S3 						; wait for popup to display
                    
                    G90							; absolute moves
                    G1 X1 Y1 F6000  					; move quickly to the front left
                    M300 S1111 P333						; beep
                    M106 S0							; set fans to 0
                    T-1 P0							; deselect tools
                    

                    So now at this point, either running the 02_Filament Change macro or just trying to extrude / retract manually results in the extruder running extremely fast.

                    Any ideas? Anything I should try? I'm thinking perhaps clear pause.g and see what happens then...

                    It looks like I can enable g-code debugging via USB with M111 P3 S1. Think looking at that during the filament error would be helpful?

                    fcwiltundefined 1 Reply Last reply Reply Quote 0
                    • fcwiltundefined
                      fcwilt @tfjield
                      last edited by

                      @tfjield

                      I haven't spotted the problem so far.

                      Just FYI there is no real need in your pause file to check the position just do the G91 G1 Z5 and it either will move the 5mm or less. No point in telling the end user about something that cannot be helped.

                      Will keep looking.

                      Frederick

                      Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                      tfjieldundefined 1 Reply Last reply Reply Quote 1
                      • tfjieldundefined
                        tfjield @fcwilt
                        last edited by

                        @fcwilt Thanks for that!

                        tfjieldundefined 1 Reply Last reply Reply Quote 0
                        • tfjieldundefined
                          tfjield @tfjield
                          last edited by tfjield

                          @fcwilt @Phaedrux
                          Just an update, I've found that the issue isn't just when there's a filament error. If I just home the machine, turn on the hot end, and then try to retract to change the filament, I often have the same issue: the extruder races to try to extract. Hitting retract again and it usually runs at the normal rate.

                          When this print is done, I'll see if this happens from a cold start so it can be duplicated.

                          1 Reply Last reply Reply Quote 1
                          • Diamondbackundefined
                            Diamondback
                            last edited by

                            Sounds like the same issue as here: https://forum.duet3d.com/topic/26496/firmware-3-4b7-firmware-retraction-bug/41?_=1655723442382

                            I'm still battling this at random times during macro use. Once it happens inside a macro, even manual extrusion doesn't work correctly anymore.
                            Sometimes a toolchange fixes it (not always though), but it have never seen this during an actual print.

                            tfjieldundefined 1 Reply Last reply Reply Quote 0
                            • tfjieldundefined
                              tfjield @Diamondback
                              last edited by

                              @diamondback Looks like it! Thanks for making the connection. Yeah, I've never seen it during a real print, either. But yesterday I had booted the machine and I was changing the filament without using any macros and it did it then, too. When I get back home tonight I'll see if I can reproduce it without macros.

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