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

    Tips for Proactive Filament Change when running out?

    Scheduled Pinned Locked Moved
    General Discussion
    4
    13
    1.6k
    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.
    • deckingmanundefined
      deckingman
      last edited by

      @webdad:

      Occasionally, I've had great success with using the filament change feature on my Original Prusa i3 MK1. It has an option on the control panel to interrupt a running print and perform a filament change. I use it to change spools when one is running out.

      When a reel is down to a couple if metres or so, I just cut what's left of the old roll while it's printing and push the new filament in until the extruder grabs it. Simple 🙂

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

      1 Reply Last reply Reply Quote 0
      • webdadundefined
        webdad
        last edited by

        Interesting. I'll have to try both approaches. I'm really enjoying the macro capability and being able to create custom command sets.

        I've got a Bowden set up, and it seems like the cut and push method should work. Deckingman - if you inadvertently cause a gap between the old and the new filament, does that have any adverse effect on the print?

        Thanks all.

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

          @webdad:

          …................... Deckingman - if you inadvertently cause a gap between the old and the new filament, does that have any adverse effect on the print?

          Thanks all.

          Yes it would. What would happen is that there would be a pause in the filament being extruded from the nozzle as the extruder pushes the new filament in to fill the gap. This technique may or may not work, depending on what extruder you have. I use E3D titans which have a short piece of PTFE tube to guide the filament into the extruder, and find that it works as long as I keep pressing on the new filament so that it is contact with the top of the old filament that is being used up. I generally run the lowest spring tension that I can get away with too.

          I actually use this technique quite a lot. The reason is that I have Diamond hot ends and it's essential to have filaments loaded into all the inputs at all times. It's generally best to keep these filaments moving too. So when printing a single colour with say the 3 colour Diamond, I use about 90% of one input and 5% of the other two. To save buying and loading 3 complete reels of the same filament, I simply pull off two lengths of a couple of metres or so and load these into two inputs and the main reel into the third input with a mixing ratio of 90:05:05. Sometimes, my estimate is a bit out and if it looks like I'll run out of the short lengths, I just cut the main reel a reasonable distance above the extruder and pull off a couple more lengths without pausing the print. Then I cut one of the filaments close to the extruder and feed one new filament in. Once that has been "grabbed" by the extruder, I then repeat for the other two. It's best if you can pick a point in the print where there are no retracts but if not, just keep pressing the filament until you are sure that retraction isn't going to push the end out of the extruder. Don't press too hard - just enough to keep the new filament in contact with the old but so much as to buckle the filament. Oh, and I guess this wouldn't work with a flexible filament but for PLA and PETG it works fine for me.

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

          1 Reply Last reply Reply Quote 0
          • webdadundefined
            webdad
            last edited by

            Thanks! Excellent point about the retracts. I've got a Titan extruder with an E3D v6 Full, and had assumed I'd keep pressure until it was picked up by the extruder. The only complication is that I have a DBot with a 750+ mm bowden tube and it is highly unlikely I'd have prints that could go that long without a retraction.

            Interesting thought though.

            Thanks for the detail.

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

              Yes, true enough. With a long Bowden tube you may have a period where retraction is less effective. It may not matter too much as you'll still be relieving the pressure on the filament - just not actually pulling it back out of the hot end. Try it and see I guess.

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

              1 Reply Last reply Reply Quote 0
              • webdadundefined
                webdad
                last edited by

                Got some time this weekend to try and bang out a macro to change filament. Thought I would also try some other things in the firmware, like calling other macros, etc.

                Haven't had a great deal of success, so wanted to post what I have and see if anyone can see the error of my ways. The issue is that in the 3 step process driven by Change Filament, whenever I executed it during a print, it appears to pause the print and move off to the side and lower the bed (pause.g is executed) but then it proceeds to fall through everything else - cf-unload as well as all of steps 1 and 2, and just display Step 3's prompt for Ok or cancel. At that point, OK results in no action, and a message that no file was open for printing, or something similar.

                Basic flow is:
                Change Filament is the driver and does the following:

                • Pause the print

                • Call macro cf-unload to purge some filament, then do a fast retract to pull filament back to titan extruder

                • (Step 1) Prompt user to insert filament just to start of the bowden tube

                • Call macro cf-load to advance filament through bowden tube to just above hotend

                • (Step 2) Prompt user to manually push filament into the hotend

                • Call macro cf-prime to purge filament to clear color

                • (Step 3) Final prompt for user to accept and continue or cancel

                • Resume print on "OK"

                All the below are stored in the macros directory

                Change Filament

                [[language]]
                M25  ; Pause print
                G4 P2000  ; Dwell 200 milliseconds
                M400   ; Wait for current moves to finish
                M98 P/macros/cf-unload
                M291 P"Insert new filament to just above titan extruder and press OK" R"Step 1: Load New Filament" S3
                M98 P"/macros/cf-load"
                M400
                M291 P"Manually advance filament into hotend" R"Step 2: prime Filament" S3
                M98 P"/macros/cf-prime"
                M291 P"Click OK to continue to Cancel to abort print" R"Step 3: Final Check" S3
                M24 ; Resume print
                
                

                cf-load

                [[language]]
                ; Load filament
                G1 E750 F3600
                M84 P3 E0:1		; turn extruder motors off so the user can feed by hand
                
                

                cf-unload

                [[language]]
                ; Purge and then Unload filament
                G1 X2 Y2 ; Move to front corner
                G1 E20 F500 ; Extrude 20mm to warm the heatbreak filament
                G1 E-10 F500
                G1 E-800 F3600
                
                

                cf-prime

                [[language]]
                ; Prime filament
                G1 E40 F300
                
                

                Any tips or observations would be greatly appreciated. the three macros I'm calling are actually macros I use day to day for loading / unloading filament and they work fine when I run them from the console. I thought I would use them as they are for this change filament exercise, so that's why I decided to call them. The idea being if I further modify them, change filament would get the mods as well. I actually have them named something else, but thought the clear names (that have spaces) might have been causing issues so that's why some of the calls use quoted strings and some don't.

                Thanks!

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

                  I've never tried calling macros - only ever run them "stand alone" fashion so I may not be much help. One thing that kind of jumped out at me was that the macro names above don't have a ".g" suffice. Not sure if this is significant but it might be. No doubt David will be along shortly to put you right…..

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

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

                    Try adding a M400 command before each M291 command or at the end of each macro. Maybe I should make that part of what M291 does.

                    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
                    • webdadundefined
                      webdad
                      last edited by

                      I'll give that a shot, but there is an intermediate M400 already after cf-load and before the Step 2 M291. Would it be better to put it in the macro files?

                      1 Reply Last reply Reply Quote 0
                      • kgordonundefined
                        kgordon
                        last edited by

                        Is there a way for the Duet3d to detect when the extruder filament runs out or break to automatically start the pause script and wait for someone to fix the issue and resume the print?

                        Kyle

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

                          Yes, see M591 in the GCode wiki. The firmware currently supports simple switch-type filament sensors and the prototype Duet3D rotating magnet filament monitors. I also have a build that supports the prototype Duet3D laser filament monitors.

                          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
                          • First post
                            Last post
                          Unless otherwise noted, all forum content is licensed under CC-BY-SA