Starting Gcode of the extruders

Hi,

When looking in Cura and machine settings at the extruders there’s is a line filled in for start code:

M2000 S200 V250 A6000

Tried searching what it does but M2000 is not a gcode of marlin.

My question is what does this code do? (if I leave this code out the printer does not work like it should)

M2000 is amazing command in J1 firmware for quick switch extruders (park current extruder and move next at the same time)

Do you know what is the meaning of each parameters?
I’m trying to move extruder park move faster.
S= speed?
V = ?
A = acceleration?

I believe that could be the speed for each extruder independently. The parking extruder moves a little bit slower than the extruder that is about to print.

M2000= parameters for movement during tool change
S= Parking extruder
V= Starting extruder
A= Acceleration

I will test this out as soon as I can

1 Like

Any updates? Can you confirm what the S, V, and A parameters are?

1 Like

S and V are speed values

S for the extruder that is parking
V for the extruder that is starting
A for the acceleration

I played with these values and that confirmed my assumptions. Raising the speed will reduce the switch time which is great on long prints. those seconds add up.

2 Likes

Is there some trick to making this work? I have M2000 S200 V250 A6000 in my toolchange gcode. Prusa Slicer 2.6 alpha 6 generates the following toolchange block:

;LAYER_CHANGE
;Z:10.15
;HEIGHT:0.2
G1 Z10.15 F600
G92 E0
;HEIGHT:0.2
;TYPE:Wipe tower
;WIDTH:0.5
;--------------------
; CP TOOLCHANGE START
; toolchange #1
; material : PLA -> PLA
;--------------------
M220 B
M220 S100
; CP TOOLCHANGE UNLOAD
;WIDTH:0.5
M900 K0
;WIDTH:0.5
G4 S0
G1 E-10 F2400
; Filament-specific end gcode 
;END gcode for filament
M2000 S200 V250 A6000
T1
; Filament gcode

G1 X142.306 Y68.995 F21000
G1 X142.806 Y69.745
G4 S0
G1 Y69.245
; CP TOOLCHANGE WIPE
G1 X156.806 E0.5321 F1584
G1 X156.056 Y69.745 E0.0343
G1 X142.306 E0.5226 F1800
G1 X143.056 Y70.245 E0.0343
G1 X156.056 E0.4941 F2198
G1 Y70.745 E0.0190
G1 X143.056 E0.4941 F4200
G1 Y71.245 E0.0190
G1 X156.806 E0.5226 F4250
G1 X156.056 Y71.745 E0.0343
G1 X142.306 E0.5226 F4300
G1 X143.056 Y72.245 E0.0343
G1 X156.056 E0.4941 F4350
G1 Y72.745 E0.0190
G1 X143.056 E0.4941 F4400
G1 Y73.245 E0.0190
G1 X156.806 E0.5226 F4450
G1 X156.056 Y73.745 E0.0343
G1 X142.306 E0.5226 F4500
M220 R
G1 F21000
G4 S0
G92 E0
; CP TOOLCHANGE END
;------------------
M220 B
M220 S100
; CP TOOLCHANGE UNLOAD
;WIDTH:0.5
M900 K0
;WIDTH:0.5
G4 S0
G1 E-10 F2400
; Filament-specific end gcode 
;END gcode for filament
M2000 S200 V250 A6000
T1
; Filament gcode

G1 X142.306 Y68.995 F21000
G1 X142.806 Y69.745
G4 S0
G1 Y69.245
; CP TOOLCHANGE WIPE

The behaviour I see is T0 finishes its prime tower, T1 comes in, doesnt make it to the prime tower (T0 has not moved! I presume the firmware has some anti-collision) and the print continues with T0 in the same X position as the prime tower, and T0 in the same position (next to the prime tower). The printer is extruding on T1, but the toolhead is not in the correct place.

The 10mm retractions are coming from printer>extruder 1/2>Retraction when tool is disabled>length>10mm.

It does not appear the M2000 command is magically swapping the extruders. Printer firmware 2.5.10

This is incorrect. The M2000 gcode command can be seen in the source code SnapmakerController-IDEX/snapmaker/gcode/contorl/M2000.cpp at ba60aace13038b46cb349f5b7a80076fe8de3ce2 · Snapmaker/SnapmakerController-IDEX · GitHub

The S200 parameter tells the printer to perform the toolchange. V250 is the ‘nominal speed’ of the toolheads, and A6000 is the ‘nominal acceleration’. There is no parameter to indicate which is now the active toolhead, that is something the printer manages itself, as seen on line 347. I’ve not tried it, but the code would suggest the S and V parameters are optional (defaults to S200 A6000), so the only gcode required to perform a ‘live’ toolchange is M2000 S200

2 Likes

The correct toolchange gcode for prusa slicer is

G92 E0
T{next_extruder}
G92 E0
M2000 S200