Creality's latest Sonic Pad update, v1.0.6.46.25, includes an internal M600 macro for a filament change, which will conflict with any custom M600 macro the user has included in their config. As such, the user is forced to remove their own M600 macro, if they have one, due to the conflict. Because the Creality macro is not accessible to the user, it cannot be tweaked. And, to make matters worse, it has a bug related to max extrusion distance, so you cannot successfully print a model with a filament change with this update installed.
The below workaround shows you how to go back to using your own M600 macro by renaming it, and how to create a modified Cura Filament Change post processing script to insert this new macro instead of M600.
In your Sonic Pad printer.cfg, add your own M600 macro back in, but name it CUSTOM_FILAMENT_CHANGE:
gcode_macro CUSTOM_FILAMENT_CHANGE]
At this point, you can take any previously sliced file with one or more M600 calls in it and just search-and-replace M600 with CUSTOM_FILAMENT_CHANGE and everything will work as before the update.
If you want to make it so that Cura will post-processing will use the new macro going forward, continue on.
Note: I'm on Windows 11 and Cura 5.1.1. Adjust file locations to suit your platform and version, should work just the same.
-
Navigate to C:\Program Files\Ultimaker Cura 5.1.1\share\cura\plugins\PostProcessingPlugin\scripts.
-
Create a copy of the FilamentChange.py file somewhere you can edit it and name it CustomFilamentChange.py.
-
In a text editor, make these changes to CustomFilamentChange.py:
Line 12:
class FilamentChange(Script):
Change it to:
class CustomFilamentChange(Script):
Line 21:
"name": "Filament Change",
Change it to:
"name": "Custom Filament Change",
Line 22:
"name": "FilamentChange",
Change it to:
"name": "CustomFilamentChange",
Line 145:
color_change = "M600"
Change it to
color_change = "CUSTOM_FILAMENT_CHANGE"
Line 166:
color_change = color_change + " ; Generated by FilamentChange plugin\n"
Change it to
color_change = color_change + " ; Generated by CustomFilamentChange plugin\n"
Note: I'm pretty sure that only the line 145 change is mandatory for this change, but the others serve to clearly delineate this script from the original.
-
Move CustomFilamentChange.py back into C:\Program Files\Ultimaker Cura 5.1.1\share\cura\plugins\PostProcessingPlugin\scripts.
-
Quit and restart Cura
In the Cura Post Processing Plugin, when adding a script there will now be a Custom Filament Change option. Use that instead of the regular Filament Change one.