Dual Extrusion - Clean Prints - No Ooze

I have been diving into the world of dual extrusion on my Taz 6 with Dual v3 tool head. My primary function is to be able to print with support material.
I have found that eSun PLA Pro is a very solid filament and prints great in the Taz. Also, PolySupport material is very compatible with PLA Pro. I wanted to tune the materials so that the prints were clean and did not suffer from oozing. I didnt like the ooze shield option, as it added a lot of time and material (especially on large volume prints). I have been experimenting with and without the prime tower and wanted to see if others in the community had ideas or suggestions to improve dual extrusion prints so I will share what I have done.

So far, I have gotten near perfect prints using custom Start Gcode, custom Extruder End Gcode, and the prime tower, but there is room for improvement. Basically, I played with the temperatures of the PLA Pro and PolySupport to see at what temps they started to solidify enough not to ooze after a 15mm retraction at 25mm/s.

Start Gcode:

  • Add commands to immediately retract 15mm of support material after purge
  • Wait for support extruder to cool low enough to not ooze after print bed shear (about 205 C)

This gave me a very clean first layer… no ooze.

Extruder 1 and 2 End Gcode:

  • Direct the deactivated extruder nozzel over to the center of one of the prime tower walls (this impedes oozing while the extruder cools and prevents it from creating bulges on the part. It also prevents ooze from the extruder heating up from getting on the part. This command is hard coded and does require an understanding of where the tower is… would be nice if it was parametric!)
  • Wait until deactivated extruder too cold to ooze (205 for PolySupport, 190 for PLA Pro)

After the Extruder End Gcode is run, the active extruder should be over the initial temp value and proceeds to prime on the tower. This further eliminates the possibility of ooze from the cooling extruder making it to the part because now its going to get wiped over the tower for several seconds. The prime tower should be large enough to consume enough time to allow the active extruder to reach full temp. I found that a standard 25mm x 25mm tower that has walls 5mm thick worked well. Be sure to take into account the prime tower print speeds. PolySupport worked well at 20mm/s and the PLA Pro was at 40mm/s. (I think Ill try 60 next)

One issue that I noticed with this was by adding a travel command to my Extruder End Gcode to park the cooling extruder over the prime tower wall, I create unnecessary travels to and from the tower every time there is an extruder change. This is because the original gcode is unaware that I am moving the head in my end block, so when it picks up after the end block, it has to run back to the part (where it thinks it left off), then back to the prime tower to print it. This is annoying, and I haven’t figured out a good way to fix it as it would require Cura understanding what the start and stop blocks are doing to optimize the travel paths. I think all it does currently is copy/paste your code blocks. I would be nice if there was a “Park Head Location” option that would allow you to do what I am doing, only Cura could adjust the travels to eliminate the redundant moves.

At any rate, it would be less moves and material than an ooze shield. I am happy with the progress so far and would like to hear from others who have played with this! :smiley:

I like using an ooze shield because its less travel than a prime tower. Two perimeters prevents collapses… I use partial shields with single extrusion prints to mitigate warping with ABS. It also helps to maintain the form of overhangs as the ABS cools. So it its a waste of material depending on the size of the part, I find the ooze shield serves multiple purposes for me.

Extrusion temperature and retraction settings are the settings I focus on for mitigation of ooze. My issue is ooze over long duration layers. Eventually the plastic will leak past the “suction” created by the retraction, lowering extrusion temps help, but can reduce layer adhesion. As and example, a layer that takes 2min to print will result in unprinted filament oozing and “wiped” off when the unused extruder crosses an edge. On important prints, I adjust retraction and lower print temps to help… but often times I just leave it up to cleanup during post processing.

It would be great to see a slicer with intelligence to decrease the temp on an unused extruder by 3-5C based on the duration of the layer to help with ooze mitigation. I thought there was a slicer that could wipe (prime) in the infill… that would be interesting for larger prints also.

Its an ongoing battle…

I was watching my dual v3 printing from latest cura (3.2.32) and it was lowering the temperature on the inactive nozzle. (This was default profile with a prime tower in the corner…)

Found the setting for this under materials settings… “Standby temperature”

I appreciate the feedback.
I have been playing with temps and retractions to eliminate the need for a prime tower. I use much more expensive 3D printers at work (Stratasys uPrint SE) and they have a prime bucket and wire brush (with rubber wiper) station that the head parks at while switching hot ends. It also had a cam leaver that rocks the active head parallel to the print, so that the inactive head has more clearance. This results in very clean prints. Unfortunately, the design of the Taz (with moving Y-axis) makes this type of maintenance very difficult to impossible… hence, the prime tower. I really like the idea of a maintenance location where the Taz can manage the toolhead away from the part, but maybe that’s not necessary?

The more I play with the settings, the better the results I get.
I have modified the Initial Print Temp, Final Print Temp, and extruder End gcode blocks to better control the nozzles. I have moved away from re-positioning the tool head between layers and let it cool down / heat up over the part.

My current test setup uses the following Extruder End Gcode blocks for E1 and E2:

M106 ;Fan speed to 100% to cool cooling extruder faster
M109 R{material_standby_temperature} ;wait for non-ooze temp
M107 ;Turn fan off -> Gcode will turn on at proper level shortly
;End Extruder

By default, when the extruder is changed, the print head is parked over a location the active extruder took so that there is zero gap for oozing. I wanted to chang ethis position to the prime tower to help protect the part. The more I play with this, the more it seems that is not needed. Also, as dmds pointed out, the temp of the second extruder got a command to start heating up at some point while the first extruder was printing. The timing of when this occurs in the Gcode is based on the Extrusion Cool Down Speed Modifier value and how fast you are printing. The default is 0.7 C/s which means that the cooling extruder will cool down an extra 0.7C faster. However, Cura uses this for both fans, so this will also make heating up the other extruder 0.7C/s slower :unamused: . I changed mine to 0 C/s which basically means that the heating extruder will heat faster and the cooling extruder will cool slower. That’s perfectly fine, as my Extruder End Gcode blocks fire up the fans at full blast and wait for the inactive extruder to reach the Standby Temperature + 10C. This is usually about 15-20 seconds. This gives the other extruder time to heat up and with the aggressive 15mm of retraction, I have not gotten ooze yet.

I just completed a 13 hr print with the above settings. I did not use a prime tower and let the Extruder End Gcode keep the head parked over the print while blasting the fans the the appropriate temperature. My print came out nearly flawless. There was no oozing at all, even after the 4 initial, solid layers that kept the support extruder inactive (at the standby temperature) for nearly 1.5 hrs. During the entire print, the inactive extruder was held at its standby temp after a 15mm retraction.

This saved me almost 5 hours by eliminating the prime tower. If waiting for temperatures are enforced, and adequate retraction is utilized, you can achieve excellent dual extrusion prints without the need of a prime tower.

In case anyone is interested, here are the key settings I used in conjunction the with above gcode blocks for eSun PLA Pro and PolyMaker PolySupport:

  • Build Plate Temp: 65
  • Extrusion Cool Down Modifier: 0
  • Support Extruder/Support Infill/FirstLayer: Extruder 1
  • Support Interface Extruder: 2
  • Support Infill Speed: 30
  • Support Interface Speed: 20 (both floor and roof)

eSun PLA Pro:

  • Default Print Temp: 225
  • Print Temp 210
  • Initial Layer Temp: 215
  • Initial Printing Temp: 205
  • Final Print Temp: 200
  • Retraction: 1mm @ 10mm/s (retract and prime)
  • Standby Temp: 175
  • Retraction on Extruder Change: 15mm @ 25mm/s (retract and prime)
  • Regular/Max Fan speed: 80/100


  • Default Print Temp: 225
  • Print Temp 225
  • Initial Layer Temp: 230
  • Initial Printing Temp: 220
  • Final Print Temp: 215
  • Retraction: 3mm @ 10mm/s (retract and prime)
  • Standby Temp: 180
  • Retraction on Extruder Change: 15mm @ 25mm/s (retract and prime)
  • Regular/Max Fan speed: 30/40