I’ve always wanted to have a multi-material 3d printer. There are a few standard mechanisms for this in the consumer space:

  • Fixed dual-hotend printers with two hotends (sometimes attached to the same heatsink) at fixed positions.
  • MMU2/ERCF-style filament cassette where a master unit withdraws and inserts filament into the extruder.
  • Mixing hotend with two (or three) separate extruders feeding into a single hotend.
  • Independent Dual Extruder (IDEX) on the x-axis, sharing the y-axis. This is popular with bedflingers.
  • Toolchanger printers, like the E3D Motion Platform, or the open-source Jubilee.
  • Multi-gantry printers, typically only for large printers.
  • Switching extruder printers, where two (or three) hotends are all located on the x-carriage, and one hotend is moved into printing position at runtime.

Previously, I owned a kit 3d printer that shipped with a dual hotend, but I was never able to get the two nozzles to the exact height where one did not drag into the prints of the other and destroy the surface finish or, more commonly, detach parts from the bed.

Most multi-material concepts impose a huge technical overhead – IDEX, multi-gantry, and MMU-style printers all require more motors, electronics, parts and tuning, and it can be a huge pain to get all these exactly right. The simplest concept is a mixing hotend, but that tends to waste a large amount of filament in purging the melt zone.

A switching extruder was the ideal compromise. In this configuration, two hotends are attached to the x-carriage, and only one of them is in printing position at any one point in time. The other is lifted away so it cannot interfere with the active hotend. Deviations in position and height are corrected through software offsets. This is a simple and elegant solution to the problem, and I later observed some type of switching extruder in some Ultimaker models.

My implementation was built around a buckling spring design, printed in TPU. This simple shape was designed to form a neat bistable system, where the extruder would be held firmly in place by the buckled spring in either the left or the right position. Moving from one position to another means compressing the diamond-shaped portions of the spring, which would be delivered by driving the carriage against a protrusion in the frame.

I built this mechanism around a single skateboard bearing and screw-adjustable endstops, providing repeatable nozzle positioning. This was built into a self-designed Core-XY motion platform (using motion parts from my previous kit printer!) In initial testing, the mechanism worked surprisingly well. We were able to maintain the force hierarchy for this to work: switching must take less force than the maximum applied to accelerate the print head, but less force than the torque limit of the motor.

Unfortunately, I was not able to increase the preload on the buckling spring sufficiently to prevent severe vibrations under movement. The natural solution to this would be some sort of locking mechanism (or a much stronger spring) but this project was abandoned when I picked up a CNC machine instead.