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
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=='M' or l=="G"):
- if(l=='M' or l=='G' or l=='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: