Bowden dual/quad extrusion extruder (single-nozzle single-drive) + video

by FDMTech, published

Bowden dual/quad extrusion extruder (single-nozzle single-drive) + video by FDMTech Nov 13, 2016
3 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps


It's been a while since I have uploaded a thing. But this one is pretty cool! You might know me from my Proximity sensor mount if you have a Prusa i3. Which is quite popular, according to Thingiverse Analytics.

I came up at this idea, when I got interested in dual extrusion. At first I found the well known Extruder Merger. Later on I found a Direct drive dual extruder (single-nozzle and single-drive), which I like more. Because it is less bulky than using 2 stepper motors.


The single-nozzle single-drive dual extruder, is direct drive. Meaning the motor is attached on the axis. My 3D printer is upgraded to a bowden extrusion, so I could not use it.


I convert the single-nozzle single-drive dual extruder to Bowden. Seems simple right? So this is what I came up with after hours of recreating in Autodesk Fusion 360.
Now it's possible to combine this using a Extruder Y-merger:

If you want to switch between 4 filaments, you will only need 2 stepper motors. Instead of the regular 4, by using a 4-way Y-merger at the nozzle end. If someone gets this (quad) working, please share your Gcode for switching!
Like this one does: Original Prusa i3 MK2 Multi Material upgrade release - dual/quad extrusion

The STL files have been exported using the highest quality (lowest Surface Deviation) as possible, in order to achieve maximum Number of Triangles. In short, the prints should look smooth AF.


  • See this link for assembly instructions: Direct drive dual extruder (single-nozzle and single-drive).
  • Requires 1 additional M3 washer where each idler mounts to the stepper motor. You can see the recessed hole for the M3 washer.
  • Requires 2* PC4-M5 pneumatic fittings at the output side.
  • Print the parts at 0.1mm layer height for best result.
  • Print and assemble a Extruder Y merger. I might design one myself and add it to the files.
  • Print the right body for your servomotor:
  • Cut one leg off of "regular" servo horn (arm) #12, that comes with your Hitec servomotor (says BigSteve). Or use a similar one if you want to use a different servomotor.
    Hitec horns


  • The mount has been designed to be in the proper direction of the layers, for maximum strength. Hole spacing is the same as a NEMA17 stepper motor. Allowing popular stepper motor brackets able to attach to the body using M3 hardware. Or some other way, be creative!
  • Sandwich the popular 90 degree angled stepper motor bracket between the NEMA17 stepper motors and body. The mount will face downwards, towards the output side.

Good luck!

  • Successfully printed dual color:
    • See video in gallery above!
    • Cura and Firmware settings released at my GitHub Repo
      • If you have a different firmware please let me add your configuration to the Repo. Let's help each other out :)
  • I would love to see your prints! I Made One
  • Status:
  • Standard size servomotor:
    • Done! body-hs422-hs425bb_repaired.stl - I managed to fit a Tamiya TSU-04 as well.
    • "I will be working on a second body design to fit a standard size servo. Which is more friendly priced (€15/€25), such as the plastic gear Hitec HS-422/HS-425BB dual (ball-)bearing. Or similar size servomotor. I think this would make it easier on the wallet for anyone to test this thing."

Video of it working and Source files: https://3dprintingwithzahier.blogspot.nl/2016/12/its-working-bowden-dualquad-extrusion.html

Print Settings

Printer Brand:



Prusa Z3D Rework (Custom)






  • Use brim and also use Supports for the body
  • Print the washer up-side-down.
  • For the left side print a mirrored idler and washer. In Cura 2.3.1, click on the part. On the left side you see buttons, click on mirror. Then click on the RED pointer. There you go, you now have a mirrored idler/washer.

I suggest using ABS to withstand the heat from the stepper motor. Other heat resistant filaments will do fine as well.

If you have an issue with printing check out this Troubleshooting Guide to 16 Common 3D Printing Problems by All3DP.

My custom 3D printer: Prusa Z3D Rework

How I Designed This

How I did it

How I did it

I completely made this thing in Autodeks Fusion 360. I kept most of the improvements of the previous design. While I also made a few tiny improvements over the previous design. It's still untested. But if you'd like to see how I did it or make changes, you can do so yourself. Such as changing the mount to your own preference. http://a360.co/2g45f33. Also if you have any questions or suggestions, please leave a comment on this thing.
See the Fusion 360 playback on YouTube here:
Fusion 360 - Bowden dual/quad extrusion extruder (single-nozzle single-drive)

Fusion 360 - Bowden dual/quad extrusion extruder (single-nozzle single-drive)

First real world test of the design went well - now wait for the rest of the parts to come in to test dual extrusion

Dual extrusion print working!

More from 3D Printer Extruders

view more

All Apps

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

Almost done... I´m still using rubber slastic but your desing works very well:


What does your tool change script look like? I couldn't get the timing correct

I add within Marlin 1.1.8 custom gcode command (config_adv.h) two commands:
Exchange to E2
Exchange to E1

and used the same gcode sequence to tool start gcode and tool end gcode at CURA 3.2.1 slice software.

When I come home I can get the gcodes and post here, if you want it...

Great thanks, I appreciate your help

My Cura 3.2.1 settings:

Left extruder
start gcode:
;---Extruder E1 start code Vortex Custom
M203 E400; High speed. Caution!
G92 E0 ; reset extruder counter
G91 ; relative positioning
T0 ;filament 1
G1 E+120.5 F18000
G1 E+2.5 F60
G1 E+3 F120
M203 E25 ;back to normal speed.
G92 E0
G90 ;absolute positioning
;---end extruder custom

End gcode:
;-----Extruder E1 end code Vortex Custom
M203 E400; High speed. Caution!
G92 E0
G91 ; relative positioning
G1 E-3 F120
G1 E-2.5 F60
G1 E-120.5 F18000
M203 E25 ;back to normal speed.
G92 E0
G90 ;absolute positioning
;-----End Extruder custom

Right Extruder:
Start gcode:
;---Extruder E2 start code Vortex Custom
M203 E400; High speed. Caution!
G92 E0 ; reset extruder counter
G91 ; relative positioning
T1 ; filament 2
G1 E+120.5 F18000
G1 E+2.5 F60
G1 E+3 F120
M203 E25 ;back to normal speed.
G92 E0
G90 ;absolute positioning
;---end extruder custom

End gocde:
;-----Extruder E1 end code Vortex Custom
M203 E400; High speed. Caution!
G92 E0
G91 ; relative positioning
G1 E-3 F120
G1 E-2.5 F60
G1 E-120.5 F18000
M203 E25 ;back to normal speed.
G92 E0
G90 ;absolute positioning
;-----End Extruder custom

Hope can help you!

Hi , Thanks for your design , great idea (one motor , one nozzle , 2 colors :) ) I Have an Anet A8 with original board , I would like to know how to connect the servo to the board .... If it's possible . Thanks

LCD pin 3 just like you would for a BL touch servo signal

Thanks:) , I'll try this this week :)

I love your remix,
I would like to know if you know how to wire the servo motor on a MKS Base 1.5 board?

hey i recently bought the TEVO Tornado it suports dual extruders on the main board i orderd a original TEVO extruder so in total i have 2 extruders and 1 nozzle could u help me or anyway tell me how to switch from extruders or how to modify the gcode im using Cura 2.6.1 i am able to set up 2 extruders in the software but i dont know how to edit the gcode from there

I liked this project so much but when I saw the servo motor (4.1kg) price... I gave up! more expensive then a nema 17 + polulu (even in "bb" plastic version.)

Thanks for the great work, but i dont understand why not use 2x nema17 motors, if the board does provide an connector for it, because for the price of the servos mentioned here you can get even 2x nema17 motors.

Thats a nice work! I've almost remixed it for vstone servos.

This inspired me to buy a cnc shield to add to my MKS board, I already had dual extruder and a clone so I'm adding four more extruders for a total of six materials as documented on the reprap wiki. I'm not sure if it'll work as easy as this but I'm betting that I can probably pull off full colored pixel art. So glad I bought a Prusa type printer for this reason. Thanks for the idea, I figured out 6 bucks and some motors, parts and material will make me a happy man.

what do you use for the idler pulley? i don't see anything mentioned.

Direct drive dual extruder (single-nozzle and single-drive)
Comments deleted.

Hooray, success!

The last couple of day's I have been struggling to get it to work. I managed to mount the servo motor. Modified the servo horn that came with it to have just one arm. And used M3 nylon spacers to space the servo somewhat back, as in the original from BigSteve.

Also I printed 3Dator's version of the Y-merger. Since I ordered PC4-M5 Pneumatic straight fittings and his version uses the same.

After struggling with getting the servo the work properly using Repetier-Firmware I glad to report is has been successful! Better yet I quickly made a video of it printing using 2 ABS filaments. Hope you guys enjoy.


Wow, I have never seen one of my things hit 1000 views so quickly. I do like to think this is one of the most coolest things I have shared with you guys. I hope you feel the same way.
I do have some more updates about the progress coming up so stay tuned. You can see the updates in the comments below.
Also check out my blog, where a keep track of everything with photos, videos and details.

Blog: https://3dprintingwithzahier.blogspot.nl
Videos only: https://www.youtube.com/ZahierMahoob

Quick intermediate update - GitHub
I have made all my configuration files available though GitHub so that you can reproduce my setup or apply to your own setup. Also it is easy for me to update these files if necessary.
Also, another opportunity arises. If you want to contribute your configuration for example, reply to this comment.
As soon as I am confident enough, I will add this link to the Thing Details tab of this thing.

For the firmware just use the lines that you need (probably NUM_EXTRUDER and EXT0 and EXT1 defines).
The rest of the Configuration.h file is specific for my setup for reference only. Since my stepper motors have twice the resolution (400 steps/rev) and I'm also running double the stepper driver micro-stepping (1/32) compared to mainstream. I also use a RAMPS-FD board (24V), so if you use a RAMPS board your pins in pins.h file will be different, again for reference only.

Bowden dual/quad extrusion extruder (single-nozzle single-drive) + video
by FDMTech

Update 4-1: Firmware - multi-extrusion

So I managed to get the firmware set up for dualstrusion. My printer uses a Arduino Due and RAMPS-FD board (for 24V), so I'm kinda stuck with repetier-firmware. But the good thing is, the support for multi-extrusion is great.

  • In pins.h I set the pins of E0 and E1 equal
  • In configuration.h I set #define NUM_EXTRUDER from 1 to 2
  • Copied over all EXT0 defines and pasted right below, change all of the new lines starting with EX0_ to EX1
  • Changed #define EXT1_HEATER_PIN to -1 // Not needed for single-nozzle
  • Changed #define EXT1_INVERSE from 1 to 0 // Single drive changes direction
  • Changed #define EXT0_SELECT_COMMANDS "" to "M340 P0 S2250\n" // Servo position in ms EXT0 // Prime settings in slicing software
  • Changed #define EXT1_SELECT_COMMANDS "" to "M340 P0 S800\n" // Servo postion in ms EXT1 // Prime settings in slicing software

You can expand this up to 10 (tops out at 10 using repetier-Host in the printer configuration).
Also you can use Repetier's online configuration tool but I haven't tested that, so don't hold me on that.

Then using the 12864 Big LCD RepRapDiscount Full Graphic Smart Controller, I went to menu item Extruder.

  • I turned the heat up to 170C, so the cold extrusion fail safe is satisfied with extruding
  • I then checked the first and second extruder respectively, and the servo turned the correct way
  • Then I tried extruding as the first extruder and the stepper motor turned the correct way for EXT0. (Consider the mechanics of this extruder design)
  • Then I tried extruding as the second extruder and the stepper motor did not want to turn. Turns out in the EEPROM values were undefined (-1). So using repetier-host I copied over the settings from EXT0 to EXT1, like PID settings, steps/mm etc. Afterwards I could have just executed M502 to load settings from configuration.h. Oh well. Now the stepper motor turns the correct direction for EXT1 as well!

That is it for now. I will upload a video when I print a thing using dual extrusion.

P.S. The RAMPS-FD has 2 additional stepper motor ports free (3 in total), and repetier-firmware and Cura support multiple extruders, so theoretically 3 of these extruders could make it possible to use 6 (hexastruder) filaments. WOW! For instance you could have 2 colors of ABS in the one and 2 colors of PLA in the other, HPET as support material and XT in the third. I someone gets hexastuder or even a octo (8) or decastruder (10) (if you can get your hands on a Prusa Super Switch) setup to work, I would love to see a video of it.

Update 3-2 - Cura version 2.3.1 - Quadtastic!:

I suggest using Cura 15.04.6 and in Machine settings set Extruder count from 1 to 2 or more. Then merge a dual STL file. This takes about 5 minutes. Compared to the tedious process of the new Cura 2.3.1 but is more powerful as you can select which part is printed with which extruder. But if you want to know more, read on.
It was a bit of a struggle. But I managed to get a custom profile for the printer to load. The printer build plate parameters, start and stop G-Code have to be defined in the definition configuration file. Also in the extruders definition configuration files, start and end G-Code has to be added for switching. Since Machine Settings option with Multi Extrusion printers is not supported in the interface these files have to be manually created.
Luckily the G-Code lines show extruders with the configured retraction G-Code T0 and T1! This means using the information from update 3-1 and Cura JSON FDM Extruder and FDM Printer parameter list help out a lot to setup Cura for Multi Extrusion. Which saves a lot of money, not having to "acquire" Simplify3D software. I played with the configuration even more, and I was even able to get 4 extruders to set up within Cura, and slicing works!
O, if a version of Cura is already installed, be sure to rename your "cura" folder to "cura.bak" and start fresh (OSX: "~/Library/ApplicationSupport/cura" - Win/Linux: click). And change the start and end G-Code of the printer and your Y-merger retraction definition configurations accordingly. For me I had to replace home Z instruction with auto bed calibration instructions. And set the proper distance for retraction.
I will release my settings for all of you to freely download, as soon as I successfully printed a dual extruded thing.

Update 3-1 - Cura version 2.3.1:

So I learned how to merge STL files in Cura from their PDF guide. But could not manage to get multiple extruders.
It seems I have to dig into the files of Cura. There is an topic about how to create a custom dual extrusion printer profile.
I will be trying this soon and report back if I manage to set it up.

Update 2-3 - idler:

Currently this extruder is mounted on the 3D printer with only one idler, for testing purposes.
I must say, the print quality is noticeably improved already over my previous "Improved E3D wade extruder".
Also made a quick video of the test setup with 1 idler. The E-steps/mm have been calculated as followed: E-steps/mm = (stepper motor steps/rotation • stepper driver µsteps) / (gear diameter mm • pi). Which in my case is E-steps/mm = (400 steps • 32 µsteps) / (7mm • pi) = 582

Update 2-2 - idler:

I am glad to confirm that the idler printed successfully and came out smooth AF!
Again no inner supports for the filament feedholes, just pushed a long M3 bolt through. And the PTFE ID=2 OD=3 went in fine. I did had to cut the tube 1mm shorter at the bearing side, to make filament move through smoother.
Everything else fit fine aswel: M3 washer fits into recess and bearing bolted down fine using M4 bolt.

Update 2-1 - idler:

The idler is being printed as I type this. I will keep you up-to-date.

  • Even before printing the idler, I downloaded Autodesk Netfabb standard and repaired the STL. See file idler_repaired.stl
  • Also I now have switched to Cura 2.3.1.
  • I will check fittment of the PTFE tube ID=2mm OD=3mm into the idle's filament feedholes.
  • Fasteners still have to come in, but maybe I can find some bolts laying around for testing fitment.
  • If everything checks out, I am going to print a mirrored idler for the left side. And continue on onto to washers.stl.

Update 1-3 - body HS-422/HS425bb:

So for the body the order of the PC4-M5 Pneumatic straight fittings came in together with some PTFE tube ID=2mm OD=3mm.

  • The PC4-M5 Pneumatic straight fittings mount up nicely using downward force and turning at the same time. If you have a M5 thread cutter it's easier.
  • PTFE tube went through the filament holes nicely. Using a blade of a box cutter, I cut one end straight before inserting. Where it sticks out I followed the curve with the blade.
  • See pictures

So far so good. :)

Next up is printing an idler and mirrored idler. Push in PTFE tube the filament feedholes. And figure out a spring. I'll probably be making one out of a binder clip arm (chrome part).

Update 1-2 - body HS-422/HS425bb:

The body-hs422-hs425bb_repaired.stl printed successfully! using ABS. See the pictures.

  • Feels smooth to the touch
  • The filament guide holes came out great without internal supports (after pushing through an M3 bolt).
  • When the PC4-M5 Pneumatic straight fittings come in, I can check fitment of the holes.
  • Also the Tamiya TSU-04 servomotor (from a Tamiya TT-02 RC car) fits after removal of "Elefant Foot". So you might want to print on a raft using more filament and time, but a sharp knife or a vile would make quick work of it.

Update 1-1 - body HS-422/HS425bb:

I've ran into shifting layers of body-hs422-hs425bb.stl. Please let me know if anyone else is experiencing issues.
Might be an issue with the printer, overheating stepper motors, firmware. Or Cura. But then I ran the STL through NetFabb and it found a few issues. The repaired STL has been included for your pleasure.


I still have to try re-printing this part.

Since then I've have changed some things, because I've had this shifting layers problem on long prints before, even on repaired STL files.

  • Added a fan on the Y-steppermotor, less heat less chance of loosing steps.
  • Repetier-firmware: #define HIGH_STEPPER_DELAY 2 // For DRV8825 datasheet states a minimum of 1.9µs delay
  • Readjusted the trimpots of the stepper drivers, just a touch more Amps. Fluctuations in power could have caused not enough power for the stepper motor, causing it to loose steps.
  • Little less tension on the belt of the Y-stepper motor, so it doesn't have to work as hard. Less heat, less chance of loosing steps. It was really tight.

This is awesome, im gonna make this thing!
Just on question, what is the DC to DC converter for?

I'm glad you like it!

Depending on the board/servomotor you have, you might want to step-up the voltage appropriately to the servomotor to achieve maximum torque and/or accuracy.
First try without if you can. And if you feel necessary place a DC-DC converter.
For instance on my RAMPS-FD (running Arduino Due), the small SG90 servomotor worked without any issues on a different project.

Hi everyone!

I've added another design for a standard size Hitec servomotor (measurements were taken from the Hitec HS-422/HS-425BB). I think this would make the entire assembly much more affordable. And easier on the wallet for others to get into trying dual/quad extrusion.

Bowden dual/quad extrusion extruder (single-nozzle single-drive) + video
by FDMTech

Nice works!
I am planning to print one .
I think only problem is firmware and code.

If you have the latest Marlin you can do the proper configuration. See the instructions of BigSteve.

Direct drive dual extruder (single-nozzle and single-drive)


I really like the idea and also the way you redesigned the extruder. It looks so good in Autodesk Fusion 360.
Thank you for bringing my work forward. :-)

Hi BigSteve,

I've added another design for a standard size Hitec servomotor (measurements were taken from the Hitec HS-422/HS-425BB). I think this would make the entire assembly much more affordable. And easier on the wallet for others to get into trying dual/quad extrusion.

Bowden dual/quad extrusion extruder (single-nozzle single-drive) + video
by FDMTech

Hi, thank you for your kind words! And you're welcome! :)

Feel free to hit me up. I will reply!

would i be able to get the 360 files so i can add bowden fitting holes to the idlers for remote loading of the filament, my filment runs from the holder thru a bowden tube to the extruder and then bowden to the hotend.... i would love to give this setup a try, but instead of switching color i want it to switch to a second spool of the same filament when the runout sensor is triggered.... have a big printer and i do multiple spool printing and this would make it way more automated.....

thank you in advance....

Hi jipavsky79,

That is a cool solution!
I will send you a link soon. :)

thanks, ill upload it when im done with it and a remix credit to you.....