Introduction: Build a Dual Extruder for 3D Printing

This Instructable will show you how to build Jim's Flying Motor Mount Dual Extruder. This extruder is a compact, light-weight, dual extruder which can be used on Mendel, Prusa, Wallace, and Printrbot 3D printers (and others) which currently use the single Greg's Wade's Extruder. This new design offers a true dual extrusion capability to these printers, allowing two color printing, or use of an alternate support material.  Use of support material is a feature of recent versions of Slic3r. Alternate support material removes restrictions on printing overhangs to allow printing of arbitrary shapes.

Caution: This Dual Extruder is designed to be used as part of an existing or new 3D printer. Some adaptation is needed to make it fit any particular printer. This adaptation is up to the user. Although I provide instructions to guide the adaptation, some creativity and ingenuity will still be required of the user.

Full disclosure: I have yet to get the dual extruder mounted and fully tested on my printer. I have extruded plastic through both nozzles to verify hardware and software functionality, but printing awaits a new X Carriage design. I share it so that others can help prove and improve my design.

Printed Parts:
Print two each (It's a dual, remember?) of the Extruder Body, Tensioner, Large Gear, and Small Gear fromThingiverse. I used 40% fill. Note the support material used with the Extruder Body.

Vitamins (metal parts):
Four M4x35mm socket head bolts  with nuts. (nozzles)
Four M4x16mm socket head bolts with nuts. (leveling)
Two M4x?? socket head bolts with nuts. (X Carriage mounting) Actual length needed depends on your X carriage.
Two M3x25mm socket head bolts with nuts and washers. (tensioner hinge)
Four M3x35mm socket head bolts with nuts and washers? (tensioner tightening)
Two M4x25mm socket head bolts with nuts (tensioner bearing axles)
Six M3x10mm socket head bolts (motor mounts)
Two M3x8mm or 10mm set screws with nuts. (small gear mount).
Two M4x50mm all-thread bolts with 6 nuts (three each –  2 Nylocks) and 4 washers. (main axles)
(These are hard to find. I found them in stainless with Phillips pan heads at the local hardware store. M4 threaded rod could be used; use a Nylock instead of the plain nut in the pocket on the gear.)
Two nozzles using 16mm groove mount of the same type, or at least the same length. I have used Ubis nozzles; the J-nozzle should work also. Others using 16mm groove mount may work, but are untested. A different nozzle mounting method would require modifications to the scad files.
Two NEMA14 bipolar stepper motors. The ones I use have 3.2 Ohm coil resistance.
Six 624 Bearings.
One piece of 4mmID, 5mmOD brass tubing (McMaster-Carr) long enough to be cut into two pieces the same length as filament drive gears. Details follow.
Two filament driver gears  (Makerbot  MK7 (SKU2394) – 5mm hole)
M3x5mm set screw (2) (filament drive gear)

Step 1: Clean Up Plastic Parts

Carefully trim away all the support material on the bodies.

Clean up flashing and any blobs, etc. from the parts – especially the gears! Clean the nozzle mounting holes so the nozzles fit properly and extend the same distance. Clean out the space for the filament drive gear.

Drill holes for M3 bolts to 3.2mm or 1/8 inch. Drill M4 bolt holes to 4.2mm or 5/32 or 11/64 inch. Check each step for the hole sizes. (This has the added benefit of making you read the instructions before you build. That's a good thing!)

IMPORTANT: Drill the filament holes to 3.5mm or 9/64 inch. See the picture titled “Filament Guide Holes”.

Step 2: Build and Join Extruder Bodies

Parts needed for this Step:
Refer to picture titled “Parts to Join Extruder Bodies”.
Two Extruder Bodies.
Two 624 bearings.
Four M3 nuts.
Four M4x35mm bolts.
Four M4 nuts (Kep nuts are shown but cause interference with the large gears. Use standard nuts instead.)
Two Ubis nozzles. (Others could work but are untested.)

Press one 624 bearing into the “closed” bearing pocket. The “closed” pocket is the one in which the bearing is completely surrounded by plastic (see picture). Clean the hole with an Xacto or Dremel until the bearing seats completely but tightly. The pictures all show these bearings in place.

Press M3 nuts into each tensioning bolt nut pocket. Be sure they seat correctly and tightly so you don't have to keep messing with them during assembly. See the picture titled “Tensioner Nuts in Pockets”.

Put the extruder bodies back to back and secure with bolts partly through the inner holes on the bases. Be sure the bodies fit together properly. Refer to the pictures titled “Join Bodies Detail 1” and “Join Bodies Detail 2”.

Back off one of the bolts so you can fit a nozzle in one base. Run the bolt back into the base to hold the nozzle. Put the outer bolt for that extruder body in to secure the nozzle.  Repeat for the other nozzle. Make sure the nozzles fit properly and stick out of the bodies very nearly the same distance. Refer to the picture titled “Nozzles Mounted”. Again, Kep nuts are shown, but use standard M4 nuts instead.

NOTE: You may want to do a trial assembly of your dual extruder without installing the nozzles, then remove the gears, and remove the two bolts from one side at a time to allow the nozzles to be installed. This can be done without the bodies separating if you are careful. While this may seem like a waste of time, it allows you to test fit all the parts and to become familiar with how the parts fit together and how the extruders work – really time well spent. You won't understand this extruder (or any other) until you've taken it apart and rebuilt it at least 10 times. I'm still learning about this one.

Step 3: Build Tensioners

Parts needed for this Step:
Refer to picture titled “Parts to build Tensioners”.
Two Tensioner Bodies
Two 624 Ball Bearings
Two M4x25mm Bolts for axle
Two M4 nuts (Nylock can be used)

Put bearing into tensioner body and slide the bolt through. Secure with nut. Refer to picture titled “Tensioners Assembled”.

Step 4: Install Tensioners

Parts needed for this Step:
One Dual Extruder assembly from Step 1
Two Tensioner assemblies from Step 2
Two M3x25 Bolts
Two M3 nuts (Nylock can be used)

Position Tensioner on the pivot. Put bolt through hole in the pivot and secure with a nut. Repeat for other side. Refer to picture titled “Tensioners Installed”.

Step 5: Prepare Filament Drive Gears

Parts needed for this Step:
Two Makerbot MK7 filament Drive gears.
One piece 4mmID x 5mmOD brass tubing.
Two M3x5mm set screws.

The MK7 filament drive gear is perfect for the dual extruder except for one problem The ID is 5mm and the axle shaft OD is 4mm. To fix this,make an adapter using the brass tubing.

Insert a 5mm OD x 4mm ID brass tube into the bore of the gear. It will be very tight. Sand it lightly to make if fit if necessary. You should be able to push it all the way into the gear, but it should be tight. I find it most accurate to insert the tube into the gear, then cut it. Cut it to length using an Xacto knife with a sharp, straight blade. Place the gear with the tube in it on  a flat surface, hold the blade at a slight angle so the edge is right against the gear, press down firmly, and roll the gear back and forth until the blade cuts through the tube. A good technique is 10 to 20 strokes back and forth, lift the knife, rotate the gear and tube ¼ turn, then repeat until you cut through the tube. File the edge smooth. Refer to the picture “Filament Gear ”. (An Arcol gear is shown.)

Use a 3/32” drill bit in the set screw hole to make a hole through the tube. Then thread with a 3mm tap. I do this after the tube is cut.  Use an M3x5mm set screw.

Step 6: Assemble Axles and Large Gears

Parts needed for this Step:
Two Axles – An M4x50mm all-thread bolt is used as an axle.
Four M4 nuts. 
Four M4 washers.

Run one nut all the way onto the bolt and seat it firmly against the head.  Put the axle through the gear and seat the nut into the nut pocket on the large gear. Put a washer on next to the gear, then thread a nut on and tighten firmly. Be sure that the gear is perpendicular to the bolt (the axle). Optionally, epoxy the bolt into the gear if you like.

Refer to the picture titled “Ground Flat Dimensions”. Measure from the side of the nut, not the side of the gear. Grind a flat for the Filament Drive Gear setscrew onto the axle from 13mm to 18mm as shown. A Dremel with a small grinding wheel works great for this. Extend the grinding lightly to 25mm as shown. This allows easy location of the flat when the filament drive gear is installed.

Step 7: Install Bearings, Large Gears, and Filament Drive Gears

Parts needed for this Step:
Refer to picture titled “Large Gear Parts”.
One Dual Extruder assembly from Step 3
Two Large Gear and Axle assemblies from step 5.
Two 624 Ball Bearings.
Two M4 Nylock nuts.
Two Filament Drive Gears from Step 4 (not shown).
Two M3x5mm set screws (not shown).
(The two M4 washers shown are not used.)

Press one ball bearing into the pocket on the “open” end of each extruder body.

Slide an axle through the bearing on the “closed” end of one extruder body, through the filament drive gear, and through the other bearing. Put the a Nylock on to hold everything in place. Refer to picture titled “Large Gear Installation Detail 1”.

Center the filament drive gear on the filament hole, line the set screw up with the flat you ground on the axle, and tighten the set screw. Use a drop of Loctite on the set screw for additional security. Refer to picture titled “Filament Gear Installation”.

Don't worry if the bearing on the “open” side seems loose, it'll all be held in place by the tensioner when it is tightened. Check the clearance of the Large Gear to the Extruder Body. Make sure that the bolt ends do not rub the gear as it rotates. If it does, fix it now. It won't get better later. Refer to picture titled “Large Gear Installation Detail 2”.

Step 8: Install the Small Gears on the Motors

Parts needed for this Step:
Two NEMA 14 stepper motors.
Two Small Gears.
Two M3x8mm set screws. (Socket head bolts are shown, but use set screws!)
Two M3 Nuts.

Seat a nut into the pocket in the gear. Thread the set screw into the nut. Place the gear on motor shaft, but do not tighten yet. Refer to picture titled “Small Gear Assembly”.

Step 9: Install Motors

Parts needed for this Step:
Dual Extruder Assembly from Step 6.
Two Motors with Small Gears from Step 7.
Six M3x10mm bolts.

Use three M3x10 bolts to mount the motor. The lower bolt is accessible through the holes in the large gear. Refer to picture titled “Motor Installation”.

Adjust the small gear and the motor position to obtain a good mesh of the gears, then tighten the   setscrews. The gears should turn smoothly.

If your motors run warm, check that your gears mesh smoothly. However, you may find that the motors run warm even with smoothly meshing gears. If so make a couple of the fan mounts foundhereand add cooling fans.

Step 10: Install Tensioning Bolts

Parts needed for this Step:
Dual Extruder Assembly from Step 8
Four M3x35mm bolts

Put the bolts through the Tensioner and thread them into the nuts in the pockets in the body. When you load filament, you can tighten these as required. Refer to picture titled “Tensioning Bolts”.

Step 11: Mount the Dual Extruder

Parts needed for this Step:
Dual Extruder Assembly from Step 9.
Two M4x?? bolts (length to fit your X carriage)
Two M4x12 bolts
Six M4 nuts

Mounting the Dual Extruder requires some ingenuity on your part since there is no standard design for an X Carriage to carry this extruder. That said, it should only take minor changes to modify any given X Carriage. A Dremel could do it, or  a small revision to an existing carriage design on Thingiverse. If you create a modified carriage design yourself, consider posting it to Thingiverse.

For the standard Prusa X Carriage, the dual extruder mounting hole spacing is designed to fit with only slight adjustment and needs only a small amount of grinding to make the nozzles fit. Note that the dual extruder sits at an angle on the carriage so that the nozzles are nearly parallel to the X axis. Refer to picture titled “Mount to X Carriage (Bottom)” and to picture titled “Mount to X Carriage (Top)”.

Bolts may be inserted into the nuts in the pockets at either end of the base to level the nozzles. The nozzle tips must be very close to level (that is, the same height from the bed) to avoid dragging the low tip on a part being printed. Refer to picture titled “Leveling Bolts”.

Be sure to put a fan on your X Carriage to constantly blow on the upper ends of the nozzles. Otherwise, the X Carriage may melt. This fan is not shown in my pictures, but should be added for printing. The fan is also important to correct functioning of the Ubis nozzle and the J-Nozzle.

Step 12: Hardware Connection to Printrboard

Connecting the second extruder nozzle and second temperature sensor to the Printrboard is quite easy. Simply use the connections for the Bed Heater and bed temperature sensor. Necessary firmware changes are detailed in the next section. If you want to use a heated bed as well as a Dual Extruder, then you will need to duplicate the interfaces on the Printrboard. Just follow the Printrboard schematics.

Driving the second extruder motor is a little more involved, but still not difficult. The Printrboard (and most any other printer controller board with onboard motor drivers) only has four stepper motor drivers. A fifth is needed for the second extruder and can be easily added. Shown is a motor driver of my own design, but one from Pololu or Spark Fun should work just fine. Picture titled “Stepper Motor Wiring” shows my setup.

The Printrboard has extra pins available on the expansion headers which can be used to control the new driver. Pins from Port D on the ATMEGA90USB1286 processor are available and will be used. Specifically, Port D, Pin 4 connects to Step; Port D, Pin 5 connects to Direction; and Port D, Pin 6 connects to Enable. These are accessable on JP11 pins 5, 6, and 7 respectively. JP11 is shown on the schematic, but is labeled EXP2 on the Printrboard. Please refer to picture titled “Printrboard JP11/EXP2” and picture titled “Printrboard EXP2/JP11”.

Step 13: Firmware Modifications

The firmware for the controller must be modified to control the new stepper driver, sense the temperature of the second nozzle and drive the second nozzle heater. Exact details of the changes you need to make will depend on the controller and firmware you are using. Here I provide the details for modifying the Printrboard version of the Marlin firmware. Marlin seems to use many of the same settings for both extruders. Since the extruders are identical, this seems to work fine. Here are the changes I made to Marlin for the Dual Extruder.

In Configuration.h:
Change the line
#define TEMP_SENSOR_1 0
to
#define TEMP_SENSOR_1 1
This change enables the second extruder.

Change the line
#define TEMP_SENSOR_BED 1
to
#define TEMP_SENSOR_BED 0
This disables the bed.

In Configuration_adv.h
Change the line
#define EXTRUDERS 1
to
#define EXTRUDERS 2

In pins.h:
Find the section for the Printrboard. It begins
#if MOTHERBOARD == 81

Now find the line
#define E0_ENABLE_PIN       13

and add the following lines for the second extruder motor driver
#define E1_STEP_PIN         4
#define E1_DIR_PIN          5
#define E1_ENABLE_PIN       6


Change the line
#define HEATER_1_PIN       -1
to
#define HEATER_1_PIN       14

Change the line
#define HEATER_BED_PIN     14  // Bed
to
#define HEATER_BED_PIN     -1  // Bed

Change the line
#define TEMP_1_PIN          -1
to
#define TEMP_1_PIN          0

Change the line
#define TEMP_BED_PIN       0  // Bed
to
#define TEMP_BED_PIN       -1  // Bed

Save your changes and reload the Marlin firmware onto your Printrboard. Now you can use Pronterface to test your dual extruder, as explained next.

Pronterface knows nothing about dual extruders and provides no direct control for testing your Dual Extruder, but Marlin supports G-codes that can be used from the Pronterface G-code Command box. That's the text box on the lower right of the Pronterface window. Type the G-code in and click the SEND button or press ENTER to send it to Marlin.

To switch extruders, simply type “T0” or “T1” (without quotes) in the G-code Command box and click SEND or press ENTER. The Pronterface widgets that normally apply to an extruder will now follow your selection. By default, Pronterface starts with T0 selected. You can quickly figure out which extruder is being controlled. Send T1 and the other extruder will be controlled. Send T0 to switch back.

Recent versions of Slic3r support dual extruders, mainly to use one for support material. I have yet to try this, but that seems like the first thing I'll try once I get an X carriage which will carry my dual extruder.

Step 14: Conclusion

You have now built your very own copy of Jim's Flying Motor Mount Dual Extruder. You have also figure out a way to mount it on your X Carriage and have test its operation using Pronterface and some G-code commands.

The next steps are up to you! What will you print with a Dual Extruder? How will you improve it? The 3D Printing World is waiting to see.