瀏覽代碼

PROBING_HEATERS_OFF sub-option WAIT_FOR_HOTEND (#20835)

Katelyn Schiesser 4 年之前
父節點
當前提交
735c1b6183

+ 1
- 0
Marlin/Configuration.h 查看文件

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

+ 6
- 1
Marlin/src/module/motion.cpp 查看文件

@@ -1318,11 +1318,16 @@ void prepare_line_to_destination() {
1318 1318
     if (is_home_dir) {
1319 1319
 
1320 1320
       if (TERN0(HOMING_Z_WITH_PROBE, axis == Z_AXIS)) {
1321
-        #if ALL(HAS_HEATED_BED, WAIT_FOR_BED_HEATER)
1321
+        #if BOTH(HAS_HEATED_BED, WAIT_FOR_BED_HEATER)
1322 1322
           // Wait for bed to heat back up between probing points
1323 1323
           thermalManager.wait_for_bed_heating();
1324 1324
         #endif
1325 1325
 
1326
+        #if BOTH(HAS_HOTEND, WAIT_FOR_HOTEND)
1327
+          // Wait for the hotend to heat back up between probing points
1328
+          thermalManager.wait_for_hotend_heating(active_extruder);
1329
+        #endif
1330
+
1326 1331
         TERN_(HAS_QUIET_PROBING, if (final_approach) probe.set_probing_paused(true));
1327 1332
       }
1328 1333
 

+ 4
- 0
Marlin/src/module/probe.cpp 查看文件

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

+ 11
- 0
Marlin/src/module/temperature.cpp 查看文件

@@ -3447,6 +3447,17 @@ void Temperature::tick() {
3447 3447
       return false;
3448 3448
     }
3449 3449
 
3450
+    #if ENABLED(WAIT_FOR_HOTEND)
3451
+      void Temperature::wait_for_hotend_heating(const uint8_t target_extruder) {
3452
+        if (isHeatingHotend(target_extruder)) {
3453
+          SERIAL_ECHOLNPGM("Wait for hotend heating...");
3454
+          LCD_MESSAGEPGM(MSG_HEATING);
3455
+          wait_for_hotend(target_extruder);
3456
+          ui.reset_status();
3457
+        }
3458
+      }
3459
+    #endif
3460
+
3450 3461
   #endif // HAS_TEMP_HOTEND
3451 3462
 
3452 3463
   #if HAS_HEATED_BED

+ 4
- 0
Marlin/src/module/temperature.h 查看文件

@@ -630,6 +630,10 @@ class Temperature {
630 630
             , const bool click_to_cancel=false
631 631
           #endif
632 632
         );
633
+
634
+        #if ENABLED(WAIT_FOR_HOTEND)
635
+          static void wait_for_hotend_heating(const uint8_t target_extruder);
636
+        #endif
633 637
       #endif
634 638
 
635 639
       FORCE_INLINE static bool still_heating(const uint8_t e) {

Loading…
取消
儲存