🔧 Clarify axis disable / timeout (#25571)
This commit is contained in:
parent
39652d93ab
commit
61f22f34d3
|
@ -1710,8 +1710,8 @@
|
||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
//#define DISABLE_E // Disable the extruder when not stepping
|
//#define DISABLE_E // Disable the extruder when not stepping
|
||||||
#define DISABLE_INACTIVE_EXTRUDER // Keep only the active extruder enabled
|
#define DISABLE_OTHER_EXTRUDERS // Keep only the active extruder enabled
|
||||||
|
|
||||||
// @section motion
|
// @section motion
|
||||||
|
|
||||||
|
|
|
@ -1146,19 +1146,20 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Idle Stepper Shutdown
|
* Idle Stepper Shutdown
|
||||||
* Enable DISABLE_INACTIVE_* to shut down axis steppers after an idle period.
|
* Enable DISABLE_IDLE_* to shut down axis steppers after an idle period.
|
||||||
* The Deactive Time can be overridden with M18 and M84. Set to 0 for No Timeout.
|
* The default timeout duration can be overridden with M18 and M84. Set to 0 for No Timeout.
|
||||||
*/
|
*/
|
||||||
#define DEFAULT_STEPPER_DEACTIVE_TIME 120
|
#define DEFAULT_STEPPER_TIMEOUT_SEC 120
|
||||||
#define DISABLE_INACTIVE_X
|
#define DISABLE_IDLE_X
|
||||||
#define DISABLE_INACTIVE_Y
|
#define DISABLE_IDLE_Y
|
||||||
#define DISABLE_INACTIVE_Z // Disable if the nozzle could fall onto your printed part!
|
#define DISABLE_IDLE_Z // Disable if the nozzle could fall onto your printed part!
|
||||||
//#define DISABLE_INACTIVE_I
|
//#define DISABLE_IDLE_I
|
||||||
//#define DISABLE_INACTIVE_J
|
//#define DISABLE_IDLE_J
|
||||||
//#define DISABLE_INACTIVE_K
|
//#define DISABLE_IDLE_K
|
||||||
//#define DISABLE_INACTIVE_U
|
//#define DISABLE_IDLE_U
|
||||||
//#define DISABLE_INACTIVE_V
|
//#define DISABLE_IDLE_V
|
||||||
//#define DISABLE_INACTIVE_W
|
//#define DISABLE_IDLE_W
|
||||||
|
#define DISABLE_IDLE_E // Shut down all idle extruders
|
||||||
|
|
||||||
// Default Minimum Feedrates for printing and travel moves
|
// Default Minimum Feedrates for printing and travel moves
|
||||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // (mm/s. °/s for rotational-only moves) Minimum feedrate. Set with M205 S.
|
#define DEFAULT_MINIMUMFEEDRATE 0.0 // (mm/s. °/s for rotational-only moves) Minimum feedrate. Set with M205 S.
|
||||||
|
|
|
@ -127,7 +127,7 @@ busy_while_heating = on
|
||||||
default_ejerk = 5.0
|
default_ejerk = 5.0
|
||||||
default_keepalive_interval = 2
|
default_keepalive_interval = 2
|
||||||
default_leveling_fade_height = 0.0
|
default_leveling_fade_height = 0.0
|
||||||
disable_inactive_extruder = on
|
disable_other_extruders = on
|
||||||
display_charset_hd44780 = JAPANESE
|
display_charset_hd44780 = JAPANESE
|
||||||
eeprom_boot_silent = on
|
eeprom_boot_silent = on
|
||||||
eeprom_chitchat = on
|
eeprom_chitchat = on
|
||||||
|
@ -176,12 +176,12 @@ auto_report_temperatures = on
|
||||||
autotemp = on
|
autotemp = on
|
||||||
autotemp_oldweight = 0.98
|
autotemp_oldweight = 0.98
|
||||||
bed_check_interval = 5000
|
bed_check_interval = 5000
|
||||||
default_stepper_deactive_time = 120
|
default_stepper_timeout_sec = 120
|
||||||
default_volumetric_extruder_limit = 0.00
|
default_volumetric_extruder_limit = 0.00
|
||||||
disable_inactive_extruder = true
|
disable_idle_x = on
|
||||||
disable_inactive_x = true
|
disable_idle_y = on
|
||||||
disable_inactive_y = true
|
disable_idle_z = on
|
||||||
disable_inactive_z = true
|
disable_idle_e = on
|
||||||
e0_auto_fan_pin = -1
|
e0_auto_fan_pin = -1
|
||||||
encoder_100x_steps_per_sec = 80
|
encoder_100x_steps_per_sec = 80
|
||||||
encoder_10x_steps_per_sec = 30
|
encoder_10x_steps_per_sec = 30
|
||||||
|
|
|
@ -429,7 +429,7 @@ inline void manage_inactivity(const bool no_stepper_sleep=false) {
|
||||||
if (has_blocks) gcode.reset_stepper_timeout(ms); // Reset timeout for M18/M84, M85 max 'kill', and laser.
|
if (has_blocks) gcode.reset_stepper_timeout(ms); // Reset timeout for M18/M84, M85 max 'kill', and laser.
|
||||||
|
|
||||||
// M18 / M84 : Handle steppers inactive time timeout
|
// M18 / M84 : Handle steppers inactive time timeout
|
||||||
#if HAS_DISABLE_INACTIVE_AXIS
|
#if HAS_DISABLE_IDLE_AXES
|
||||||
if (gcode.stepper_inactive_time) {
|
if (gcode.stepper_inactive_time) {
|
||||||
|
|
||||||
static bool already_shutdown_steppers; // = false
|
static bool already_shutdown_steppers; // = false
|
||||||
|
@ -439,16 +439,16 @@ inline void manage_inactivity(const bool no_stepper_sleep=false) {
|
||||||
already_shutdown_steppers = true;
|
already_shutdown_steppers = true;
|
||||||
|
|
||||||
// Individual axes will be disabled if configured
|
// Individual axes will be disabled if configured
|
||||||
TERN_(DISABLE_INACTIVE_X, stepper.disable_axis(X_AXIS));
|
TERN_(DISABLE_IDLE_X, stepper.disable_axis(X_AXIS));
|
||||||
TERN_(DISABLE_INACTIVE_Y, stepper.disable_axis(Y_AXIS));
|
TERN_(DISABLE_IDLE_Y, stepper.disable_axis(Y_AXIS));
|
||||||
TERN_(DISABLE_INACTIVE_Z, stepper.disable_axis(Z_AXIS));
|
TERN_(DISABLE_IDLE_Z, stepper.disable_axis(Z_AXIS));
|
||||||
TERN_(DISABLE_INACTIVE_I, stepper.disable_axis(I_AXIS));
|
TERN_(DISABLE_IDLE_I, stepper.disable_axis(I_AXIS));
|
||||||
TERN_(DISABLE_INACTIVE_J, stepper.disable_axis(J_AXIS));
|
TERN_(DISABLE_IDLE_J, stepper.disable_axis(J_AXIS));
|
||||||
TERN_(DISABLE_INACTIVE_K, stepper.disable_axis(K_AXIS));
|
TERN_(DISABLE_IDLE_K, stepper.disable_axis(K_AXIS));
|
||||||
TERN_(DISABLE_INACTIVE_U, stepper.disable_axis(U_AXIS));
|
TERN_(DISABLE_IDLE_U, stepper.disable_axis(U_AXIS));
|
||||||
TERN_(DISABLE_INACTIVE_V, stepper.disable_axis(V_AXIS));
|
TERN_(DISABLE_IDLE_V, stepper.disable_axis(V_AXIS));
|
||||||
TERN_(DISABLE_INACTIVE_W, stepper.disable_axis(W_AXIS));
|
TERN_(DISABLE_IDLE_W, stepper.disable_axis(W_AXIS));
|
||||||
TERN_(DISABLE_INACTIVE_EXTRUDER, stepper.disable_e_steppers());
|
TERN_(DISABLE_IDLE_E, stepper.disable_e_steppers());
|
||||||
|
|
||||||
TERN_(AUTO_BED_LEVELING_UBL, bedlevel.steppers_were_disabled());
|
TERN_(AUTO_BED_LEVELING_UBL, bedlevel.steppers_were_disabled());
|
||||||
}
|
}
|
||||||
|
|
|
@ -212,7 +212,7 @@ void try_to_disable(const stepper_flags_t to_disable) {
|
||||||
void GcodeSuite::M18_M84() {
|
void GcodeSuite::M18_M84() {
|
||||||
if (parser.seenval('S')) {
|
if (parser.seenval('S')) {
|
||||||
reset_stepper_timeout();
|
reset_stepper_timeout();
|
||||||
#if HAS_DISABLE_INACTIVE_AXIS
|
#if HAS_DISABLE_IDLE_AXES
|
||||||
const millis_t ms = parser.value_millis_from_seconds();
|
const millis_t ms = parser.value_millis_from_seconds();
|
||||||
#if LASER_SAFETY_TIMEOUT_MS > 0
|
#if LASER_SAFETY_TIMEOUT_MS > 0
|
||||||
if (ms && ms <= LASER_SAFETY_TIMEOUT_MS) {
|
if (ms && ms <= LASER_SAFETY_TIMEOUT_MS) {
|
||||||
|
|
|
@ -75,8 +75,8 @@ GcodeSuite gcode;
|
||||||
millis_t GcodeSuite::previous_move_ms = 0,
|
millis_t GcodeSuite::previous_move_ms = 0,
|
||||||
GcodeSuite::max_inactive_time = 0;
|
GcodeSuite::max_inactive_time = 0;
|
||||||
|
|
||||||
#if HAS_DISABLE_INACTIVE_AXIS
|
#if HAS_DISABLE_IDLE_AXES
|
||||||
millis_t GcodeSuite::stepper_inactive_time = SEC_TO_MS(DEFAULT_STEPPER_DEACTIVE_TIME);
|
millis_t GcodeSuite::stepper_inactive_time = SEC_TO_MS(DEFAULT_STEPPER_TIMEOUT_SEC);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Relative motion mode for each logical axis
|
// Relative motion mode for each logical axis
|
||||||
|
|
|
@ -403,7 +403,7 @@ public:
|
||||||
}
|
}
|
||||||
FORCE_INLINE static void reset_stepper_timeout(const millis_t ms=millis()) { previous_move_ms = ms; }
|
FORCE_INLINE static void reset_stepper_timeout(const millis_t ms=millis()) { previous_move_ms = ms; }
|
||||||
|
|
||||||
#if HAS_DISABLE_INACTIVE_AXIS
|
#if HAS_DISABLE_IDLE_AXES
|
||||||
static millis_t stepper_inactive_time;
|
static millis_t stepper_inactive_time;
|
||||||
FORCE_INLINE static bool stepper_inactive_timeout(const millis_t ms=millis()) {
|
FORCE_INLINE static bool stepper_inactive_timeout(const millis_t ms=millis()) {
|
||||||
return ELAPSED(ms, previous_move_ms + stepper_inactive_time);
|
return ELAPSED(ms, previous_move_ms + stepper_inactive_time);
|
||||||
|
|
|
@ -624,7 +624,7 @@
|
||||||
#undef PREVENT_LENGTHY_EXTRUDE
|
#undef PREVENT_LENGTHY_EXTRUDE
|
||||||
#undef FILAMENT_RUNOUT_SENSOR
|
#undef FILAMENT_RUNOUT_SENSOR
|
||||||
#undef FILAMENT_RUNOUT_DISTANCE_MM
|
#undef FILAMENT_RUNOUT_DISTANCE_MM
|
||||||
#undef DISABLE_INACTIVE_EXTRUDER
|
#undef DISABLE_OTHER_EXTRUDERS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define E_OPTARG(N) OPTARG(HAS_MULTI_EXTRUDER, N)
|
#define E_OPTARG(N) OPTARG(HAS_MULTI_EXTRUDER, N)
|
||||||
|
@ -678,7 +678,7 @@
|
||||||
|
|
||||||
// No inactive extruders with SWITCHING_NOZZLE or Průša MMU1
|
// No inactive extruders with SWITCHING_NOZZLE or Průša MMU1
|
||||||
#if HAS_SWITCHING_NOZZLE || HAS_PRUSA_MMU1
|
#if HAS_SWITCHING_NOZZLE || HAS_PRUSA_MMU1
|
||||||
#undef DISABLE_INACTIVE_EXTRUDER
|
#undef DISABLE_OTHER_EXTRUDERS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Průša MMU1, MMU(S) 2.0 and EXTENDABLE_EMU_MMU2(S) force SINGLENOZZLE
|
// Průša MMU1, MMU(S) 2.0 and EXTENDABLE_EMU_MMU2(S) force SINGLENOZZLE
|
||||||
|
@ -934,6 +934,15 @@
|
||||||
#undef MAX_SOFTWARE_ENDSTOP_W
|
#undef MAX_SOFTWARE_ENDSTOP_W
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define _OR_HAS_DA(A) ENABLED(DISABLE_##A) ||
|
||||||
|
#if MAP(_OR_HAS_DA, X, Y, Z, I, J, K, U, V, W) 0
|
||||||
|
#define HAS_DISABLE_MAIN_AXES 1
|
||||||
|
#endif
|
||||||
|
#if HAS_DISABLE_MAIN_AXES || ENABLED(DISABLE_E)
|
||||||
|
#define HAS_DISABLE_AXES 1
|
||||||
|
#endif
|
||||||
|
#undef _OR_HAS_DA
|
||||||
|
|
||||||
#ifdef X2_DRIVER_TYPE
|
#ifdef X2_DRIVER_TYPE
|
||||||
#define HAS_X2_STEPPER 1
|
#define HAS_X2_STEPPER 1
|
||||||
// Dual X Carriage isn't known yet. TODO: Consider moving it to Configuration.h.
|
// Dual X Carriage isn't known yet. TODO: Consider moving it to Configuration.h.
|
||||||
|
|
|
@ -93,7 +93,7 @@
|
||||||
#undef ARC_SUPPORT
|
#undef ARC_SUPPORT
|
||||||
#undef CALIBRATION_MEASURE_YMAX
|
#undef CALIBRATION_MEASURE_YMAX
|
||||||
#undef CALIBRATION_MEASURE_YMIN
|
#undef CALIBRATION_MEASURE_YMIN
|
||||||
#undef DISABLE_INACTIVE_Y
|
#undef DISABLE_IDLE_Y
|
||||||
#undef HOME_Y_BEFORE_X
|
#undef HOME_Y_BEFORE_X
|
||||||
#undef INPUT_SHAPING_Y
|
#undef INPUT_SHAPING_Y
|
||||||
#undef QUICK_HOME
|
#undef QUICK_HOME
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
#undef CALIBRATION_MEASURE_ZMAX
|
#undef CALIBRATION_MEASURE_ZMAX
|
||||||
#undef CALIBRATION_MEASURE_ZMIN
|
#undef CALIBRATION_MEASURE_ZMIN
|
||||||
#undef CNC_WORKSPACE_PLANES
|
#undef CNC_WORKSPACE_PLANES
|
||||||
#undef DISABLE_INACTIVE_Z
|
#undef DISABLE_IDLE_Z
|
||||||
#undef ENABLE_LEVELING_FADE_HEIGHT
|
#undef ENABLE_LEVELING_FADE_HEIGHT
|
||||||
#undef HOME_Z_FIRST
|
#undef HOME_Z_FIRST
|
||||||
#undef HOMING_Z_WITH_PROBE
|
#undef HOMING_Z_WITH_PROBE
|
||||||
|
@ -124,7 +124,7 @@
|
||||||
#if !HAS_I_AXIS
|
#if !HAS_I_AXIS
|
||||||
#undef CALIBRATION_MEASURE_IMAX
|
#undef CALIBRATION_MEASURE_IMAX
|
||||||
#undef CALIBRATION_MEASURE_IMIN
|
#undef CALIBRATION_MEASURE_IMIN
|
||||||
#undef DISABLE_INACTIVE_I
|
#undef DISABLE_IDLE_I
|
||||||
#undef SAFE_BED_LEVELING_START_I
|
#undef SAFE_BED_LEVELING_START_I
|
||||||
#undef STEALTHCHOP_I
|
#undef STEALTHCHOP_I
|
||||||
#undef STEP_STATE_I
|
#undef STEP_STATE_I
|
||||||
|
@ -133,7 +133,7 @@
|
||||||
#if !HAS_J_AXIS
|
#if !HAS_J_AXIS
|
||||||
#undef CALIBRATION_MEASURE_JMAX
|
#undef CALIBRATION_MEASURE_JMAX
|
||||||
#undef CALIBRATION_MEASURE_JMIN
|
#undef CALIBRATION_MEASURE_JMIN
|
||||||
#undef DISABLE_INACTIVE_J
|
#undef DISABLE_IDLE_J
|
||||||
#undef SAFE_BED_LEVELING_START_J
|
#undef SAFE_BED_LEVELING_START_J
|
||||||
#undef STEALTHCHOP_J
|
#undef STEALTHCHOP_J
|
||||||
#undef STEP_STATE_J
|
#undef STEP_STATE_J
|
||||||
|
@ -142,7 +142,7 @@
|
||||||
#if !HAS_K_AXIS
|
#if !HAS_K_AXIS
|
||||||
#undef CALIBRATION_MEASURE_KMAX
|
#undef CALIBRATION_MEASURE_KMAX
|
||||||
#undef CALIBRATION_MEASURE_KMIN
|
#undef CALIBRATION_MEASURE_KMIN
|
||||||
#undef DISABLE_INACTIVE_K
|
#undef DISABLE_IDLE_K
|
||||||
#undef SAFE_BED_LEVELING_START_K
|
#undef SAFE_BED_LEVELING_START_K
|
||||||
#undef STEALTHCHOP_K
|
#undef STEALTHCHOP_K
|
||||||
#undef STEP_STATE_K
|
#undef STEP_STATE_K
|
||||||
|
@ -151,7 +151,7 @@
|
||||||
#if !HAS_U_AXIS
|
#if !HAS_U_AXIS
|
||||||
#undef CALIBRATION_MEASURE_UMAX
|
#undef CALIBRATION_MEASURE_UMAX
|
||||||
#undef CALIBRATION_MEASURE_UMIN
|
#undef CALIBRATION_MEASURE_UMIN
|
||||||
#undef DISABLE_INACTIVE_U
|
#undef DISABLE_IDLE_U
|
||||||
#undef SAFE_BED_LEVELING_START_U
|
#undef SAFE_BED_LEVELING_START_U
|
||||||
#undef STEALTHCHOP_U
|
#undef STEALTHCHOP_U
|
||||||
#undef STEP_STATE_U
|
#undef STEP_STATE_U
|
||||||
|
@ -160,7 +160,7 @@
|
||||||
#if !HAS_V_AXIS
|
#if !HAS_V_AXIS
|
||||||
#undef CALIBRATION_MEASURE_VMAX
|
#undef CALIBRATION_MEASURE_VMAX
|
||||||
#undef CALIBRATION_MEASURE_VMIN
|
#undef CALIBRATION_MEASURE_VMIN
|
||||||
#undef DISABLE_INACTIVE_V
|
#undef DISABLE_IDLE_V
|
||||||
#undef SAFE_BED_LEVELING_START_V
|
#undef SAFE_BED_LEVELING_START_V
|
||||||
#undef STEALTHCHOP_V
|
#undef STEALTHCHOP_V
|
||||||
#undef STEP_STATE_V
|
#undef STEP_STATE_V
|
||||||
|
@ -169,7 +169,7 @@
|
||||||
#if !HAS_W_AXIS
|
#if !HAS_W_AXIS
|
||||||
#undef CALIBRATION_MEASURE_WMAX
|
#undef CALIBRATION_MEASURE_WMAX
|
||||||
#undef CALIBRATION_MEASURE_WMIN
|
#undef CALIBRATION_MEASURE_WMIN
|
||||||
#undef DISABLE_INACTIVE_W
|
#undef DISABLE_IDLE_W
|
||||||
#undef SAFE_BED_LEVELING_START_W
|
#undef SAFE_BED_LEVELING_START_W
|
||||||
#undef STEALTHCHOP_W
|
#undef STEALTHCHOP_W
|
||||||
#undef STEP_STATE_W
|
#undef STEP_STATE_W
|
||||||
|
@ -180,6 +180,7 @@
|
||||||
#define NO_VOLUMETRICS
|
#define NO_VOLUMETRICS
|
||||||
#undef ADVANCED_PAUSE_FEATURE
|
#undef ADVANCED_PAUSE_FEATURE
|
||||||
#undef AUTOTEMP
|
#undef AUTOTEMP
|
||||||
|
#undef DISABLE_IDLE_E
|
||||||
#undef EXTRUDER_RUNOUT_PREVENT
|
#undef EXTRUDER_RUNOUT_PREVENT
|
||||||
#undef FILAMENT_LOAD_UNLOAD_GCODES
|
#undef FILAMENT_LOAD_UNLOAD_GCODES
|
||||||
#undef FWRETRACT
|
#undef FWRETRACT
|
||||||
|
@ -194,6 +195,43 @@
|
||||||
#undef WATCH_TEMP_PERIOD
|
#undef WATCH_TEMP_PERIOD
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if ENABLED(DISABLE_X) && !defined(DISABLE_IDLE_X)
|
||||||
|
#define DISABLE_IDLE_X
|
||||||
|
#endif
|
||||||
|
#if ENABLED(DISABLE_Y) && !defined(DISABLE_IDLE_Y)
|
||||||
|
#define DISABLE_IDLE_Y
|
||||||
|
#endif
|
||||||
|
#if ENABLED(DISABLE_Z) && !defined(DISABLE_IDLE_Z)
|
||||||
|
#define DISABLE_IDLE_Z
|
||||||
|
#endif
|
||||||
|
#if ENABLED(DISABLE_I) && !defined(DISABLE_IDLE_I)
|
||||||
|
#define DISABLE_IDLE_I
|
||||||
|
#endif
|
||||||
|
#if ENABLED(DISABLE_J) && !defined(DISABLE_IDLE_J)
|
||||||
|
#define DISABLE_IDLE_J
|
||||||
|
#endif
|
||||||
|
#if ENABLED(DISABLE_K) && !defined(DISABLE_IDLE_K)
|
||||||
|
#define DISABLE_IDLE_K
|
||||||
|
#endif
|
||||||
|
#if ENABLED(DISABLE_U) && !defined(DISABLE_IDLE_U)
|
||||||
|
#define DISABLE_IDLE_U
|
||||||
|
#endif
|
||||||
|
#if ENABLED(DISABLE_V) && !defined(DISABLE_IDLE_V)
|
||||||
|
#define DISABLE_IDLE_V
|
||||||
|
#endif
|
||||||
|
#if ENABLED(DISABLE_W) && !defined(DISABLE_IDLE_W)
|
||||||
|
#define DISABLE_IDLE_W
|
||||||
|
#endif
|
||||||
|
#if ENABLED(DISABLE_E) && !defined(DISABLE_IDLE_E)
|
||||||
|
#define DISABLE_IDLE_E
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define _OR_HAS_DI(A) || BOTH(HAS_##A##_AXIS, DISABLE_IDLE_##A)
|
||||||
|
#if BOTH(HAS_EXTRUDERS, DISABLE_IDLE_E) MAP(_OR_HAS_DI, X, Y, Z, I, J, K, U, V, W)
|
||||||
|
#define HAS_DISABLE_IDLE_AXES 1
|
||||||
|
#endif
|
||||||
|
#undef _OR_HAS_DI
|
||||||
|
|
||||||
#if HOTENDS <= 7
|
#if HOTENDS <= 7
|
||||||
#undef E7_AUTO_FAN_PIN
|
#undef E7_AUTO_FAN_PIN
|
||||||
#if HOTENDS <= 6
|
#if HOTENDS <= 6
|
||||||
|
|
|
@ -1487,43 +1487,6 @@
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(DISABLE_INACTIVE_X) && ENABLED(DISABLE_X)
|
|
||||||
#define DISABLE_INACTIVE_X
|
|
||||||
#endif
|
|
||||||
#if !defined(DISABLE_INACTIVE_Y) && ENABLED(DISABLE_Y)
|
|
||||||
#define DISABLE_INACTIVE_Y
|
|
||||||
#endif
|
|
||||||
#if !defined(DISABLE_INACTIVE_Z) && ENABLED(DISABLE_Z)
|
|
||||||
#define DISABLE_INACTIVE_Z
|
|
||||||
#endif
|
|
||||||
#if !defined(DISABLE_INACTIVE_I) && ENABLED(DISABLE_I)
|
|
||||||
#define DISABLE_INACTIVE_I
|
|
||||||
#endif
|
|
||||||
#if !defined(DISABLE_INACTIVE_J) && ENABLED(DISABLE_J)
|
|
||||||
#define DISABLE_INACTIVE_J
|
|
||||||
#endif
|
|
||||||
#if !defined(DISABLE_INACTIVE_K) && ENABLED(DISABLE_K)
|
|
||||||
#define DISABLE_INACTIVE_K
|
|
||||||
#endif
|
|
||||||
#if !defined(DISABLE_INACTIVE_U) && ENABLED(DISABLE_U)
|
|
||||||
#define DISABLE_INACTIVE_U
|
|
||||||
#endif
|
|
||||||
#if !defined(DISABLE_INACTIVE_V) && ENABLED(DISABLE_V)
|
|
||||||
#define DISABLE_INACTIVE_V
|
|
||||||
#endif
|
|
||||||
#if !defined(DISABLE_INACTIVE_W) && ENABLED(DISABLE_W)
|
|
||||||
#define DISABLE_INACTIVE_W
|
|
||||||
#endif
|
|
||||||
#if !defined(DISABLE_INACTIVE_EXTRUDER) && ENABLED(DISABLE_E)
|
|
||||||
#define DISABLE_INACTIVE_EXTRUDER
|
|
||||||
#endif
|
|
||||||
#if ANY(DISABLE_INACTIVE_X, DISABLE_INACTIVE_Y, DISABLE_INACTIVE_Z, DISABLE_INACTIVE_I, DISABLE_INACTIVE_J, DISABLE_INACTIVE_K, DISABLE_INACTIVE_U, DISABLE_INACTIVE_V, DISABLE_INACTIVE_W, DISABLE_INACTIVE_EXTRUDER)
|
|
||||||
#define HAS_DISABLE_INACTIVE_AXIS 1
|
|
||||||
#endif
|
|
||||||
#if ANY(DISABLE_X, DISABLE_Y, DISABLE_Z, DISABLE_I, DISABLE_J, DISABLE_K, DISABLE_U, DISABLE_V, DISABLE_W, DISABLE_E)
|
|
||||||
#define HAS_DISABLE_AXIS 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Extruder steppers and solenoids
|
// Extruder steppers and solenoids
|
||||||
#if HAS_EXTRUDERS
|
#if HAS_EXTRUDERS
|
||||||
|
|
||||||
|
|
|
@ -674,8 +674,8 @@
|
||||||
#error "EXPERIMENTAL_SCURVE is no longer needed and should be removed."
|
#error "EXPERIMENTAL_SCURVE is no longer needed and should be removed."
|
||||||
#elif defined(BABYSTEP_ZPROBE_GFX_OVERLAY)
|
#elif defined(BABYSTEP_ZPROBE_GFX_OVERLAY)
|
||||||
#error "BABYSTEP_ZPROBE_GFX_OVERLAY is now BABYSTEP_GFX_OVERLAY."
|
#error "BABYSTEP_ZPROBE_GFX_OVERLAY is now BABYSTEP_GFX_OVERLAY."
|
||||||
#elif defined(DISABLE_INACTIVE_E)
|
#elif defined(DISABLE_INACTIVE_EXTRUDER)
|
||||||
#error "DISABLE_INACTIVE_E is now set with DISABLE_INACTIVE_EXTRUDER."
|
#error "DISABLE_INACTIVE_EXTRUDER is now DISABLE_OTHER_EXTRUDERS."
|
||||||
#elif defined(INVERT_X_STEP_PIN) || defined(INVERT_Y_STEP_PIN) || defined(INVERT_Z_STEP_PIN) || defined(INVERT_I_STEP_PIN) || defined(INVERT_J_STEP_PIN) || defined(INVERT_K_STEP_PIN) || defined(INVERT_U_STEP_PIN) || defined(INVERT_V_STEP_PIN) || defined(INVERT_W_STEP_PIN) || defined(INVERT_E_STEP_PIN)
|
#elif defined(INVERT_X_STEP_PIN) || defined(INVERT_Y_STEP_PIN) || defined(INVERT_Z_STEP_PIN) || defined(INVERT_I_STEP_PIN) || defined(INVERT_J_STEP_PIN) || defined(INVERT_K_STEP_PIN) || defined(INVERT_U_STEP_PIN) || defined(INVERT_V_STEP_PIN) || defined(INVERT_W_STEP_PIN) || defined(INVERT_E_STEP_PIN)
|
||||||
#error "INVERT_*_STEP_PIN true is now STEP_STATE_* LOW, and INVERT_*_STEP_PIN false is now STEP_STATE_* HIGH."
|
#error "INVERT_*_STEP_PIN true is now STEP_STATE_* LOW, and INVERT_*_STEP_PIN false is now STEP_STATE_* HIGH."
|
||||||
#elif defined(PROBE_PT_1_X) || defined(PROBE_PT_1_Y) || defined(PROBE_PT_2_X) || defined(PROBE_PT_2_Y) || defined(PROBE_PT_3_X) || defined(PROBE_PT_3_Y)
|
#elif defined(PROBE_PT_1_X) || defined(PROBE_PT_1_Y) || defined(PROBE_PT_2_X) || defined(PROBE_PT_2_Y) || defined(PROBE_PT_3_X) || defined(PROBE_PT_3_Y)
|
||||||
|
@ -692,6 +692,12 @@
|
||||||
|| defined(U_MAX_ENDSTOP_INVERTING) || defined(V_MAX_ENDSTOP_INVERTING) || defined(W_MAX_ENDSTOP_INVERTING) \
|
|| defined(U_MAX_ENDSTOP_INVERTING) || defined(V_MAX_ENDSTOP_INVERTING) || defined(W_MAX_ENDSTOP_INVERTING) \
|
||||||
|| defined(Z_MIN_PROBE_ENDSTOP_INVERTING)
|
|| defined(Z_MIN_PROBE_ENDSTOP_INVERTING)
|
||||||
#error "*_ENDSTOP_INVERTING false/true is now set with *_ENDSTOP_HIT_STATE HIGH/LOW."
|
#error "*_ENDSTOP_INVERTING false/true is now set with *_ENDSTOP_HIT_STATE HIGH/LOW."
|
||||||
|
#elif defined(DISABLE_INACTIVE_X) || defined(DISABLE_INACTIVE_Y) || defined(DISABLE_INACTIVE_Z) \
|
||||||
|
|| defined(DISABLE_INACTIVE_I) || defined(DISABLE_INACTIVE_J) || defined(DISABLE_INACTIVE_K) \
|
||||||
|
|| defined(DISABLE_INACTIVE_U) || defined(DISABLE_INACTIVE_V) || defined(DISABLE_INACTIVE_W) || defined(DISABLE_INACTIVE_E)
|
||||||
|
#error "DISABLE_INACTIVE_[XYZIJKUVWE] is now DISABLE_IDLE_[XYZIJKUVWE]."
|
||||||
|
#elif defined(DEFAULT_STEPPER_DEACTIVE_TIME)
|
||||||
|
#error "DEFAULT_STEPPER_DEACTIVE_TIME is now DEFAULT_STEPPER_TIMEOUT_SEC."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// L64xx stepper drivers have been removed
|
// L64xx stepper drivers have been removed
|
||||||
|
@ -1398,8 +1404,8 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE, "Movement bounds (X_MIN_POS, X_MAX_POS
|
||||||
#error "MIXING_EXTRUDER is incompatible with (MECHANICAL_)SWITCHING_EXTRUDER."
|
#error "MIXING_EXTRUDER is incompatible with (MECHANICAL_)SWITCHING_EXTRUDER."
|
||||||
#elif ENABLED(SINGLENOZZLE)
|
#elif ENABLED(SINGLENOZZLE)
|
||||||
#error "MIXING_EXTRUDER is incompatible with SINGLENOZZLE."
|
#error "MIXING_EXTRUDER is incompatible with SINGLENOZZLE."
|
||||||
#elif ENABLED(DISABLE_INACTIVE_EXTRUDER)
|
#elif ENABLED(DISABLE_OTHER_EXTRUDERS)
|
||||||
#error "MIXING_EXTRUDER is incompatible with DISABLE_INACTIVE_EXTRUDER."
|
#error "MIXING_EXTRUDER is incompatible with DISABLE_OTHER_EXTRUDERS."
|
||||||
#elif HAS_FILAMENT_RUNOUT_DISTANCE
|
#elif HAS_FILAMENT_RUNOUT_DISTANCE
|
||||||
#error "MIXING_EXTRUDER is incompatible with FILAMENT_RUNOUT_DISTANCE_MM."
|
#error "MIXING_EXTRUDER is incompatible with FILAMENT_RUNOUT_DISTANCE_MM."
|
||||||
#endif
|
#endif
|
||||||
|
@ -2286,10 +2292,8 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE, "Movement bounds (X_MIN_POS, X_MAX_POS
|
||||||
/**
|
/**
|
||||||
* Make sure DISABLE_[XYZ] compatible with selected homing options
|
* Make sure DISABLE_[XYZ] compatible with selected homing options
|
||||||
*/
|
*/
|
||||||
#if ANY(DISABLE_X, DISABLE_Y, DISABLE_Z, DISABLE_I, DISABLE_J, DISABLE_K, DISABLE_U, DISABLE_V, DISABLE_W)
|
#if HAS_DISABLE_MAIN_AXES && EITHER(HOME_AFTER_DEACTIVATE, Z_SAFE_HOMING)
|
||||||
#if EITHER(HOME_AFTER_DEACTIVATE, Z_SAFE_HOMING)
|
#error "DISABLE_[XYZIJKUVW] is not compatible with HOME_AFTER_DEACTIVATE or Z_SAFE_HOMING."
|
||||||
#error "DISABLE_[XYZIJKUVW] is not compatible with HOME_AFTER_DEACTIVATE or Z_SAFE_HOMING."
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -4264,7 +4268,7 @@ static_assert(_PLUS_TEST(4), "HOMING_FEEDRATE_MM_M values must be positive.");
|
||||||
#undef _PIN_CONFLICT
|
#undef _PIN_CONFLICT
|
||||||
|
|
||||||
#ifdef LASER_SAFETY_TIMEOUT_MS
|
#ifdef LASER_SAFETY_TIMEOUT_MS
|
||||||
static_assert(LASER_SAFETY_TIMEOUT_MS < (DEFAULT_STEPPER_DEACTIVE_TIME) * 1000UL, "LASER_SAFETY_TIMEOUT_MS must be less than DEFAULT_STEPPER_DEACTIVE_TIME (" STRINGIFY(DEFAULT_STEPPER_DEACTIVE_TIME) " seconds)");
|
static_assert(LASER_SAFETY_TIMEOUT_MS < (DEFAULT_STEPPER_TIMEOUT_SEC) * 1000UL, "LASER_SAFETY_TIMEOUT_MS must be less than DEFAULT_STEPPER_TIMEOUT_SEC (" STRINGIFY(DEFAULT_STEPPER_TIMEOUT_SEC) " seconds)");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -215,7 +215,7 @@ uint32_t Planner::acceleration_long_cutoff;
|
||||||
xyze_float_t Planner::previous_speed;
|
xyze_float_t Planner::previous_speed;
|
||||||
float Planner::previous_nominal_speed;
|
float Planner::previous_nominal_speed;
|
||||||
|
|
||||||
#if ENABLED(DISABLE_INACTIVE_EXTRUDER)
|
#if ENABLED(DISABLE_OTHER_EXTRUDERS)
|
||||||
last_move_t Planner::extruder_last_move[E_STEPPERS] = { 0 };
|
last_move_t Planner::extruder_last_move[E_STEPPERS] = { 0 };
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1320,7 +1320,7 @@ void Planner::recalculate(TERN_(HINTS_SAFE_EXIT_SPEED, const_float_t safe_exit_s
|
||||||
*/
|
*/
|
||||||
void Planner::check_axes_activity() {
|
void Planner::check_axes_activity() {
|
||||||
|
|
||||||
#if HAS_DISABLE_AXIS
|
#if HAS_DISABLE_AXES
|
||||||
xyze_bool_t axis_active = { false };
|
xyze_bool_t axis_active = { false };
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1360,7 +1360,7 @@ void Planner::check_axes_activity() {
|
||||||
TERN_(HAS_HEATER_2, tail_e_to_p_pressure = block->e_to_p_pressure);
|
TERN_(HAS_HEATER_2, tail_e_to_p_pressure = block->e_to_p_pressure);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_DISABLE_AXIS
|
#if HAS_DISABLE_AXES
|
||||||
for (uint8_t b = block_buffer_tail; b != block_buffer_head; b = next_block_index(b)) {
|
for (uint8_t b = block_buffer_tail; b != block_buffer_head; b = next_block_index(b)) {
|
||||||
block_t * const bnext = &block_buffer[b];
|
block_t * const bnext = &block_buffer[b];
|
||||||
LOGICAL_AXIS_CODE(
|
LOGICAL_AXIS_CODE(
|
||||||
|
@ -1401,18 +1401,20 @@ void Planner::check_axes_activity() {
|
||||||
//
|
//
|
||||||
// Disable inactive axes
|
// Disable inactive axes
|
||||||
//
|
//
|
||||||
LOGICAL_AXIS_CODE(
|
#if HAS_DISABLE_AXES
|
||||||
if (TERN0(DISABLE_E, !axis_active.e)) stepper.disable_e_steppers(),
|
LOGICAL_AXIS_CODE(
|
||||||
if (TERN0(DISABLE_X, !axis_active.x)) stepper.disable_axis(X_AXIS),
|
if (TERN0(DISABLE_E, !axis_active.e)) stepper.disable_e_steppers(),
|
||||||
if (TERN0(DISABLE_Y, !axis_active.y)) stepper.disable_axis(Y_AXIS),
|
if (TERN0(DISABLE_X, !axis_active.x)) stepper.disable_axis(X_AXIS),
|
||||||
if (TERN0(DISABLE_Z, !axis_active.z)) stepper.disable_axis(Z_AXIS),
|
if (TERN0(DISABLE_Y, !axis_active.y)) stepper.disable_axis(Y_AXIS),
|
||||||
if (TERN0(DISABLE_I, !axis_active.i)) stepper.disable_axis(I_AXIS),
|
if (TERN0(DISABLE_Z, !axis_active.z)) stepper.disable_axis(Z_AXIS),
|
||||||
if (TERN0(DISABLE_J, !axis_active.j)) stepper.disable_axis(J_AXIS),
|
if (TERN0(DISABLE_I, !axis_active.i)) stepper.disable_axis(I_AXIS),
|
||||||
if (TERN0(DISABLE_K, !axis_active.k)) stepper.disable_axis(K_AXIS),
|
if (TERN0(DISABLE_J, !axis_active.j)) stepper.disable_axis(J_AXIS),
|
||||||
if (TERN0(DISABLE_U, !axis_active.u)) stepper.disable_axis(U_AXIS),
|
if (TERN0(DISABLE_K, !axis_active.k)) stepper.disable_axis(K_AXIS),
|
||||||
if (TERN0(DISABLE_V, !axis_active.v)) stepper.disable_axis(V_AXIS),
|
if (TERN0(DISABLE_U, !axis_active.u)) stepper.disable_axis(U_AXIS),
|
||||||
if (TERN0(DISABLE_W, !axis_active.w)) stepper.disable_axis(W_AXIS)
|
if (TERN0(DISABLE_V, !axis_active.v)) stepper.disable_axis(V_AXIS),
|
||||||
);
|
if (TERN0(DISABLE_W, !axis_active.w)) stepper.disable_axis(W_AXIS)
|
||||||
|
);
|
||||||
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// Update Fan speeds
|
// Update Fan speeds
|
||||||
|
@ -2276,7 +2278,7 @@ bool Planner::_populate_block(
|
||||||
if (esteps) {
|
if (esteps) {
|
||||||
TERN_(AUTO_POWER_CONTROL, powerManager.power_on());
|
TERN_(AUTO_POWER_CONTROL, powerManager.power_on());
|
||||||
|
|
||||||
#if ENABLED(DISABLE_INACTIVE_EXTRUDER) // Enable only the selected extruder
|
#if ENABLED(DISABLE_OTHER_EXTRUDERS) // Enable only the selected extruder
|
||||||
|
|
||||||
// Count down all steppers that were recently moved
|
// Count down all steppers that were recently moved
|
||||||
LOOP_L_N(i, E_STEPPERS)
|
LOOP_L_N(i, E_STEPPERS)
|
||||||
|
|
|
@ -352,7 +352,7 @@ typedef struct {
|
||||||
} skew_factor_t;
|
} skew_factor_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(DISABLE_INACTIVE_EXTRUDER)
|
#if ENABLED(DISABLE_OTHER_EXTRUDERS)
|
||||||
typedef uvalue_t(BLOCK_BUFFER_SIZE * 2) last_move_t;
|
typedef uvalue_t(BLOCK_BUFFER_SIZE * 2) last_move_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -533,7 +533,7 @@ class Planner {
|
||||||
static float last_fade_z;
|
static float last_fade_z;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(DISABLE_INACTIVE_EXTRUDER)
|
#if ENABLED(DISABLE_OTHER_EXTRUDERS)
|
||||||
// Counters to manage disabling inactive extruder steppers
|
// Counters to manage disabling inactive extruder steppers
|
||||||
static last_move_t extruder_last_move[E_STEPPERS];
|
static last_move_t extruder_last_move[E_STEPPERS];
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -82,7 +82,7 @@ opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO MIXING_STEPPERS 5 LCD_LANGUAGE ru \
|
||||||
opt_enable MIXING_EXTRUDER GRADIENT_MIX GRADIENT_VTOOL CR10_STOCKDISPLAY \
|
opt_enable MIXING_EXTRUDER GRADIENT_MIX GRADIENT_VTOOL CR10_STOCKDISPLAY \
|
||||||
USE_CONTROLLER_FAN CONTROLLER_FAN_EDITABLE CONTROLLER_FAN_IGNORE_Z \
|
USE_CONTROLLER_FAN CONTROLLER_FAN_EDITABLE CONTROLLER_FAN_IGNORE_Z \
|
||||||
FILAMENT_RUNOUT_SENSOR ADVANCED_PAUSE_FEATURE NOZZLE_PARK_FEATURE INPUT_SHAPING_X INPUT_SHAPING_Y
|
FILAMENT_RUNOUT_SENSOR ADVANCED_PAUSE_FEATURE NOZZLE_PARK_FEATURE INPUT_SHAPING_X INPUT_SHAPING_Y
|
||||||
opt_disable DISABLE_INACTIVE_EXTRUDER
|
opt_disable DISABLE_OTHER_EXTRUDERS
|
||||||
exec_test $1 $2 "Azteeg X3 | Mixing Extruder (x5) | Gradient Mix | Input Shaping | Greek" "$3"
|
exec_test $1 $2 "Azteeg X3 | Mixing Extruder (x5) | Gradient Mix | Input Shaping | Greek" "$3"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
@ -125,7 +125,7 @@ opt_enable COREYX USE_XMAX_PLUG MIXING_EXTRUDER GRADIENT_MIX \
|
||||||
SD_ABORT_ON_ENDSTOP_HIT HOST_ACTION_COMMANDS HOST_PROMPT_SUPPORT HOST_PAUSE_M76 ADVANCED_OK M114_DETAIL \
|
SD_ABORT_ON_ENDSTOP_HIT HOST_ACTION_COMMANDS HOST_PROMPT_SUPPORT HOST_PAUSE_M76 ADVANCED_OK M114_DETAIL \
|
||||||
VOLUMETRIC_DEFAULT_ON NO_WORKSPACE_OFFSETS EXTRA_FAN_SPEED FWRETRACT \
|
VOLUMETRIC_DEFAULT_ON NO_WORKSPACE_OFFSETS EXTRA_FAN_SPEED FWRETRACT \
|
||||||
USE_CONTROLLER_FAN CONTROLLER_FAN_EDITABLE CONTROLLER_FAN_USE_Z_ONLY
|
USE_CONTROLLER_FAN CONTROLLER_FAN_EDITABLE CONTROLLER_FAN_USE_Z_ONLY
|
||||||
opt_disable DISABLE_INACTIVE_EXTRUDER
|
opt_disable DISABLE_OTHER_EXTRUDERS
|
||||||
exec_test $1 $2 "Rambo | CoreXY, Gradient Mix | Endstop Int. | Home Y > X | FW Retract ..." "$3"
|
exec_test $1 $2 "Rambo | CoreXY, Gradient Mix | Endstop Int. | Home Y > X | FW Retract ..." "$3"
|
||||||
|
|
||||||
# clean up
|
# clean up
|
||||||
|
|
|
@ -68,7 +68,7 @@ exec_test $1 $2 "PARKING_EXTRUDER with LCD" "$3"
|
||||||
restore_configs
|
restore_configs
|
||||||
opt_set MOTHERBOARD BOARD_TEENSY35_36 MIXING_STEPPERS 2
|
opt_set MOTHERBOARD BOARD_TEENSY35_36 MIXING_STEPPERS 2
|
||||||
opt_enable MIXING_EXTRUDER DIRECT_MIXING_IN_G1 GRADIENT_MIX GRADIENT_VTOOL REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
|
opt_enable MIXING_EXTRUDER DIRECT_MIXING_IN_G1 GRADIENT_MIX GRADIENT_VTOOL REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
|
||||||
opt_disable DISABLE_INACTIVE_EXTRUDER
|
opt_disable DISABLE_OTHER_EXTRUDERS
|
||||||
exec_test $1 $2 "Mixing Extruder" "$3"
|
exec_test $1 $2 "Mixing Extruder" "$3"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
@ -71,7 +71,7 @@ exec_test $1 $2 "Ethernet, EEPROM, Magnetic Parking Extruder, No LCD" "$3"
|
||||||
restore_configs
|
restore_configs
|
||||||
opt_set MOTHERBOARD BOARD_TEENSY41 MIXING_STEPPERS 2
|
opt_set MOTHERBOARD BOARD_TEENSY41 MIXING_STEPPERS 2
|
||||||
opt_enable MIXING_EXTRUDER DIRECT_MIXING_IN_G1 GRADIENT_MIX GRADIENT_VTOOL
|
opt_enable MIXING_EXTRUDER DIRECT_MIXING_IN_G1 GRADIENT_MIX GRADIENT_VTOOL
|
||||||
opt_disable DISABLE_INACTIVE_EXTRUDER
|
opt_disable DISABLE_OTHER_EXTRUDERS
|
||||||
exec_test $1 $2 "Mixing Extruder" "$3"
|
exec_test $1 $2 "Mixing Extruder" "$3"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
Loading…
Reference in a new issue