Posted on

Wipe & Prime Towers for Slic3r

687474703a2f2f692e696d6775722e636f6d2f6c4f7a6c4f354c2e706e67

Printing with dual extruders can be somewhat of a tedious task. Fortunately or unfortunately, there are many different aproaches all aiming to easing up dual extrusion or multicolor or multimaterial printing. I tried almost all of the half assed solutions out there, but ended up writing my own gcode post processor, here it is.

The setup

For all tests, smartABS was printed at 255 °C with a bed temperature of 100 °C while the first layer temperatures are slightly higher at 275 °C for the hotends and 110 °C for the bed.

I am using two E3Dv6 on my SuperMount hotend holder, which sets the hotends quite far (68mm) from each other. I prefer this setup, because with 68mm between the nozzles, I can print at least 68×180 mm objects in two colors without the idle extruder travelling over the currently printed layer, which is something that you won’t get with i.e. an E3D Chimera hotend.

I like the idea of the color switching hotends like the E3D Cyclops or the Diamont Hotend, which I already ordered and will review as soon as it’s set up. For now, dual nozzle extrusion works great for me and there is no need to take compromises. After all, using two E3Dv6 Lite on a SuperMount would be darn cheap dual extrusion, wouldn’t it?

Slic3r #1

First off, I tried Slic3rs ooze prevention feature and I must say, the idea of letting one nozzle cool down is defenitely smart. Cold nozzles don’t ooze, and my E3Dv6 cools down quick enough to keep the initial ooze to a minimum. Unfortunately, it still takes quite some time to cool down, and since Slic3r will always print the ooze prevention wall with Extruder #0, I just had way too many tool changes to be happy with this solution. Also, the ooze prevention wall, which is basically a brim at full object height, pops off my PEI build platform just after a few laysers due to its own thermal bananaing. In addition to that, the ooze prevention wall keeps to much heat on the inside, causing deformation to the actually printed object.

Cura

After getting nowhere with Slic3rs dual extrusion features as described above, I went over to challenge Cura with that. Cura’s Wipe & Prime towers are simply amazing. Or better: Simple and amazing, and therefore follow the whole philosophy of Cura. Using Cura’s Wipe & Prime towers you get the usual Cura awesomeness, almost spotless dual color prints and a pretty ugly wipe tower. But, had I tried Slic3r before if I would not prefer Slic3r? Probably not, I still prefer Slic3r for it’s overall performance, and I already have finely dialed in settings for Slic3r that simply outperform Cura and it’s limited configurability.

Slic3r #2 custom G-code sections

Turn’s out Slic3r is still better then Cura (for me), just not for dual extrusion. So let’s fix that. My first thought was, adding Cura-style wipe towers to Slic3r is as easy as adding a bit of G-code to the layer change textbox in the Slic3r settings.

However, I quickly found out that each extruder has to drop some material onto the wipe tower at least every layer in order to avoid excessive oozing during longer idle phases, and even though cycling through all the extruders with Tn in the layer change gcode is possible, one would not be able to switch back to the acutally active extruder, since there is no such thing as an [active_extruder] [current_extruder] variable. So guess what Alessandro added in record-breaking 24h after my request. Thanks man, thats awsome! So now we can have wipe towers within the layer change G-code sections and wipes in the tool change G-code sections. Paradise. Yay!

Slic3r #3 Perl G-code postprocessor

Click here to get the current version of my wipe tower postprocessor for Slic3r on GitHub

What I found in the above adventures is, that Slic3r is awesome, Alessandro is also awesome, Cura is awesome in terms of wipe towers, and wipe towers are also awesome, and that wipe towers could be even more awesome if I implemented them a bit smarter than what’s possible with the static custom G-code sections. Like, the wipe tower layers should have varying starting points in every layer for avoiding the oozed material to accumulate in one corner.

687474703a2f2f692e696d6775722e636f6d2f6c4f7a6c4f354c2e706e67
Perl helps a lot getting nice wipe towers.

Also the wipes should happen from different angles at every wipe procedure, for avoiding the collection of the previously wiped off material. So I went translating my original Processing Java sketch that generated crude G-code lines into a nice little Perl script to post process Slic3r’s G-code as it comes during the export. And that I must say, really was it. From the first print on with those towers and wipings I see prints coming out perfectly spotless.

Leave a Reply

Your email address will not be published. Required fields are marked *