Filament automatic reloading



  • Hey guys, this is my first post here. I am curious about implementing a feature into my custom printer build. I want to have my filament automatically switch to a secondary spool when the first spool signals it has 'run out'. My machine is an IDEX design, so each extruder would have a secondary roll of filament to reload with. When it comes to hardware building, I am quite good at that. When it comes to firmware, I am not good at that.

    My thought would be to have 4 extruding motors in a bowden cofiguration (2 hotends, each fed by a primary extruder and a backup extruder). There would be a sensor before and after each motor to detect filament presence. The first sensor before would be before the extruder, to detect if filament is present or 'run-out'. The second sensor would be on the extruded side of the extruder to confirm filament has retracted far enough to load the next filament in. Perhaps this wouldnt be necessary if, when the 1st sensor triggers that 'run-out' has occured, then retract x amount which would move the filament out of the way to load the next filament in. In order to have 2 filament feeds into one extruder, a 'Y' adapter would be inline for each hotend.

    Perhaps this project has already been done? Perhaps I am over complicating it? Perhaps there is a better approach. I was hoping to bounce the idea off with you fine folks and get some feedback. Perhaps I need to be more clear in my intentions? I know there is a way to accomplish what I want, I just dont know how to program in order to complete it and have it be reliable.

    I could also see this enabling multicolor / material printing with proper gcode macros.

    Again, let me know what your thoughts are.





  • @timcurtis67:

    https://www.duet3d.com/forum/thread.php?id=829#p19656

    I read through that thread, it doesn't really touch on the topic of auto loading a second spool, only dual color/material, which there are quite a few guides for. Maybe I missed something?


  • administrators

    Hi Xandrel

    The "train track" style multifilament configurations have some inherent issues (highlighted in the thread that Tim has linked) however they can be made to work, and example is Prusa's multi material system however he has some clever bits like a cutting option to make sure the filament is clean going back in. I think in your case you are not having to do loads of retract/prime iterations through a print with any one system because you will only use this once per print per side if the filament runs out so the chances of the jamming etc caused by poor retraction on switch over is minimised.

    If you have a known bowden retraction length to clear the common part of the "train track" then having a second sensor to confirm the filament has been retracted far enough is not strictly necessary, but it might be a good idea for redundancy since almost by definition this scheme is to allow you to do very long prints (hence needing to change rolls in between).

    From a firmware perspective you can setup a filament sensor using a simple micro-switch to detect filament presence:
    https://duet3d.dozuki.com/Wiki/Gcode#Section_M591_Configure_filament_sensing
    however this is currently set to pause the print. What you want is to run a macro (to do the filament change routine). to do that you should use M581 to setup a macro
    https://duet3d.dozuki.com/Wiki/Gcode#Section_M581_Configure_external_trigger
    And associate it with a specific pin which the microswitch is on. When the filament is not present the macro will run and swithc to the other roll. You could set this up on both inputs to one side so it could switch back and forward.



  • This would work well with filament sensors combined with a mixing hot end such as a Diamond. Then you can have the same filament loaded into all 3 inputs but just use one at a time. Define 3 tools, all using the same heater but different extruders. Set the mixing ratios to 1.00:0.00:0.00 for tool 0, then 0.00:1:00:00 for tool 1 and 0.00:0.00:1.00 for tool 2. Start with (say) tool 0 and when the filament sensor shows the filament has run out, run a macro to switch to tool 1 and when that runs out, switch to tool 2. No messing around with retraction or anything else. Load up with 3 off 2.3 kg spools giving 6.9 kg of loaded filament - should last a while 🙂


  • administrators

    Sounds like we need the option to run a macro instead of pausing when insufficient filament motion is detected. I'll look at adding this in the version 2.0 firmware.


  • administrators

    Being able to configure a filament alarm set of macros would be great. we could setup the default in those macros to call pause.g so that for most situations the default is sensible.



  • Just as an aside and sorry to hijack the thread but what is that status of filaments monitors at the moment? I haven't looked at them seriously as I'd need to buy 5 of them and running all the additional wires through my cable chain is likely to be quite a challenge. However, I could be tempted but one question comes to mind. That is, will it cope with very low filament movement? I'm thinking of the situation where I vary the mixing ratio from 1% to 99% throughout a print so potentially one filament could be moving at 1% of normal speed so very close indeed to being stationary. Other filaments might actually be stationary but come into play later in the print. Will filament monitors cope with these situations?


  • administrators

    I think they should be able to handle that. The filament movement is only checked every 3mm or 5mm of commanded extrusion.


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.