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

    Incorrect extrusion amount on slow and/or small axis moves

    Scheduled Pinned Locked Moved
    General Discussion
    5
    43
    2.2k
    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.
    • gloomyandyundefined
      gloomyandy @ardenpm
      last edited by

      @ardenpm Wouldn't it be easier just to compute a new feedrate and use it directly (as an F parameter) rather than setting a limit and relying on the firmware to apply it?

      ardenpmundefined 1 Reply Last reply Reply Quote 0
      • ardenpmundefined
        ardenpm @gloomyandy
        last edited by

        @gloomyandy No, because I don't want to limit the E axis to that feedrate, I want it to run at the specified rate but the B axis much slower than normal. Without this the E axis will run up to its limit to try and sync with the short B axis move time. Without doing this I need to slow down the E axis too much.

        deckingmanundefined fcwiltundefined 2 Replies Last reply Reply Quote 0
        • deckingmanundefined
          deckingman @ardenpm
          last edited by

          @ardenpm I see what you are doing but why not keep it simple and just set M203 E300 (to set say 5mm/sec), then do the G1 move and use M203 E3600 (to restore the feedrate value)?

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

          ardenpmundefined 1 Reply Last reply Reply Quote 0
          • ardenpmundefined
            ardenpm @deckingman
            last edited by

            @deckingman Yes, that’s true I could also do that. I’ll need to use the object model to find the current tool to apply it to the right extruder motor so that should be possible. I haven’t confirmed that limiting the extruder instead of the movement axis has the same affect but I would assume it must. I would still set the limit of the extruder though to the feedrate I actually want since otherwise it would just always run at 300 (I have multiple steps at different feedrates in my case). But limiting the extruder is simpler and shouldn’t hit the other minimum speed issue. I’ll definitely give that a go.

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

              @ardenpm You could by-pass using the object model by setting the maximum extrusion rate for all extruders. So for example M203 E300:300:300:300 and then put them all back with M203 E3600:3600:3600:3600.

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

              ardenpmundefined 1 Reply Last reply Reply Quote 0
              • ardenpmundefined
                ardenpm @deckingman
                last edited by

                @deckingman I prefer to restore the feedrates to their previous value rather than a hard coded value when done so if I change my configuration I don't need to hunt for values in my different macros. However that should be pretty straight forward, something like this.

                var defaultSpeed0 = move.extruders[0].speed
                var defaultSpeed1 = move.extruders[1].speed
                var defaultSpeed2 = move.extruders[2].speed
                var defaultSpeed3 = move.extruders[3].speed
                
                M203 E{param.F}
                G1 B{param.B} E{param.B} F{param.F}
                M203 E{var.defaultSpeed0}:{var.defaultSpeed1}:{var.defaultSpeed2}:{var.defaultSpeed3}
                

                Which is definitely still simpler than the first macro I had there. Definitely lots of ways to skin this particular cat.

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

                  @ardenpm said in Incorrect extrusion amount on slow and/or small axis moves:

                  @gloomyandy No, because I don't want to limit the E axis to that feedrate, I want it to run at the specified rate but the B axis much slower than normal. Without this the E axis will run up to its limit to try and sync with the short B axis move time. Without doing this I need to slow down the E axis too much.

                  If B and E are not kept in sync how do you see that working? Would E just continue to run after B is done?

                  Thanks.

                  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

                  ardenpmundefined 1 Reply Last reply Reply Quote 0
                  • ardenpmundefined
                    ardenpm @fcwilt
                    last edited by

                    If B and E are not kept in sync how do you see that working? Would E just continue to run after B is done?

                    @fcwilt That's actually the issue, it does attempt to keep them in sync and it thinks on the extruder side it has enough headroom to run it all the way up to my configured maximum speed of 3600mm/m for extruders, where as my extruders can handle more like only 300mm/m without skipping.

                    The reason the extruders are configured to allow a speed much higher than they can actually extrude is because of retractions, which happen at a much faster speed than extrusions. So by limiting the extruder temporarily to the limit for practical extrusion it should force the movement axis to slow down further to say in sync.

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

                      @ardenpm said in Incorrect extrusion amount on slow and/or small axis moves:

                      If B and E are not kept in sync how do you see that working? Would E just continue to run after B is done?

                      @fcwilt That's actually the issue, it does attempt to keep them in sync and it thinks on the extruder side it has enough headroom to run it all the way up to my configured maximum speed of 3600mm/m for extruders, where as my extruders can handle more like only 300mm/m without skipping.

                      The reason the extruders are configured to allow a speed much higher than they can actually extrude is because of retractions, which happen at a much faster speed than extrusions. So by limiting the extruder temporarily to the limit for practical extrusion it should force the movement axis to slow down further to say in sync.

                      Does your slicer have a place you can enter code during a retraction? Some of them do.

                      That would solve the speed problem as you could set the extruder speed to the max for extrusion and in the retraction handler up the speed during retraction and then put it back to normal.

                      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 ardenpmundefined 2 Replies Last reply Reply Quote 0
                      • tfjieldundefined
                        tfjield @fcwilt
                        last edited by

                        @fcwilt Or he could use firmware retraction.

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

                          @tfjield said in Incorrect extrusion amount on slow and/or small axis moves:

                          @fcwilt Or he could use firmware retraction.

                          How does that handle the speed issue?

                          Thanks.

                          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 0
                          • tfjieldundefined
                            tfjield @fcwilt
                            last edited by

                            @fcwilt Oh, you're right, I was thinking backwards. I forgot that he wants to limit extrusion to below the max, not retraction.

                            1 Reply Last reply Reply Quote 1
                            • ardenpmundefined
                              ardenpm @fcwilt
                              last edited by

                              Does your slicer have a place you can enter code during a retraction? Some of them do.

                              @fcwilt I don't believe PrusaSlicer has custom G-code for retraction.

                              That would solve the speed problem as you could set the extruder speed to the max for extrusion and in the retraction handler up the speed during retraction and then put it back to normal.

                              I don't really see doing the above as too big a problem in any case since it's only for these specific priming moves which already have a fairly large amount of Gcode scripting around them, so it's just a few extra lines.

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