Definitive snippets for Octoprint to pause, cancel, and bed level without filament oozing?
I have three issues that are driving me crazy with the Mini and Octoprint:
- GCode that pauses properly (by default it just stop over the spot it was printing, melting a hole in the part)
- GCode that cancels properly (see above)
- GCode to do bed leveling without heating the nozzle, so that it starts faster and it doesn't ooze filament while leveling
- A way to load/unload/change filament directly from Octoprint, without disconnecting from serial and using the Mini's menus, then reconnecting
I've tried many snippets I found on this forum, reddit, internet, etc but they didn't work properly.
Where can I find working snippets for these?
RE:
Hey, I had similar problems with OctoPrint and my MK3S. So, if you tried many scripts before and documentation says: "Full G-code documentation for Original Prusa MINI is yet to be published, but except for some differences, the best source of information is the official Marlin2 documentation" you might as well try mine and just hope you do not find an exception. I add some explanation, which might help you if the printer does not behave as expected.
Pause print: if you press the pause button in OctoPrint, it does exactly that, it just stops sending gcode (hence no extruder moving away, no stop heating, just no further gcode) and then it sends the "after pause" snippet from the config. You can put your favorite maneuver here or just tell the printer that this is an intended pause and let the firmware do the rest. Prusa hast an specific gcode for that: M601, see https://help.prusa3d.com/article/prusa-specific-g-codes_112173#m-commands . So I recommend to just put "M601" in the "after pause" snippet, nothing else, let the firmware handle everything.
Continue Print: Same as above, just put "M602" into the "before resume" snippet to undo what 601 did before.
Stop print: There is a Prusa g-Code for that as well: M603, try that. For some reason I don't remember (probably trouble with the MMU2) I have a manual script for that:
M702 C ; unload filament with MMU2 G4 ; wait M104 S0 ; turn off temperature M140 S0 ; turn off heatbed M107 ; turn off fan ; Lift print head a bit G91 ;relative positioning G0 Z10 ; Move print head up M400 ; wait G90 ; absolute positioning G0 X0 Y200 ;move to side M84 ; disable motors
That should work with your Mini too, I guess.
Mesh Leveling: G29 homes the printer and starts the leveling. No need to heat anything, but a heated bed is recommended for leveling. G80 starts the leveling (only if printer has been homed before, "G29 W" homes without leveling)
Loading and Unloading: Try sending: "M600" it should initiate the firmware based filament change procedure as the menu would.
If at first you don't succeed, skydiving is not for you.
Find out why this is pinned in the general section!
RE: Definitive snippets for Octoprint to pause, cancel, and bed level without filament oozing?
Thanks for the reply. Regarding `M601`, there is a loooong standing open bug ( https://github.com/prusa3d/Prusa-Firmware-Buddy/issues/283) since March 2020 about M601 just being ignored by the printer and not doing anything at all. So unfortunately, that's not a solution on the Mini.
RE: Definitive snippets for Octoprint to pause, cancel, and bed level without filament oozing?
To add, M600 doesn't behave like the Mini's menu: it parks the hotend in the bottom left corner of the bed, so the filament partly spills over the bed. And more annoyingly, it seems to be doing the filament change routine twice: so filament is ejected, inserted and then ejected inserted again... How I love the Mini 🙁