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

    Filament runout stops instead of pauses

    Scheduled Pinned Locked Moved
    Filament Monitor
    3
    7
    502
    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.
    • ddeflyerundefined
      ddeflyer
      last edited by

      So I've got my magnetic filament sensor working correctly (using a duet 3) with a microswitch. The problem is when I trip the microswitch (unplug it actually) the printer just stops (pause.g/pause button moves to x0 y0) and DWC says disconnected and reconnects. Once it reconnects it says that filament ran out and so paused, but the pause button isn't lit.

      Anyone know what is going on with this or where I can start debugging it?

      Turboundefined 1 Reply Last reply Reply Quote 0
      • Turboundefined
        Turbo @ddeflyer
        last edited by

        @ddeflyer how are you connecting it? it either sounds like the gcode that's supposed to execute when the filament runout triggers is wrong, (possibly sending an emergency stop), or you're shorting the board when it triggers, causing it to reset. Those are my guesses at least.
        The gcode your should have should include an M226, or M600 (filament change pause), or M601 if you're on 3.01+ Fw.

        Cant stop tuning wont stop tuning.
        Dbot, Custom i3, Voron 0&2

        1 Reply Last reply Reply Quote 0
        • ddeflyerundefined
          ddeflyer
          last edited by

          My pause.g is:

          ; pause.g
          ; called when a print from SD card is paused
          ;
          ; generated by RepRapFirmware Configuration Tool v2.1.8 on Fri Mar 20 2020 05:06:07 GMT-0700 (Pacific Daylight Time)
          M83            ; relative extruder moves
          G1 E-10 F3600  ; retract 10mm of filament
          G91            ; relative positioning
          G1 Z5 F360     ; lift Z by 5mm
          G90            ; absolute positioning
          G1 X0 Y0 F6000 ; go to X=0 Y=0
          

          I haven't tried it for a while but I believe it did the same thing when I had an issue with the extruder skipping. Additionally I think this line from running M122 says that the duet 3 hasn't reset:

          Last reset 01:23:10 ago, cause: software
          Last software reset at 2020-04-11 15:21, reason: User
          
          Turboundefined 1 Reply Last reply Reply Quote 0
          • Turboundefined
            Turbo @ddeflyer
            last edited by

            @ddeflyer Is there an M25 in the generated Gcode? which pause gcode is the slicer generating?

            Cant stop tuning wont stop tuning.
            Dbot, Custom i3, Voron 0&2

            1 Reply Last reply Reply Quote 0
            • Demiundefined
              Demi
              last edited by

              Im having the exact same problem, and I think it has to do with how Im declaring the pin maybe?

              M591 D0 S1 P1 C"io8.in" 
              M581 P"io8.in" T1 S1 C0
              
              
              

              This seems to be guidance for older firmware, but Im having the same with:

              M950 J"io8.in" 
              M581 P"io8.in" T1 S1 C0
              

              That syntax is probably not correct, as then you could only have one trigger, but the syntax examples arent comprehensive. Can anyone shed some light?

              Turbo, Im confused by your M25 question. Wouldnt the pause/trigger all be firmware side?

              1 Reply Last reply Reply Quote 0
              • Demiundefined
                Demi
                last edited by Demi

                Okay, so i was more than a little confused, and I figured out how to declare a GPIO trigger which I have working as a filament sensor, but still cant get the M591 assignment to work correctly. Hopefully this can help you a little OP.

                M950 J12 C"io8.in" ; Names IO pin 8 in as Input 12 (required for M581)
                M581 P12 T1 S0 C1; References previously declare pin designation (12) to run pause.g (trigger 1) on falling edge (S0), only while printing (C1)
                

                The pin designation used in M950 creates a new naming convention. So instead of calling the pin by "name" (in this case io8.in) you call it by whatever number you named it. I just chose 12 to avoid any unknown (to me) input declarations the system might have reserved or in use.

                Demiundefined 1 Reply Last reply Reply Quote 0
                • Demiundefined
                  Demi @Demi
                  last edited by

                  Sorry to keep replying to my own posts here, but I have made some more progress, and now have it working completely (as a stand alone trigger anyway). Im just using a microswitch to detect filament so OP your setup might vary a bit.

                  M950 J12 C"io8.in"
                  M581 P12 T1 S0 C1
                  M581 P12 T3 S1 C0
                  

                  So this setup detects running out of filament only when printing, but inserting filament anytime. I made a file, trigger3.g, which runs whenever you insert filament, acts as a filament load script. Filament runs out, print pauses runs pause.g, filament is inserted, it runs trigger3.g, then I click "resume print" and it starts back up. Works like a champ. Still not sure how to use M591, but this is working.

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