Duet3D Logo

    Duet3D

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Documentation
    • Order

    Auto restart on filament error

    Gcode meta commands
    3
    5
    158
    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.
    • iff7378
      iff7378 last edited by

      I've noticed (at least for my printer) that about 90% of filament too little movement errors can simply be resumed and the printer keeps working. My thought is to create some conditional G code that will automatically resume the printer once. If it pauses again within 5 seconds or so after resuming, then it will stay paused. If the printer keeps printing after auto resuming, then this cycle can reset and repeat for future errors.

      However, I'm not much of a programmer and am trying to figure out how to implement this. I'll have to initialize some variables in my start G code and I imagine filament-error0.g will have some sort of test to see whether it has just paused within the last 5 seconds or so.

      Any suggestions would be greatly appreciated!

      dc42 1 Reply Last reply Reply Quote 0
      • iff7378
        iff7378 last edited by

        Anyone?

        This issue stems from using 10kg spools with this printer and the initial inertia of getting the spool rotating trips the filament sensor. I'm open to other suggestions on solving this.

        OwenD 1 Reply Last reply Reply Quote 0
        • OwenD
          OwenD @iff7378 last edited by OwenD

          @iff7378
          The inertia problem will require some bearings.
          The timer thing will require that you create a global variable in resume.g (probably as last line)

          if !exists(global.AutoResumeTime)
               global AutoResumeTime = state.Time + 5
          else
               set global.AutoResumeTime = state.Time + 5
          
          

          Then in filament-error.g put as your first line

          if exists(global.AutoResumeTime)
             if state.Time < global.AutoResumeTime
                 M99  ;  if the variable there's been a resume.  If it was less than 5 seconds ago we exit without action
          

          Note that in 3.4 RC the naming and some functionality of filament error files changed.
          This is untested and from memory so check up on the syntax of state.Time in you object model browser

          1 Reply Last reply Reply Quote 1
          • dc42
            dc42 administrators @iff7378 last edited by

            @iff7378 which firmware version are you running? There have been improvements to filament monitoring since the 3.3 release.

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

              @OwenD I do have bearings on my filament spool. The issue is getting the spool moving each time the filament retracts and then pulls again.

              @dc42 I am using 3.3. Perhaps I should try the 3.4 update?

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