Prusa Printers Octoprint Pausing
I’m writing this up after wasting over eight hours wrestling with an issue today.
My problem was straightforward. I had created an object that had a void in it. The idea was to pause the print at a specific layer, add a magnet into the created void and then allow the print to continue.
A simplified version is to think about a cube with a smaller cube removed from the centre. The printer prints up to the top level of the central cube and pauses while a magnet is placed in the centre. Once the magnet is in place it continues and completes the large cube.
Prusa slicer allows you to pause the print at a certain level so I thought it would be trivial.
3D printers perform an operation called ‘Bridging’ when you need to print between two items. (think of creating a bridge between two columns). In this case, once the magnet is in place the printer would need to bridge the gap at the top of the void. The distance a printer can bridge depends on the print material in use and how well a printer is tuned. For this model, it was a gap of around 6mm and any “sag” would drop onto the snugly fitted magnet to provide a base for the next layer so I thought it would be fine.
To cut a very long story, it didn’t work. Whatever I changed around the sizes of the objects, infill layers etc. nothing worked - I would never get the layer above the magnet printed correctly. I spent hours tweaking the model, changing infill patterns, and studying tool paths, all to no avail. Sometimes I would get part of the layer complete, but never the whole thing.
At the point of giving up for the day, I spotted the issue. The moment the printer paused, the nozzle temperature starts to drop and it never returns to a temperature that will melt the filament.
In GCODE a pause command issues a M601 code, and on resume, it should issue an M602.
My understanding is that M602 is a “restore temperature” command i.e. pause until the hotend is back up to temperature and then continue in the script.
This pause/resume functionality isn’t a general issue for Prusa printers, but it turns out it’s an issue if you use a Prusa printer/slicer alongside the Octoprint management software.
The trick is to insert an M602 in the Octoprint Settings/GCode/Resume Print setting.
Those 4 characters made everything work on the first try.
I’m documenting this in the hope it saves someone else from the pain I’ve had today.