Y Adapter filament switching
-
Be warned, if you use this with Cura, it works fine, but you'll want to pull out the M109's at the start of the gcode. If you don't, when it does M109 T1… it'll trigger a hotend swap. On a delta, since you're homed, when it tried to move to the back of the bed it'll be bouncing off the end stops, and bad sounds ensue.
Of course, Cura 2.x doesn't have post processing scripts, either, so that's a manual change.
-
This is great information. Do you print a wipe and prime tower at each tool change?
-
A prime tower, yes. I've tested it with both cura & s3d. I position the prime tower to the back of the bed, so the nozzle passes over it after a switch, to make sure any ooze is trapped on it.
Also, for the retraction distance I used 3mm. That's what I found I have to retract at with the Y adapter, without it I was at 2mm. Set that value close to your normal retractions in both spots, don't just take 3mm and go. If you only need to retract 1mm, that might cause you jamming.
-
Is there any way to do it in slic3r? No problem if not I have s3d just don't use it day to day.
-
This is great - I've got the same SeeMeCNC Y adapter and will be setting this up soon. I really appreciate all the tips.
-
Slic3r doesn't generate a prime tower. There are post-processing scripts to add them to slic3r, but I didn't want to bother with them.
Cura does do a prime tower, and I've seen people having good prints with it with dual colors, but it's goofed up for me (didn't prime before printing) on two models I've sliced in it now. I haven't given up on it, but for now I'm having the best luck with s3d.
The only issue I'm currently fighting is stringing. I've collapsed the short retract / reprime into my standard firmware retract, so I just have a G10 / G11 in the script there. I also shortened up the longer reprime, and it greatly cut down on the ooze. My scripts currently are:
;tfreeX.g script (identical for tfree0 and tfree1):
M83 ; relative extruder moves
G10 ; retract
G90 ; absolute moves
G1 X0 Y130.00 F9000 ; move to back left side of the bed
G4 S2 ; Pause 2 seconds
G11 ; unretract
G1 E-150 F6000 ;retract 150mm @ 100mm/sAnd my post script:
M83 ; relative extruder moves
G1 E142 F6000 ; Feed 145mm @ 100mm/s <- play with this tower to eliminate ooze, and watch where your prime pillar starts
G1 E3 F1500 ; Feed 3mm @ 25mm/s <- the last 3mm should definitely be slower, or you'll get jamming.Now if I can eliminate my stringing (just your run of the mill PLA stringing, but it's not going away yet) I'll be all set.
Here's a (rough, but functional) squirtle. http://imgur.com/WAAoS9e
The underextrusion in blue was a filament tangle (the long retracts can pop your filament off the side of a spool).
I'm over 1500 filament swaps with no jams now.
-
So, I was hitting some limits I suspected were from friction added by the Y adapter - it was forcing me to use 205c for most of my printing (anything above 40mms/). Without the Y, I was printing at 195c usually. This was adding stringing.
I put on some e3d titans for the extra torque, and I could lower the temps down to 195c, but hit a new problem… I can't retract above 60mm/s without the stepper stalling out. (I'm running on 12v, perhaps at 24v I could? Don't know)
This slow retract speed means I don't get a clean filament break, and therefore, jamming. Did a bunch of testing, and came up with the following. It's not pretty, but it's made it through hundreds of swaps now without a jam. I currently have the Z-lift commented out, I'm doing a .25mm lift in my retraction, and that's enough for now.
;tfreeX.g
M83 ;relative extruder moves
G91 ;relative moves
G10
;G1 Z10 F12000
G90 ;absolute moves
G1 X0 Y130.00 F12000 ; move to back left side of the bed
G4 S2 ;pause two seconds
G11 ;unretract
G1 E-20 F1200 ;retract 20mm fairly slow
G1 E20 F3600 ;extrude 20mm to "pack" the stringing
G1 E-150 F3600 ;immediately pull back 150mm as fast as the titan allows;tpostX.g
M83 ;relative extruder moves
G1 E142 F3600 ; extrude 142mm as fast as the titan can
G1 E3 F1500 ;extrude 3mm relatively slowly - you may even want to go slower.
G91 ;relative moves
;G1 Z-10 F9000 ;move down 10mm -
…I put on some e3d titans for the extra torque, and I could lower the temps down to 195c, but hit a new problem... I can't retract above 60mm/s without the stepper stalling out. (I'm running on 12v, perhaps at 24v I could? Don't know)
If you are using a 0.9deg/step extruder motor then it's quite likely that you need 24V to maintain torque at high speed. See https://duet3d.com/wiki/Choosing_stepper_motors#How_to_work_out_the_power_supply_voltage_you_need.
-
This are 1.8 degree steppers. I knew I'd need 24v for 0.9 degree, but with the titan's 3:1 gearing 60mm/s is about all I can do on them without stalling out, even with the 1.8 degree steppers.
-
Are you using a low current high inductance motor? That would also give reduced torque at high speeds. See the link I posted earlier.
-
This is the stepper I'm using: http://www.automationtechnologiesinc.com/products-page/3d-printer/nema17-stepper-motor-kl17h247-150-4a-for-3d-printer
Currents:
M906 X1000 Y1000 Z1000 E1000:1000 -
If you are running it at 1A then at 60mm/sec the back emf due to inductance comes out at 11.8V and the back emf due to rotation comes out at 12.6V. So yes, you do need more voltage if you want to maintain torque. OTOH that motor is overkill, you could use a shorter one with lower inductance and lower rotor inertia. I use 34mm long motors with about 0.22Nm torque on my 3:1 geared extruders.
-
The goal with going to the titan was to gain a little torque - wouldn't I lose some, or come out about even, with a smaller stepper like that?
-
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.