There are several techniques that make possible the use of multiple colors and/or multiple types of plastic in a single print on a consumer-grade FDM printer. This document is a brief overview of those techniques and their advantages and disadvantages. They can be broadly categorized as single-nozzle or multi-nozzle systems.
These systems use a single nozzle for all extrusions.
On each filament change, the printer will pause and wait for the operator to unload the old filament and load the new one.
Advantages: The cheapest method, assuming your time is free. Works with practically any printer, with no modification and no additional hardware. Works very well for occasional color changes in the Z direction, e.g. signs with text in a contrasting color.
Disadvantages: More complex multi-material prints are too much work for all but the most dedicated / masochistic operators.
An automated mechanism replaces the operator's effort in loading and unloading filaments.
Examples: Prusa MMU2, ERCF
Advantages: The original hotend and extruder of a single-material printer can be used without modification, whether Bowden or direct-drive.
Disadvantages: Cost, complexity, reliability. It is not uncommon for a filament change to fail, requiring operator intervention.
A hotend is used which has multiple entry points for filament, leading to a single nozzle. These can be further categorized as true mixer hotends, which allow arbitrary mixing of the input filaments, and n-in-one-out hotends, which do not.
Examples: Prusa MMU1, E3D Cyclops+, numerous eBay-special Ender upgrades
Advantages: Simplicity. Mixer hotends allow printing with color gradients, a cool effect that also avoids the need for purge blocks (see below).
Disadvantages: Requires the use of multiple extruders, which may in turn require the use of a Bowden system due to weight. Retraction of filament can fail or leave a blob which causes the failure of later de-retraction. Therefore, despite being mechanically simple, such systems need to be designed quite carefully with respect to constraining the path of still-warm filament.
An auxiliary unit cuts and splices multiple filaments into a single strand, which is fed into an unmodified printer.
Examples: Mosaic Palette
Advantages: Works with any printer, without modifications.
Disadvantages: Cost and complexity of the auxiliary unit. Only available from one company in proprietary form. Mixing different types of plastic is only possible if they will splice together.
Single-nozzle systems share a major drawback: On every sharp color/material change, a substantial amount of plastic must be wasted to purge the old filament from the hotend and load the new one. Usually this takes the form of a "wipe tower" or "purge block" generated by multimaterial-aware slicer software. There are techniques to reduce the amount of waste, but it remains a substantial contributor to the cost and ecological footprint of multi-material printing. Printing and then immediately throwing away a useless block that weighs more than the desired object doesn't feel great!
These systems minimize plastic waste on material changes, by using one hotend and nozzle per filament. They will generally require multiple extruders as well.
Inactive hotends are docked to the side of the print volume. A mechanism allows the printer to drop off and pick up hotends.
Examples: E3D ToolChanger, Prusa XL (upcoming)
Advantages: No risk of oozing from inactive hotends ruining the print. Potential to combine other types of tools such as CNC routers, lasers, etc. with 3D printing.
Disadvantages: Complexity and very high cost, both overall and per-filament.
Two hotends move independently on a single X axis, while their movements are synchronized in Y and Z.
Examples: FlashForge Creator Pro 2, Rat Rig V-Cast, numerous DIY builds
Advantages: Besides multi-material printing, these systems can print two copies of a single-material object at once, or an object and its mirror image.
Disadvantages: Cost and complexity, especially of the X motion system. Seems to be limited to two hotends in practice, due to complexity and the loss of build volume in the X dimension with each new carriage.
This is basically a simplified toolchanger with IDEX-like movements. Two hotends ride on a single X axis, with their parking positions at the two extremes. A single moving carriage positioned between them can pick up either hotend and park the other one. This can be accomplished using solenoid electromagnets or permanent magnets only.
Examples: Numerous DIY builds. This detailed writeup of a "twin extruder" for the MakerGear M2 is worth a read.
Advantages: Compared to IDEX, this is a much simpler retrofit to an existing printer. Acts much like IDEX for dual-material printing, at a lower cost and complexity.
Disadvantages: Lacks the copy/mirror printing modes of IDEX (though copy is possible with additional parts). No way to extend beyond two hotends.
Generalizing IDEX from one to two dimensions, four print heads move as corners of a square parallel to the XY axes.
Examples: Unknown, seems to be just a concept for now.
Advantages: More materials than IDEX; more modes combining duplication/mirroring and multimaterial.
Disadvantages: Unknown. Complex motion system for sure.
Multiple nozzles move together and have a fixed position with respect to each other.
Examples: E3D Chimera, E3D Kraken
Advantages: Same motion system as a single-material printer. Simple from a hardware and software perspective.
Disadvantages: The nozzles must be perfectly level with respect to each other and the bed, or else a nozzle may collide with the bed or print. This cannot be calibrated out in software, since all nozzles move in unison. This also limits the use of mesh bed leveling, as the object which must ride the surface of an uneven bed mesh is no longer an (approximate) point but a line or square which must not collide anywhere. Inactive nozzles may ooze onto the print, and there is no way to move them out of the way.
Multiple nozzles move together, but a mechanism allows an inactive nozzle to be moved off of the print plane by a small distance. This can be driven by a separate actuator like a servo motor, or by the printer's motion to a special location.
Examples: Makertech 3D switching hotend, Ultimaker lifting switch, pivoting hotend mod for Ender 3
Advantages: Compared to rigid systems, the requirements on nozzle position are much less demanding. Differences in Z height between nozzles can be probed and cancelled out in software. Mesh bed leveling works as usual. Possible to place an ooze shield under inactive nozzles.
Disadvantages: The stowing mechanism adds complexity. The position of each nozzle after deploying must be highly repeatable.