Skip to content

Commit b680e10

Browse files
GMagicianvgadreau
authored andcommitted
Fix "too cold" in M600 (MarlinFirmware#19332)
1 parent 4db32d0 commit b680e10

21 files changed

+8
-40
lines changed

Marlin/src/feature/pause.cpp

+8-18
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ uint8_t did_pause_print = 0;
381381

382382
bool pause_print(const float &retract, const xyz_pos_t &park_point, const float &unload_length/*=0*/, const bool show_lcd/*=false*/ DXC_ARGS) {
383383
DEBUG_SECTION(pp, "pause_print", true);
384-
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);
384+
DEBUG_ECHOLNPAIR("... park.x:", park_point.x, " y:", park_point.y, " z:", park_point.z, " unloadlen:", unload_length, " showlcd:", int(show_lcd) DXC_SAY);
385385

386386
UNUSED(show_lcd);
387387

@@ -397,19 +397,6 @@ bool pause_print(const float &retract, const xyz_pos_t &park_point, const float
397397

398398
TERN_(HOST_PROMPT_SUPPORT, host_prompt_open(PROMPT_INFO, PSTR("Pause"), DISMISS_STR));
399399

400-
if (!DEBUGGING(DRYRUN) && unload_length && thermalManager.targetTooColdToExtrude(active_extruder)) {
401-
SERIAL_ECHO_MSG(STR_ERR_HOTEND_TOO_COLD);
402-
403-
#if HAS_LCD_MENU
404-
if (show_lcd) { // Show status screen
405-
lcd_pause_show_message(PAUSE_MESSAGE_STATUS);
406-
LCD_MESSAGEPGM(MSG_M600_TOO_COLD);
407-
}
408-
#endif
409-
410-
return false; // unable to reach safe temperature
411-
}
412-
413400
// Indicate that the printer is paused
414401
++did_pause_print;
415402

@@ -434,8 +421,10 @@ bool pause_print(const float &retract, const xyz_pos_t &park_point, const float
434421
#endif
435422

436423
// Initial retract before move to filament change position
437-
if (retract && thermalManager.hotEnoughToExtrude(active_extruder))
424+
if (retract && thermalManager.hotEnoughToExtrude(active_extruder)) {
425+
DEBUG_ECHOLNPAIR("... retract:", retract);
438426
unscaled_e_move(retract, PAUSE_PARK_RETRACT_FEEDRATE);
427+
}
439428

440429
// Park the nozzle by moving up by z_lift and then moving to (x_pos, y_pos)
441430
if (!axes_should_home())
@@ -603,11 +592,12 @@ void resume_print(const float &slow_load_length/*=0*/, const float &fast_load_le
603592
thermalManager.reset_hotend_idle_timer(e);
604593
}
605594

606-
if (targetTemp > thermalManager.degTargetHotend(active_extruder))
595+
if (targetTemp > thermalManager.degTargetHotend(active_extruder)) {
607596
thermalManager.setTargetHotend(targetTemp, active_extruder);
597+
}
608598

609-
if (nozzle_timed_out || thermalManager.hotEnoughToExtrude(active_extruder)) // Load the new filament
610-
load_filament(slow_load_length, fast_load_length, purge_length, max_beep_count, true, nozzle_timed_out, PAUSE_MODE_SAME DXC_PASS);
599+
// Load the new filament
600+
load_filament(slow_load_length, fast_load_length, purge_length, max_beep_count, true, nozzle_timed_out, PAUSE_MODE_SAME DXC_PASS);
611601

612602
if (targetTemp > 0) {
613603
thermalManager.setTargetHotend(targetTemp, active_extruder);

Marlin/src/gcode/feature/pause/M600.cpp

-3
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,6 @@ void GcodeSuite::M600() {
162162
beep_count, (parser.seenval('R') ? parser.value_celsius() : 0) DXC_PASS);
163163
#endif
164164
}
165-
else {
166-
TERN_(HAS_FILAMENT_SENSOR, runout.reset());
167-
}
168165

169166
#if EXTRUDERS > 1
170167
// Restore toolhead if it was changed

Marlin/src/lcd/language/language_cz.h

-1
Original file line numberDiff line numberDiff line change
@@ -501,7 +501,6 @@ namespace Language_cz {
501501
PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("Délka mm senz.fil.");
502502
PROGMEM Language_Str MSG_KILL_HOMING_FAILED = _UxGT("Parkování selhalo");
503503
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Kalibrace selhala");
504-
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Moc studený");
505504

506505
PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("VYBERTE FILAMENT");
507506
PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU");

Marlin/src/lcd/language/language_de.h

-1
Original file line numberDiff line numberDiff line change
@@ -536,7 +536,6 @@ namespace Language_de {
536536
PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("Runout-Weg mm");
537537
PROGMEM Language_Str MSG_KILL_HOMING_FAILED = _UxGT("Homing gescheitert");
538538
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Probing gescheitert");
539-
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: zu kalt");
540539

541540
PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("FILAMENT WÄHLEN");
542541
PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU");

Marlin/src/lcd/language/language_en.h

-1
Original file line numberDiff line numberDiff line change
@@ -541,7 +541,6 @@ namespace Language_en {
541541
PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("Runout Dist mm");
542542
PROGMEM Language_Str MSG_KILL_HOMING_FAILED = _UxGT("Homing Failed");
543543
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Probing Failed");
544-
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Too Cold");
545544

546545
PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("CHOOSE FILAMENT");
547546
PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU");

Marlin/src/lcd/language/language_es.h

-1
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,6 @@ namespace Language_es {
504504
PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("Dist. filamento mm");
505505
PROGMEM Language_Str MSG_KILL_HOMING_FAILED = _UxGT("Ir a origen Fallado");
506506
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Sondeo Fallado");
507-
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Muy Frio");
508507

509508
PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("ELIJE FILAMENTO");
510509
PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU");

Marlin/src/lcd/language/language_eu.h

-1
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,6 @@ namespace Language_eu {
309309
PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Pita: ");
310310
PROGMEM Language_Str MSG_KILL_HOMING_FAILED = _UxGT("Hasi. huts egin du");
311311
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Neurketak huts egin du");
312-
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: hotzegi");
313312

314313
PROGMEM Language_Str MSG_KILL_EXPECTED_PRINTER = _UxGT("Inprimagailu okerra");
315314

Marlin/src/lcd/language/language_fr.h

-1
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,6 @@ namespace Language_fr {
485485
PROGMEM Language_Str MSG_RUNOUT_SENSOR = _UxGT("Capteur fil.");
486486
PROGMEM Language_Str MSG_KILL_HOMING_FAILED = _UxGT("Echec origine");
487487
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Echec sonde");
488-
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Trop froid");
489488

490489
PROGMEM Language_Str MSG_KILL_MMU2_FIRMWARE = _UxGT("MAJ firmware MMU!!");
491490
PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("CHOISIR FILAMENT");

Marlin/src/lcd/language/language_gl.h

-1
Original file line numberDiff line numberDiff line change
@@ -526,7 +526,6 @@ namespace Language_gl {
526526
PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("Dist mm Sensor Fil");
527527
PROGMEM Language_Str MSG_KILL_HOMING_FAILED = _UxGT("Fallo ao ir á Orixe");
528528
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Fallo ao Sondar");
529-
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Moi Frío");
530529

531530
PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("ESCOLLE FILAMENTO");
532531
PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU");

Marlin/src/lcd/language/language_hu.h

-1
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,6 @@ namespace Language_hu {
528528
PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("Túlfutás Táv. mm");
529529
PROGMEM Language_Str MSG_KILL_HOMING_FAILED = _UxGT("Tájolási hiba");
530530
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Szondázás hiba");
531-
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Túl hideg");
532531

533532
PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("SZÁLVÁLASZTÁS");
534533
PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU");

Marlin/src/lcd/language/language_it.h

-1
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,6 @@ namespace Language_it {
535535
PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("Dist mm filo term.");
536536
PROGMEM Language_Str MSG_KILL_HOMING_FAILED = _UxGT("Home fallito");
537537
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Sondaggio fallito");
538-
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600:Troppo freddo");
539538

540539
PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("SCELTA FILAMENTO");
541540
PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU");

Marlin/src/lcd/language/language_pl.h

-1
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,6 @@ namespace Language_pl {
474474
PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("Dystans do czujnika mm");
475475
PROGMEM Language_Str MSG_KILL_HOMING_FAILED = _UxGT("Zerowanie nieudane");
476476
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Sondowanie nieudane");
477-
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: za zimne");
478477

479478
PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("WYBIERZ FILAMENT");
480479
PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU");

Marlin/src/lcd/language/language_pt_br.h

-1
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,6 @@ namespace Language_pt_br {
432432
PROGMEM Language_Str MSG_RUNOUT_SENSOR = _UxGT("Sensor filamento");
433433
PROGMEM Language_Str MSG_KILL_HOMING_FAILED = _UxGT("Falha ao ir à origem");
434434
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Falha ao sondar");
435-
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Muito frio");
436435

437436
PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("ESCOLHER FILAMENTO");
438437
PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU");

Marlin/src/lcd/language/language_ro.h

-1
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,6 @@ namespace Language_ro {
532532
PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("Runout Dist mm");
533533
PROGMEM Language_Str MSG_KILL_HOMING_FAILED = _UxGT("Homing Failed");
534534
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Probing Failed");
535-
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Too Cold");
536535

537536
PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("CHOOSE FILAMENT");
538537
PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU");

Marlin/src/lcd/language/language_ru.h

-1
Original file line numberDiff line numberDiff line change
@@ -640,7 +640,6 @@ namespace Language_ru {
640640
PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("До конца, мм");
641641
PROGMEM Language_Str MSG_KILL_HOMING_FAILED = _UxGT("Ошибка парковки");
642642
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Ошибка зондирования");
643-
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Низкая Т") LCD_STR_DEGREE;
644643

645644
PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("ВЫБИРЕТЕ ФИЛАМЕНТ");
646645
PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("Настройки MMU");

Marlin/src/lcd/language/language_sk.h

-1
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,6 @@ namespace Language_sk {
525525
PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("Vzd. mm fil. senz.");
526526
PROGMEM Language_Str MSG_KILL_HOMING_FAILED = _UxGT("Parkovanie zlyhalo");
527527
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Kalibrácia zlyhala");
528-
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Príliš studený");
529528

530529
PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("VYBERTE FILAMENT");
531530
PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU2");

Marlin/src/lcd/language/language_tr.h

-1
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,6 @@ namespace Language_tr {
500500
PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("Aşınma Farkı mm");
501501
PROGMEM Language_Str MSG_KILL_HOMING_FAILED = _UxGT("Sıfırlama Başarısız");
502502
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Probing Başarısız");
503-
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Çok Soğuk");
504503

505504
PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("FILAMAN SEÇ");
506505
PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU");

Marlin/src/lcd/language/language_uk.h

-1
Original file line numberDiff line numberDiff line change
@@ -650,7 +650,6 @@ namespace Language_uk {
650650
#endif
651651
PROGMEM Language_Str MSG_KILL_HOMING_FAILED = _UxGT("Помилка паркування");
652652
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("Помилка зондування");
653-
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: низька Т") LCD_STR_DEGREE;
654653

655654
PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("ОБЕРІТЬ ПРУТОК");
656655
PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("Налаштування MMU");

Marlin/src/lcd/language/language_vi.h

-1
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,6 @@ namespace Language_vi {
405405
PROGMEM Language_Str MSG_RUNOUT_SENSOR_ENABLE = _UxGT("Cảm Biến Hết"); // Runout Sensor
406406
PROGMEM Language_Str MSG_KILL_HOMING_FAILED = _UxGT("Sự nhà không thành công"); // Homing failed
407407
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT(" không thành công"); // Probing failed
408-
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: Quá lạnh");
409408

410409
//
411410
// Filament Change screens show up to 3 lines on a 4-line display

Marlin/src/lcd/language/language_zh_CN.h

-1
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,6 @@ namespace Language_zh_CN {
532532
PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("断料距离mm");
533533
PROGMEM Language_Str MSG_KILL_HOMING_FAILED = _UxGT("归原位失败"); // "Homing failed"
534534
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("探针探测失败"); // "Probing failed"
535-
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: 太凉"); // "M600: Too cold"
536535

537536
PROGMEM Language_Str MSG_MMU2_CHOOSE_FILAMENT_HEADER = _UxGT("选择料");
538537
PROGMEM Language_Str MSG_MMU2_MENU = _UxGT("MMU");

Marlin/src/lcd/language/language_zh_TW.h

-1
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,6 @@ namespace Language_zh_TW {
472472
PROGMEM Language_Str MSG_RUNOUT_DISTANCE_MM = _UxGT("絲距離mm"); //"Runout Dist mm"
473473
PROGMEM Language_Str MSG_KILL_HOMING_FAILED = _UxGT("歸原位失敗"); // "Homing failed"
474474
PROGMEM Language_Str MSG_LCD_PROBING_FAILED = _UxGT("探針探測失敗"); // "Probing failed"
475-
PROGMEM Language_Str MSG_M600_TOO_COLD = _UxGT("M600: 太冷"); // "M600: Too cold"
476475

477476
//
478477
// Filament Change screens show up to 3 lines on a 4-line display

0 commit comments

Comments
 (0)