Fix "too cold" in M600 (#19332)

This commit is contained in:
Giuliano Zaro 2020-09-10 23:47:58 +02:00 committed by Scott Lahteine
parent 136b7a5305
commit 3adb07aa00
21 changed files with 8 additions and 40 deletions

View file

@ -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);

View file

@ -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

View file

@ -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");

View file

@ -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");

View file

@ -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");

View file

@ -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");

View file

@ -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");

View file

@ -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");

View file

@ -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");

View file

@ -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");

View file

@ -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");

View file

@ -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");

View file

@ -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");

View file

@ -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");

View file

@ -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");

View file

@ -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");

View file

@ -500,7 +500,6 @@ namespace Language_tr {
PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("ı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");

View file

@ -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");

View file

@ -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

View file

@ -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");

View file

@ -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