I’ve wrestled a lot with printing two colors with my Creative Ender 3 printer. I’m using Cura 4 as a slicer. It should have been do easy, but all standard extensions to change the G-code and add a pause and resume, or a change filament; resulted in tearing apart the already printed surface and blobbing all over the place.
Finaly I’ve gathered enough examples and did enough tests, to create a piece of gcode that works for me.
; Custom Change Filament (JS) - START ; Move to change location M83 ; set extruder to relative mode G1 E-15.000000 F2400 ; retract filament G1 Z25.000000 F3000 ; move head up G1 X10.000000 Y10.000000 F3000 ; move head out of the way ; Notify for changing the filament M117 Change filament M400 ; Wait for buffer to clear M300 ; Beep M25 ; Pause ; Reset Filament, to prevent starting printing with a blob G1 E15.000000 F2400 ; reset filament M117 Clean nozzle M400 ; Wait for buffer to clear M300 ; Beep M25 ; Pause
G0 F1000 X112.999 Y114.591 Z1.6;Move to next layer position ar right Z position <------ manual change to last position in your slicer code M82 ;Set extruder back to absolute mode M117 Printing color 2... ; Custom Change Filament (JS) - DONE
The result (just a logo plate), looks very good to me: