Hey! This thing is still a Work in Progress. Files, instructions, and other stuff might change!

Both Extruders At Once For Replicator

by JoeyC, published

Both Extruders At Once For Replicator by JoeyC Jun 3, 2012


Use This Project

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

9360Views 1649Downloads Found in 3D Printing Tests


This is a program for converting gcode files to run both extruders at once to print two things at a time, even using different filament diameters. The executable is for Windows machines, but c source is also provided. It is partially based on "Dual Extrude Both Extruders at Once for Replicator" http://www.thingiverse.com/thing:23792


What it does:
The program reads a normal single extruder gcode file and duplicates the temp, on/off, speed, toolchange, and extruder distance commands so they work for both extruders.


  1. Create GCode files normally.

  2. At a command prompt: DualExtrude Infile.gcode Outfile.gcode

    if you are using different filament diameters, use:

    DualExtrude Infile.gcode InDia Outfile.gcode NewDia

    Where InDia is the diameter of the filiment used to create the Infile.gcode file and NewDia is the filament diameter used in the second extruder.

  3. Print the Outfile.gcode file directly or convert for SD Card.

Settings that need to be changed:
(These are a reduced set of thorstadg's, I have copied his descriptions.)

  1. Dimension needs to be turned on in Skeinforge so that we get an E000 code for extruder movements.

  2. The ReplicatorG34/machines/Replicator.xml file needs to be changed so the maxfeedrate on A and B is 4600 instead of 1600 so skeinforge does not throw a fit every time you generate gcode. I arbitrarily picked 4600- if someone knows the proper number let me know.


  1. The executable should work for all Win32/64 systems, WinXP, Vista, Win7.

  2. I do not currently have access to a Linux or Mac system but the code should compile OK on either. I'm not 100% sure about any line termination (CR/LF) issues. If anyone could give it a try I'd appreciate it.

  3. Many thanks to thorstadg for giving me the crucial piece to the puzzle.

  4. An updated exe and .cpp have been posted to address issues found on Linux/Mac.

  5. An updated exe and .cpp have been posted to add the ability to use different filament diameters in each extruder.

  6. An updated exe and .cpp have been posted to address a bug in dealing with retracts. (Version 2.1) Thanks to Emmett for finding the bug.

  7. Minor bug fix (wrong file name in error message) Ver 2.2 posted.

More from 3D Printing Tests

view more

All Apps

Upgrade this Thing with Thingiverse Apps

No results.

Has anyone done this on any Ultimaker variants?

I actually found a real easy way to print with two extruders at the exact same time (I guess you could call it a "reprap") maybe I have the terminology wrong. If you have Marlin firmware, theres a few lines in the Configuration_adv.h tab that deal with dual x carriages. if you just uncomment "#define DUAL_X_CARRIAGE" then, in the startup Gcode put in M605 Xnnn Rnnn where x is the offset and R is the extruder temp both extruders will run the same amount of steps at the same time. So just incase anybody with Marlin firmware is looking heres your answer. took me way too long to figure this out.

Awesome! I've been looking for that feature in marlin forever. This turns the DUAL_X_CARRIAGE into a ditto print function! Thanks for sharing.

If you check the RepRap Wiki at: http://reprap.org/wiki/G-code I think you will find that the RepRap doesn't understand the A000 B000 that Makerbot uses. I took a quick look and I don't see any way of making this work on a RepRap.

Feb 18, 2015 - Modified Feb 18, 2015

Hey, I'm trying to do this on a RepRap version but when I run the gcode neither of the extruders turn on. I am able to get the original (single head) gcode changed into the x000 y000 z000 A000 B000 format but I'm under the impression that extruders one and two don't know where to look for the commands. I even tried using the other guys start gcode from your link. Any ideas what the problem could be? I'm using Slic3r BTW.

Yes it does. I try to leave at least 1 or 2 mm of margin.

Total newb question, but does the part to be duplicated have to be smaller than the extruder offset?

I sliced it with Cura and it worked. Is that normal?

I'm using slic3r and saving in reprap gcode flavor.

That means it did not see any gcodes that caused the extruder to move. Make sure you are using a replicator .gcode file, not an .x3g file.

Awesome program. I keep getting the error "Couldn't find a used extruder." Any advice?

The program is a console app and must be run from a dos prompt. If you just click on it it will run and exit immediately.

I know this is very old, but command promt quits immidieately after clicking the .exe

I've used it on my FlashForge Creator (Dual Extruder), which is basically a clone of the Replicator. And it works great!

has anyone tried this on a Replicator 2X ?

Not that I know of, but I don't see why it wouldn't work.

The latest version of SailFish now supports this. It worked great on my 2X

I really want to try this as I need to make hundreds of a very small object with my replicator. When I run the program, it makes the gcode no problem. But, when I click, "Build", it gives me lots and lots of error messages saying that it is moving to fast. I've tried it with different objects, and different speeds. They all give me this same message. What should I do? I know that the original gcode works great, so why would it not work in dual mode?


Did you adjust the maxfeedrate in the Replicator.xml file as per the #2 settings change above? That would explain your issue.


OH! I didn't remember to do that. DOH! Thanks so much!!!! This is really going to help me get my project done so much faster.

I've modified the code to handle different filament diameters. Please see the updated description above.

This was working great, but I tried the new version, and it seems to be broken. Now I get "ERROR: E Parameter direction error in line 31", which is the first line where there's an extruder reversal (to de-string). Was is really your intension to not allow reversals?

Not my intention at all. I've PM'd you my email. Please send me the gcode file so i can fix the issue. Thanks.

I've uploaded the fixed files. Thanks for the help!

What can be done if you need to run both extruders but at different feed rates? Like if one filament is thicker and can't be dehydrated down?

you would make a disconnect jumper for original input and new jumper pins for

step and direction?

Thank You !! I was thinking of creating jumpers on mother board to do this?

Finally someone did this!

This is great! =-O

Works great. I'm going to use this when I'm printing chess sets for people.

This software is quite the best at this time to operate with replicator.

good done thanks a lot and best regards

from Vienna/Austria/Europe

Willi ;) ;) ;)

by code alone, you have doubled the effective speed of the bot (for single color plots up to a certain size)... brilliant! :-D

Yeah, pretty incredible! Can't wait to give it a shot! =-O