Two extruders. No compromises.
Enable dual-color, dual-material, and dual-part printing... with the same speed and quality as single-extruder printing.
Mod a Voron Zero or build one fresh!
D0 is the only open-source, fully-documented, reproducible-by-anyone Dual Gantry printer out there.
In a Dual Gantry printer, the two heads are fully independent. With no extra weight to drag around (vs an IDEX printer), and no complexity added to switch between heads (vs a toolchanger), Dual Gantry is a promising way to do more with a 3D printer.
Curious? Watch the first one print below!
Tons of content. On this page:
-
Releases: Visual release notes
-
Overview: Why Dual Gantry?
-
Sample Builds: Parts and sizes
... and beyond, split into their own pages:
-
Parts: Parts list to build your own
-
Instructions: Instructions to print, assemble, and configure
-
Software: Two toolheads in one workspace, explained
-
FAQ: Common questions, answered
-
Archived v1: Prior design
Enjoy! I hope this project inspires you to build something new, whether a D0 or your own design. -Z
2023-09-16 v3 Gantry release and updates
This release moves to a completely-new, symmetric, nested belt path:
The new Pandora's Box-derived gantry design, created in close collaboration with Desune
on Discord, has far fewer unique parts, adds travel, and enables wider toolhead compatibility.
Here's the side-by-side comparison from above, with v1 on left, and new v3 on right:
Or, in reality:
The printer looks a little different now, with internal spool holders!
In short - this is a big update. This is what D0 should have always been.
Sometimes it's only through iteration and collaboration that you get to what feels right. The v3 gantry feels right. No weird strut, no flipped motors, smaller, more maintainable... all-around, better. See the comparison table on the Design page for more details on why.
Other improvements:
- Boop support for perfect first layers every time, nozzle probing with Boop is now the default. There are no magnets to get loose in a heated chamber and no probe motions to configure anymore.
- Better toolhead compatibility, including a Voron 0.2-compatible mount for the Voron Mini Stealthburner toolhead and many others.
- Gantry board support for the GBB15 gantry board - enables super-clean, easy wiring with magnetic-attach covers.
- Dual internal spool holders added, reducing the effective width.
Existing v1 builders: to upgrade, the main costs will be new rails, a few new extrusions, and Boop parts. There's nothing wrong with your v1 build; it will print fine. But if you want more travel and the benefits of Boop, a fresh rebuild with the new larger default frame size might make sense.
For earlier releases, see the Updates page.
Dual Gantry is a rare 3D printer type with two toolheads moved by two completely independent XY motion systems:
Yes, you’re seeing double, with black and silver toolheads in a dual-CoreXY motion configuration.
In general, a second hotend adds enormous flexibility - to support two colors, two materials (typically support + main), and two nozzle sizes, in one print, with no color-bleed issues, cross-contamination, or wasteful purging. Sounds good, right!
Well, that second hotend, if mounted on a single toolhead, can get in the way of print quality, as it drools filament when not in use - and the toolhead is now custom. 😦
So along comes IDEX, short for Independent Dual Extrusion, which adds a second, independent toolhead on a shared axis (typically the X axis). Sounds better, right?
No drool, plus something cooler: one printer can now print two identical parts simultaneously, in mirror or duplicate modes. 💪 (note: in theory; depends on firmware support)
Open-source IDEX designs include Voron-derived ones, like Zruncho’s Double Dragon, Eddietheengineer's Tridex, and Ankurv’s IDEX Switchwire. There's also the Muldex, and there's no shortage of commercial examples, too: Sovol SV04, FlashForge Creator Pro, BCN Sigma, Jadelabo J1, and many more.
But that second toolhead comes at a cost: moving mass, which has effects on print speed (max accel) and quality (typically, ringing artifacts). 😐
Simplify, then add lightness - famous quote from Colin Chapman at Lotus
Whether building a fast race car or a fast printer, physics can't be ignored.
You can mitigate the moving mass somewhat, by using a lighter toolhead, typically with a remote Bowden extruder, but Bowden extruders introduce their own tuning challenges.
With Dual Gantry, you get a no-mass-added gantry for the common case of single-extruder prints. Unlike an IDEX, here, each toolhead is truly independent and can move in X and Y on its own - potentially to print two completely different objects at once!
There’s no hit to max acceleration or potential for ringing caused by dragging around a heavy second toolhead on a longer rail all the time.
Sure, you can't print more than two colors, like a multi-material unit or toolchanger can, but everything in engineering is tradeoffs... and Dual Gantry is an interesting and new point in the broader space of 3D printer types that support multiple extrusion:
Take a look at the table above, or at this other helpful categorization. This diagram is not comprehensive, but gives a sense for the depth of the design space, and especially, the rarity of everything not on the far left side (typical single-extruder printer). For some interesting points in the design space, there's only one commercial example!
(Please file an issue on GitHub if you know of any significant omissions.)
On the plus side, you don't have to design it (anymore). You don't need to program the firmware either (anymore): Klipper works (thanks to a collaboration with tircown) and RepRapFirmware supports two active gantries, out-of-the-box. The software base needed to make full use of the workspace, by implementing collision detection and avoidance, is the src
folder here and explained in the Software section.
On the minus side, building it is roughly twice the work of a typical printer. There are added costs from the second gantry and toolhead. There are alignment challenges - including XY and YZ skew calibration - which are currently unknown. And like any multi-head printer, you'll have more tuning and slicer stuff to figure out.
If all that sounds daunting, this is not the printer for you. If being the first to figure these out sounds exciting, this may be your next printer!
Roughly... start with a Pandora's Box gantry. Turn it 90 degrees. Add extra bearing stacks and combine idlers with AB blocks. Duplicate it about the center. Flip it upside-down. Add off-the-shelf Boop and toolheads.
That’s the core idea.
In practice, though, there are quite a few additional bits to design to make it work. And like any V0 mod, the devil is in the packaging details: every mm matters.
Beyond the gantry, D0 heavily leverages off-the-shelf parts from these repos:
- BoxZero ditches the V0 tophat
- TriZero adds automatic bed leveling and enables XY scalability from a fully-supported bed
- ZeroPanels add snap-in, quick-release panels
- Boop adds highly accurate nozzle probing
- Voron V0.2 provides a good toolhead default
If you're not familiar with these mods, here's a pic, showing a Plus50-size Tri-Zero + BoxZero printer (170x170 bed motion), next to a V0-size (120x120 bed motion) Tri-Zero + BoxZero. Both have ZeroPanels.
Let's be honest here... there's no such thing as a completely "stock" D0 build. If you can build this, you're going to pick the best parts for you, and the beauty of living within the V0/T0/Boop ecoystem - more than ever with the v3 gantry - is that you get this choice.
Two sample builds below should get you thinking. Make sure to check out Hex-Zero
mod by Alexander Þór (on the DoomCube Discord) and HBO's T0 mods repo for alternate skirts and the Z joints, in particular. Also check out Desune's Dueling Boops repo for alternate skirts and gantry parts. For the latest, check #dueling-zero-dev
on the DoomCube discord.
Originally V0.562, then the first Dueling Zero, and now with the v3 gantry:
Highlights of this particular build:
- XY Motion and Toolhead
- 2x Boop beta-4-based carriages with nozzle bed probing, plus rear threads for toolhead boards, using the same sensor option as Tap
- 2x MiniSB toolheads
- 2x Revo Voron hotends - V0.2r1 version
- 4x StepperOnline Nema 14 (14HS20-1504S) stepper motors
- Frame and Z
- Rail-less Z motion (!) using printed Tri-Zero MGN7-compatible sliders with match fit to extrusions
- Tri-Zero triple-belted Z with tool-less belt attachments
- 3x Kysan 1124090 NEMA17 motors for Z
- LDO 1515 V0 frame kit (Red) + MakerBeamXL 1515 (Black) w/500mm pieces cut to size
- 300W AC 180x180 Prusa Mini size plate bed with textured and smooth PEI sheets
- Electronics
- Raspberry Pi 3B
- SKR Pico controller boards for Z motion
- 2x GBB15 gantry boards
- 2x EBB42 toolhead boards
- BTT U2C USB CAN board
- Meanwell LRS-150-24 PSU
- Mini 12864 display with Klipper adapter
- 2x Fysetc PIS USB ADXL boards mounted to x carriages
- Other
- Panels: ZeroPanels v3 with optional midclips and rear-hinged top panel
- Travel: 166mm x 180mm in XY, ~130mm in Z (not optimized!)
- Filament: mix of KVP ABS flavors: Metallic Silver, Black, and Stellar Black.
- PrinterExperiments code for easy Z nozzle alignment with a single command
This build is a bit too small to cover the full bed and support over-travel in all directions. For all new builds, a build the size of Desune's is recommended; more in the Parts section.
Highlights of this particular build:
- XY Motion and Toolheads
- 2x Boop beta4 with OptoTap v2.4.1 board (slightly modified for rear microswitch mounting)
- 2x Dragon Burner v7 (modified for Boop clearance)
- 2x Rapido v2 HF
- 2x Orbiter v2 extruders with filament sensors
- 2x MGN7H 300mm
- 2x MGN9H 250mm
- 4x StepperOnline Nema 14 (14HS20-1504S) stepper motors
- 3x Cloudray Nema 17 (17CS04A) stepper motors
- Frame and Z
- Misumi 1515 extrusions (silver)
- Rail-less Z motion sliders (modified to fit Misumi extrusions)
- Triple-belted Z with custom Pandora'sBox-derived GE5C joints
- 180x180 bed with 300W AC powered heater
- Electronics
- BTT Manta M8P v1.1 with CB1 v2.2 compute module
- 2x BTT EBB36 v1.2 toolhead boards
- 7x BTT TMC2209 stepper drivers
- BTT TFT35 SPI v2.1 touchscreen
- Meanwell UHP-200 PSU
- CG 40A DA SSR
- Other
- ZeroPanels clips (modified for screw mount on Misumi extrusions)
- Filament - eSUN ABS silver and black
- Removable base panel for easy electronics access.
- Outer Dimensions (without enclosure panels): L: 290 W:380 H:526mm Height includes electronics compartment and feet. Vertical extrusions are currently 450mm, however 50~100mm of extra height for umbilical clearance is recommended for maximum Z travel.
- Maximum XY travel (approximate): X:188mm Y:194mm (with Dragon Burner toolhead)
- Maximum Z travel (as configured with 200mm linear rails): 168mm
The parts for this specific build are available at Desune's Dueling Boops repo. They are extremely similar to Zruncho's parallel implementation; the two influenced each other during development. Definitely take a look, as you can mix and match parts from this one, including the updated skirts and bed pieces.
If you've read this far, great, but there's more good stuff.
There's lots more info beyond this README file, in the repo, split into multiple pages. And the V1 Archives section provides a view into the original design that you might find interesting.
Take a look around, or back to the What's Here section above.
They do exist! Others have built printers or similar CNC devices with at least two gantries operating in a single shared workspace:
- Essentium HSE 280i: large, high-dollar, linear-servo printer with two gantries
- Cronus: a 5-head, single-workspace 3d printer
- Dual Gantry CNC Machining Centers: a related CNC
- Earlier motion platform example: dates to 2012!
There are also a bunch of posts online with people conceptualizing the concept, dating back years. The benefits/drawbacks are relatively straightforward to understand, though not widely known. For a few builds, there are mentions online, but no reference to a video of the machine printing, or a link to learn more.
- 2018-06-04 Duet Forum post by 3D_low: "Did anyone pull that off yet? i havent found one on the net."
- 2018-11-21 Duet Forum post by Haggan90: HaqXY is a dual Hybrid-CoreXY
- 2021-03-01 r/3Dprinting post by u/m47812: "CODEX" project. Video shows a fairly far-along dual-gantry; describes collaborative mode too. Abandoned as of 2023 in favor of a toolchanger.
- 2021-05-01 r/Reprap post by u/lowfat: postulates DG, but abandoned in favor of a toolchanger
- 2021-07-21 Duet Forum post by breed: "Independent Dual Gantry CoreXY"
- 2021-09-17 Duet Forum post by oliof: "Core XY - Idex with two gantries", has a nice diagram
- 2022-01-27 Klipper Discourse post: Dual gantry printer with single MCU
- 2022-03-25 Duet Forum post by dc42: Beta testers for multiple motion system support: simultaneous multi-printing for RRF v3.5. Note two pictures, for motion designs from breed and slaughter2k
- 2022-06-23 Duet Forum post by zruncho: is anything out there?
Please raise an issue for this repo to update the list of links if you come across one! There’s no pretense of true originality here.
- Bill Deckingham’s beast: a CoreXYUVAB system, with extra axes for a very different reason. Maybe some software lessons or relevant RRF config here?
- Hashprinter: super simple gantry
- TAMV = Tool Alignment with Machine Vision: a way to automate XY calibration
- Klipper PR by Tircown that adds duplication and mirror modes
- PitStop3: hotend-swapping multi-material printer
- Swapper3D: nozzle-swapping multi-material printer
- Enraged Rabbit Project: add multimaterial capability
- 3D Chamaleon: automatic color changer
- Desune: designed Dueling Boops (the honorary v2 gantry) and co-designed the v3 gantry w/Zruncho.
- MasturMynd: designed Pandora, which made this possible.
- Tircown: made a single-Klipper-instance version possible, with his code and live debugging
- Clee: saved the project with some hardcore hardware rescue with the STM GB01 chips
- ToxGunn: diagnosed a stepper overcurrent issue and saved me more plastic and motors
- Reviewers: thanks for providing feedback that helped make this clear and concise!
- v3: Caza, Kevinakasam, Tircown, Sanity, Telxoid
- v1: Red5, _xbst, where’sthelambSAUCE, BeastBc
- Clee, Red5, Kyrios, Leopard, EddieTheEngineer, and others: initial conversations proved motivating - that this wasn’t completely insane. Thanks!
- Nemgrea: none of this would have happened without a solid base.
The best place to ask questions and see the latest is on the DoomCube Discord, where many Printers For Ants builders hang out. Go to the #dueling-zero-dev
thread in the #tri-zero channel. Put your build log in the #build_logs
showcase forum there too!