March 10, 2026
Description
/!\ This is a concept, work in progres /!\
Edit 9/03/2026: V2 available here: https://www.printables.com/model/1632023-v2-multi-material-kept-simple
By printing this set of part and adding the special toolchange Gcode in your slicer you can experience multi-material printing without investing much money (no buy parts, no motors).
The files are now available for i3, tested for the mk3/mk3.5 platform with integrated enclosure. I have made a version of the two yellow holders for the stock machine too (see files section) but have not printed those yet to test (near future).
It may be compatible with mk2.5. The mk4 is not tested yet because of the huge difference of the nextruder regarding to the mk3 extruder. (Please help me with a make if you can test those).
There will be some coordinates tweaking needed to accommodate your own printer geometry, filament, etc. .
I have at this moment only tested to print PETG. Other filaments have still to be tried-out.
I simply think this had to be shared with the community 😉
I encourage you to try it and share you make and feedback!
Project Technical Details:
16/06/2025: update screenshot in english language / upload of the test print file.
Printed parts:
The are designed to be printed in PETG for easy assembly and the catcher has to be in TPU for the needed flexibility (shore 40D in my set-up).
Software adjustments:
Preset of the machine (from Mk3.5 base):
General:
G-code:
Toolchange Gcode to add to the machine profile:
{if layer_num >= 0}
G0 E-35 F2400 ; Retraction
G0 {if current_extruder==0}X22{else}X230.5{endif} Y0 Z212 F10000 ; Approach filament rest position
M104 S{temperature[current_extruder]}; Set hotend temperature
M109 S{temperature[current_extruder]}; Wait for hotend temperature
G1 E-7 F3600; Retraction
G1 {if current_extruder==0}X4{else}X249.5{endif} E-3 F500 ; Retire filament
G1 {if current_extruder==0}X10{else}X244.5{endif} Z210 F600 ; redressing filament
G1 E-15 Z195 F600 ; Pull-out
G1 Z165 ; Free filament
M104 S{temperature[next_extruder]}; Set hotend temperature
M109 S{temperature[next_extruder]}; Wait for hotend temperature
;
G0 {if current_extruder==0}X244.5{else}X10{endif} Z165 F18000; Approach filament rest position
G1 Z195 F3600 ; capture filament
G1 E17 Z212 F600 ; Pull
G1 {if current_extruder==0}X230.5{else}X25{endif} E-3 F600 ; filament pick-up
G1 E59 F2400; Deretraction
G1 E5 F300 ; prime nozzle
G1 E-8 F2400 ; retract nozzle
G1 Z165 F10000 ; clear toolchange position
M104 S{temperature[next_extruder]}; Set hotend temperature
M109 S{temperature[next_extruder]}; Wait for hotend temperature
{endif}
→ Full cycle with colorchange:
License:
GNU General Public License v2.0
7