Gcode: How to move continuously?
-
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 -
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.
-
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