The Creality Ender 3 is one of the most popular hobbyist machines available. The printer has been embraced by enthusiasts on a budget, and it quickly gained popularity on platforms like YouTube, Reddit, and more. The original Ender 3’s success led Creality to release more iterations of the Ender 3, including the Ender 3 Pro, the Ender 3 V2, and the Ender 3 S1.
While all versions of the Ender 3 have some slight differences, they’re all limited to printing one filament at a time. This means that you can only print an item in one material or color (unless the filament is multicolored). If you want to achieve multicolor or multi-material prints (like with dual-extrusion) on your Ender 3, one easy way to do this is with a simple mid-print filament switch.
A mid-print filament switch is exactly what it sounds like, yielding prints with a color or material change at a specific layer. The color change is immediate and doesn’t produce any kind of gradient effect; the layers after a certain point will simply be printed in a different filament. If you’re looking for a permanent solution, you could consider using a dual or multi-extrusion system such as Chameleon or Pallete. To learn more, you can check out our guide to dual extruders on the Ender 3s.
In this article, we’ll go over two ways to perform a mid-print filament switch on your Ender 3, Pro, V2, or S1: the manual method and the G-code-assisted way. The manual method involves pausing the print yourself and removing the filament by hand, while the G-code assisted technique makes this process more automatic through your slicer. We’ll use Cura as the example for all slicer settings changes, but the process will be similar for other slicers.
Manually changing the filament is the easiest method to set up. However, before we get into the actual switching instructions, there are a few preparations that you may want to take.
The first thing you might find handy is to employ a G-code script that will display the current layer on your printer’s screen. This will make it easy to monitor your printer to see if it’s ready for the filament switch. To do this, follow the steps below:
The second preparation is knowing when to switch filaments; this step will be helpful later. Follow the steps below to identify the layer number at which you want to make the switch:
Once your printer is displaying layer numbers and you know exactly when it should change, it’s time to start your print. Note that, as the process is time sensitive, we strongly advise that you read over the steps once or twice before performing them.
A particularly important point to be aware of is how the nozzle temperature should be set if you’re changing between different material types: Essentially, any time you switch filaments, you should ensure that the nozzle temperature is set to the higher of the two materials while you purge the first with the second. The following steps accommodate this.
After starting your print, keep an eye on its progress so that you’re prepared when it’s getting close to the layer you want to make the filament switch at. Once the correct layer number is displayed, follow these steps:
The second method for a mid-print filament switch on any model of Ender 3 is to use a G-code assistant. There are two main ways to do this in Cura, but we’ll be focusing on the “Filament Change” G-code modification. The other way is to use the “Pause at height” command.
To start, you’ll need to add the “Filament Change” G-code command to your slicer. The instructions below are for Cura but should be somewhat similar in other slicers (PrusaSlicer, Simplify3D, etc.):
From here, you can change the settings of the filament switch G-code sequence in the settings box on the pop-up screen. Make sure to change the “Layer” setting to whatever layer you want to change your filament at. If you want to have multiple filament switches in a single print, you can add more than one filament change command by following the same process. To find the layer you want to change filaments at, refer to the instructions in the “Manual” method.
The above script uses the M600 command to function, but this command may not be registered by your printer’s firmware. In our experience, the M600 command was successfully registered by the Ender 3’s original Creality (Marlin-based) firmware – indeed, according to Creality’s GitHub for Ender 3 firmware, the M600 command is programmed. However, if you have an older model of Ender 3, the feature may not have been activated in the firmware.
If you want to change your firmware so that this command works on your printer, download either Marlin 1 or Marlin 2 and open an editor such as Arduino IDE or Microsoft VSCode. There, go into the “Configuration_adv.h” file and delete the “//” in front of #define ADVANCED_PAUSE_FEATURE
. After uploading your new firmware to your printer, you should be able to use the M600 command on your Ender 3.
If you want to check if your firmware has the M600 command programmed, open the configuration files and search (Ctrl + F) for “M600”. If nothing shows up, the firmware won’t recognize the command.
The filament change script is a helpful assistant that will give you more leeway and time to change your filament than you’d have if you were to manually change filaments. If all goes according to plan, your printer will pause at the specified layer height, retract the filament to remove as much as it can, and move the printhead to a specific location – by default, (X0, Y0).
At this point, the nozzle will stop heating, but the bed will maintain its temperature to ensure bed adhesion. Once you’re ready to switch the filament, you can click the printer’s control knob and the nozzle will heat back up to your printing temperature.
After that, the steps are the same as for the manual method. All you have to do is insert the new filament into the extruder and click the control knob again, and the printer will begin to extrude filament. Most likely, the nozzle won’t purge on the first go, as the new filament won’t have reached the hot end yet, so click the knob again, and the printer will run another extruding cycle. Then, when you’re ready, you can resume the print!
While this method for switching filaments requires almost no manual work, it’s important to remember not to move anything. Moving parts of your printer like the print bed or printhead will cause height or layer shifting when your print resumes (as the firmware won’t register any relative position changes you accidentally make).
Also, as with the manual method, if you’re switching materials (like PETG to PLA), make sure to change the nozzle temperature to the temperature required by your new material. Furthermore, you may want to add an extra 5 °C during the first layer of the new material to provide adequate layer adhesion.
While the rewards of switching your filament mid-print can be great, there are some problems that you can run into if you’re not careful:
License: The text of "Ender 3 (V2/Pro/S1): How to Change Filament Mid-print" by All3DP is licensed under a Creative Commons Attribution 4.0 International License.