M600 in non-MMU mode now asks for confirmation before unloading #2142
+89
−56
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
M600 now asks (yes/no) before unloading the filament.
All functionality of the command stays exactly the same - previously the user had to push the button. Now he can still just push the button and activate the default "yes". Then everything works as usual.
If the user instead selects "no", then no filament change is performed, and the print resumes immediately.
If MMU is installed, then nothing changes at all (the user was not prompted before, and is not prompted now).
While the yes/no question is up, the special logic for beeping, and for turning off the heater after a specific timeout, still work.
This gives the user a chance to opt-out of the filament change and be a bit more "dynamic" about this (for example, schedule the change ahead in a long print, and only do it if the old filament spool looks like it's not going to last).
A major secondary use of this change is that together with the filament-change feature of PrusaSlicer (which generates a M600 in user-selected layers) it is a very convenient and safe pause function: if the user does not actually want to change filament, but just to pause the print and move the nozzle head away at that layer for whatever reason (I do this frequently with creative manual support structures that I drop into a print physically; or for dropping in magnets and so on), he can now do this without the enforced filament unload/reload. The other choices (i.e., the "Pause" gcode) are much less powerful, and also would need manual manipulation of the gcode.