6
$\begingroup$

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

$\endgroup$
3
  • 1
    $\begingroup$ 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. $\endgroup$
    – 0scar
    Commented Oct 19, 2018 at 8:04
  • $\begingroup$ In addition, please provide your printer make&model, and firmware if known. $\endgroup$ Commented Oct 19, 2018 at 13:43
  • $\begingroup$ Please see 3dprinting.meta.stackexchange.com/questions/363/… $\endgroup$
    – Greenonline
    Commented Oct 23, 2018 at 13:20

2 Answers 2

6
$\begingroup$

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.

$\endgroup$
1
  • $\begingroup$ thanks, I will use this line #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. $\endgroup$ Commented Oct 19, 2018 at 20:31
3
$\begingroup$

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 (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, can be used to change filament. From the Marlin documentation 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 are removed, hereby activating the command.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .