Simultaneous extruder retraction with Diamond 5 in 1 hotend to avoid stringing

Basic Information: Diamond 5 in 1 hotend

Printer: cartesian
MCU / Printerboard: MKS monster 8

Hi everyone,
I have Diamond 5 in 1 hotend on cartesian printer. The problem is the retraction from one active extruder is not enough to avoid oozing color at the wrong place. I wonder whether we can write macro retract G10 and deretract G11 to retract/ deretract 5 extruders at once 5mm. The code is something like this:
[gcode_macro G10]
gcode:
SYNC_EXTRUDER_MOTION EXTRUDER=extruder MOTION_QUEUE=extruder
SYNC_EXTRUDER_MOTION EXTRUDER=b MOTION_QUEUE=extruder
SYNC_EXTRUDER_MOTION EXTRUDER=c MOTION_QUEUE=extruder
SYNC_EXTRUDER_MOTION EXTRUDER=d MOTION_QUEUE=extruder
SYNC_EXTRUDER_MOTION EXTRUDER=e MOTION_QUEUE=extruder
G91
G1 E-5 F4000
G90

When it comes to macro G11 to deretract, I don’t know how to call the current active extruder and desynchronize the other 4 extruder. Do you come up with any solutions? Thank you.

Is that a special filament?

It is a device to create issues with your printer you never dreamed of before :wink:
https://reprap.me/collections/diamond-hotend/products/diamond-fullcolor-hotend

2 Likes

I’m not sure I fully understand your question. To “desynchronize” an extruder you can unset its motion queue - for example: SYNC_EXTRUDER_MOTION EXTRUDER=b MOTION_QUEUE= ( G-Codes - Klipper documentation ). To find the current active extruder you can use the macro variable {printer.toolhead.extruder}.

-Kevin