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

    Gcode: How to move continuously?

    Scheduled Pinned Locked Moved
    General Discussion
    7
    23
    3.1k
    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.
    • garyd9undefined
      garyd9
      last edited by

      Would that run unblocked (and then able to be canceled from gcode?)

      "I'm not saying that you are wrong - I'm just trying to fit it into my real world simulated experience."

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

        Implemented the easy way, it would be blocking just like ordinary G1 S1 homing moves are.

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

          So, it wouldn't be useful at least for my question. What I'm looking for is a way to extrude forever until some interaction makes it stop. The only way I can think that stall guard would help would be to force stopping by grabbing the filament (tightly) to simulate a jam.

          "I'm not saying that you are wrong - I'm just trying to fit it into my real world simulated experience."

          1 Reply Last reply Reply Quote 0
          • Guyarosundefined
            Guyaros
            last edited by

            "just extrude continuously until I stop it."

            +1 for that feature request.
            It's definitely useful.

            1 Reply Last reply Reply Quote 0
            • roboduetundefined
              roboduet
              last edited by

              +1 for this feature.

              1 Reply Last reply Reply Quote 0
              • Dougal1957undefined
                Dougal1957
                last edited by

                @garyd9:

                So, it wouldn't be useful at least for my question. What I'm looking for is a way to extrude forever until some interaction makes it stop. The only way I can think that stall guard would help would be to force stopping by grabbing the filament (tightly) to simulate a jam.

                But if you use it when loading filament into a COLD hotend then it will effectively hit a brick wall when fully loaded and for retracting you just make sure you unload distance is large enough?

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

                  @Dougal1957:

                  @garyd9:

                  So, it wouldn't be useful at least for my question. What I'm looking for is a way to extrude forever until some interaction makes it stop. The only way I can think that stall guard would help would be to force stopping by grabbing the filament (tightly) to simulate a jam.

                  But if you use it when loading filament into a COLD hotend then it will effectively hit a brick wall when fully loaded and for retracting you just make sure you unload distance is large enough?

                  Yes, I agree. It seems a dangerous feature to have.

                  Macros offer far more elegant ways to load and unload filament IMO. My load macros, first select the correct extruder, then heat the tool, then do the initial load at high speed, then the last part at slow speed. The unload macros select the tool, heat it to print temperature, then cool it to around 120deg C, then unload the first part slowly, followed by a fast unload, and finally turning the heater off - effectively doing an automated "cold pull". OK, it's a bit of work to establish the distances and speeds but once set up, it's just a matter of running the macro, rather than go through all the individual steps. Very much faster, much less complicated and safer IMO.

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

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

                    Surely a "normal" G1 S1 Ennn move would work here, using motor stall to terminate the move, with the motor current reduced to ensure that it skip steps instead of grinding the filament? You would set nnn to the maximum length of filament that might need to be fed.

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

                      @dc42:

                      Surely a "normal" G1 S1 Ennn move would work here, using motor stall to terminate the move, with the motor current reduced to ensure that it skip steps instead of grinding the filament? You would set nnn to the maximum length of filament that might need to be fed.

                      Yes, I don't see anything wrong with that. Much safer than having something that could potentially try and pass a complete reel of filaments through the extruder.

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

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

                        Thanks, Ian. If it's easy to implement, I might try to squeeze it into 1.20.1.

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

                          I added a load cell on my Bowden extruder, to make some measures:

                          I planned to use it to detect when the filament is loaded. On the other hand, the stalled detection feature should work as well…

                          Frédéric

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

                            @dc42:

                            Thanks, Ian. If it's easy to implement, I might try to squeeze it into 1.20.1.

                            You'd better check with the OP - he's the one who wants to be able to extrude continuously (I'll just use macros).

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

                            1 Reply Last reply Reply Quote 0
                            • Dougal1957undefined
                              Dougal1957
                              last edited by

                              @deckingman:

                              @dc42:

                              Thanks, Ian. If it's easy to implement, I might try to squeeze it into 1.20.1.

                              You'd better check with the OP - he's the one who wants to be able to extrude continuously (I'll just use macros).

                              Ian he was wanting to load the filament to his machine without having it extrude a load of plastic which if I understand correctly he must have been doing it hot for that to happen a small change in workflow to load when cold and this is actually an elegant way of doing titbit of course it will only work with a cold Hotend.

                              So the way I would see it working is cold hotend high speed extrude with low motor current so something like a macro that sets cold extrude allowed reduce motor current extrude an amount of filament (say the length of bowden tube plus an amount) once loaded set motor current back to normal set cold extrude disabled.

                              Should be relatively easy to do. Tho in my setup I have no need to use load/unload sequences any way

                              Doug

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

                                Hi Doug,

                                I was just going by the OPs first paragraph in which he says …...

                                "What I'd like (and what I became accustomed to using sailfish) was "just extrude continuously until I stop it." "

                                That sounds to me to be a dangerous feature to have, so I agree with David that his solution would be preferable. But, it doesn't fulfil the OPs desire to have continuous extrude until he stops it, hence my comment to David that he should check with the OP that he'd be happy with what he is proposing.

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

                                1 Reply Last reply Reply Quote 0
                                • Dougal1957undefined
                                  Dougal1957
                                  last edited by

                                  I agree Ian but his first sentence was "set up macros for loading and unloading filament" and the solution David is looking at is the better one.

                                  Just also funny that the OP hasn't responded to any of these suggestions

                                  Doug

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

                                    Yes all true. It's how you interpret the words "until I stop it" and then in the context of a macro. AS for response, it's the weekend so the OP probably has better things to do than us old codgers 🙂

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

                                    1 Reply Last reply Reply Quote 0
                                    • Dougal1957undefined
                                      Dougal1957
                                      last edited by

                                      You could well be right Ian

                                      1 Reply Last reply Reply Quote 0
                                      • garyd9undefined
                                        garyd9
                                        last edited by

                                        I haven't responded simply because there hasn't been a response to my question. There have been lots of alternatives to the example I gave to try to give the question context, but not a simple "yes" or "no" answer. (Apparently, the answer is "no.")

                                        Please don't take this the wrong way: I appreciate the responses and attempts to address what I posted, but a simple "no, you can't do that" would have been perfectly acceptable (even if it isn't what I'd like to see.)

                                        Before going on, I want to point out that I think of loading/unloading filament as a human interactive process. I have to manually get the filament to the extruder, manually ensure that the drive gear "catches" the filament, and manually see the filament coming out of the nozzle. To me, doing it any other way is odd, unusual, unsafe, etc. (And perhaps that's another reason I'm coming to love the Duet: People can usually do things their own way.)

                                        In response to the various alternatives to loading filament (and other responses that caught my eye), please allow me to answer each:

                                        It's unsafe: Really? Think about that in the grand scheme of 3D printing. Is it any more safe to have a gcode script that runs for hours (or days) with no interaction whatsoever while heating plastic in 1 or more nozzles to 280C (for PC)? I'm talking about manually putting filament in an extruder hole, starting a macro, and turning it back off again. Owners of Sailfish based printers have been doing it this way for years and years. Get the filament ready, turn on the "load filament" function, feel filament pulling into extruder, watch it come out the nozzle, turn off the load filament function. Done.

                                        Macros and scripts to auto-feed set amounts: I thought I addressed this already. They either feed too much or not enough. I really have no idea how much I want to feed until I'm watching it flow through the nozzle. Sometimes I like to extrude a bit more to clean out a previous color. Sometimes I know the nozzle is clean (and the particular filament is expensive, such as PVA, so I want a lot less.) On occasion, I notice that something looks odd with the flow and want to stop, adjust temperature or something, and extrude some more.

                                        Using a stall guard to stop feeding when the cold filament hits the nozzle: That doesn't allow me to see that the filament is flowing. All it tells me is that the filament drive gear has encountered resistance. See above paragraph.

                                        So, being that I can't do what I'd like to do, I'll keep using the alternative I've been using in the meantime: Heat nozzle, shove filament into extruder, use the PanelDue to extrude filament in 100mm (or less) chunks until I'm happy with the load. Not a big problem and "close enough" to what I was doing before.

                                        Thank you - and take care
                                        Gary

                                        "I'm not saying that you are wrong - I'm just trying to fit it into my real world simulated experience."

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

                                          The way the firmware currently works, every move must have a defined limit. The only ways of terminating moves that are implemented are:

                                          1. If the move is sensitive to endstop switches and switch is triggered;

                                          2. Because of a power panic;

                                          3. Because of an emergency stop.

                                          I am reluctant to make major changes to the movement system just to support this feature. I guess one way to implement it would be to treat the user 'stop' input as a virtual endstop. You would still need to specify a maximum length to extrude.

                                          Personally, I think being able to extrude up to a certain limit or until motor resistance becomes high would be a big improvement. At that point you could use the normal extrude buttons to extrude e.g. 50mm @ 5mm/sec. or do that automatically in the same macro. If extrusion then happens, you can decide whether you want to extrude more. If not, you can investigate the problem.

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

                                            It's okay that the firmware (and gcode) doesn't support what I want. I was really only asking if it was possible to do within the existing duet framework.

                                            There are other ways to do things (such as poking buttons on the paneldue to feed 100mm, 50mm, etc of filament at a time until I'm happy with the load.) I was just trying to fit reprap/gcode into the sailfish box I had grown accustomed to.

                                            Being that I'm already moving outside that box (slowly, but surely), it's not a big problem. I've already changed T0 to be my left tool and T1 to be my right. It better matches the paneldue display, the DWC, and the tendency for most English speakers to think in terms of left to right.

                                            Anyway, if I really wanted some kind of continuous feed, there's nothing stopping me from grabbing the source code and adding it. 🙂

                                            Take care
                                            Gary

                                            "I'm not saying that you are wrong - I'm just trying to fit it into my real world simulated experience."

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