Fix "too cold" in M600 (#19332)
This commit is contained in:
		| @@ -381,7 +381,7 @@ uint8_t did_pause_print = 0; | ||||
|  | ||||
| bool pause_print(const float &retract, const xyz_pos_t &park_point, const float &unload_length/*=0*/, const bool show_lcd/*=false*/ DXC_ARGS) { | ||||
|   DEBUG_SECTION(pp, "pause_print", true); | ||||
|   DEBUG_ECHOLNPAIR("... retract:", retract, " park.x:", park_point.x, " y:", park_point.y, " z:", park_point.z, " unloadlen:", unload_length, " showlcd:", int(show_lcd) DXC_SAY); | ||||
|   DEBUG_ECHOLNPAIR("... park.x:", park_point.x, " y:", park_point.y, " z:", park_point.z, " unloadlen:", unload_length, " showlcd:", int(show_lcd) DXC_SAY); | ||||
|  | ||||
|   UNUSED(show_lcd); | ||||
|  | ||||
| @@ -397,19 +397,6 @@ bool pause_print(const float &retract, const xyz_pos_t &park_point, const float | ||||
|  | ||||
|   TERN_(HOST_PROMPT_SUPPORT, host_prompt_open(PROMPT_INFO, PSTR("Pause"), DISMISS_STR)); | ||||
|  | ||||
|   if (!DEBUGGING(DRYRUN) && unload_length && thermalManager.targetTooColdToExtrude(active_extruder)) { | ||||
|     SERIAL_ECHO_MSG(STR_ERR_HOTEND_TOO_COLD); | ||||
|  | ||||
|     #if HAS_LCD_MENU | ||||
|       if (show_lcd) { // Show status screen | ||||
|         lcd_pause_show_message(PAUSE_MESSAGE_STATUS); | ||||
|         LCD_MESSAGEPGM(MSG_M600_TOO_COLD); | ||||
|       } | ||||
|     #endif | ||||
|  | ||||
|     return false; // unable to reach safe temperature | ||||
|   } | ||||
|  | ||||
|   // Indicate that the printer is paused | ||||
|   ++did_pause_print; | ||||
|  | ||||
| @@ -434,8 +421,10 @@ bool pause_print(const float &retract, const xyz_pos_t &park_point, const float | ||||
|   #endif | ||||
|  | ||||
|   // Initial retract before move to filament change position | ||||
|   if (retract && thermalManager.hotEnoughToExtrude(active_extruder)) | ||||
|   if (retract && thermalManager.hotEnoughToExtrude(active_extruder)) { | ||||
|     DEBUG_ECHOLNPAIR("... retract:", retract); | ||||
|     unscaled_e_move(retract, PAUSE_PARK_RETRACT_FEEDRATE); | ||||
|   } | ||||
|  | ||||
|   // Park the nozzle by moving up by z_lift and then moving to (x_pos, y_pos) | ||||
|   if (!axes_should_home()) | ||||
| @@ -603,11 +592,12 @@ void resume_print(const float &slow_load_length/*=0*/, const float &fast_load_le | ||||
|     thermalManager.reset_hotend_idle_timer(e); | ||||
|   } | ||||
|  | ||||
|   if (targetTemp > thermalManager.degTargetHotend(active_extruder)) | ||||
|   if (targetTemp > thermalManager.degTargetHotend(active_extruder)) { | ||||
|     thermalManager.setTargetHotend(targetTemp, active_extruder); | ||||
|   } | ||||
|  | ||||
|   if (nozzle_timed_out || thermalManager.hotEnoughToExtrude(active_extruder)) // Load the new filament | ||||
|     load_filament(slow_load_length, fast_load_length, purge_length, max_beep_count, true, nozzle_timed_out, PAUSE_MODE_SAME DXC_PASS); | ||||
|   // Load the new filament | ||||
|   load_filament(slow_load_length, fast_load_length, purge_length, max_beep_count, true, nozzle_timed_out, PAUSE_MODE_SAME DXC_PASS); | ||||
|  | ||||
|   if (targetTemp > 0) { | ||||
|     thermalManager.setTargetHotend(targetTemp, active_extruder); | ||||
|   | ||||
| @@ -162,9 +162,6 @@ void GcodeSuite::M600() { | ||||
|                    beep_count, (parser.seenval('R') ? parser.value_celsius() : 0) DXC_PASS); | ||||
|     #endif | ||||
|   } | ||||
|   else { | ||||
|     TERN_(HAS_FILAMENT_SENSOR, runout.reset()); | ||||
|   } | ||||
|  | ||||
|   #if EXTRUDERS > 1 | ||||
|     // Restore toolhead if it was changed | ||||
|   | ||||
| @@ -501,7 +501,6 @@ namespace Language_cz { | ||||
|   PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM              = _UxGT("Délka mm senz.fil."); | ||||
|   PROGMEM Language_Str MSG_KILL_HOMING_FAILED              = _UxGT("Parkování selhalo"); | ||||
|   PROGMEM Language_Str MSG_LCD_PROBING_FAILED              = _UxGT("Kalibrace selhala"); | ||||
|   PROGMEM Language_Str MSG_M600_TOO_COLD                   = _UxGT("M600: Moc studený"); | ||||
|  | ||||
|   PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER     = _UxGT("VYBERTE FILAMENT"); | ||||
|   PROGMEM Language_Str MSG_MMU2_MENU                       = _UxGT("MMU"); | ||||
|   | ||||
| @@ -536,7 +536,6 @@ namespace Language_de { | ||||
|   PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM              = _UxGT("Runout-Weg mm"); | ||||
|   PROGMEM Language_Str MSG_KILL_HOMING_FAILED              = _UxGT("Homing gescheitert"); | ||||
|   PROGMEM Language_Str MSG_LCD_PROBING_FAILED              = _UxGT("Probing gescheitert"); | ||||
|   PROGMEM Language_Str MSG_M600_TOO_COLD                   = _UxGT("M600: zu kalt"); | ||||
|  | ||||
|   PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER     = _UxGT("FILAMENT WÄHLEN"); | ||||
|   PROGMEM Language_Str MSG_MMU2_MENU                       = _UxGT("MMU"); | ||||
|   | ||||
| @@ -541,7 +541,6 @@ namespace Language_en { | ||||
|   PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM              = _UxGT("Runout Dist mm"); | ||||
|   PROGMEM Language_Str MSG_KILL_HOMING_FAILED              = _UxGT("Homing Failed"); | ||||
|   PROGMEM Language_Str MSG_LCD_PROBING_FAILED              = _UxGT("Probing Failed"); | ||||
|   PROGMEM Language_Str MSG_M600_TOO_COLD                   = _UxGT("M600: Too Cold"); | ||||
|  | ||||
|   PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER     = _UxGT("CHOOSE FILAMENT"); | ||||
|   PROGMEM Language_Str MSG_MMU2_MENU                       = _UxGT("MMU"); | ||||
|   | ||||
| @@ -504,7 +504,6 @@ namespace Language_es { | ||||
|   PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM              = _UxGT("Dist. filamento mm"); | ||||
|   PROGMEM Language_Str MSG_KILL_HOMING_FAILED              = _UxGT("Ir a origen Fallado"); | ||||
|   PROGMEM Language_Str MSG_LCD_PROBING_FAILED              = _UxGT("Sondeo Fallado"); | ||||
|   PROGMEM Language_Str MSG_M600_TOO_COLD                   = _UxGT("M600: Muy Frio"); | ||||
|  | ||||
|   PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER     = _UxGT("ELIJE FILAMENTO"); | ||||
|   PROGMEM Language_Str MSG_MMU2_MENU                       = _UxGT("MMU"); | ||||
|   | ||||
| @@ -309,7 +309,6 @@ namespace Language_eu { | ||||
|   PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE          = _UxGT("  Pita: "); | ||||
|   PROGMEM Language_Str MSG_KILL_HOMING_FAILED              = _UxGT("Hasi. huts egin du"); | ||||
|   PROGMEM Language_Str MSG_LCD_PROBING_FAILED              = _UxGT("Neurketak huts egin du"); | ||||
|   PROGMEM Language_Str MSG_M600_TOO_COLD                   = _UxGT("M600: hotzegi"); | ||||
|  | ||||
|   PROGMEM Language_Str MSG_KILL_EXPECTED_PRINTER           = _UxGT("Inprimagailu okerra"); | ||||
|  | ||||
|   | ||||
| @@ -485,7 +485,6 @@ namespace Language_fr { | ||||
|   PROGMEM Language_Str MSG_RUNOUT_SENSOR                   = _UxGT("Capteur fil."); | ||||
|   PROGMEM Language_Str MSG_KILL_HOMING_FAILED              = _UxGT("Echec origine"); | ||||
|   PROGMEM Language_Str MSG_LCD_PROBING_FAILED              = _UxGT("Echec sonde"); | ||||
|   PROGMEM Language_Str MSG_M600_TOO_COLD                   = _UxGT("M600: Trop froid"); | ||||
|  | ||||
|   PROGMEM Language_Str MSG_KILL_MMU2_FIRMWARE              = _UxGT("MAJ firmware MMU!!"); | ||||
|   PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER     = _UxGT("CHOISIR FILAMENT"); | ||||
|   | ||||
| @@ -526,7 +526,6 @@ namespace Language_gl { | ||||
|   PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM              = _UxGT("Dist mm Sensor Fil"); | ||||
|   PROGMEM Language_Str MSG_KILL_HOMING_FAILED              = _UxGT("Fallo ao ir á Orixe"); | ||||
|   PROGMEM Language_Str MSG_LCD_PROBING_FAILED              = _UxGT("Fallo ao Sondar"); | ||||
|   PROGMEM Language_Str MSG_M600_TOO_COLD                   = _UxGT("M600: Moi Frío"); | ||||
|  | ||||
|   PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER     = _UxGT("ESCOLLE FILAMENTO"); | ||||
|   PROGMEM Language_Str MSG_MMU2_MENU                       = _UxGT("MMU"); | ||||
|   | ||||
| @@ -528,7 +528,6 @@ namespace Language_hu { | ||||
|   PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM              = _UxGT("Túlfutás Táv. mm"); | ||||
|   PROGMEM Language_Str MSG_KILL_HOMING_FAILED              = _UxGT("Tájolási hiba"); | ||||
|   PROGMEM Language_Str MSG_LCD_PROBING_FAILED              = _UxGT("Szondázás hiba"); | ||||
|   PROGMEM Language_Str MSG_M600_TOO_COLD                   = _UxGT("M600: Túl hideg"); | ||||
|  | ||||
|   PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER     = _UxGT("SZÁLVÁLASZTÁS"); | ||||
|   PROGMEM Language_Str MSG_MMU2_MENU                       = _UxGT("MMU"); | ||||
|   | ||||
| @@ -535,7 +535,6 @@ namespace Language_it { | ||||
|   PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM              = _UxGT("Dist mm filo term."); | ||||
|   PROGMEM Language_Str MSG_KILL_HOMING_FAILED              = _UxGT("Home fallito"); | ||||
|   PROGMEM Language_Str MSG_LCD_PROBING_FAILED              = _UxGT("Sondaggio fallito"); | ||||
|   PROGMEM Language_Str MSG_M600_TOO_COLD                   = _UxGT("M600:Troppo freddo"); | ||||
|  | ||||
|   PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER     = _UxGT("SCELTA FILAMENTO"); | ||||
|   PROGMEM Language_Str MSG_MMU2_MENU                       = _UxGT("MMU"); | ||||
|   | ||||
| @@ -474,7 +474,6 @@ namespace Language_pl { | ||||
|   PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM              = _UxGT("Dystans do czujnika mm"); | ||||
|   PROGMEM Language_Str MSG_KILL_HOMING_FAILED              = _UxGT("Zerowanie nieudane"); | ||||
|   PROGMEM Language_Str MSG_LCD_PROBING_FAILED              = _UxGT("Sondowanie nieudane"); | ||||
|   PROGMEM Language_Str MSG_M600_TOO_COLD                   = _UxGT("M600: za zimne"); | ||||
|  | ||||
|   PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER     = _UxGT("WYBIERZ FILAMENT"); | ||||
|   PROGMEM Language_Str MSG_MMU2_MENU                       = _UxGT("MMU"); | ||||
|   | ||||
| @@ -432,7 +432,6 @@ namespace Language_pt_br { | ||||
|   PROGMEM Language_Str MSG_RUNOUT_SENSOR                   = _UxGT("Sensor filamento"); | ||||
|   PROGMEM Language_Str MSG_KILL_HOMING_FAILED              = _UxGT("Falha ao ir à origem"); | ||||
|   PROGMEM Language_Str MSG_LCD_PROBING_FAILED              = _UxGT("Falha ao sondar"); | ||||
|   PROGMEM Language_Str MSG_M600_TOO_COLD                   = _UxGT("M600: Muito frio"); | ||||
|  | ||||
|   PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER     = _UxGT("ESCOLHER FILAMENTO"); | ||||
|   PROGMEM Language_Str MSG_MMU2_MENU                       = _UxGT("MMU"); | ||||
|   | ||||
| @@ -532,7 +532,6 @@ namespace Language_ro { | ||||
|   PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM              = _UxGT("Runout Dist mm"); | ||||
|   PROGMEM Language_Str MSG_KILL_HOMING_FAILED              = _UxGT("Homing Failed"); | ||||
|   PROGMEM Language_Str MSG_LCD_PROBING_FAILED              = _UxGT("Probing Failed"); | ||||
|   PROGMEM Language_Str MSG_M600_TOO_COLD                   = _UxGT("M600: Too Cold"); | ||||
|  | ||||
|   PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER     = _UxGT("CHOOSE FILAMENT"); | ||||
|   PROGMEM Language_Str MSG_MMU2_MENU                       = _UxGT("MMU"); | ||||
|   | ||||
| @@ -640,7 +640,6 @@ namespace Language_ru { | ||||
|   PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM              = _UxGT("До конца, мм"); | ||||
|   PROGMEM Language_Str MSG_KILL_HOMING_FAILED              = _UxGT("Ошибка парковки"); | ||||
|   PROGMEM Language_Str MSG_LCD_PROBING_FAILED              = _UxGT("Ошибка зондирования"); | ||||
|   PROGMEM Language_Str MSG_M600_TOO_COLD                   = _UxGT("M600: Низкая Т") LCD_STR_DEGREE; | ||||
|  | ||||
|   PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER     = _UxGT("ВЫБИРЕТЕ ФИЛАМЕНТ"); | ||||
|   PROGMEM Language_Str MSG_MMU2_MENU                       = _UxGT("Настройки MMU"); | ||||
|   | ||||
| @@ -525,7 +525,6 @@ namespace Language_sk { | ||||
|   PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM              = _UxGT("Vzd. mm fil. senz."); | ||||
|   PROGMEM Language_Str MSG_KILL_HOMING_FAILED              = _UxGT("Parkovanie zlyhalo"); | ||||
|   PROGMEM Language_Str MSG_LCD_PROBING_FAILED              = _UxGT("Kalibrácia zlyhala"); | ||||
|   PROGMEM Language_Str MSG_M600_TOO_COLD                   = _UxGT("M600: Príliš studený"); | ||||
|  | ||||
|   PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER     = _UxGT("VYBERTE FILAMENT"); | ||||
|   PROGMEM Language_Str MSG_MMU2_MENU                       = _UxGT("MMU2"); | ||||
|   | ||||
| @@ -500,7 +500,6 @@ namespace Language_tr { | ||||
|   PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM              = _UxGT("Aşınma Farkı mm"); | ||||
|   PROGMEM Language_Str MSG_KILL_HOMING_FAILED              = _UxGT("Sıfırlama Başarısız"); | ||||
|   PROGMEM Language_Str MSG_LCD_PROBING_FAILED              = _UxGT("Probing Başarısız"); | ||||
|   PROGMEM Language_Str MSG_M600_TOO_COLD                   = _UxGT("M600: Çok Soğuk"); | ||||
|  | ||||
|   PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER     = _UxGT("FILAMAN SEÇ"); | ||||
|   PROGMEM Language_Str MSG_MMU2_MENU                       = _UxGT("MMU"); | ||||
|   | ||||
| @@ -650,7 +650,6 @@ namespace Language_uk { | ||||
|   #endif | ||||
|   PROGMEM Language_Str MSG_KILL_HOMING_FAILED              = _UxGT("Помилка паркування"); | ||||
|   PROGMEM Language_Str MSG_LCD_PROBING_FAILED              = _UxGT("Помилка зондування"); | ||||
|   PROGMEM Language_Str MSG_M600_TOO_COLD                   = _UxGT("M600: низька Т") LCD_STR_DEGREE; | ||||
|  | ||||
|   PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER     = _UxGT("ОБЕРІТЬ ПРУТОК"); | ||||
|   PROGMEM Language_Str MSG_MMU2_MENU                       = _UxGT("Налаштування MMU"); | ||||
|   | ||||
| @@ -405,7 +405,6 @@ namespace Language_vi { | ||||
|   PROGMEM Language_Str MSG_RUNOUT_SENSOR_ENABLE            = _UxGT("Cảm Biến Hết");                         // Runout Sensor | ||||
|   PROGMEM Language_Str MSG_KILL_HOMING_FAILED              = _UxGT("Sự nhà không thành công");              // Homing failed | ||||
|   PROGMEM Language_Str MSG_LCD_PROBING_FAILED              = _UxGT(" không thành công");                    // Probing failed | ||||
|   PROGMEM Language_Str MSG_M600_TOO_COLD                   = _UxGT("M600: Quá lạnh"); | ||||
|  | ||||
|   // | ||||
|   // Filament Change screens show up to 3 lines on a 4-line display | ||||
|   | ||||
| @@ -532,7 +532,6 @@ namespace Language_zh_CN { | ||||
|   PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM              = _UxGT("断料距离mm"); | ||||
|   PROGMEM Language_Str MSG_KILL_HOMING_FAILED              = _UxGT("归原位失败");     // "Homing failed" | ||||
|   PROGMEM Language_Str MSG_LCD_PROBING_FAILED              = _UxGT("探针探测失败");     // "Probing failed" | ||||
|   PROGMEM Language_Str MSG_M600_TOO_COLD                   = _UxGT("M600: 太凉");     // "M600: Too cold" | ||||
|  | ||||
|   PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER     = _UxGT("选择料"); | ||||
|   PROGMEM Language_Str MSG_MMU2_MENU                       = _UxGT("MMU"); | ||||
|   | ||||
| @@ -472,7 +472,6 @@ namespace Language_zh_TW { | ||||
|   PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM              = _UxGT("絲距離mm");   //"Runout Dist mm" | ||||
|   PROGMEM Language_Str MSG_KILL_HOMING_FAILED              = _UxGT("歸原位失敗");     // "Homing failed" | ||||
|   PROGMEM Language_Str MSG_LCD_PROBING_FAILED              = _UxGT("探針探測失敗");     // "Probing failed" | ||||
|   PROGMEM Language_Str MSG_M600_TOO_COLD                   = _UxGT("M600: 太冷");     // "M600: Too cold" | ||||
|  | ||||
|   // | ||||
|   // Filament Change screens show up to 3 lines on a 4-line display | ||||
|   | ||||
		Reference in New Issue
	
	Block a user