diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index b7d376255..1cef467d6 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -373,7 +373,9 @@ bool check_fsensor(); //! 1) Z-axis position is less than 2.0mm (only allowed during the first couple of layers) //! 2) Not allowed during Homing (printer busy) //! 3) Not allowed during Mesh Bed Leveling (printer busy) -//! 4) Allowed if there are queued blocks OR there is a print job running +//! 4) Allowed if: +//! - First Layer Calibration is running +//! - OR there are queued blocks, printJob is running and it's not paused, and Z-axis position is less than 2.0mm (only allowed during the first couple of layers) bool babystep_allowed(); extern void calculate_extruder_multipliers(); diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 1d71c3f01..8b1562955 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -549,9 +549,9 @@ bool check_fsensor() { } bool __attribute__((noinline)) babystep_allowed() { - return ( (current_position[Z_AXIS] < Z_HEIGHT_HIDE_LIVE_ADJUST_MENU) - && !homing_flag && !mesh_bed_leveling_flag - && ( blocks_queued() || lcd_commands_type == LcdCommands::Layer1Cal || ( !isPrintPaused && printJobOngoing() )) + return ( !homing_flag + && !mesh_bed_leveling_flag + && ( lcd_commands_type == LcdCommands::Layer1Cal || ( blocks_queued() && !isPrintPaused && printJobOngoing() && (current_position[Z_AXIS] < Z_HEIGHT_HIDE_LIVE_ADJUST_MENU))) ); }