<p>You are out of luck:</p>

<p>Print gcode is written in relative coordinates. If you move the printhead manually, the printer does not know this, and will just follow its relative path from the new position - which is what commonly is called layer-shifting.</p>

<p>To try to mitigate this, there are ways, but they are a little tricky:</p>

<ol>
<li>If your printer has a <em>change filament</em> option, then choose that - this saves the absolute position of the printhead before moving it to X0Y0, then usually extracts the filament and waits for the new filament to be inserted and the printer waits till given a resume-OK. Then it will move to the saves absolute position, and resume the code from the point it paused.</li>
<li>If your printer has a <em>pause</em> option that moves the printhead to X0Y0, this can be used, using a manual extraction. Resuming the print will be easy.</li>
<li>Some slicers support to call "Change filament at layer X", which will call a move to X0Y0 and pause, allowing manual change even if the normal pause behavior is not to move to X0Y0.</li>
</ol>

<p>As you see: NO manual commands are given here! You can not move the printhead up/down/sideways without having a good chance of inducing a layer shift.</p>

<p>The Pause behavior can be adjusted in the firmware.</p>

CC BY-SA 4.0
2018-12-14T19:58:52.257Z
interesting; I'll have to play with it a little more.  When I use the printer's controls to move to X0Y0 and then resume it's getting very close to the previous location--which had me thinking I was bumping something.  I'll try just raising the Z, doing the swap, then returning the Z.
STW
CC BY-SA 4.0
2018-12-14T23:21:22.200Z
@STW Why change Z, I don't see that as a necessary step for filament changing?
0scar
CC BY-SA 4.0
2018-12-14T23:25:05.743Z
@STW do NOT change Z. NEVER!
Trish
CC BY-SA 4.0
2018-12-15T17:39:38.370Z
@Oscar when the printer pauses the nozzle is still right against the print.  Without changing Z I can't load the new filament.
STW
CC BY-SA 4.0
2018-12-15T17:40:04.447Z
@Trish why?  Can you provide anything objective
STW
CC BY-SA 4.0
2018-12-15T18:39:28.520Z
@STW moving the printhead up and down manually is impossible to do exactly the same for a tiny turn results in a somewhat large difference.
Trish
CC BY-SA 4.0
2018-12-14T17:57:46.697Z
2018-12-14T18:32:49.480Z
2018-12-14T18:32:49.480Z
Trish
<p>You may have moved the nozzle in the X or Y direction a bit. Instead of resuming right away (that is, after step 5), send it to the X/Y home.</p>

<p>Additionally, if you have a removable build plate like in Prusas, you can remove the print, send the model to the X/Y/Z home, raise the nozzle very high, then replace the print</p>

CC BY-SA 4.0
2018-12-14T17:50:27.507Z
that does not work for most printers, as Gcode is usually using *relative* coordinates not *absolute* coordinates.
Trish
CC BY-SA 4.0
2018-12-14T17:15:23.663Z
2018-12-14T17:15:23.663Z
Mohammad Athar
<p>I'm attemping my first print where I pause the print, change the filament, and resume to achieve a two-color print.  My first attempt failed when the printer resumed printing over a centimeter away from where it should have on the X axis.  My second attempt was much better, but still resumed about 1.5mm off-target.</p>

<p>Here's specifically what I did:</p>

<ol>
<li><p>Loaded the STL in Cura, the design has a 1mm "base" with an additional 1mm design on top of the base.</p></li>
<li><p>I used Cura's "Pause at Height" feature to specify the printer should pause after completing the first 1mm.</p></li>
<li><p>I sent the print to Octoprint, via the Cura plugin.</p></li>
<li><p>The pause began and went as-expected for the first 1mm.  It paused after finishing the layer, as expected.</p></li>
<li><p>To switch filament I used the controls to raise the nozzle by 1cm, then moved it to home (X/Y, away from the print).  I swapped filaments, hand-feeding the 2nd color until the old color was no longer coming out the nozzle, then gently cleaned up the nozzle.</p></li>
<li><p>I lowered the nozzle back to the height it paused at (down 1cm), then resumed the print.  The printer moved the X/Y back to the print and resumed.</p></li>
</ol>

<p>I'm guessing either I shouldn't move the printer head away from the print when changing filament, or perhaps need to re-home after the new filament is in.</p>

<p>What should I do to resume a print precisely where it paused?  Is there a better approach?</p>

<filament><ultimaker-cura><multi-material><change-filament>
My first attempt at pausing a print and changing filaments resumed from the wrong position -- how do I troubleshoot?
STW
# My first attempt at pausing a print and changing filaments resumed from the wrong position -- how do I troubleshoot?

(Asked by: username_0 on 2018-12-14)

I'm attemping my first print where I pause the print, change the filament, and resume to achieve a two-color print. My first attempt failed when the printer resumed printing over a centimeter away from where it should have on the X axis. My second attempt was much better, but still resumed about 1.5mm off-target.

Here's specifically what I did:

1. Loaded the STL in Cura, the design has a 1mm "base" with an additional 1mm design on top of the base.
2. I used Cura's "Pause at Height" feature to specify the printer should pause after completing the first 1mm.
3. I sent the print to Octoprint, via the Cura plugin.
4. The pause began and went as-expected for the first 1mm. It paused after finishing the layer, as expected.
5. To switch filament I used the controls to raise the nozzle by 1cm, then moved it to home (X/Y, away from the print). I swapped filaments, hand-feeding the 2nd color until the old color was no longer coming out the nozzle, then gently cleaned up the nozzle.
6. I lowered the nozzle back to the height it paused at (down 1cm), then resumed the print. The printer moved the X/Y back to the print and resumed.

I'm guessing either I shouldn't move the printer head away from the print when changing filament, or perhaps need to re-home after the new filament is in.

What should I do to resume a print precisely where it paused? Is there a better approach?

**Tags:** filament, ultimaker-cura, multi-material, change-filament

---

## 2 answers

### Answer by username_1 on 2018-12-14. Score: 2

You are out of luck:

Print gcode is written in relative coordinates. If you move the printhead manually, the printer does not know this, and will just follow its relative path from the new position - which is what commonly is called layer-shifting.

To try to mitigate this, there are ways, but they are a little tricky:

1. If your printer has a *change filament* option, then choose that - this saves the absolute position of the printhead before moving it to X0Y0, then usually extracts the filament and waits for the new filament to be inserted and the printer waits till given a resume-OK. Then it will move to the saves absolute position, and resume the code from the point it paused.
2. If your printer has a *pause* option that moves the printhead to X0Y0, this can be used, using a manual extraction. Resuming the print will be easy.
3. Some slicers support to call "Change filament at layer X", which will call a move to X0Y0 and pause, allowing manual change even if the normal pause behavior is not to move to X0Y0.

As you see: NO manual commands are given here! You can not move the printhead up/down/sideways without having a good chance of inducing a layer shift.

The Pause behavior can be adjusted in the firmware.

> **Comments:**
> **username_0**: interesting; I'll have to play with it a little more.  When I use the printer's controls to move to X0Y0 and then resume it's getting very close to the previous location--which had me thinking I was bumping something.  I'll try just raising the Z, doing the swap, then returning the Z.  
> **username_2**: @STW Why change Z, I don't see that as a necessary step for filament changing?  
> **username_1**: @STW do NOT change Z. NEVER!  
> **username_0**: @Oscar when the printer pauses the nozzle is still right against the print.  Without changing Z I can't load the new filament.  
> **username_0**: @Trish why?  Can you provide anything objective  
> **username_1**: @STW moving the printhead up and down manually is impossible to do exactly the same for a tiny turn results in a somewhat large difference.  

---

### Answer by username_3 on 2018-12-14. Score: 0

You may have moved the nozzle in the X or Y direction a bit. Instead of resuming right away (that is, after step 5), send it to the X/Y home.

Additionally, if you have a removable build plate like in Prusas, you can remove the print, send the model to the X/Y/Z home, raise the nozzle very high, then replace the print

> **Comments:**
> **username_1**: that does not work for most printers, as Gcode is usually using *relative* coordinates not *absolute* coordinates.  

---

