Page 1 of 1

Dual Extruder PB+ Project: Step 3, Dual Extruder Printing

PostPosted: 2013-Jul-Sat-15-Jul
by Tdeagan
NOTE: This article is the third in a series documenting the conversion of my Printrbot Plus V1 to Dual Extrusion. Along the way, Printrbot released their beta solution for Dual Extrusion, making some aspects of this effort (notably the Ramps 1.4 controller board,) redundant. This article is relevant to anyone printing with Dual Extrusion, regardless of the controller board or configuration of the extruders. It is documentation of what I have learned, and should not be considered gospel. I hope others will comment and help increase the amount of easily discover-able information on this topic.

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.
The distinction is more important than it may seem and I'd like to treat these approaches independently. First however, I'd like to cover a few of the relevant setup and hardware issues facing dual extrusion printing.

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.
Offsets typically need to be accurate to at least .5mm, gapping between the two materials of more than that is noticable and problematic.

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
This becomes increasingly relevant as we explore the different modes of dual extrusion printing.

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.
Slic3r's G-code output, if displayed in a G-code path viewer, will show two models separated by the offset value associated with the extruders. It will not print the models separated, it will apply the offset and combine them.
dual cat.jpg
dual cat.jpg (134.35 KiB) Viewed 3528 times

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.
kisslicer_pillar.jpg (268.34 KiB) Viewed 3528 times

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:

Re: Dual Extruder PB+ Project: Step 3, Dual Extruder Printin

PostPosted: 2013-Jul-Sun-11-Jul
This is very interesting stuff. I recieved on of the dual extruder beta so this upcoming week we will recieve info to start putting it all together as Brook is getting back from NY today. Very interesting stuff. Im glad they realized the importance of having the extruders mounted at the exact same height. Each set of extruders is measured for consistency. I decided to switch my ramps over to run my Printrbot Simple, which to my knowledge has not been done. That way I can run my printrboard on my plus v2 with dual 1.75mm ubis hotends.

I will definitely be logging my experience as well as troubleshooting and results. You have done a good job of explaining the types and common issues. Keep up the good work and eventually I might need some help with the ramps to simple setup.

Re: Dual Extruder PB+ Project: Step 3, Dual Extruder Printin

PostPosted: 2013-Jul-Sun-11-Jul
Oh here's some pics of the start of the dual extruder beta.

Re: Dual Extruder PB+ Project: Step 3, Dual Extruder Printin

PostPosted: 2013-Jul-Sun-11-Jul
by Tdeagan
Looks sweet!!!

I'm switching my rig back to the Printrboard + Extrudrboard with the new Printrbot LCD. It'll be interesting to see how the firmware issues aply.

Re: Dual Extruder PB+ Project: Step 3, Dual Extruder Printin

PostPosted: 2013-Jul-Sun-13-Jul
That will be exciting to see how they handle all the firmware issues. Im ordering an LCD soon also so I can print true standalone as I have setup a new prototyping space that has no other computer other than my tablet. I wish they would come out with android support. There are several ppl working on it but I haven't hewrd much lately.

We are suppose to get build info for the beta when brook gets back from NY. It shall be exciting. The new 350w 25amp atx psu that came with it looks to be a lot nicer than the old diablotek. I will be running that as well as the jrs. Lsptop psu with no heatbed to start. Eventually I will switch to my xbox 360 psu or another 40amp psu with the 25amp Printrbot gave.