{"id":18645542,"url":"https://github.com/cscott/3d-multimaterial","last_synced_at":"2026-01-23T06:47:09.694Z","repository":{"id":66063518,"uuid":"98039528","full_name":"cscott/3d-multimaterial","owner":"cscott","description":"Direct-drive multi-material printing using Printrbot extruders","archived":false,"fork":false,"pushed_at":"2017-08-03T16:19:53.000Z","size":60766,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-17T18:36:42.808Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://cscott.github.io/thing-tracker/#/thing/3367036c-9556-4aa5-b3d4-02ff7dc592d1","language":"OpenSCAD","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cscott.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-07-22T15:18:14.000Z","updated_at":"2019-11-09T12:07:50.000Z","dependencies_parsed_at":"2023-02-21T08:45:51.529Z","dependency_job_id":null,"html_url":"https://github.com/cscott/3d-multimaterial","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cscott/3d-multimaterial","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cscott%2F3d-multimaterial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cscott%2F3d-multimaterial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cscott%2F3d-multimaterial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cscott%2F3d-multimaterial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cscott","download_url":"https://codeload.github.com/cscott/3d-multimaterial/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cscott%2F3d-multimaterial/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28682261,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T05:48:07.525Z","status":"ssl_error","status_checked_at":"2026-01-23T05:48:07.129Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T06:16:27.440Z","updated_at":"2026-01-23T06:47:09.688Z","avatar_url":"https://github.com/cscott.png","language":"OpenSCAD","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Direct-drive multimaterial printing using Printrbot extruders\n\nThing tracker at\nhttps://cscott.github.io/thing-tracker/#/thing/3367036c-9556-4aa5-b3d4-02ff7dc592d1\n\n## Description\n\nThis repository contains a collection of parts used to implement\ndirect-drive multimaterial printing on a [Printrbot] Simple Metal.\nIt should be generalizable to other Printrbot models, and other\n3d printers, but we generally use Printrbot extruder designs\nand [Marlin]'s [Printrboard]/[Extrudrboard] support.  The basic\ndirect-drive multimaterial concept is due to [Brian Roe](http://roemotion.com)\n([@MakerBrian](https://twitter.com/MakerBrian)).\n\nThe direct-drive design uses the standard extruder directly above the\nhot end for precise no-lag filament control and compatibility with\nflexible filaments.  It is wired up to the extruder output on the\n[Printrboard] and controlled by Marlin as \"Extruder 0\".\n\nWe use a Printrbot [Gear Head Extruder] for direct drive, using the\nfact that this extruder is self-loading: once filament is introduced\nabove the drive gears, the extruder will grab it and feed it through\nwithout manual intervention.  (We're actually using the [beta version\nof the gear head extruder](https://www.youmagine.com/designs/printrbot-gear-head-extruder) which used a printed housing.)\n\nAbove this direct-drive gear head extruder is a V-shaped merge adapter\nwhich accepts 1-4 bowden tubes containing different filament\nmaterials.  This is integrated with the housing of the gear head\nextruder to place the merge as close to the extruder input as\npossible.  This minimizes the distance that unsupported filament must\ntravel during filament changes, and thus (hopefully) prevents jams.\n\n\u003cimg src=\"./imgs/IMG_20170723_222441.jpg\" width=150 align=\"right\"/\u003e\n\nAt the moment I've designed the merge as a single printed piece which\nfits into an 8mm hole on direct-drive extruder handle or body.  The\nidea is to make it easy to retrofit an existing gear-head extruder\nby simply drilling an 8mm pocket in the handle, although I don't\nown one of the newer Aluminum Gear Head Extruders to fully test this.\n\nThe bowden tubes from the merge piece run to individual bowden drives\nmounted on filament spools.  I'm using SPANNERHANDS' excellent\n[spool design](https://www.thingiverse.com/thing:2119644) with a\nslight remix to move the PFTE coupler and mount an extruder where\nthe PFTE coupler used to attach.  The extruders connect to an\n[Extrudrboard] or [Extrudrboard2] and feed the filament from the\nspool into the bowden tube to direct it to the merge piece.\nTwo extruders are always driven simultaneously to move filament,\none on the spool and one at the print head, although during\nfilament change operations there may be times when no filament\nis actually in contact with the direct drive, and thus the\nspool extruders are working alone.\n\nThe [Marlin] firmware is modified to support this style of operation,\nbuilding on the `MK2_MULTIPLEXER` support upstreamed to support Prusa's\n[Super Switch](https://github.com/prusa3d/Original-Prusa-i3/issues/29).\n\n\u003cbr clear=\"both\" /\u003e\n\n## Instructions\n\n### Step 1: Build spools\n\n\u003cimg src=\"./imgs/IMG_20170726_134009.jpg\" width=150 align=\"right\"/\u003e\n\nStart by printing out a [SPANNERHANDS spool] for each filament bowden\nextruder you are going to use. I'm using the \"v5 1kg\" variant, but\nwith a little effort you could adapt these instructions to one of the\nother spool variants.  Use [`spool-remix-lid2.stl`] instead of the\nstock `LID2` part.  Mount the SPANNERHANDS `PTFE_COUPLER_v2_0.stl`\npart to [`spool-remix-lid2.stl`].  We are going to mount our\nbowden extruder on `LID1`, where the `PTFE_COUPLER` part would\nnormally go.  Assemble the `LID_Bracket`, `BASE_Bracket`,\nand two `CLASP_BRACKET_v2_0` parts; I printed these in a contrasting\ncolor.\n\nUse two `Glue_Joint` parts to assemble the lid and base halves;\nI recommend gluing both at once with the parts assembled into a complete\ncircle so you can ensure that the gap between top and bottom is not\ntoo large as you glue them up.  Otherwise you tend to get top and bottom\nhalves which are ~178° of arc instead of 180°, and when you finally put\ntop and bottom together you get a pacman which won't close completely.\nYou can scale up the Z axis of the SPANNERHANDS `Flex_Seal` parts and\nthen trim them into a wedge to kludge around the problem if this happens.\n\nI found the stock spool bearing mounts a little too tight, so I printed\nthe 50mm spool at 102% to fit my 52mm-core diameter spools with the right\nfit for the bearings.  I use the remix at\n[thing:2372633](https://www.thingiverse.com/thing:2372633) to fit my\n32mm core diameter spools; I didn't need to scale that in any way.\n\n\u003cbr clear=\"both\" /\u003e\n\n### Step 2: Mount bowden extruders\n\n\u003cimg src=\"./imgs/IMG_20170728_133944.jpg\" width=150 align=\"right\"/\u003e\n\nNow print out [`mount-1kg.stl`] and attach it to the LID1 part of the\nspool, with four M3x10mm screws like all of the other SPANNERHANDS\nspool parts.  After it is attached to the spool you can mount the\nextruder, placing the mount between the extruder body and the stepper.\nI recommend M3x25mm screws here; some models of Printrbot extruder\nmight need some extra length to account for the mounting plate between\nthe extruder and stepper.\n\nYou can optionally use three M3x8mm screws to secure the bottom of\nthe extruder.  Some models of Printrbot extruder (for example, the\ninjection-molded plastic extruder) don't have these mounting holes.\nThey are probably overkill for this use anyway.\n\n\u003cbr clear=\"both\" /\u003e\n\u003cimg src=\"./imgs/IMG_20170724_211042.jpg\" width=150 align=\"right\"/\u003e\n\nInsert a\n[Groove mount 1.75mm Bowden coupler](https://www.filastruder.com/collections/e3d-spare-parts-and-accessories/products/bowden-couplings-all-types)\nwhere the hotend would usually mount on the extruder.\n\n\u003cbr clear=\"both\" /\u003e\n\u003cimg src=\"./imgs/IMG_20170726_134052.jpg\" width=150 align=\"right\"/\u003e\n\nYou can route the wires for the stepper down the back of the spool and\nthrough the hinge.  You'll probably need [servo extension cables] to\nreach your Extrudrboard/Extrudrboard2 from wherever you decide to\nmount your spools.  You can use [`spool-remix-hanger.stl`] to mount\nthe spool to the wall while leaving room for the stepper motor cable.\n\n\u003cbr clear=\"both\" /\u003e\n\n### Step 3: Assemble gear head direct-drive extruder\n\n\u003cimg src=\"./imgs/IMG_20170728_133905.jpg\" width=150 align=\"right\"/\u003e\n\nPrint out [`gearhead-remix-base.stl`], [`gearhead-remix-clamp.stl`],\nand [`gearhead-remix-gearbox.stl`]. (The photo also shows an early\nversion of [`bowden-block-4.stl`], the bowden merge piece.)\n\n\u003cbr clear=\"both\" /\u003e\n\u003cimg src=\"./imgs/IMG_20170728_134043.jpg\" width=150 align=\"right\"/\u003e\n\nYou'll also need (4) [5x8x2.5mm ball bearings] (or just three; see\nnote 2 below).\n\n\u003cbr clear=\"both\" /\u003e\n\u003cimg src=\"./imgs/IMG_20170728_141320.jpg\" width=150 align=\"right\"/\u003e\n\nFirst, install a pair of bearings into the `base` piece, and then install\nthe Printrbot Gear Head Extruder Gear Set into the bearings.\n\n**NOTE 1:**\nPrintrbot [sells these](https://printrbot.com/shop/gear-head-extruder-gear-set/),\nbut the pair that I have came from the Beta program for the Gear Head Extruder.\nIt's possible the production gear set differs from the beta gears.\n\n**NOTE 2:**\nPrintrbot's original instructions stated that the rear stepper motor\nbearing (the bearing behind the hollow gear you just installed) is\noptional.  But if you're buying bearings, no reason to pinch pennies.\n\n**NOTE 3:**\nYou may want to try [walter](https://www.thingiverse.com/walter/about)'s\n[remix of the gear head extruder](https://www.thingiverse.com/thing:1052966).\nIt appears to use the same Printrbot gear set and bearings---but again,\nI'm not certain whether production gears differ from beta gears, and if so\nwhich walter used.  Some modifications will be necessary to adapt his\nremix to Printrbot bottom-mounting holes, but maybe you don't need those.\n\n\u003cbr clear=\"both\" /\u003e\n\u003cimg src=\"./imgs/IMG_20170728_141721.jpg\" width=150 align=\"right\"/\u003e\n\nNow install the other pair of bearings into the `gearbox` piece, and\nbolt it to the base using (2) M3x20mm screws and (2) M3 nuts, sandwiching\nthe gears between them.  Before closing things up, align the set screw in\nthe left-hand gear with the channel in the base; this will allow you to\ninsert an allen wrench to tighten this gear onto the stepper shaft.\n\n\u003cbr clear=\"both\" /\u003e\n\u003cimg src=\"./imgs/IMG_20170728_143040.jpg\" width=150 align=\"right\"/\u003e\n\nAttach the assembled gear box to the stepper.  Ensure the flat on the stepper\nshaft is aligned with the allen wrench channel.  Use (2) M3x10mm screws in\nthe top holes to attach the gear box to the stepper, and then tighten the\nset screw to secure the drive gear to the stepper shaft.\n\nYou probably want to use `M302 P1` to allow cold extrudes, then hook up\nyour stepper at this point and do a test extrusion w/o filament or hot end\nin order to check that the gears turn smoothly without slipping or grinding.\n\n\u003cbr clear=\"both\" /\u003e\n\u003cimg src=\"./imgs/IMG_20170728_145756.jpg\" width=150 align=\"right\"/\u003e\n\nNow attach the extruder to the Y-axis of your printer using (2) M3x10mm\nscrews through the bottom mounting holes into (2) M3 nuts in the slots\nprovided.  (I'm using M3x12mm screws because I have an extra 3mm aluminum\nplate mounted to my Y-axis, to support a previous dual-extruder\nexperiment [similar to this one](https://www.thingiverse.com/thing:1539380).)\n\nInsert your hot end, and ensure it is snug and flush to the bottom surface\nfof the extruder as shown in the picture.  Any gap here will allow flexible\ncoil to kink and coil into the gap, eventually pushing your hot end off in\nthe middle of a print.  (This is the voice of experience speaking.)\n\n\u003cbr clear=\"both\" /\u003e\n\u003cimg src=\"./imgs/IMG_20170731_105441.jpg\" width=150 align=\"right\"/\u003e\n\nInstall the `clamp` piece using two M3x22mm screws into the stepper.\nThere is a ridge on the clamp piece that should fit into the ring at\nthe top of your hot end and keep it from slipping downward.  Be\ncareful of the screw length here: if the screw is too long it will\nbottom out in the blind mounting hole on the stepper and not bend the\nPLA clamp piece enough to properly grip the hotend.  (Again, the voice\nof experience.)  The `clamp` is secured to the Y-axis using another\nM3x10mm screw and M3 nut into its bottom.\n\nYou can do a test print, feeding filament through the hole in\nthe top of the remixed gear head extruder, to make sure everything\nis working correctly to this point.  Be sure to use `M92 E127` to\nreset your extruder steps/mm if you weren't previously using a\ngear head extruder.\n\n\u003cbr clear=\"both\" /\u003e\n\n### Step 4: Install bowden merge piece\n\n\u003cimg src=\"./imgs/IMG_20170730_191243.jpg\" width=150 align=\"right\"/\u003e\n\nPrint out [`bowden-block-4.stl`] and install (4)\n[Filastruder/E3D \"Embedded for plastic\" 1.75mm Bowden Couplers](https://www.filastruder.com/collections/e3d-spare-parts-and-accessories/products/bowden-couplings-all-types).  (You could also use the 2-way or 3-way merge piece if\nyou prefer.)\n\nTo be continued...\n\n\u003cbr clear=\"both\" /\u003e\n\n### Step 5: Wire up the bowden extruder steppers\n### Step 6: Update Printrboard firmware\n### Step 7: Test 'er out!\n\n## Related\n\n* The [Extrudrboard2] design allows connecting up to four multiplexed\n  steppers to a Printrboard.\n* [SPANNERHANDS spool] system.\n* Printrbot [Gear Head Extruder].\n* [Multimaterial community forum](http://forum.monstercafe.net/topic6.html)\n\n## License\n\nThese designs are licensed under the [GPLv2+].\n\n[Printrbot]: http://printrbot.com\n[Printrboard]: http://reprap.org/wiki/Printrboard\n[Extrudrboard]: http://reprap.org/wiki/Adding_more_extruders#RAMPS_using_ExtrudrBoard\n[Extrudrboard2]: https://github.com/cscott/extrudrboard2\n[Marlin]: http://www.marlinfw.org/\n[Gear Head Extruder]: https://printrbot.com/shop/gear-head-extruder-v2/\n[SPANNERHANDS spool]: https://www.thingiverse.com/thing:2119644\n[servo extension cables]: http://www.ebay.com/itm/2-3-foot-XH2-54-Long-Stepper-Motor-Extension-Cables-for-3D-Printers-5-Pieces/272523242942\n[5x8x2.5mm ball bearings]: https://amazon.com/gp/product/B00ZHST8NU/\n[`spool-remix-lid2.stl`]: ./spool-remix-stl/spool-remix-lid2.stl\n[`spool-remix-hanger.stl`]: ./spool-remix-stl/spool-remix-hanger.stl\n[`mount-1kg.stl`]: ./mount-stl/mount-1kg.stl\n[`gearhead-remix-base.stl`]: ./gearhead-remix-stl/gearhead-remix-base.stl\n[`gearhead-remix-clamp.stl`]: ./gearhead-remix-stl/gearhead-remix-clamp.stl\n[`gearhead-remix-gearbox.stl`]: ./gearhead-remix-stl/gearhead-remix-gearbox.stl\n[`bowden-block-4.stl`]: ./bowden-stl/bowden-block-4.stl\n[GPLv2+]: https://spdx.org/licenses/GPL-2.0+.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcscott%2F3d-multimaterial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcscott%2F3d-multimaterial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcscott%2F3d-multimaterial/lists"}