PROBING_HEATERS_OFF sub-option WAIT_FOR_HOTEND (#20835)
This commit is contained in:
		
							parent
							
								
									f3d15b995c
								
							
						
					
					
						commit
						7240c2172b
					
				@ -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
 | 
				
			||||||
 | 
				
			|||||||
@ -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));
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -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.
 | 
				
			||||||
 | 
				
			|||||||
@ -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
 | 
				
			||||||
 | 
				
			|||||||
@ -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) {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user