Ender-3 Multi Color printing - DIY - Budget - AMS

Hello everyone, first post here, not the first time around the forum.

The new AMS (Automatic Material System) things have catch my attention and since I’m not the type of guy that likes just to spend the money if I can do it myself, here I am showing how I was able to print multi color prints (not just changing by layers, full multicolor) on a stock Ender-3 with the help of some extra parts and a Rapberry pi with Octoprint on it (but this last part is optional and there are workarounds).

I have inspired myself on similar projects, like 3dChamaleon (https://www.3dchameleon.com/)

Few images first:

The concept:
Having multiple (2 in this proof of concept) motors to feed different colours to the hot tip and using some g-code and 4 relays to “connect” or “disconnect” the motor we want to use to feed the correct color.

Summary of how I did it:
I use custom g-code to retract all the way out the currently used filament, then octoprint with a plugin and some python code to, using a g-code to activate or deactivate al relays to choose the correct color, then move the filament to the hot tip and continue the printing.

I can be more specific an share code and parts used for this if there is interest here.

Hello, this is pretty cool, I was wondering what you used to control this. Did you use the 3d printers board or a separate microcontroller (etc. arduino)?

1 Like

Yes to both, I use the 3D printer board to drive the motors, but I use a raspberry pi, which I have set up for octoprint, connected to the relays (board with blue boxes in the pictures) to select which is the motor “wired” (active) to the ender board.

I recently made some changes and now it’s 4 colours, same idea, more relays and motors

Can you please give us a list of materials? I would like to build something like this but with my core XYZ. No pressure I can probably figure it out

Sure, the list of materials:

General materials:

  • Kind of a micro controller to choose the color you wanna print, in my case I’m using Raspberry pi with octoprint and some software configuration in octoprint, but a ESP32 with a physical switch, will work too.
  • PC4-M6 PC4-M10 Pneumatic Fitting for the tubing to route the filament
  • Bowden Extruder PTFE tube

For each extra color you want to add you need:

  • 1 Four channels relay module compatible with your micro controller/rpi
    • 1 for 2 colours
    • 2 for 3 colours
    • 3 for 4 colours ** You might need a 4th one if your microcontroller is not capable of managing so many relays, which is my case, I have 1 connected to the rpi and that one drives all other 3 (see image below)
  • 1 Stepper Motor, the kind your printer uses
  • 1 Extruder Drive Feed Kit, the kind your printer uses
  • 1 3D Printer Stepper Motor Extension Cable

3D printed parts:

Connections:
Here is a diagram of my connections:

In text, there is a 4 module relay which is connected to the rpi which I use to give 5V straight from an external source to the other 3 modules, one module directs the connection from the 3D printed mainboard to the final module for motors 1/2 or motors 3/4 and the other two modules select the desired motor to be on.

Software:
PrusaSlicer is needed to print in multi-color, my recommendation is to follow the 3dChamaleon guide on setting up PrusaSlicer (https://www.3dchameleon.com/mk3-mode-3-gcode-generator) and use their gcode generator to get a bootstrap. I’ve made many many changes to my custom g-code already, but that is really custom to my setup and printer.

Thank you so much! I really appreciate it. Happy printing!

This is awesome and exactly what I’ve been looking to try out on my ender. Is it possible you can provide a simple diagram of how the 2 motors 4 wire attaches to the relay? I would love to try and make this!

Here is a crappy paint-like schematic I hope it’s enough:

1 Like

Thank you, I have 90% of the parts arriving today and will post my results when I work this out, I’m trying this on klipper firmware

Any luck replicating this?

I have the whole color change macro setup in klipper and have gotten it to print with 2 colors while I test it but the problem I’m having right now is with clogging which my guess would be that it’s from the PTFE splitter I chose being scaled to low on my printer making it difficult for filament to be forced through. So far though this idea works well, and what I’m going to do next using my klipper firmware is run the 4 extruder motors off of a second SKR mini board to at least get the setup more compact plus they will all have independent drivers