3D Printing Different Colors With A Single Extruder

3D Printed Space Invader

Let’s be honest, multi-extruder 3D printers don’t work the greatest — even MakerBot decided to get rid of the feature in their latest line of printers. So what are you going to do when you want to print a multi-colored object with your trusty single extruder? Pause the print like a savage and exchange the filament? No, no, it’s much easier than that — well, you’re still going to have to switch the filament.

[Jana Marie] has put together a simple script in OpenScad to split up 3D files into layers in order to facilitate printing in multiple colors (or even materials). You load in the file, tell it the print height you want to do, export, convert to G-Code, print, rinse, repeat. In between the layers you have time to purge the extruder, remove any excess skirt or support material, and then hit print again. Quite a bit easier than hitting pause and jogging the extruder out of the way (while avoiding plastic dribble coming out of your extruder!).

Meanwhile if your prints get interrupted — or fail a lot — you might be interested in this project by a group of MIT researchers. It’s an add-on for 3D printers that uses a laser scanner to evaluate how much of the part was printed, allowing you to restart a print that failed!

21 thoughts on “3D Printing Different Colors With A Single Extruder

    1. I’d take any of the E3D offerings over the diamond, it just looks bulky and unwieldy to mount. If you are going to have a bunch of extruders in close proximity you might as well share the heatsink.

      1. Those are E3D heatsinks so just about half of it IS made by E3D, and it uses Bowden extruders, so those are mounted elsewhere. And judging from the videos it seems to work pretty well… Though I still think multi-color printing is mostly a novelty/gimmick, multi-material printing is something I’m very interested in however, and trying to deal with standard dual extruders, and all the calibration involved in having discrete nozzles, is a pain.

    2. I’ve always wondered how multifilement nozzles manage the colour switch without scorching the filaments that aren’t currently being used. I’m assuming some retraction is involved but I would think the timing to get that just right would be a bit tricky.

      Does look like a really cool project :)

      1. Some slicers that support multiple extruder offer an extra long retract when the tool is idled. Another option, KISS and Slic3r lower the temp of the idled extruder, heating it back up when it’s used again.

  1. This assumes it’s a relatively clean and sudden jam. Maybe an accidental loss of filament. And that the scan is decently fine-grained enough to get reasonably close to the correct layer height. But for me, it seems a slowly tightening constriction happens at least as often as those two combined, meaning it’s not recoverable. A loss of filament would be best protected by having the machine sense end of filament and warn the user. Also, paying attention to how much filament is left, which can be tricky.

  2. Is there some technical reason why the printer software can’t use the mixed color filament as fill? No one will see the interior of the print. A few mods to the slice script and trial and error should allow for the software to leave sufficient volume to clear the nozzle of the intermediate color filament without just squirting it into the waste pile.

  3. Like pausing is so hard. I don’t even purge the HE, within a layer or two max it has changed over to the new color. You are hard pressed to see any in-between colors on the final product.

  4. I use a plug-in for Cura called “pause at height” to accomplish this. It not only pauses but moves the head to a particular spot. It doesn’t seem to hold the head in place, though, so don’t push it while swapping the filament out or it won’t go back to the right place after. I’m sure there’s a gcode that I could use to fix this but I haven’t bothered.

    1. 1. Pause the printer
      2. Home the axis with the nozzle
      3. Swap filaments
      4. Home the axis with the nozzle again
      5. Resume

      That should solve any misalignment problems caused by moving the axis when changing filaments.

    2. It sounds like you could use a DRO to assure exact repositioning. Whether you are milling or printing with steppers or servos a digital read out positioning system can overcome slippage that occurs (even when the machine is off)

  5. Would this be like putting a @ symbol in your gcode to pause it automatically when you want a color change (and identifying where you want the colour by showing just each layer in repetier host, then nipping over to the code and putting it in that layer), configuring your management software to lift to a z height to make it easier, then just wandering over and swapping the filament then extruding a quick squirt to purge then clicking unpause and have it restart in the correct position until the next @ event?
    Thats very well documented on the various 3d printer forums Ive been on, and Ive used the idea myself after reading it too making tags and badges on a simple metal printrbot.
    I save out the gcodes for stuff I want to make a few of and just load that into the printer to repeat once the color layers are set right.

  6. This is a feature of my Printer (UP! 3D Mini).
    You can print a black LED-housing with just a clear layer on top.
    Or white tiles with decoration in different colors.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.