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

[{'answer_id': 7210, 'author': '0scar', 'author_id': 5740, 'author_profile': 'https://3dprinting.stackexchange.com/users/5740', 'pm_score': 2, 'selected': False, 'text': '<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>\n\n<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>\n\n<blockquote>\n  <p>On <strong><em>Marlin</em></strong>, Repetier and RepRapFirmware, M84 can also be used to\n  configure or disable the idle timeout. For example, <code>M84 S10</code> will\n  idle the stepper motors after 10 seconds of inactivity. <code>M84 S0</code> will\n  disable idle timeout; steppers will remain powered up regardless of\n  activity.</p>\n</blockquote>\n\n<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>\n\n<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>\n\n<blockquote>\n  <p>The <code>M600</code> command initiates the filament change procedure. The basic\n  procedure will move the print head away from the print, eject the\n  filament, wait for new filament to be inserted and the user to\n  confirm, load and prime the filament, and continue with the print.\n  <code>M600</code> may be initiated automatically if a filament runout sensor is\n  installed.</p>\n</blockquote>\n\n<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>\n'}, {'answer_id': 7211, 'author': 'towe', 'author_id': 13171, 'author_profile': 'https://3dprinting.stackexchange.com/users/13171', 'pm_score': 4, 'selected': True, 'text': '<p>Is <code>ADVANCED_PAUSE_FEATURE</code> enabled in your printers <code>configuration_adv.h</code> file?\nThere 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>\n\n<p>Alternatively, in the same file,</p>\n\n<pre><code>#define DEFAULT_STEPPER_DEACTIVE_TIME 120\n#define DISABLE_INACTIVE_X true\n#define DISABLE_INACTIVE_Y true\n#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.\n#define DISABLE_INACTIVE_E true\n</code></pre>\n\n<p>can be found. You may want to increase the <code>DEFAULT_STEPPER_DEACTIVE_TIME</code>, or set </p>\n\n<pre><code>#define DISABLE_INACTIVE_X true\n#define DISABLE_INACTIVE_Y true\n#define DISABLE_INACTIVE_Z true  // set to false if the nozzle will fall down on your printed part when print has finished.\n</code></pre>\n\n<p>to <code>false</code> to keep X, Y and Z engaged while allowing movement of the extruder stepper only.</p>\n'}]
['https://3dprinting.stackexchange.com/questions/7207', 'https://3dprinting.stackexchange.com', 'https://3dprinting.stackexchange.com/users/4454/']