Y Adapter filament switching
-
I'm using a 20mm pancake stepper with genuine and now a clone titan I am testing, works perfectly for almost everything but it can't extrude PLA faster than 30mm/s (just to unambiguous thats extruder speed not print speed - 30mm of filament per second). I will see if it can retract faster, I didn't test that. Im following this closely, I have a y splitter, but it looks much trickier than I thought it would be.
-
The Y adapter has added a crazy amount of hysteresis, and is doing weird things with backpressure.
It works, but it's taking some definite re-tuning of retraction, including pressure advance, to get dialed in.
I went through my stepper collection, and I don't have any other small nema17's, just some nema14's. I may get a smaller Nema17 to test with.
-
Do you think the hysteresis is cause by loose fit of the filament through the y-adaptor?
-
At the junction in the Y you can see the filament flex. Not really a way around it, I think it's about as constrained as you can make it.
I've been having a lot of issues around my retraction points, but now some testing is showing I get nicer results with slicer retracts than FW, despite the same settings. So perhaps not all of it is due to the added hysteresis, some might be good old tuning around the new setup.
I'm very close to having my prints back at the quality they were before I put it in, it's just taken some learning on what needed done.
-
Today's the day I try to get this going on my new CoreXY with an E3D Lite6! Kraegar, I really appreciate all the work you've done and info you've provided. Since you're back to slicer retracting, could you share your S3D retraction settings? Better still would be an entire factory image for a working print - that would really help eliminate some of the model and process setup mistakes I'm bound to make (I know I'd still have to fine-tune settings for my system).
Regarding getting extra torque from your extruder without switching to 24V…since you're now using a Titan, I think you might be able to gain some torque by reducing the microstepping by a factor of ~4 (from 1/16 to 1/4 for example), with the Titan's gearing keeping your final resolution roughly the same. This is based on reading somewhere that microstepping increases precision at the cost of torque. I'm no expert on this - just a thought.
-
Well, I'm unhappy with the amount of retraction I'm having to do to combat the stringing. I was very low at it before, under 3mm.
I'm still getting some light stringing.
I'm starting to move things into the tool change script in S3D, rather than doing it all in firmware. I haven't moved much of it yet, though, but here's the start:
The idea being to move everything but the actual switch into the slicer eventually (move to the purge area, etc) rather than having it it tfree/tpost.
I'm still not exactly sure why changing to slicer based retraction cleaned up the blobs, that's the opposite of my past experiences. But it's working for now, so who knows. (David, I'd love some insight on the actual mechanics of how FW retraction runs… order of moves, speed of the z-hop, etc)
I'll play with microstepping, see if it lets me do a faster retraction without losing torque, that's not a bad idea. I'll probably also try some smaller steppers in between the monsters I have now, and the small ones David mentioned. Can never have too many spare steppers.
-
Now that the swapping part is working, I wanted to make it all a bit more logical, separating out the filament change itself from the print moves.
To do this, I put the following in the s3d tool change script:
http://imgur.com/q1xYeJkThat's doing a retract, zhop, move to purge zone, unretract & unhop. Then it runs the tool change.
Now tfreeX.g is just simply this (this is in both my tfree0.g and tfree1.g in /sys)
M83
G1 E-20 F1200 ;retract 20mm
G1 E20 F3600 ;pack the filament to eliminate the tail
G1 E-150 F3600 ; retract 150mmtpost is unchanged (this is in my tpost0g. and tpost1.g in /sys)
M83 ;relative extruder moves
G1 E142 F3600
G1 E3 F1500However, that means if I want to change filaments outside of the script, I need an extra step, so I added a T0.g / T1.g macro (Two macros in the macros page, one for each extruder)
M83 ; relative extrusion
G1 E-5 F3600 ; Retract 5mm - adjust this to your standard retraction
G4 S2 ; pause 2 seconds
G1 E4.9 F1200 ; unretract (extrude) 4.9mm
T0 ; switch to T0If I want to switch active extruders outside of a print, I need to run those macros, not just send a T0 or T1.
Still, the logic makes more sense now, it's broken out where things feel like they "should" be. And it's easier to adjust based on the print or task I'm trying to do.
-
If I were able to retract at 100mm/s, I'd keep everything the same, except for tfreeX.g would be:
G1 E150 F6000
No other changes required.
-
Thanks for the continuing updates!
I'll probably also try some smaller steppers in between the monsters I have now, and the small ones David mentioned. Can never have too many spare steppers.
True…but 24V could come in pretty handy, too. I just ordered one of these http://www.mouser.com/search/ProductDetail.aspx?r=709%2dLRS200%2d24 to replace the noisy 24V supply I've been using. The Duet's drivers are so quiet that I couldn't take the PSU's obnoxious fan noise. I'm using these https://www.aliexpress.com/item/3A-Adjustable-LM2596S-DC-DC-Step-Down-Buck-Power-Supply-Module-Adapter-3-2-40V-to/32594772519.html for all my 12V fans.
-
However, that means if I want to change filaments outside of the script[print], I need an extra step, so I added a T0.g / T1.g macro:
M83 ; relative extrusion
G1 E-5 F3600 ; Retract 5mm - adjust this to your standard retraction
G4 S2 ; pause 2 seconds
G1 E-4.9 F1200 ; unretract 4.9mm
T0 ; switch to T0I don't understand the purpose of this - the last line switches the tool but the first 3 appear to just move the filament back 0.1mm. Wouldn't you want to retract the filament from the old tool ~100mm, select the new tool, then extrude that filament ~100mm?
I'm probably missing something obvious…
-
You must retract, pause a bit, unretract. This is the "trick" I found with the v6, to get around needing a "ramming" swap. The goal is to get a clean break on the filament by having as little melted filament in the nozzle as possible, for as short of a time as possible.
The other option would be to ram 5mm of filament out by doing something like:
G1 E5 F1200Then immediately do a single long (150mm) retraction @ 100mm/s. But that leaves a lot of filament mess, where the above process achieves almost the same thing.
-
Ah…my problem was thinking that "change filaments" meant switch between extruders, not swap out spools of filament.
So you're saying that before pulling all of the filament out of the extruder/bowden tube, etc., this code [retract, wait, and unretract] makes the filament come out cleaner and with less mess than not doing it. What I still don't get is it seems like after the unretract, the filament is now just minus 0.1mm away from where it started. It seems to me like it would just melt again and leave you basically where you started.
I'm not saying you're wrong or anything - I'm just trying to understand what's happening.
-
Yes, this is to switch two filaments with one hotend (two extruders). The goal is to have the filament look like this:
http://imgur.com/msU4hiaThere are a couple ways I've found to accomplish that, depending on what your extruder is capable of. If you just pull the filament back, you get long tails, and it doesn't look like that at all. The tails WILL jam an e3d v6. In quite spectacular fashion (I had to take mine apart to clear one)
The first effort was around ramming / purging. The idea was to push out filament as fast as possible, then yank it back. This generated an awesome break, very clean. But left a ton of filament mess. It was basically:
G1 E5 F1200
G1 E-150 F3600Simple. But messy, and requires a very fast retract.
Step two, I figured out how to get rid of that purge. The trick was to mimic what it's doing. So you unretract, then PAUSE. 2 seconds or so of pause is enough to actually cool the retracted filament down. Then you push it forward, and pull immediately. Clean break, if you can retract at 100mm/s. So, basically this:
G1 E-3 F3600 <- whatever a "normal" retract is for your setup
G4 S2 <- pause two seconds, to cool the retracted filament
G1 E2.9 F3600 <- whatever a "normal" unretract is for your setup
G1 E-150 F6000 <- yank the filament backThen I hit a new issue, I put on titans (for more torque, so I could lower my temps some). But 100mm/s retractions don't work, so I played around (lots of jams) until I could generate a clean-ish break. This involves "packing" the filament.
G1 E-3 F3600 <- whatever a "normal" retract is for your setup
G4 S2 <- pause two seconds, to cool the retracted filament
G1 E2.9 F3600 <- whatever a "normal" unretract is for your setup
G1 E-20 F3600 <-Retract enough to pull it into the heatbreak
G1 E20 F3600 <- Pack the filament in, this will get rid of most of the stringing
G1 E-150 F3600 <- Pull the filament out past the Y adapter.There may be simpler ways to do this with an e3d v6, I've just been playing with it until I find something that works. If you can retract at 100mm/s, the 2nd method above has worked for me for over 2500 filament swaps in a row, with no jams. If you can only retract at ~60mm/s, I've just started with the third method, but it's worked around 500 times now, with no jams.
My testing method is to just swap filament in air, extruding 20mm between each swap using a macro. It looks something like this:
http://imgur.com/DXYp6nTOnce I can complete 50 in a row, I try a print.
-
Thanks - I understand all that (and am fortunate enough to be able to retract at 100mm/s).
OK, I just realized what my confusion was. Your T0.g script was:
G1 E-5 F3600 ; Retract 5mm - adjust this to your standard retraction
G4 S2 ; pause 2 seconds
G1 E**-**4.9 F1200 ; unretract 4.9mmWhen I saw the "unretract 4.9mm", I thought that was a fancy way to say you were pushing the filament back into the hot end. (4.9mm seemed so precise I assumed this was some sort of filament shaping trick.) I didn't look at the command itself which clearly shows you are actually retracting 4.9mm farther (my bad).
I totally understand now - thanks for your patience!!!
-
Doh, no, that was a typo, you are pushing it back (extruding it). It is a filament shaping trick
I'll edit.
The goal is to have your nozzle filled with melted filament, but for as little time as possible. That's what gets it to break, rather than string. It seems pointless, but with the E3d v6, if you don't do it, you will get constant jams.
-
I cant wait to try it sounds like fun, and we will be so far into it thanks kraegar for all the hard work you've done here. Now just finding time to install the Y adaptor and second extruder.
-
I'm not entirely convinced on my newer packing method for slower extruders. I'd much prefer to get the kind of break I was getting with 100mm/s retractions. Maybe once more of us are doing it, we'll find a better method.
Also, I really don't like that my retractions are currently at 5mm, so we need more people using the Y adapter with the v6, to see if we can find retraction settings that don't string, and aren't so long!
-
Doh, no, that was a typo, you are pushing it back (extruding it). It is a filament shaping trick
Ok, now you're just f-ing with me.
So back to a rephrasing of my original question: what happens immediately after the 4.9mm extrusion/unretraction? Something has to happen next, right?
-
Doh, no, that was a typo, you are pushing it back (extruding it). It is a filament shaping trick
Ok, now you're just f-ing with me.
So back to a rephrasing of my original question: what happens immediately after the 4.9mm extrusion/unretraction? Something has to happen next, right?
If must seem like I am just screwing with you!
Ignore the "some happens in the slicer, some happens in the firmware" aspects of this, and let's take the simplest case, where we can do 100mm/s retraction, ok?
So, here would be the "during a print" steps.
Retract (G1 E-5 F3600) and zhop to clear your print
Move to your purge area (G90; G1 X0 Y130)
Pause two seconds to let the filament cool (G4 S2)
Extrude all or nearly all; aka, unretract (G1 E4.9 F1200)
Retract 150mm of filament (G1 E-150 F6000)
<new tool="" becomes="" active,="" same="" hotend,="" second="" extruder="">Feed in new filament (G1 E142 F6000; G1 E3 F1200 )
Unzhop and get back to printing.That's it. You can't just remove the filament to switch. You have to pull a bit back, cool it, extrude it, then yank it back again. Or, that's what I've found works for me anyway.</new>
-
I totally get the basic principles. It's just that your T0.g script seems incomplete:
You have to pull a bit back, cool it, extrude it, then yank it back again.
Where is the "yank it back again" part in the T0.g procedure? Does another macro start that yanks it back? Does control go back to the object's gcode file where the Tool Change script yanks it back?
Maybe I just don't understand when/how T0.g and T1.g are supposed to be used. To me they look like scripts that retract the filament, then shove it back in (minus 1/10 of a mm), and then things go idle, almost as if Tx.g had never been run.
Thanks again for bearing with me!