Pausing prints in Octoprint

From Asmbly Wiki
Revision as of 02:49, 29 January 2026 by Aneel (talk | contribs)

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.

🛑 PrusaSlicer's default pause does not work correctly with Octoprint on our MK3S+ printers!!!


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```