2 in 1 out dual extrusion (Cyclops) system Y shaped part with setup instruction

by Iskander, published

2 in 1 out dual extrusion (Cyclops) system Y shaped part with setup instruction by Iskander May 18, 2017
1 Share
Download All Files

Thing Apps Enabled

Open in Customizer Order This Printed View All Apps


Liked By

View All

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag


Thing Statistics

5179Views 650Downloads Found in 3D Printing


2 in 1 out system is designed in the way that you have 2 bowden extruder motors with bowden tubes feeding filament to this part which has only 1 outlet side that feeds into single hotend.

Existing models didn't fit my needs so I created parametric part.
Current parameters are tuned to accommodate m6 thread with prior tapping.
I recommend first to print test part (produced by setting debug = true) to make sure your tolerances are good.
radIn - radius for the filament
radThread - radius for fitting

If your fittings don't let bowden tube to go straight through replace
radPtfe = 2.5;
radPtfe = radIn;

If you don't want to tap the threads try increasing radThread to let fitting screw right in.

update 2017/06/13:

Added scripts for Cura:
In Cura add a new printer with 2 extruders and in Machine Settings set gcodes as follows:

cura_printer_start_script_T0_first.gcode - contains code that primes extruder #0 for "Start gcode" field
cura_printer_start_script_T1_first.gcode - contains code that primes extruder #1 for "Start gcode" field
cura_printer_end_script.gcode - "End gcode" field
cura_extruder_start_script.gcode - "Extruder start gcode" field for both extruders
cura_extruder_end_script.gcode - "Extruder end gcode" field for both extruders

Make sure you set gcodes for each extruder.

How this works and what it does:

  1. Before the start of the print filament in both bowden tubes should be retracted to the position where it is out of the Y-part. I call it Storage position.
    On my printer it's 140mm before nozzle, but yours may be something like 170, I have very tight fit (more on that in "What you need to tune" section).
    When filament is in storage position you can start extruding by any extruder without jamming 2 filaments to each other.
  2. Start script primes the nozzle with one of the extruders (more on that in "First extruder selection" section).
  3. Skirt is printed.
  4. Part of the layer printed with one extruder.
  5. Extruder end script is executed - it retracts filament to storage position with old extruder.
  6. Extruder start script is executed - it loads filament to the nozzle with new extruder.
  7. Second part of the layer is printed with new extruder.
  8. First part of the new layer is printed without switching extruder.
  9. Go to 4.

This cycle is repeated until the end of print.
On each layer there is only one filament switch.

First extruder selection

2 cura_printer_start scripts are provided: one primes nozzle with extruder #0, second with extruder #1.

I find it convenient to setup 2 almost identical printer definitions, the only difference is that they use T0 and T1 respectively for first filament loading.
Seems like Cura determines which filament to use first by the selection of Build Plate Adhesion Extruder.

So when I want printer to start with left filament first I:

  1. Select printer definition that loads left filament.
  2. Select left extruder for Build Plate Adhesion Extruder.

What you need to tune

Storage position.
When you retract filament from the heated hotend it is usually stretches into hairs.
Find how much you need to retract filament from fully primed nozzle until it pulls filament hairs from the Y-part. This is your storage length.
My storage length is 140 and this is what you'll find in scripts.

140 with your value in printer start gcode.
-140 with -value in printer end gcode.
137 with your value minus 3 in Extruder start gcode.
-137 with -(value - 3) in Extruder end gcode.

Also add a gcode in your printing host that will retract last extruder if you cancel the print.

G1 E-5 F10000               ; stage 1 of 3 stage retraction
G1 E2 F10000                ; stage 2
G1 E-137 F10000             ; stage 3, this keeps from producing "hair"

Retraction to the storage position

Retraction to the storage postition happens in 3 moves:

G1 E-5 F10000               ; stage 1 of 3 stage retraction
G1 E2 F10000                ; stage 2
G1 E-137 F10000             ; stage 3

This should minimize the amouth of produced filament hair.
The idea is taken from 3dator wiki.
It is in German, but fortunately gcode is the common language for all of us =). Google translate does a good job also.

Print Settings

Printer Brand:











More from 3D Printing

view more

All Apps

Customizer is the easiest way to take great 3D printable designs and make them your own. Make your OpenSCAD designs infinitely more valuable by empowering the community to customize them.

App Info Launch App
Customizer Thing App

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

Treatstock is an online platform that offers decentralized manufacturing services such as 3D printing and CNC machining for clients all over the world. We offer free and instant access to comparati...

App Info Launch App

3D print your favourite design with NinjaPrototype, a professional 3D manufacture with consistent quality and speed.

App Info Launch App

Hi, nice job, i wanted to ask you...are you using purge tower or/and ooze shield on your printings (CURA 3)? Thnks.

Only purge tower, didn't try an ooze shield

Do you also have the gcode for Slic3r?

Unfortunately I don't as i'm not using it as I don't use it at the moment.
Probably somebody who uses it can try to convert it.

can u post a picture of a print made with this dual extrusion method?

This was part of the printer rebuilding, I'm still tunning it. I'll post as soon as i'll make one and ping you back.

Added a picture of two colored die and instruction on setting this up.

Ok thank you.

I am looking for single nozzle dual extruder and im not sure if this is ready for PLA. How could I use this in Cura 2? Are there any script or something? im new to this system and I want to try it. Nice work by the way!

I added instructions for setting this up and all the necessary Cura scripts. I'm using Cura 2.6(beta).
There's a picture of print result also.

It should be ok with any non-flexible material, especially PLA.
I didn't set it up yet, but I'm going to do it through Marlin firmware, it has a feature for that.
I guess you could do it with cura script, but I don't have one on my hands. What firmware do you use?

I use Marlin but I didn't tested firmware toolchange. I'm migrating to some 32bit board, checking all time how is marlin ports as I want to try both Marlin/Smoothieware compatible board. I'm using Astroprint because its workflow/printquality are unbeatable. He has Cura and Slic3r and you can choose. Also making and using profiles are super easy. It's free if you have a raspberry pi. You upload STL, select Machine, Material and Quality (or custom profile) and go. But I do not understand so much dual extruder on profiles settings. So I will investigate firmware retractions and toolchange as I think it is the best way. Thanks for all your replys