Part 1 of this series documented my conversion to a Bowden tube system for the Printrbot.
Part 2 of this series documented my conversion to a Ramps 1.4 controller

Dual Extrusion
The ability to push goo through multiple extruders brings many opportunities for heartache and triumph. All the challenges and frustrations associated with single extruder printing are squared (or worse), not doubled. Nevertheless, the new capabilities are exciting and tend to fall into two major types of activity, which I will define as:
- Multi-Material Printing - A print whose .STL file leverages two or more materials.
- Alternate Support Printing - A print whose .STL is a single material, but the slicing software uses one or more additional materials to create support.
Hardware Issues

LEVELING: When setting up the second (and subsequent) hot ends, it is absolutely critical that the two nozzles are as level as possible. If they aren't level, depending on which one is associated with Z-0.00, the low nozzle knocks over or smears the high nozzle's output, or the high nozzle's output is air gapped above the prior levels (and causes the low nozzle to smear it.) Leveling the nozzles may require shims at the extruder mount or careful reprinting of the mount itself (assuming you printed the dual mount.) In the end, I found that the final leveling occurred for me by slightly turning one of the nozzles on its threads. Too much of this and the nozzle can move, so it's only useful in a small range where the nozzle is threaded onto the teflon tape of the hot end and will stay in place.
OFFSET: The printing tech stack must know where additional extruders are positioned. In most cases, Extruder 0 is always at X - 0.00, Y- 0.00 and the other extruder(s) are described relative to that. I'm being obscure in saying 'the printing tech stack' because there is debate, and subsequent implementation differences, as to where that positioning should be declared.
There are three options for describing the offset. Different slicer/firmware combinations require different approaches:
- Firmware - Marlin, for example, has a define in Confirguration.h which is commented out by default:
- Code: Select all
// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
// For the other hotends it is their distance from the extruder 0 hotend.
// #define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
// #define EXTRUDER_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
This can be un-commented, then compiled and uploaded. - GCode - Some firmware recognizes G10 as the head offset command. This can be added to the Pre-Pend GCode section in the slicing software. Unfortunately, this is not universal. Marlin declares "G10 =retract filament according to settings of M207", so it won't accept G-code based definition of head offset.
- Slicing Software Config - Slic3r provides an input for describing the head offset for the additional extruder. KISSlicer does not.
So, using my Marlin firmware dual Printrbot, I can (for examples):
- slice with Slic3r and control head offset in the Slic3r config
- slice with KISSlicer and rely on the firmware setting for the head offset
I noted in Part 2 that there is currently no mechanism for defining different Steps/mm Feed Rate values for multiple extruders. Most setups, typically via the slicing or control software, do allow for modifications to the 'Flow Rate' as opposed to the 'Feed Rate'. ei8htohmsturned me on to a wonderful writeup by Triffid Hunter on tuning these values.
Multi-Material Printing
Many of the most exciting objects on Thingiverse are printed with multiple materials. Multi-color Globes, Two Color Cats, etc.. Typically, but not necessarily, these use two colors of the same material (e.g. ABS.) Different materials might be combined to achieve particular mechanical properties. The common method of creating a print like this consists of using two .STL files, one for each material, and combining them in slicing software.
Slic3r has the ability to combine multiple .STL files, as of this writing, KISSlicer does not. Slic3r's plating screen offers a menu item; 'File->Combine multi-material STL files' which allows the user to select multiple STLs and join them into an AMF file.
Some notes:
- The order in which you select the STLs is the order in which they are associated with extruders. You can do this with multiple selections on the same screen or multiple sequential uses of the screen after clicking 'Open'. The Plater screen in Slic3r has two drop downs for filament when you select a printer profile with more than one extruder. The top drop down is the one that associates with EXT0 (and the first STL selected,) and the bottom with EXT1 (and the second STL selected.)
- You have to click 'Cancel' to complete the selection, otherwise the selection screen will keep popping up to allow additional selections.
- To slice, you then have to load the AMF file you saved as if you were loading an STL
- On many systems, for various versions, Slic3r will crash attempting to slice the AMF unless you set the number of threads to 1
- On many systems, for various versions, Slic3r will be very slow doing this process. The complexity of the models makes a significant difference in the time required.
Acquiring matching STLs for 'dualstrusion' printing can be as easy as downloading them from Thingiverse or you can create them yourself by splitting an existing STL up in a tool like OpenSCAD.
Alternate Support Printing
I initially imagined that I would mostly want to do multi-material printing. But I surprised myself in finding that most of my dual printing was actually a normal single material print with a second material, that could be independently dissolved away, printed as support. PVA is popular for this, but I'm using HIPS. HIPS dissolves in Limonene which I purchased from Amazon. Whichever approach chosen, the goal is essentially to be able to print models having configurations and overhangs that would otherwise be unprintable. Hundreds of models on thingiverse, especially 3d scanned art, that otherwise wouldn't be possible, now become available.
Both KISSlicer and Slic3r support the use of multiple extruders for support printing. This is the only support in KISSlicer for multiple extruders. While the effort can be as simple as assigning each extruder, hence material, to object or support, KISSlicer has a feature that really sets it apart for this use.
One of the major frustrations with dual extrusion printing is ooze. One each level, one hot end is sitting there, all temp'd up doing nothing while the other extruder does its stuff. Even my typically oozeless stock Wade's extruder will dribble if the layer is very big. When called to duty, the extruder then wipes its snotty goo onto the edge of the print, causing a ridiculous number of 'whiskers'. Given that both extruders are doing this (and in my case, the second extruder is a bowden ooze bandit,) the prints can look like crap.
KISSlicer provides a function to add a 'Pillar' to the print. This is a circle, offset to the rest of the print, that each extruder does a lap around prior to it's run at the level. Much like an offset 'skirt', but occuring for the full height of the print. The snot wipe occurs (most of the time,) onto the pillar, leaving the print much cleaner. This has become a lifesaver for me. No matter how much retraction and such I try, the pillar seems necessary on prints with levels that last very long.
Ditto Printing
There is one other dual extrusion approach that I haven't tried yet. Sometimes referred to as 'Ditto Printing' this is the ability for both extruders to print at the same time, generally with the same model, thereby making two (or more) copies of the object. The Sailfish firmware has support for this feature.
---------------------------------------------------------------------
Useful links: