M600 manually injected pause for color change failures

The filament runout doesn’t use serial… that comes over CAN.

Basically this bugfix PR needs to be modified for the GD using not USB and merged into HAL

I just checked and saw that the bug report was closed back in November. I saw there is a new version of the firmware, but it doesn’t mention fixing this issue, and I didn’t see anything in the bug report notes.

Has this been fixed then?

No it hasn’t, i tried this same thing and had the same issue, the only i got it to work was to print to the m600 then change the filament then cancel the print modify the gcode file with notepad++ as if I was doing a restore a failed print and upload the new gcode file with everything before the m600 deleted then make sure that before the first print line i move the nozzel to the correct z with g1 to the correct z height.

You can cut the filament and feed the new color without even triggering the runoun sensor. It’s not layer-precise but it works…
/Edit Sry, I meant to reply to the OP.

It looks like this feature has made it into the next release

1 Like

Sweet I will keep my eye out for that. Thanks

Yep, M600 will be enabled in next version of firmware.



Neat-so I’m guessing you’d either have to manually insert this, or use the “pause at layer” cura plugin?

This feature is working now. SuperSlicer and PrusaSlicer insert the M600, and the machine pretends to run out of filament to let you load some other filament.

It’s a shame the touch screen does not understand that its just seen an M600 so it appears like a filament runout event, but, at least it works. Its up to the slicer to adjust nozzle temp, so initially its best to use a material that you would print at the same temp. SuperSlicer lets you insert custom GCode, so you could modify the nozzle temp straight after the M600. Or, of course, you could adjust the nozzle temp on the touch screen.

I would advise to watch print speeds though, the machine stops quite abruptly which may throw the Y modules of alignment

Would this be related to why I’ve never had a print where resuming (after manual pause on the touchscreen) actually worked?
It sort of works, but it seems that a number of print commands are skipped, and the resumed print does not stick to the part from before the pause.

Hmm, don’t know about that, the times I have used pause / resume it has worked

I was wrong, I thought the touchscreen maintained the previous filament temp after a change. It does not, it seems to maintain the temp set when loading the new filament, which by default is 200.

This is annoying. Means either custom GCode to set the nozzle temp after the M600, or an extra interaction with the touchscreen to set the correct temperature again.

Thank you for your reminder.

I tried to use M600 to change the filament and then resume. The current temperature in Snapmaker Luban console is still 205℃ while the one on the touchscreen is 200℃.

Snapmaker Luban console


I have reported this issue to our software developer. This issue is likely to relate to the touchscreen.

Best regards

1 Like

Users can refer to this article to use M600 in your gcode file.

1 Like

Next step could be to include the filament change into Luban :wink:


Thank you for your feedback.

Add this feature in Snapmaker Luban is the next step.


Prusa does this with a right click on the layer slider and add color.

1 Like

Has there been any changes in the firmware concerning this specific command?
I’ve not used M600 for a while but yesterday I did a project where I needed a pause.
The M600 command seems to call a “filament runout failure” (where you can change the filament and contnue printing) since one of the last firmware updates. At least I can’t remember this behaviour in the past…

PS: Be aware when you do a filament change this way since the temperature for the extruder is pre-set to the standard 200°C - (which is too cold for my PET-G…) - and not to the temperature you were just printing with.

PPS: Is there a way to handle semi-automatic filament changes when you start the print job in Luban (Wifi), because this command is just working when you strat the code on the machine?

If you are using octoprint you can use my code on GitHub. It is work in progress (bugs can appear) but I have used it and woks perfect on an A250.

The installer is not yet ready. What I did was to install the one from Ceballos (link there, it is an official octoprint pluging) and replaced his folder octoprint_RewriteM600 with mine. Maybe it is a bit convoluted installation, but I am not yet familiar with preparing octoprint plugins, so this method was safe and straighforward.

1 Like

Finally, in snapmaker 2.0, it is possible to change color without using tricks.

Use the latest snapmaker firmware and prusa slicer. If you set color change in prusa, M600 G-code is automatically inserted. If you operate Snapmaker using a USB stick, you can use the prusa slicer color change function perfectly.

Previously, I used to use cura’s “pause at height” extension only to change color in snapmaker 2.0, but I added a dummy object to handle filament blobs, etc. Now it’s so easy that you don’t even need it. Thanks to the new firmware to support the M600.

Operation in octoprinter cannot be guaranteed. This is because after several failures, I tried to work perfectly with the USB stick and the default snapmaker controller.