How to pause and resume Octoprint to change filament
3D modeling and printing service. Low volume batch production. Friendly and reliable service with the best possible prices.
designer, blog, graphic design, motion design, 3d, 3d printing, 3d modeling, House printing, design work, prototype, model, mock-up, design, technology, architectural 3d printing, interior 3d printing, cement printing, clay printing, plastic printing, automation Latvija, Arturs, Plotnieks, Liepaja dizainers, žurnāls, 3d druka, prototipi, maketi, 3D modelēšana, dizains, arhitektūras 3D druka, interjera 3D druka, betona druka, māla druka, plastmasas druka, tehnoloģijas, automatizācija
post-template-default,single,single-post,postid-27650,single-format-standard,theme-bridge,bridge-core-1.0.5,woocommerce-no-js,ajax_fade,page_not_loaded,,qode-title-hidden,qode_grid_1300,qode-content-sidebar-responsive,columns-4,qode-child-theme-ver-1.0.0,qode-theme-ver-18.2,qode-theme-bridge,disabled_footer_bottom,wpb-js-composer js-comp-ver-6.0.2,vc_responsive,woocommerce-page-builder

How to pause and resume Octoprint to change filament

Clicking Pause in Octoprint will stop 3D printer in the last position. But to change filament successfully we have to move the print head. In case you find your self in a situation as I did – the filament is close to running out, but the first page of Google says to use the Change Filament Octoprint plugin, but it is too late, due to the fact, that I can`t install any plugin while print is in progress, this will help you.


This code is tested on:
– Prusa MK3
– Prusa MK3S+
– Octoprint 1.5.2
– Prusa Slicer 2.3.0

Testing code on other printers – be careful. I don`t take any responsibility if anything goes wrong but in case it works – please leave a comment and I will update the printer list.


  1. Go to Octoprint settings
  2. Select GCODE Scripts
  3. Scroll down to “After print job is paused” and paste this code{% if pause_position.x is not none %}
    ; relative XYZE
    M83; retract filament of 0.8 mm up, move Z slightly upwards and
    G1 Z+5 E-0.8 F4500; absolute XYZE
    G90; move to a safe rest position, adjust as necessary
    G1 X0 Y0
    {% endif %} 

  4. After that select “Before print job is resumed” field and paste code{% if pause_position.x is not none %}
    ; relative extruder
    M83; prime nozzle
    G1 E-0.8 F4500
    G1 E0.8 F4500
    G1 E0.8 F4500; absolute E
    M82; absolute XYZ
    G90; reset E
    G92 E{{ pause_position.e }}

    ; WARNING!!! - use M83 or M82(exruder absolute mode) according what your slicer generates
    M83 ; extruder relative mode

    ; move back to pause position XYZ
    G1 X{{ pause_position.x }} Y{{ pause_position.y }} Z{{ pause_position.z }} F4500

    ; reset to feed rate before pause if available
    {% if pause_position.f is not none %}G1 F{{ pause_position.f }}{% endif %}
    {% endif %}

    And that’s all! I hope you made it before filament did run out.


No Comments

Leave a Reply