Annex Trad Rack

I designed Trad Rack, a scalable, modular multi-material handler for 3D printers. A multi-material handler enables a single-nozzle 3D printer to print with multiple colors/materials in the same print, automating the filament-swapping process. In my design, the number of colors/materials is easily expanded using low-cost modules without any disassembly.

Trad Rack

GitHub Repository

TL;DR: video of Trad Rack in action

Design Process

I started the design by putting my thoughts into a sketch. Existing multi-material unit (MMU) designs used either 2 hobbed drive gears for each filament or 1 drive gear and 1 idler bearing. To reduce costs when expanding the number of filaments, I initially proposed using a low-cost drive gear for each filament, with a single idler bearing for the entire system. The final design deviates from this sketch, but it retains some aspects:

Initial Sketch
Initial Sketch

I discussed this idea with other members of the Annex Engineering team, and I started on the CAD:

Version 1

Dalegaard, another member of the Annex team, suggested swapping the drive gears and the bearing: there would be 1 idler bearing for each filament and a single drive gear that moves between the filaments, rather than the other way around. This solution would reduce cost further while also eliminating the need for a long shaft running through the drive gears, allowing for easier assembly/disassembly and better scalability. I started work on a second design that incorporated this idea:

Version 2

First Prototype

Once the CAD was mostly complete, I began building the first prototype of Trad Rack:

First Prototype

The following video shows the prototype in action, swapping which filament is fed into the output bowden tube (which would connect to the printer when in use):

Standalone Demo

The brackets on the bottom of Trad Rack are used to attach it to a printer. I mounted Trad Rack to the side of my K3 printer as shown below, with the bowden tube feeding into the chamber from the back:

Trad Rack Mounted to my K3 Printer
Trad Rack Mounted to my K3 Printer

Further Progress

I wrote a module for the Klipper 3D printer firmware in Python to control Trad Rack. Then I went back and forth between doing multicolor test prints with Trad Rack, making changes in CAD, and reprinting parts to fix issues I encountered. For example, the image below shows a few iterations of Trad Rack’s middle carriage, which houses a filament sensor and connects to a belt for moving the selector between filaments:

Middle Carriage Iterations
Middle Carriage Iterations

Once most of the issues were resolved, I recorded Trad Rack printing a few 3-color lizards as a demonstration. We started a closed beta to get more testing on Trad Rack and to make further improvements before a public release.

The video below shows Trad Rack and my K3 printer completing a filament change from silver to orange, as well as a timelapse of the lizard print. In the top view of the printer, you can see trad rack’s selector moving up or down the screen whenever a filament change occurs:

Toolchange and Print Timelapse

The completed print is shown below:

Lizard Print

Beta Testing

We had about 500 beta testers in the closed beta. Throughout the closed beta, I made several revisions to the mechanical design and many changes to the software based on user feedback. I also wrote documentation to cover setup steps, wiring, and software installation and configuration. I collaborated with another member of the Annex team on an assembly manual as well.

In December 2023, after fixing the main remaining issues and updating the documentation to cover common questions, we concluded the closed beta and transitioned to a public beta.

Current Status

As of March 2024, Trad Rack has reached Release 1 status and is available on GitHub.

GitHub Repository