Pausing prints in Octoprint
This information is up to date as of 2026/01/28
State of the Printers
Asmbly has three Prusa MK3S+ printers, Apollo, Hermes, and Sun Wukong. Each printer has a Raspberry Pi connected to it that runs Octoprint. Octoprint talks to the printer over a USB connection and treats the printer as a pretty "dumb" peripheral and spoon feeds it gcode commands. Our printers have Revo hotends installed, which solve a lot of problems with the stock heaters and nozzles, but there's currently a bug in the Prusa firmware that stops it working properly with the Revos, which is why we have that annoying upgrade prompt every time we try to print.
Challenge
We would like to be able to pause prints programmatically, so that we can do things like insert magnets or windows, or measure tolerances. PrusaSlicer has built in functionality for this.
This might be fixed in more recent firmware, but we can't upgrade yet.
TL;DR
In PrusaSlicer, go to the Printers tab. Select Custom G-code. Scroll down to "Pause Print G-code" and paste the following:
G1 X0. Y210. ; get the hotend out of the way
M104 S0 ; turn off extruder heater, so the nozzle doesn't dribble
M300 ; make a horrible noise (optional)
M0 ; pause
M104 S{temperature[0]} ; set extruder temp
M109 S{temperature[0]} ; wait for extruder to reach temp
This should work whether the job is started from Octoprint or from the SD card.
Gory Details
The default pause gcode is ```M601```