diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 7f6e7daed5..2f4b18a210 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -1710,8 +1710,8 @@ // @section extruder -//#define DISABLE_E // Disable the extruder when not stepping -#define DISABLE_INACTIVE_EXTRUDER // Keep only the active extruder enabled +//#define DISABLE_E // Disable the extruder when not stepping +#define DISABLE_OTHER_EXTRUDERS // Keep only the active extruder enabled // @section motion diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index e8fc947d3e..416caf22fc 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -1146,19 +1146,20 @@ /** * Idle Stepper Shutdown - * Enable DISABLE_INACTIVE_* 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. + * Enable DISABLE_IDLE_* to shut down axis steppers after an idle period. + * The default timeout duration can be overridden with M18 and M84. Set to 0 for No Timeout. */ -#define DEFAULT_STEPPER_DEACTIVE_TIME 120 -#define DISABLE_INACTIVE_X -#define DISABLE_INACTIVE_Y -#define DISABLE_INACTIVE_Z // Disable if the nozzle could fall onto your printed part! -//#define DISABLE_INACTIVE_I -//#define DISABLE_INACTIVE_J -//#define DISABLE_INACTIVE_K -//#define DISABLE_INACTIVE_U -//#define DISABLE_INACTIVE_V -//#define DISABLE_INACTIVE_W +#define DEFAULT_STEPPER_TIMEOUT_SEC 120 +#define DISABLE_IDLE_X +#define DISABLE_IDLE_Y +#define DISABLE_IDLE_Z // Disable if the nozzle could fall onto your printed part! +//#define DISABLE_IDLE_I +//#define DISABLE_IDLE_J +//#define DISABLE_IDLE_K +//#define DISABLE_IDLE_U +//#define DISABLE_IDLE_V +//#define DISABLE_IDLE_W +#define DISABLE_IDLE_E // Shut down all idle extruders // 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. diff --git a/Marlin/config.ini b/Marlin/config.ini index 65058a500d..0ac8187179 100644 --- a/Marlin/config.ini +++ b/Marlin/config.ini @@ -127,7 +127,7 @@ busy_while_heating = on default_ejerk = 5.0 default_keepalive_interval = 2 default_leveling_fade_height = 0.0 -disable_inactive_extruder = on +disable_other_extruders = on display_charset_hd44780 = JAPANESE eeprom_boot_silent = on eeprom_chitchat = on @@ -176,12 +176,12 @@ auto_report_temperatures = on autotemp = on autotemp_oldweight = 0.98 bed_check_interval = 5000 -default_stepper_deactive_time = 120 +default_stepper_timeout_sec = 120 default_volumetric_extruder_limit = 0.00 -disable_inactive_extruder = true -disable_inactive_x = true -disable_inactive_y = true -disable_inactive_z = true +disable_idle_x = on +disable_idle_y = on +disable_idle_z = on +disable_idle_e = on e0_auto_fan_pin = -1 encoder_100x_steps_per_sec = 80 encoder_10x_steps_per_sec = 30 diff --git a/Marlin/src/MarlinCore.cpp b/Marlin/src/MarlinCore.cpp index 342f8812d8..3ab01b0348 100644 --- a/Marlin/src/MarlinCore.cpp +++ b/Marlin/src/MarlinCore.cpp @@ -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. // M18 / M84 : Handle steppers inactive time timeout - #if HAS_DISABLE_INACTIVE_AXIS + #if HAS_DISABLE_IDLE_AXES if (gcode.stepper_inactive_time) { static bool already_shutdown_steppers; // = false @@ -439,16 +439,16 @@ inline void manage_inactivity(const bool no_stepper_sleep=false) { already_shutdown_steppers = true; // Individual axes will be disabled if configured - TERN_(DISABLE_INACTIVE_X, stepper.disable_axis(X_AXIS)); - TERN_(DISABLE_INACTIVE_Y, stepper.disable_axis(Y_AXIS)); - TERN_(DISABLE_INACTIVE_Z, stepper.disable_axis(Z_AXIS)); - TERN_(DISABLE_INACTIVE_I, stepper.disable_axis(I_AXIS)); - TERN_(DISABLE_INACTIVE_J, stepper.disable_axis(J_AXIS)); - TERN_(DISABLE_INACTIVE_K, stepper.disable_axis(K_AXIS)); - TERN_(DISABLE_INACTIVE_U, stepper.disable_axis(U_AXIS)); - TERN_(DISABLE_INACTIVE_V, stepper.disable_axis(V_AXIS)); - TERN_(DISABLE_INACTIVE_W, stepper.disable_axis(W_AXIS)); - TERN_(DISABLE_INACTIVE_EXTRUDER, stepper.disable_e_steppers()); + TERN_(DISABLE_IDLE_X, stepper.disable_axis(X_AXIS)); + TERN_(DISABLE_IDLE_Y, stepper.disable_axis(Y_AXIS)); + TERN_(DISABLE_IDLE_Z, stepper.disable_axis(Z_AXIS)); + TERN_(DISABLE_IDLE_I, stepper.disable_axis(I_AXIS)); + TERN_(DISABLE_IDLE_J, stepper.disable_axis(J_AXIS)); + TERN_(DISABLE_IDLE_K, stepper.disable_axis(K_AXIS)); + TERN_(DISABLE_IDLE_U, stepper.disable_axis(U_AXIS)); + TERN_(DISABLE_IDLE_V, stepper.disable_axis(V_AXIS)); + TERN_(DISABLE_IDLE_W, stepper.disable_axis(W_AXIS)); + TERN_(DISABLE_IDLE_E, stepper.disable_e_steppers()); TERN_(AUTO_BED_LEVELING_UBL, bedlevel.steppers_were_disabled()); } diff --git a/Marlin/src/gcode/control/M17_M18_M84.cpp b/Marlin/src/gcode/control/M17_M18_M84.cpp index 4ff48568fa..76fc335e25 100644 --- a/Marlin/src/gcode/control/M17_M18_M84.cpp +++ b/Marlin/src/gcode/control/M17_M18_M84.cpp @@ -212,7 +212,7 @@ void try_to_disable(const stepper_flags_t to_disable) { void GcodeSuite::M18_M84() { if (parser.seenval('S')) { reset_stepper_timeout(); - #if HAS_DISABLE_INACTIVE_AXIS + #if HAS_DISABLE_IDLE_AXES const millis_t ms = parser.value_millis_from_seconds(); #if LASER_SAFETY_TIMEOUT_MS > 0 if (ms && ms <= LASER_SAFETY_TIMEOUT_MS) { diff --git a/Marlin/src/gcode/gcode.cpp b/Marlin/src/gcode/gcode.cpp index f08ade8c38..1eaf4dcd39 100644 --- a/Marlin/src/gcode/gcode.cpp +++ b/Marlin/src/gcode/gcode.cpp @@ -75,8 +75,8 @@ GcodeSuite gcode; millis_t GcodeSuite::previous_move_ms = 0, GcodeSuite::max_inactive_time = 0; -#if HAS_DISABLE_INACTIVE_AXIS - millis_t GcodeSuite::stepper_inactive_time = SEC_TO_MS(DEFAULT_STEPPER_DEACTIVE_TIME); +#if HAS_DISABLE_IDLE_AXES + millis_t GcodeSuite::stepper_inactive_time = SEC_TO_MS(DEFAULT_STEPPER_TIMEOUT_SEC); #endif // Relative motion mode for each logical axis diff --git a/Marlin/src/gcode/gcode.h b/Marlin/src/gcode/gcode.h index 9bb45d9a43..48e6fd2da8 100644 --- a/Marlin/src/gcode/gcode.h +++ b/Marlin/src/gcode/gcode.h @@ -403,7 +403,7 @@ public: } 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; FORCE_INLINE static bool stepper_inactive_timeout(const millis_t ms=millis()) { return ELAPSED(ms, previous_move_ms + stepper_inactive_time); diff --git a/Marlin/src/inc/Conditionals_LCD.h b/Marlin/src/inc/Conditionals_LCD.h index 403db47e42..60bc653560 100644 --- a/Marlin/src/inc/Conditionals_LCD.h +++ b/Marlin/src/inc/Conditionals_LCD.h @@ -624,7 +624,7 @@ #undef PREVENT_LENGTHY_EXTRUDE #undef FILAMENT_RUNOUT_SENSOR #undef FILAMENT_RUNOUT_DISTANCE_MM - #undef DISABLE_INACTIVE_EXTRUDER + #undef DISABLE_OTHER_EXTRUDERS #endif #define E_OPTARG(N) OPTARG(HAS_MULTI_EXTRUDER, N) @@ -678,7 +678,7 @@ // No inactive extruders with SWITCHING_NOZZLE or Průša MMU1 #if HAS_SWITCHING_NOZZLE || HAS_PRUSA_MMU1 - #undef DISABLE_INACTIVE_EXTRUDER + #undef DISABLE_OTHER_EXTRUDERS #endif // Průša MMU1, MMU(S) 2.0 and EXTENDABLE_EMU_MMU2(S) force SINGLENOZZLE @@ -934,6 +934,15 @@ #undef MAX_SOFTWARE_ENDSTOP_W #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 #define HAS_X2_STEPPER 1 // Dual X Carriage isn't known yet. TODO: Consider moving it to Configuration.h. diff --git a/Marlin/src/inc/Conditionals_adv.h b/Marlin/src/inc/Conditionals_adv.h index 5079a93c1d..c3f244b6bb 100644 --- a/Marlin/src/inc/Conditionals_adv.h +++ b/Marlin/src/inc/Conditionals_adv.h @@ -93,7 +93,7 @@ #undef ARC_SUPPORT #undef CALIBRATION_MEASURE_YMAX #undef CALIBRATION_MEASURE_YMIN - #undef DISABLE_INACTIVE_Y + #undef DISABLE_IDLE_Y #undef HOME_Y_BEFORE_X #undef INPUT_SHAPING_Y #undef QUICK_HOME @@ -108,7 +108,7 @@ #undef CALIBRATION_MEASURE_ZMAX #undef CALIBRATION_MEASURE_ZMIN #undef CNC_WORKSPACE_PLANES - #undef DISABLE_INACTIVE_Z + #undef DISABLE_IDLE_Z #undef ENABLE_LEVELING_FADE_HEIGHT #undef HOME_Z_FIRST #undef HOMING_Z_WITH_PROBE @@ -124,7 +124,7 @@ #if !HAS_I_AXIS #undef CALIBRATION_MEASURE_IMAX #undef CALIBRATION_MEASURE_IMIN - #undef DISABLE_INACTIVE_I + #undef DISABLE_IDLE_I #undef SAFE_BED_LEVELING_START_I #undef STEALTHCHOP_I #undef STEP_STATE_I @@ -133,7 +133,7 @@ #if !HAS_J_AXIS #undef CALIBRATION_MEASURE_JMAX #undef CALIBRATION_MEASURE_JMIN - #undef DISABLE_INACTIVE_J + #undef DISABLE_IDLE_J #undef SAFE_BED_LEVELING_START_J #undef STEALTHCHOP_J #undef STEP_STATE_J @@ -142,7 +142,7 @@ #if !HAS_K_AXIS #undef CALIBRATION_MEASURE_KMAX #undef CALIBRATION_MEASURE_KMIN - #undef DISABLE_INACTIVE_K + #undef DISABLE_IDLE_K #undef SAFE_BED_LEVELING_START_K #undef STEALTHCHOP_K #undef STEP_STATE_K @@ -151,7 +151,7 @@ #if !HAS_U_AXIS #undef CALIBRATION_MEASURE_UMAX #undef CALIBRATION_MEASURE_UMIN - #undef DISABLE_INACTIVE_U + #undef DISABLE_IDLE_U #undef SAFE_BED_LEVELING_START_U #undef STEALTHCHOP_U #undef STEP_STATE_U @@ -160,7 +160,7 @@ #if !HAS_V_AXIS #undef CALIBRATION_MEASURE_VMAX #undef CALIBRATION_MEASURE_VMIN - #undef DISABLE_INACTIVE_V + #undef DISABLE_IDLE_V #undef SAFE_BED_LEVELING_START_V #undef STEALTHCHOP_V #undef STEP_STATE_V @@ -169,7 +169,7 @@ #if !HAS_W_AXIS #undef CALIBRATION_MEASURE_WMAX #undef CALIBRATION_MEASURE_WMIN - #undef DISABLE_INACTIVE_W + #undef DISABLE_IDLE_W #undef SAFE_BED_LEVELING_START_W #undef STEALTHCHOP_W #undef STEP_STATE_W @@ -180,6 +180,7 @@ #define NO_VOLUMETRICS #undef ADVANCED_PAUSE_FEATURE #undef AUTOTEMP + #undef DISABLE_IDLE_E #undef EXTRUDER_RUNOUT_PREVENT #undef FILAMENT_LOAD_UNLOAD_GCODES #undef FWRETRACT @@ -194,6 +195,43 @@ #undef WATCH_TEMP_PERIOD #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 #undef E7_AUTO_FAN_PIN #if HOTENDS <= 6 diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h index edd3edf246..bf9ede65dc 100644 --- a/Marlin/src/inc/Conditionals_post.h +++ b/Marlin/src/inc/Conditionals_post.h @@ -1487,43 +1487,6 @@ #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 #if HAS_EXTRUDERS diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index 70dcd590fd..88dd13a054 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -674,8 +674,8 @@ #error "EXPERIMENTAL_SCURVE is no longer needed and should be removed." #elif defined(BABYSTEP_ZPROBE_GFX_OVERLAY) #error "BABYSTEP_ZPROBE_GFX_OVERLAY is now BABYSTEP_GFX_OVERLAY." -#elif defined(DISABLE_INACTIVE_E) - #error "DISABLE_INACTIVE_E is now set with DISABLE_INACTIVE_EXTRUDER." +#elif defined(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) #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) @@ -692,6 +692,12 @@ || defined(U_MAX_ENDSTOP_INVERTING) || defined(V_MAX_ENDSTOP_INVERTING) || defined(W_MAX_ENDSTOP_INVERTING) \ || defined(Z_MIN_PROBE_ENDSTOP_INVERTING) #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 // 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." #elif ENABLED(SINGLENOZZLE) #error "MIXING_EXTRUDER is incompatible with SINGLENOZZLE." - #elif ENABLED(DISABLE_INACTIVE_EXTRUDER) - #error "MIXING_EXTRUDER is incompatible with DISABLE_INACTIVE_EXTRUDER." + #elif ENABLED(DISABLE_OTHER_EXTRUDERS) + #error "MIXING_EXTRUDER is incompatible with DISABLE_OTHER_EXTRUDERS." #elif HAS_FILAMENT_RUNOUT_DISTANCE #error "MIXING_EXTRUDER is incompatible with FILAMENT_RUNOUT_DISTANCE_MM." #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 */ -#if ANY(DISABLE_X, DISABLE_Y, DISABLE_Z, DISABLE_I, DISABLE_J, DISABLE_K, DISABLE_U, DISABLE_V, DISABLE_W) - #if EITHER(HOME_AFTER_DEACTIVATE, Z_SAFE_HOMING) - #error "DISABLE_[XYZIJKUVW] is not compatible with HOME_AFTER_DEACTIVATE or Z_SAFE_HOMING." - #endif +#if HAS_DISABLE_MAIN_AXES && EITHER(HOME_AFTER_DEACTIVATE, Z_SAFE_HOMING) + #error "DISABLE_[XYZIJKUVW] is not compatible with HOME_AFTER_DEACTIVATE or Z_SAFE_HOMING." #endif /** @@ -4264,7 +4268,7 @@ static_assert(_PLUS_TEST(4), "HOMING_FEEDRATE_MM_M values must be positive."); #undef _PIN_CONFLICT #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 diff --git a/Marlin/src/module/planner.cpp b/Marlin/src/module/planner.cpp index 12e879af96..8e77a7c979 100644 --- a/Marlin/src/module/planner.cpp +++ b/Marlin/src/module/planner.cpp @@ -215,7 +215,7 @@ uint32_t Planner::acceleration_long_cutoff; xyze_float_t Planner::previous_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 }; #endif @@ -1320,7 +1320,7 @@ void Planner::recalculate(TERN_(HINTS_SAFE_EXIT_SPEED, const_float_t safe_exit_s */ void Planner::check_axes_activity() { - #if HAS_DISABLE_AXIS + #if HAS_DISABLE_AXES xyze_bool_t axis_active = { false }; #endif @@ -1360,7 +1360,7 @@ void Planner::check_axes_activity() { TERN_(HAS_HEATER_2, tail_e_to_p_pressure = block->e_to_p_pressure); #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)) { block_t * const bnext = &block_buffer[b]; LOGICAL_AXIS_CODE( @@ -1401,18 +1401,20 @@ void Planner::check_axes_activity() { // // Disable inactive axes // - LOGICAL_AXIS_CODE( - if (TERN0(DISABLE_E, !axis_active.e)) stepper.disable_e_steppers(), - if (TERN0(DISABLE_X, !axis_active.x)) stepper.disable_axis(X_AXIS), - if (TERN0(DISABLE_Y, !axis_active.y)) stepper.disable_axis(Y_AXIS), - if (TERN0(DISABLE_Z, !axis_active.z)) stepper.disable_axis(Z_AXIS), - if (TERN0(DISABLE_I, !axis_active.i)) stepper.disable_axis(I_AXIS), - if (TERN0(DISABLE_J, !axis_active.j)) stepper.disable_axis(J_AXIS), - if (TERN0(DISABLE_K, !axis_active.k)) stepper.disable_axis(K_AXIS), - if (TERN0(DISABLE_U, !axis_active.u)) stepper.disable_axis(U_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) - ); + #if HAS_DISABLE_AXES + LOGICAL_AXIS_CODE( + if (TERN0(DISABLE_E, !axis_active.e)) stepper.disable_e_steppers(), + if (TERN0(DISABLE_X, !axis_active.x)) stepper.disable_axis(X_AXIS), + if (TERN0(DISABLE_Y, !axis_active.y)) stepper.disable_axis(Y_AXIS), + if (TERN0(DISABLE_Z, !axis_active.z)) stepper.disable_axis(Z_AXIS), + if (TERN0(DISABLE_I, !axis_active.i)) stepper.disable_axis(I_AXIS), + if (TERN0(DISABLE_J, !axis_active.j)) stepper.disable_axis(J_AXIS), + if (TERN0(DISABLE_K, !axis_active.k)) stepper.disable_axis(K_AXIS), + if (TERN0(DISABLE_U, !axis_active.u)) stepper.disable_axis(U_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 @@ -2276,7 +2278,7 @@ bool Planner::_populate_block( if (esteps) { 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 LOOP_L_N(i, E_STEPPERS) diff --git a/Marlin/src/module/planner.h b/Marlin/src/module/planner.h index 9497912d2f..ccf6ba08d3 100644 --- a/Marlin/src/module/planner.h +++ b/Marlin/src/module/planner.h @@ -352,7 +352,7 @@ typedef struct { } skew_factor_t; #endif -#if ENABLED(DISABLE_INACTIVE_EXTRUDER) +#if ENABLED(DISABLE_OTHER_EXTRUDERS) typedef uvalue_t(BLOCK_BUFFER_SIZE * 2) last_move_t; #endif @@ -533,7 +533,7 @@ class Planner { static float last_fade_z; #endif - #if ENABLED(DISABLE_INACTIVE_EXTRUDER) + #if ENABLED(DISABLE_OTHER_EXTRUDERS) // Counters to manage disabling inactive extruder steppers static last_move_t extruder_last_move[E_STEPPERS]; #endif diff --git a/buildroot/tests/mega2560 b/buildroot/tests/mega2560 index ae3d1c45f8..c2a3452e67 100755 --- a/buildroot/tests/mega2560 +++ b/buildroot/tests/mega2560 @@ -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 \ 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 -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" # diff --git a/buildroot/tests/rambo b/buildroot/tests/rambo index 7e6f71364c..ca6aae471f 100755 --- a/buildroot/tests/rambo +++ b/buildroot/tests/rambo @@ -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 \ VOLUMETRIC_DEFAULT_ON NO_WORKSPACE_OFFSETS EXTRA_FAN_SPEED FWRETRACT \ 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" # clean up diff --git a/buildroot/tests/teensy35 b/buildroot/tests/teensy35 index d9e7839da8..fd6ae86387 100755 --- a/buildroot/tests/teensy35 +++ b/buildroot/tests/teensy35 @@ -68,7 +68,7 @@ exec_test $1 $2 "PARKING_EXTRUDER with LCD" "$3" restore_configs 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_disable DISABLE_INACTIVE_EXTRUDER +opt_disable DISABLE_OTHER_EXTRUDERS exec_test $1 $2 "Mixing Extruder" "$3" # diff --git a/buildroot/tests/teensy41 b/buildroot/tests/teensy41 index f852474ac0..11b5e34025 100755 --- a/buildroot/tests/teensy41 +++ b/buildroot/tests/teensy41 @@ -71,7 +71,7 @@ exec_test $1 $2 "Ethernet, EEPROM, Magnetic Parking Extruder, No LCD" "$3" restore_configs opt_set MOTHERBOARD BOARD_TEENSY41 MIXING_STEPPERS 2 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" #