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

    [3.6.0-beta.3+1] Extruder stall detection

    Scheduled Pinned Locked Moved Unsolved
    Beta Firmware
    3
    30
    1.4k
    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.
    • dc42undefined
      dc42 administrators @Leonard03
      last edited by

      @Leonard03 said in [3.6.0-beta.3+1] Extruder stall detection:

      In my setup I use virtual extruder so I can use different filament configurations per MMU slot.

      Thu usual approach would be to use M563 to define a separate tool for each filament slot. Tools can share extruders.

      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

      Leonard03undefined 1 Reply Last reply Reply Quote 0
      • Leonard03undefined
        Leonard03 @dc42
        last edited by

        @dc42 that is exactly my setup

        M584 X0														; set drive mapping for X axis
        M584 Y1														; set drive mapping for Y axis
        M584 Z2:4													; set drive mapping for Z axis (dual independent)
        if global.MMUmode = true
        	M584 E3:3:3:3:3											; set drive mapping for virtual extruders
        	M584 U5													; set drive mapping for U axis (MMU selector)
        	M584 V6													; set drive mapping for V axis (MMU pulley)
        	M584 W7 R1 S1											; set drive mapping for W axis (MMU idler)
        else
        	M584 E3													; set drive mapping for extruder
        

        and

        ; Tools
        if global.MMUmode = false
        	M563 P0 D0 H1 F0										; define tool 0
        	G10 P0 X0 Y0 Z0											; set tool 0 axis offsets
        	M568 P0 R0 S0 A0										; set initial tool 0 active and standby temperatures to 0C
        
        elif global.MMUmode = true
        	M563 P0 D0 H1 F0										; define tool 0
        	G10 P0 X0 Y0 Z0											; set tool 0 axis offsets
        	M568 P0 R0 S0 A0										; set initial tool 0 active and standby temperatures to 0C
        
        	M563 P1 D1 H1 F0										; define tool 1
        	G10 P1 X0 Y0 Z0											; set tool 1 axis offsets
        	M568 P1 R0 S0 A0										; set initial tool 1 active and standby temperatures to 0C
        
        	M563 P2 D2 H1 F0										; define tool 2
        	G10 P2 X0 Y0 Z0											; set tool 2 axis offsets
        	M568 P2 R0 S0 A0										; set initial tool 2 active and standby temperatures to 0C
        
        	M563 P3 D3 H1 F0										; define tool 3
        	G10 P3 X0 Y0 Z0											; set tool 3 axis offsets
        	M568 P3 R0 S0 A0										; set initial tool 3 active and standby temperatures to 0C
        
        	M563 P4 D4 H1 F0										; define tool 4
        	G10 P4 X0 Y0 Z0											; set tool 4 axis offsets
        	M568 P4 R0 S0 A0										; set initial tool 4 active and standby temperatures to 0C
        
        

        Those are from my config. But for some reason, sharing the extruder between tools messes something up 😑

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

          @Leonard03 it looks like you have set up every tool has its own extruder. Is that really the case, or do they all use a common extruder? Or do you have a single common extruder close to the hot end, and an individual extruder for each filament spool to feed filament into the MMU?

          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

          Leonard03undefined 1 Reply Last reply Reply Quote 0
          • Leonard03undefined
            Leonard03 @dc42
            last edited by Leonard03

            @dc42 The MMU is basically a multiplexer. It has no extruders assigned to it. Just moving 3 axis (UVW) to send filament from the selected slot (defined as a tool) to the extruder. It feeds filaments from 0-4 to the same direct dirve extruder.
            After that tool change, it disengage the filament and the extruder goes to print with the loaded filament.
            I can get away defining only one extruder with the M584. In this case, everything works as expected, but the downside is that i can assign only one filament config to all MMU slots.

            @dc42 said in [3.6.0-beta.3+1] Extruder stall detection:

            it looks like you have set up every tool has its own extruder.

            I think so. Every tool has its own extruder, but all extruders are using the same driver (3) and the same physical extruder

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

              @Leonard03 said in [3.6.0-beta.3+1] Extruder stall detection:

              I can get away defining only one extruder with the M584. In this case, everything works as expected, but the downside is that i can assign only one filament config to all MMU slots.

              No, you can define multiple tools using the same extruder and each tool can have a different filament configuration.

              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

              Leonard03undefined 1 Reply Last reply Reply Quote 0
              • Leonard03undefined
                Leonard03 @dc42
                last edited by Leonard03

                @dc42 I am really sorry for the dumb question.. but how to do this?
                Seems like filament configurations are assigned per extruder, not per tool.
                I know that this topic is getting all over the place and I really don't want bother you or to waste your time. Please let me explain what I tried after seeing the problem with virtual extruders, what works and what not:

                From config.g, I will skip other bits (like initial temperatures and offsets because I don't change them so they are irrelevant here)
                My actual setup is this:

                M584 E3:3:3:3:3 ; this will give virtual extruders 0 to 4 and the D driver for tool definitions
                
                M563 P0 D0 H1 F0 ; T0, extruder 0, driver 3
                M563 P1 D1 H1 F0 ; T1, extruder 1, driver 3
                M563 P2 D2 H1 F0 ; T2, extruder 2, driver 3
                M563 P3 D3 H1 F0 ; T3, extruder 3, driver 3
                M563 P4 D4 H1 F0 ; T4, extruder 4, driver 3
                

                With this, stall detection don't work but filament configs do.
                With this setup, in DWC each tool has its driver and extruded amount.
                Every tool can have its filament configuration loaded (the "load filament" option)

                I got the point you are referring, so I'm changing the above commands to this:

                M584 E3 ; this will give only the actual extruder 0 and the D0 extruder for tool definitions
                
                M563 P0 D0 H1 F0 ; T0, extruder 0, driver 3
                M563 P1 D0 H1 F0 ; T1, extruder 0, driver 3
                M563 P2 D0 H1 F0 ; T2, extruder 0, driver 3
                M563 P3 D0 H1 F0 ; T3, extruder 0, driver 3
                M563 P4 D0 H1 F0 ; T4, extruder 0, driver 3
                

                With this, stall detection works, but filament configs don't.
                Now, with this changes, DWC reports only one extruder (don't like it, but so far so good) and every tool has the ability to be assigned one filament config.

                The problem with this approach is that assigning a filament configuration to T0, sets all tools to the same filament. If I change the filament for T2 lets say, it sets all tools again. As filament config as assigned per extruder, not per tool.

                As a side note, I took a look at the M563 L parameter but with no luck.
                I read the description of issue #1098 and is similar (might help in this case also) but is not the same. Then I try the do the stall detection the extruder is assigned only to driver 3 but the part with logical drivers stands up. "As a result the stall does not stop motion." This is also true for me. Might be related after all.

                I had a look at filaments.csv and those are the results:
                With the first configuration (my actual one)

                RepRapFirmware filament assignment file v1 generated at 2025-03-28 19:23
                extruder,filament
                4,PLA Fillamentum Extrafill
                3,PLA Fillamentum Extrafill
                2,PLA SmartFill Glitter
                1,PLA Fillamentum Extrafill
                0,PLA Elegoo
                
                

                With the testing config looks like this:

                RepRapFirmware filament assignment file v1 generated at 2025-03-28 17:35
                extruder,filament
                0,_dummy
                

                Here the assigned filament is always to extruder 0, regardless of any other tool being selected and asked to load the filament for it

                dc42undefined 2 Replies Last reply Reply Quote 0
                • dc42undefined
                  dc42 administrators @Leonard03
                  last edited by

                  @Leonard03 although the documentation for M700/701 says filaments are assigned per tool, I've taken a look at the code and it does appear that it uses a mixture of per-tool and per-extruder assignment. This obviously isn't suitable for filament switching systems that use a common extruder. We'll look into why it was done this way and what we can change.

                  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

                  Leonard03undefined 1 Reply Last reply Reply Quote 0
                  • dc42undefined
                    dc42 administrators @Leonard03
                    last edited by dc42

                    @Leonard03 using your original approach of multiple extruders mapped to the same driver so that M701/702 work, I think you could work around the stall detection issue by including a M584 command in your tpost tool change files to repeat the mapping of the extruder number used by that tool to the driver. Don't repeat any other mappings in that M584 command, just that extruder. You may also need to repeat the M906 Exxx command.

                    Alternatively you could put these M584 and M906 commands in your filament loading macro file.

                    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

                    1 Reply Last reply Reply Quote 0
                    • Leonard03undefined
                      Leonard03 @dc42
                      last edited by Leonard03

                      @dc42 Thank you very much, that is wonderful news! 😊

                      @dc42 said in [3.6.0-beta.3+1] Extruder stall detection:

                      using your original approach of multiple extruders mapped to the same driver so that M701/702 work, I think you could work around the stall detection issue by including a M584 command in your tpost tool change files to repeat the mapping of the extruder number used by that tool to the driver. Don't repeat any other mappings in that M584 command, just that extruder. You may also need to repeat the M906 Exxx command.

                      Thank you for the suggestion, I might try it, but I prefer to wait for a more stable fix. Anyway, I added all the bits to manage an extruder stall detection to my configuration.
                      It is not something urgent, per say. I want to add this to my printer because sometimes, in a multicolor print, some filaments gets sometimes malformed tips that gets past the extruder and somehow they get jammed between extruder and nozzle, resulting in a perfect print with skipped layers from only one filament.

                      As a side note, regarding the events raised by the extruder stall: this behavior will be fixed or it will continue to work as it does now?

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

                        @Leonard03 said in [3.6.0-beta.3+1] Extruder stall detection:

                        As a side note, regarding the events raised by the extruder stall: this behavior will be fixed or it will continue to work as it does now?

                        The problem is that RRF was never designed to support mapping multiple extruders to a single driver. I've submitted a feature request to extend the filament management system to better handle MMUs. See https://github.com/Duet3D/RepRapFirmware/issues/1102.

                        dc42 created this issue in Duet3D/RepRapFirmware

                        open Extend filaments support to better support MMUs #1102

                        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

                        Leonard03undefined 1 Reply Last reply Reply Quote 2
                        • Leonard03undefined
                          Leonard03 @dc42
                          last edited by Leonard03

                          @dc42 Thank you very much for taking this issue in consideration! I had really low hopes that this can be fixed because I don't now how many users have this kind of setups and because I'm using the Duet 2.. well, I have no words 😄 Thank you again and congratulations for your efforts and for supporting the Duet 2 boards for so long! ♥

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