PROBING_HEATERS_OFF sub-option WAIT_FOR_HOTEND (#20835)

This commit is contained in:
Katelyn Schiesser 2021-02-25 06:28:27 -08:00 committed by Scott Lahteine
parent bb1039d4c9
commit 735c1b6183
5 changed files with 26 additions and 1 deletions

View File

@ -1139,6 +1139,7 @@
//#define PROBING_HEATERS_OFF // Turn heaters off when probing //#define PROBING_HEATERS_OFF // Turn heaters off when probing
#if ENABLED(PROBING_HEATERS_OFF) #if ENABLED(PROBING_HEATERS_OFF)
//#define WAIT_FOR_BED_HEATER // Wait for bed to heat back up between probes (to improve accuracy) //#define WAIT_FOR_BED_HEATER // Wait for bed to heat back up between probes (to improve accuracy)
//#define WAIT_FOR_HOTEND // Wait for hotend to heat back up between probes (to improve accuracy & prevent cold extrude)
#endif #endif
//#define PROBING_FANS_OFF // Turn fans off when probing //#define PROBING_FANS_OFF // Turn fans off when probing
//#define PROBING_STEPPERS_OFF // Turn steppers off (unless needed to hold position) when probing //#define PROBING_STEPPERS_OFF // Turn steppers off (unless needed to hold position) when probing

View File

@ -1318,11 +1318,16 @@ void prepare_line_to_destination() {
if (is_home_dir) { if (is_home_dir) {
if (TERN0(HOMING_Z_WITH_PROBE, axis == Z_AXIS)) { if (TERN0(HOMING_Z_WITH_PROBE, axis == Z_AXIS)) {
#if ALL(HAS_HEATED_BED, WAIT_FOR_BED_HEATER) #if BOTH(HAS_HEATED_BED, WAIT_FOR_BED_HEATER)
// Wait for bed to heat back up between probing points // Wait for bed to heat back up between probing points
thermalManager.wait_for_bed_heating(); thermalManager.wait_for_bed_heating();
#endif #endif
#if BOTH(HAS_HOTEND, WAIT_FOR_HOTEND)
// Wait for the hotend to heat back up between probing points
thermalManager.wait_for_hotend_heating(active_extruder);
#endif
TERN_(HAS_QUIET_PROBING, if (final_approach) probe.set_probing_paused(true)); TERN_(HAS_QUIET_PROBING, if (final_approach) probe.set_probing_paused(true));
} }

View File

@ -478,6 +478,10 @@ bool Probe::probe_down_to_z(const float z, const feedRate_t fr_mm_s) {
thermalManager.wait_for_bed_heating(); thermalManager.wait_for_bed_heating();
#endif #endif
#if BOTH(HAS_TEMP_HOTEND, WAIT_FOR_HOTEND)
thermalManager.wait_for_hotend_heating(active_extruder);
#endif
if (TERN0(BLTOUCH_SLOW_MODE, bltouch.deploy())) return true; // Deploy in LOW SPEED MODE on every probe action if (TERN0(BLTOUCH_SLOW_MODE, bltouch.deploy())) return true; // Deploy in LOW SPEED MODE on every probe action
// Disable stealthChop if used. Enable diag1 pin on driver. // Disable stealthChop if used. Enable diag1 pin on driver.

View File

@ -3447,6 +3447,17 @@ void Temperature::tick() {
return false; return false;
} }
#if ENABLED(WAIT_FOR_HOTEND)
void Temperature::wait_for_hotend_heating(const uint8_t target_extruder) {
if (isHeatingHotend(target_extruder)) {
SERIAL_ECHOLNPGM("Wait for hotend heating...");
LCD_MESSAGEPGM(MSG_HEATING);
wait_for_hotend(target_extruder);
ui.reset_status();
}
}
#endif
#endif // HAS_TEMP_HOTEND #endif // HAS_TEMP_HOTEND
#if HAS_HEATED_BED #if HAS_HEATED_BED

View File

@ -630,6 +630,10 @@ class Temperature {
, const bool click_to_cancel=false , const bool click_to_cancel=false
#endif #endif
); );
#if ENABLED(WAIT_FOR_HOTEND)
static void wait_for_hotend_heating(const uint8_t target_extruder);
#endif
#endif #endif
FORCE_INLINE static bool still_heating(const uint8_t e) { FORCE_INLINE static bool still_heating(const uint8_t e) {