2 Extruder Mod for Prusa Mendel

by dob71, published

2 Extruder Mod for Prusa Mendel by dob71 Feb 16, 2012
1 Share
Download All Files

Thing Apps Enabled

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

58317Views 6345Downloads Found in 3D Printers


This is a 2 extruder mod for Prusa Mendel 3D printer. The mod is for Makergear hotends and Greg Frost's extruder design v3. The firmware is based on Marlin. The electronics are RAMPS v1.4.
Note: A more advanced version of this is mod is RepRap X2V3.


The mod is likely to work for multiple configurations, but in my case the extruders are based on http://www.thingiverse.com/thing:8252 and the X-carriage is http://www.thingiverse.com/thing:9869. The hotends are from Makergear. The electronics are RAMPS 1.4.


The extruders are mounted on the sides of the printer and the filament is driven through the PTFE tubes (A. Bowden's mount).

I'm using 3mm (my extruders easily break the 1.75mm filament), but I experimented with 1.75mm too (the adapter Sketchup file has models for 2x1.75mm and 1x3mm+1x1.75mm adapter configurations).

The instructions are pretty straightforward.

  • print 2 extruder mounts;
  • print the adapter and the 2 hotends mount (based on http://www.thingiverse.com/thing:7107 I believe - not sure was a while ago).
  • print the second extruder (note: you have to print mirrored version of the extruder body if want the printer to look symmetrical).

Putting in the hotends requires quite a bit of force, but they have to be snag to avoid wobbling. There are pictures (those with pliers) showing the steps of putting the hotends in. Put the first one in (that is easy), then position the second one like it is shown on the picture and use the screwdriver to drive it in (use a bigger screwdriver than the one shown). It requires quite a bit of force. After the corner of the second extruder mount goes into the groove of the first one use the screwdriver tip to drive it further into its space. Note, that you are unlikely to be able to take it out without cutting the mount, so might be a good idea to print a spare one just in case.

In order to make the 3mm filament drives you'll need 2 PTFE tubes about 2 feet each (mcmaster.com part #52365K611 http://www.mcmaster.com/#52365k611). I initially ordered 2 feet ones, but had to cut off 95-100mm. Use a file to point the ends of the tubes and screw on M6 nuts to the ends (might be a bit hard to start, but as the threads catch they'll move on). After the nuts are on clean up the excess of the PTFE sticking out from the other sides of the nuts. Use the appropriately sized drill bits to widen the inner hole where nuts compressed the PTFE tube and make sure no PTFE pieces get inside.

Put the filament drive tube ends into the mounts, then remove the little plastic caps holding the vertical smooth rods in place and screw on the extruder mounts.
Note: you'll need at least 435mm treaded rods on top of the printer (those that hold the Z-motor mounts) to screw on the side extruder mounts. Tthey should be long enough (440mm) if you cut the rods according to the RepRap wiki instructions.

Put on the hotend mount onto the X-carriage and screw it on at the corners. Now it is a good time to level the hotends. 2 out of 3 times I was able to level them just by holding the hotend's PEEK mount with pliers and screwing in the nozzle w/ heater barrel a bit more on the hotend that was sticking out. One time I had to unscrew the nozzle w/ the barrel and file the barrel top a bit. It is important to level the hotends as precisely as possible.

Put the free ends of the filament drive tubes with nuts on them into the adapter holes. Drive pieces of the filament through the tubes (starting from the extruder mount sides) till 10-15mm of it sticks out of the adapter tube end. Guide the sticking out filament into the hotens and then screw on the adapter on top of the hotend mount. Now it is a good time to check again that the hotends are leveled. If everything looks OK pull out the filament.

You can now screw on the extruders to the side mounts and move on to connecting the wires.


You'll need the motor, the stepper driver and the wiring for the second extruder. The second hotend heater is connected to D9 (instead of the fan) and the termistor is connected to TERM2 pin.

If you'd like to use the hotend fan, then you might need to make an external fan control board (will need at least a mosfet). I use a breadboard (see picture) attached to the printer side and just wired 12v then built the same mosfet switch like they use in RAMPS (see RAMPS schematics, Heaters & Fans part). I've used IRF510 mosfet that happened to be nearby when needed. The control wire comes from "servos" connector pin D4.


The modifications to support multiple extruders were made to the Marlin firmware. It was giving me the best prints and there were some hooks to get started with. In order to get the code (assuming you have git) do this:
git clone git://github.com/dob71/Marlin.git
cd Marlin
git checkout Marlin_v1

Then go ahead and edit the Configuration.h (the instructions are in the file) and build the firmware.

Here are the major commands (available at this moment) related to the multiple extruders setup:

  • T [F] [S] - select extruder ("n" is the number of the extruder to select, "speed" is the feed rate at which to make the move for positioning the selected extruder, "S" controls either the E axis coordinate should be treated independenly or considered to be continuous to that of the extruder "m").
    After the extruder is selected the generic commands that do not have extruder specified in the arguments will apply to the selected extruder only;

  • M104 [T]... - can accept extruder number to set the temperature for;

  • M105 [T]... - can accept extruder number to show the temperature for;

  • M109 [T]... - can specify which extruder to wait for.

Note: If you are using an old Printrun version, you might need to change “pronsole.py” to enable the 'T' command. Find and replace the following line:

  • if(l[0]=='M' or l[0]=="G"):
  • if(l[0]=='M' or l[0]=='G' or l[0]=='T'):

You can use the X2SW software package ( http://github.com/dob71/x2swn/wiki ) that installs Printrun, Skeinforge, Slic3r and sets them up to work together. Use the RepRap/X2/x2_0200 experimental profile unless there is one avialable specifically for your printer.


The retract speed is very important for this kind of filament drive. I have to retract 5mm and start the retract at the highest speed possible to avoid blobs (there is a parameter in Configuration.h allowing to configure initial speed for retract moves).

So far I was mostly using the dual extruders setup to switch easily between 0.5 and 0.35mm hotends or between ABS and PLA. Switching between PLA and ABS for printing support vs the object itself didn't give me results much better that printing everything in the same material.

Since extruder change repositions the extruder you might hit endstop if doing it too close to the perimeter of the printing area. If you do not need to switch extruders in the middle of the print can just put zeroes for the extruder offset in the Configuration.h.

Here is the first attempt to print something useful in multiple colors:

More from 3D Printers

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

can i use this version also at a normal reprap mendel or what must i change for the mendel?

Can you be more specific? I did not get the question.

can i use this parts also at a mendel or must i edit this parts for this

If you mean using the parts with the original Mendel (http://reprap.org/wiki/File:Mendel.jpg) then the answer is I do not know.
My guess is the extruder motors might limit how far up the X stage can go. The rest (assuming the distances between rods did not change between the original and Prusa's version) will probably fit fine.

Take a look at the RAMPS 1.4 schematics under "Heaters & Fans". It shows how to hook up a MOSFET (just need the mosfet and 2 resistors, for example Q1, R13 and R9).

The firmware referenced in the thing description is already modified to use pin 4 for the fan control, i.e. you'd use the usual M106/M107 commands.

hi, with regard to the use of servo pins, do you have a picture of the schematics showing how to connect the mosfet to servo pin d4?

how would one use gcode to control this servo pin? like, for example M245 and M246 to start and stop cooler to cool the heatbed after a print is completed.

Did you mean the time gap? It just moves the head (about 20mm) to position the selected extruder over the printing point. The 'T<extruder>' G-code command can take 'F<feedrate>' parameter to specify how fast to move.
I also experimented with adjusting the temperature of the hotend depending either it is active or idle. If using this technique it has to wait for the temperature to change. More details and video are here:

Can you hang video of this in operation? Im curious about the gap when changing mid print...

please add tag "bowden", I searched for hours before i found this design.

Awesome job. Regarding the software Marlin, the latest version "Marlin v1" has the option to select "motherboard = 34" which is the Ramps 1.4 board but with dual extruders, as opposed to one extruder and one fan (as used to be the case in the predecessor Sprinter).

Is the software configuration as simple as selecting motherboard = 34 and wiring up a second extruder and thermistor? or is there more to it?

For instance, looking through the Marlin code, there is no place where you enter the steps-per-mm calibration value for a second extruder, so do both extruders use the same calibration value?

If you need full dual extruder support grab the firmware from here:
The latest Marlin_v1 from main repo has only some of the changes.

Awesome. thanks for the pointer.

Hey, can you upload the SKP for the mount for the hotends? The bottom piece....thanks!

Uploaded: 2hotends mount.skp

very cool ,do you think that this could be modified to work with the printrbot

The software should work as is, the hardware might requre some work, but it can be as simple as developing the hotend mounting adapter and finding a good place to keep the extruders on the priter body and run filament drives to the hotends.

The buld plate size might be a disadvantage since you migh loose noticeable percentage of printing volume along the axis the hotends are positioned at.

Just a notification to anyone wanting to print this.

Tried to slice this in Slic3R and it didn't work properly. According to nettfab the Bowden_Extruder_mount.stl is in 5 manifold solids. Applying an automatic fix in Nettfab corrected it and then Slic3R would work.

None the less it is an interesting concept.

The skp file for the extruder mount is messed up a bit, but there should be no problems slicing with skeinforge (checkng with blender also worked).

Anyway I already have fixed skp
amp; stl files for the 3mm mount and will upload shortly.

How do we generate gcode for dual color printing?

Calibration piece for 2 extruder/color printing
by dob71

Just a feedback... I've worked with a 3 head BFB3000, and I realized it keeps the unused heads at a lower temp, something like 140
ºC for PLA and 195ºC for ABS, by doing that you prevent the blobs and it can be quickly warmed up to use... Also it would be nice to send the extruder to a place where it can be cleaned, Makerbots and the BFB machines have a place where it gets cleaned, I guess the X,Y,Z home position could be the
place, just need a cleaning device.... Looking foward to see more about this, I'l def use it...

Have video of dual extruder printing?

I've uploaded my 2 color calibration piece printing video:


There are a few still pictures here:


Japanese Puzzle Box
by dob71

Awesome! I might have to try this. Thanks for the detailed instructions.