Skip to content

Commit

Permalink
PROBING_HEATERS_OFF sub-option WAIT_FOR_HOTEND (#20835)
Browse files Browse the repository at this point in the history
  • Loading branch information
slowbro authored and thinkyhead committed Apr 29, 2021
1 parent f3d15b9 commit 7240c21
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 1 deletion.
1 change: 1 addition & 0 deletions Marlin/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -1139,6 +1139,7 @@
//#define PROBING_HEATERS_OFF // Turn heaters off when probing
#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_HOTEND // Wait for hotend to heat back up between probes (to improve accuracy & prevent cold extrude)
#endif
//#define PROBING_FANS_OFF // Turn fans off when probing
//#define PROBING_STEPPERS_OFF // Turn steppers off (unless needed to hold position) when probing
Expand Down
7 changes: 6 additions & 1 deletion Marlin/src/module/motion.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1318,11 +1318,16 @@ void prepare_line_to_destination() {
if (is_home_dir) {

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
thermalManager.wait_for_bed_heating();
#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));
}

Expand Down
4 changes: 4 additions & 0 deletions Marlin/src/module/probe.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -478,6 +478,10 @@ bool Probe::probe_down_to_z(const float z, const feedRate_t fr_mm_s) {
thermalManager.wait_for_bed_heating();
#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

// Disable stealthChop if used. Enable diag1 pin on driver.
Expand Down
11 changes: 11 additions & 0 deletions Marlin/src/module/temperature.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3447,6 +3447,17 @@ void Temperature::tick() {
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

#if HAS_HEATED_BED
Expand Down
4 changes: 4 additions & 0 deletions Marlin/src/module/temperature.h
Original file line number Diff line number Diff line change
Expand Up @@ -630,6 +630,10 @@ class Temperature {
, const bool click_to_cancel=false
#endif
);

#if ENABLED(WAIT_FOR_HOTEND)
static void wait_for_hotend_heating(const uint8_t target_extruder);
#endif
#endif

FORCE_INLINE static bool still_heating(const uint8_t e) {
Expand Down

0 comments on commit 7240c21

Please sign in to comment.