diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 77636b39b4..fa41530431 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -2199,7 +2199,7 @@ #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. #define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. - #define HOME_BEFORE_FILAMENT_CHANGE // If needed, home before parking for filament change + //#define HOME_BEFORE_FILAMENT_CHANGE // If needed, home before parking for filament change #define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) diff --git a/Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.cpp b/Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.cpp index 508f154697..6178b27bac 100644 --- a/Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.cpp +++ b/Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.cpp @@ -973,10 +973,10 @@ void DGUSScreenHandler::HandleLiveAdjustZ(DGUS_VP_Variable &var, void *val_ptr) SERIAL_ECHO(" - Difference: "); SERIAL_ECHO_F(difference); - int16_t steps = ExtUI::mmToWholeSteps(difference, ExtUI::axis_t::Z); + float steps = ExtUI::mmToWholeSteps(difference, ExtUI::axis_t::Z); SERIAL_ECHO(" - Steps: "); - SERIAL_ECHO_F(steps); + SERIAL_ECHO_F(steps, 2); SERIAL_ECHOLN(";"); ExtUI::smartAdjustAxis_steps(steps, ExtUI::axis_t::Z, true); diff --git a/Marlin/src/module/probe.cpp b/Marlin/src/module/probe.cpp index 925538ef83..a69f9becb1 100644 --- a/Marlin/src/module/probe.cpp +++ b/Marlin/src/module/probe.cpp @@ -337,8 +337,21 @@ FORCE_INLINE void probe_specific_action(const bool deploy) { #if PROBING_BED_TEMP || LEVELING_BED_TEMP #define WAIT_FOR_BED_HEAT #endif - const uint16_t hotendPreheat = TERN0(WAIT_FOR_NOZZLE_HEAT, thermalManager.degHotend(0) < hotend_temp) ? hotend_temp : 0, - bedPreheat = TERN0(WAIT_FOR_BED_HEAT, thermalManager.degBed() < bed_temp) ? bed_temp : 0; + + #if ENABLED(WAIT_FOR_NOZZLE_HEAT) + uint16_t hotendPreheat; + if (thermalManager.degHotend(0) < hotend_temp && thermalManager.degTargetHotend(0) < hotend_temp) hotendPreheat = hotend_temp; + else if (thermalManager.degTargetHotend(0) < hotend_temp) hotendPreheat = thermalManager.degTargetHotend(0); + else hotendPreheat = 0; + #endif + + #if ENABLED(WAIT_FOR_BED_HEAT) + uint16_t bedPreheat; + if (thermalManager.degBed() < bed_temp && thermalManager.degTargetBed() < hotend_temp) bedPreheat = bed_temp; + else if (thermalManager.degTargetBed() < bed_temp) bedPreheat = thermalManager.degTargetBed(); + else bedPreheat = 0; + #endif + DEBUG_ECHOPGM("Preheating "); if (hotendPreheat) { DEBUG_ECHOPAIR("hotend (", hotendPreheat, ") "); @@ -347,10 +360,10 @@ FORCE_INLINE void probe_specific_action(const bool deploy) { if (bedPreheat) DEBUG_ECHOPAIR("bed (", bedPreheat, ") "); DEBUG_EOL(); - TERN_(WAIT_FOR_NOZZLE_HEAT, if (hotendPreheat) thermalManager.setTargetHotend(hotendPreheat, 0)); - TERN_(WAIT_FOR_BED_HEAT, if (bedPreheat) thermalManager.setTargetBed(bedPreheat)); - TERN_(WAIT_FOR_NOZZLE_HEAT, if (hotendPreheat) thermalManager.wait_for_hotend(0)); - TERN_(WAIT_FOR_BED_HEAT, if (bedPreheat) thermalManager.wait_for_bed_heating()); + TERN_(WAIT_FOR_NOZZLE_HEAT, if (hotendPreheat==hotend_temp) thermalManager.setTargetHotend(hotendPreheat, 0)); + TERN_(WAIT_FOR_BED_HEAT, if (bedPreheat==bed_temp) thermalManager.setTargetBed(bedPreheat)); + TERN_(WAIT_FOR_NOZZLE_HEAT, if (thermalManager.degTargetHotend(0) < hotend_temp) thermalManager.wait_for_hotend(0)); + TERN_(WAIT_FOR_BED_HEAT, if (thermalManager.degTargetBed() < bed_temp) thermalManager.wait_for_bed_heating()); } #endif