Przeglądaj źródła

PROBING_HEATERS_OFF sub-option WAIT_FOR_HOTEND (#20835)

Katelyn Schiesser 4 lat temu
rodzic
commit
735c1b6183

+ 1
- 0
Marlin/Configuration.h Wyświetl plik

1139
 //#define PROBING_HEATERS_OFF       // Turn heaters off when probing
1139
 //#define PROBING_HEATERS_OFF       // Turn heaters off when probing
1140
 #if ENABLED(PROBING_HEATERS_OFF)
1140
 #if ENABLED(PROBING_HEATERS_OFF)
1141
   //#define WAIT_FOR_BED_HEATER     // Wait for bed to heat back up between probes (to improve accuracy)
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
 #endif
1143
 #endif
1143
 //#define PROBING_FANS_OFF          // Turn fans off when probing
1144
 //#define PROBING_FANS_OFF          // Turn fans off when probing
1144
 //#define PROBING_STEPPERS_OFF      // Turn steppers off (unless needed to hold position) when probing
1145
 //#define PROBING_STEPPERS_OFF      // Turn steppers off (unless needed to hold position) when probing

+ 6
- 1
Marlin/src/module/motion.cpp Wyświetl plik

1318
     if (is_home_dir) {
1318
     if (is_home_dir) {
1319
 
1319
 
1320
       if (TERN0(HOMING_Z_WITH_PROBE, axis == Z_AXIS)) {
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
           // Wait for bed to heat back up between probing points
1322
           // Wait for bed to heat back up between probing points
1323
           thermalManager.wait_for_bed_heating();
1323
           thermalManager.wait_for_bed_heating();
1324
         #endif
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
         TERN_(HAS_QUIET_PROBING, if (final_approach) probe.set_probing_paused(true));
1331
         TERN_(HAS_QUIET_PROBING, if (final_approach) probe.set_probing_paused(true));
1327
       }
1332
       }
1328
 
1333
 

+ 4
- 0
Marlin/src/module/probe.cpp Wyświetl plik

478
     thermalManager.wait_for_bed_heating();
478
     thermalManager.wait_for_bed_heating();
479
   #endif
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
   if (TERN0(BLTOUCH_SLOW_MODE, bltouch.deploy())) return true; // Deploy in LOW SPEED MODE on every probe action
485
   if (TERN0(BLTOUCH_SLOW_MODE, bltouch.deploy())) return true; // Deploy in LOW SPEED MODE on every probe action
482
 
486
 
483
   // Disable stealthChop if used. Enable diag1 pin on driver.
487
   // Disable stealthChop if used. Enable diag1 pin on driver.

+ 11
- 0
Marlin/src/module/temperature.cpp Wyświetl plik

3447
       return false;
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
   #endif // HAS_TEMP_HOTEND
3461
   #endif // HAS_TEMP_HOTEND
3451
 
3462
 
3452
   #if HAS_HEATED_BED
3463
   #if HAS_HEATED_BED

+ 4
- 0
Marlin/src/module/temperature.h Wyświetl plik

630
             , const bool click_to_cancel=false
630
             , const bool click_to_cancel=false
631
           #endif
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
       #endif
637
       #endif
634
 
638
 
635
       FORCE_INLINE static bool still_heating(const uint8_t e) {
639
       FORCE_INLINE static bool still_heating(const uint8_t e) {

Ładowanie…
Anuluj
Zapisz