Cura – Pause at Hei…
Clear all

Cura – Pause at Height problem

1 Posts
2 Users
Topic starter

Model is simple sign, with raised lettering.  Want one filament color for the base/background, second color for the lettering.


  1. I am on an Ender3 V2, with 4.2.7 board.  ver 1.1.2 of the firmware (from Creality), with BL-Touch, configured, etc. (BL-Touch works fine)
  2. Load the .STL into Cura (4.9.1)
  3. Slice the model, then preview to find the layer.  Layer is in this case, 6
  4. Now go to Cura -> Extensions -> Post Process -> Modify G-Code, then “Add a script”, and add “Pause at Height”

I set everything as follows:

  • Pause at:  Layer Number
  • Pause Layer: 6
  • Method:  Marlin (M0)
  • Disarm timeout: 0
  • Park Print Head X: 190.0mm
  • Park Print Head Y: 190.0mm
  • Retraction: 5.0mm
  • Retraction Speed: 25.0mm
  • Extrude amount: 0.0mm
  • Extrude speed: 3.3333mm/s
  • Redo Layer: <blank>
  • Standby temperature: 205C
  • Display Text: Change Filament
  • G-Code before Pause: <blank>
  • G-Code after Pause: <blank>

And close the dialog with those settings

    4.  Now I reslice with the modified settings, etc. and save the model

    5.  Print the model – works fine, doesn’t seem to pause exactly at layer 6, but it DOES pause, moves the printhead to the X/Y position as set and waits.

    6.  I change the filament, get enough pushed through to clear the nozzle of the old color, and clean up before hitting the button on the controller

    7.  Hit button on controller

    8.  Head moves back into position and firmly plants itself on the glass bed so hard, it won’t move, and when the printer tries to move the either the X axis, or Y axis – flings the clip holders for the glass bed all over.  I immediately shut it off.

Result is the model is ruined, as it plants the heated nozzle straight through the model to the glass, and then makes a further mess by trying to move it.

Now, looking at the G-Code, I see:

  • M0 ; Do the actual pause
  • M109 S205 ; resume temperature
  • G1 F300 Z2.4
  • G1 F9000 X104.881 Y104.235
  • G1 F300 Z1.4 ; move back down to resume height
  • G1 F2700 ; restore extrusion feedrate
  • M82 ; switch back to absolute E values
  • G92 E64.11955

I see the line with ‘G1 G300  Z1.4’  which would move the hot end down to 1.4mm, or the sixth layer when printing at 0.2mm.  HOWEVER, I also use a  BL-Touch, and have a Z-offset of -2.55mm.  So – adding those two together gives me an actual Z of -1.55mm (even the move to a Z of 2.4mm would be “below” the print bed).  Which seems to be what I experience.  SO – is there anyway to get the “Pause at Height” to reflect the z-offset when using a BL-Touch, etc?  

c.murphy360 10/10/2021 11:42 am


Ender 6 here.  


I don’t have a proper solution but figured out a workaround to do what I needed. 


I am printing a piece that has several magnets in it and I need the printer to pause at the last layer before it covers the void I’ve left for them.  


Using the post-processing scripts in Cura I can insert pause at layer using M0 which works, but (almost) immediately resumes.  Which requires me to be watching at the exact moment required to actually pause the machines.  


After doing some research I found the Dwell command in gcode.  

Dwell | Marlin Firmware ( 


This adds a wait at a specific line for a designated number of milliseconds (P) or Seconds (S).  

So I slice my .stl file, add M0 script at the desired layers (112 in below example) and export gcode to SD card. 

I then edit the gcode with notepad and insert a G4 after the M0 line and before M109 (resume temperature) line. 

This is the first time I’ve messed with G-Code so I’m not 100% on formatting but this worked for me:


G4 S3600 ; Dwell for 1 hour

Example Code:

;current layer: 112
M83 ; switch to relative E values for any needed retraction
G1 F300 Z23.6 ; move up a millimeter to get out of the way
G1 F9000 X190 Y190
M104 S0 ; standby temperature
M0 ; Do the actual pause
G4 S3600 ; Dwell for 1 hour
M109 S200 ; resume temperature
G1 F9000 X54.4 Y215.6
G1 F300 Z22.6 ; move back down to resume height
G1 F1500 ; restore extrusion feedrate
M82 ; switch back to absolute E values




This parked my printhead at 190/190 which blocked one of my magnets (so choose park location carefully).  It waited for an hour, reheated hot end and resumed like a champ.  I was lucky enough to wake up this morning with it in the paused position and was easily able to add my magnets and wait for it to start up again to add the last one.  If I really needed to make this happen, I’d have it pause for 6-8 hours to ensure that I had a decent window to catch it.  

I bet if you keep your Standby Temperature hot and park your printhead in the right location you can manually change out filament and manually extrude the rest of the old color before the printer resumes. 

Next step is figuring out how to resume on command which from all the forum posts seems to be really hard.  

Topic Tags