<p>I have not tried this, but you could use the <code>M84 S0</code> command, this prevents the motors to go into an idle state.</p>

<p>From the <a href="https://reprap.org/wiki/G-code#M84:_Stop_idle_hold" rel="nofollow noreferrer"><code>M84</code> G-code wiki</a> (firmware specific!):</p>

<blockquote>
  <p>On <strong><em>Marlin</em></strong>, Repetier and RepRapFirmware, M84 can also be used to
  configure or disable the idle timeout. For example, <code>M84 S10</code> will
  idle the stepper motors after 10 seconds of inactivity. <code>M84 S0</code> will
  disable idle timeout; steppers will remain powered up regardless of
  activity.</p>
</blockquote>

<p>What rests is to implement this command into your G-code file to be executed during pause. Depending on the pause method you could introduce this command. I have not tried this, but you could put the command in your start G-code and test if the motors keep powered!</p>

<p>Furthermore, <em>a specific filament change command is available for specific firmware applications</em>. This code, <a href="https://reprap.org/wiki/G-code#M600:_Filament_change_pause" rel="nofollow noreferrer"><code>M600</code></a>, can be used to change filament. From the <a href="http://marlinfw.org/docs/gcode/M600.html" rel="nofollow noreferrer">Marlin documentation</a> you can read (since you are using Marlin Firmware, you could use this G-code command):</p>

<blockquote>
  <p>The <code>M600</code> command initiates the filament change procedure. The basic
  procedure will move the print head away from the print, eject the
  filament, wait for new filament to be inserted and the user to
  confirm, load and prime the filament, and continue with the print.
  <code>M600</code> may be initiated automatically if a filament runout sensor is
  installed.</p>
</blockquote>

<p>Please do note that in Marlin Firmware the <code>M600</code> command is only available when the comments before <code>//#define ADVANCED_PAUSE_FEATURE</code> in the advanced configuration options file <a href="https://github.com/MarlinFirmware/Marlin/blob/1.1.x/Marlin/Configuration_adv.h" rel="nofollow noreferrer">Configuration_adv.h</a> are removed, hereby activating the command.</p>

CC BY-SA 4.0
2018-10-19T08:05:01.520Z
2018-10-19T19:55:05.510Z
2018-10-19T19:55:05.510Z
0scar
<p>Is <code>ADVANCED_PAUSE_FEATURE</code> enabled in your printers <code>configuration_adv.h</code> file?
There is a <code>PAUSE_PARK_NO_STEPPER_TIMEOUT</code> option included in there, which prevents the steppers from timing out during a pause, and may be more robust than a G-Code command if you plan to manually pause and resume the print instead of setting it up in the slicer.</p>

<p>Alternatively, in the same file,</p>

<pre><code>#define DEFAULT_STEPPER_DEACTIVE_TIME 120
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.
#define DISABLE_INACTIVE_E true
</code></pre>

<p>can be found. You may want to increase the <code>DEFAULT_STEPPER_DEACTIVE_TIME</code>, or set </p>

<pre><code>#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.
</code></pre>

<p>to <code>false</code> to keep X, Y and Z engaged while allowing movement of the extruder stepper only.</p>

CC BY-SA 4.0
2018-10-19T20:31:37.027Z
thanks, I will use this line #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change.
Fernando Baltazar
CC BY-SA 4.0
2018-10-19T08:22:36.290Z
2018-10-25T13:07:30.307Z
2018-10-25T13:07:30.307Z
towe
<p>How can I achieve keeping the motors active during pause to avoid moving their position during filament changes?  I have changed the filament during some prints to change the color or to change the a newer spool, but sometimes the X axis is moved during the change. I'm now using some cloth clips to prevent moving during this change. </p>

<p>To pause the 3D printer I'm using the LCD menu ->pause, then I go to Move axis X, then I move close to 0. This change is manually and random since I don't know when the old filament reel is going to finish. The printer use Marlin as firmware with Ramps 1.4</p>

CC BY-SA 4.0
2018-10-19T08:04:49.690Z
Please describe how you activate the pause (e.g. menu button, or from g-code). Motors should keep their power during pauses. Also post the firmware you are using.
0scar
CC BY-SA 4.0
2018-10-19T13:43:59.050Z
In addition, please provide your printer make&model, and firmware if known.
Carl Witthoft
CC BY-SA 4.0
2018-10-23T13:20:13.493Z
Please see https://3dprinting.meta.stackexchange.com/questions/363/wouldnt-the-filament-tag-alone-suffice-for-this-question
Greenonline
<change-filament>
Hold torque during pause to change filament
Fernando Baltazar
# Hold torque during pause to change filament

(Asked by: username_0 on 2018-10-18)

How can I achieve keeping the motors active during pause to avoid moving their position during filament changes? I have changed the filament during some prints to change the color or to change the a newer spool, but sometimes the X axis is moved during the change. I'm now using some cloth clips to prevent moving during this change.

To pause the 3D printer I'm using the LCD menu ->pause, then I go to Move axis X, then I move close to 0. This change is manually and random since I don't know when the old filament reel is going to finish. The printer use Marlin as firmware with Ramps 1.4

**Tags:** change-filament
> **Comments:**
> **username_1**: Please describe how you activate the pause (e.g. menu button, or from g-code). Motors should keep their power during pauses. Also post the firmware you are using.  
> **username_2**: In addition, please provide your printer make&model, and firmware if known.  
> **username_3**: Please see https://3dprinting.meta.stackexchange.com/questions/363/wouldnt-the-filament-tag-alone-suffice-for-this-question  

---

## 2 answers

### Answer by username_4 on 2018-10-19. Score: 6 | Accepted answer

Is ADVANCED_PAUSE_FEATURE enabled in your printers configuration_adv.h file?
There is a PAUSE_PARK_NO_STEPPER_TIMEOUT option included in there, which prevents the steppers from timing out during a pause, and may be more robust than a G-Code command if you plan to manually pause and resume the print instead of setting it up in the slicer.
Alternatively, in the same file,
#define DEFAULT_STEPPER_DEACTIVE_TIME 120
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.
#define DISABLE_INACTIVE_E true

can be found. You may want to increase the DEFAULT_STEPPER_DEACTIVE_TIME, or set 
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.

to false to keep X, Y and Z engaged while allowing movement of the extruder stepper only.

> **Comments:**
> **username_0**: thanks, I will use this line #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change.  

---

### Answer by username_1 on 2018-10-19. Score: 3

I have not tried this, but you could use the `M84 S0` command, this prevents the motors to go into an idle state.

From the [`M84` G-code wiki](https://reprap.org/wiki/G-code#M84:_Stop_idle_hold) (firmware specific!):

> On ***Marlin***, Repetier and RepRapFirmware, M84 can also be used to
> configure or disable the idle timeout. For example, `M84 S10` will
> idle the stepper motors after 10 seconds of inactivity. `M84 S0` will
> disable idle timeout; steppers will remain powered up regardless of
> activity.

What rests is to implement this command into your G-code file to be executed during pause. Depending on the pause method you could introduce this command. I have not tried this, but you could put the command in your start G-code and test if the motors keep powered!

Furthermore, *a specific filament change command is available for specific firmware applications*. This code, [`M600`](https://reprap.org/wiki/G-code#M600:_Filament_change_pause), can be used to change filament. From the [Marlin documentation](http://marlinfw.org/docs/gcode/M600.html) you can read (since you are using Marlin Firmware, you could use this G-code command):

> The `M600` command initiates the filament change procedure. The basic
> procedure will move the print head away from the print, eject the
> filament, wait for new filament to be inserted and the user to
> confirm, load and prime the filament, and continue with the print.
> `M600` may be initiated automatically if a filament runout sensor is
> installed.

Please do note that in Marlin Firmware the `M600` command is only available when the comments before `//#define ADVANCED_PAUSE_FEATURE` in the advanced configuration options file [Configuration\_adv.h](https://github.com/MarlinFirmware/Marlin/blob/1.1.x/Marlin/Configuration_adv.h) are removed, hereby activating the command.


---

