Adjust Nozzle Change Menu For Quick Change Nozzles

- Show warning if extruder temp is > 40 degrees
- Use fan to speed up cooldown
- Show confirmation msg
- Show nozzle diameter setting after nozzle change
This commit is contained in:
sarusani 2024-02-19 11:49:15 +01:00 committed by sarusani
parent 02822c59ad
commit bc04f16906
17 changed files with 174 additions and 6 deletions

View File

@ -192,7 +192,12 @@ extern const char MSG_TM_ACK_ERROR[] PROGMEM_I1 = ISTR("Clear TM error");////MSG
extern const char MSG_LOAD_ALL[] PROGMEM_I1 = ISTR("Load All"); ////MSG_LOAD_ALL c=18 extern const char MSG_LOAD_ALL[] PROGMEM_I1 = ISTR("Load All"); ////MSG_LOAD_ALL c=18
extern const char MSG_NOZZLE_CNG_MENU [] PROGMEM_I1 = ISTR("Nozzle change");////MSG_NOZZLE_CNG_MENU c=18 extern const char MSG_NOZZLE_CNG_MENU [] PROGMEM_I1 = ISTR("Nozzle change");////MSG_NOZZLE_CNG_MENU c=18
extern const char MSG_NOZZLE_CNG_READ_HELP [] PROGMEM_I1 = ISTR("For a Nozzle change please read\nprusa.io/nozzle-mk3s");////MSG_NOZZLE_CNG_READ_HELP c=20 r=4 extern const char MSG_NOZZLE_CNG_READ_HELP [] PROGMEM_I1 = ISTR("For a Nozzle change please read\nprusa.io/nozzle-mk3s");////MSG_NOZZLE_CNG_READ_HELP c=20 r=4
#ifdef QUICK_NOZZLE_CHANGE
extern const char MSG_NOZZLE_CNG_COOLDOWN [] PROGMEM_I1 = ISTR("Nozzle is hot! Wait for cooldown.");////MSG_NOZZLE_CNG_COOLDOWN c=20 r=3
extern const char MSG_NOZZLE_CNG_CHANGED [] PROGMEM_I1 = ISTR("Nozzle changed?");////MSG_NOZZLE_CNG_CHANGED_QUICK c=20 r=3
#else
extern const char MSG_NOZZLE_CNG_CHANGED [] PROGMEM_I1 = ISTR("Hotend at 280C! Nozzle changed and tightened to specs?");////MSG_NOZZLE_CNG_CHANGED c=20 r=6 extern const char MSG_NOZZLE_CNG_CHANGED [] PROGMEM_I1 = ISTR("Hotend at 280C! Nozzle changed and tightened to specs?");////MSG_NOZZLE_CNG_CHANGED c=20 r=6
#endif //QUICK_NOZZLE_CHANGE
extern const char MSG_REPRINT [] PROGMEM_I1 = ISTR("Reprint"); ////MSG_REPRINT c=18 extern const char MSG_REPRINT [] PROGMEM_I1 = ISTR("Reprint"); ////MSG_REPRINT c=18
extern const char MSG_FILE_CNT [] PROGMEM_I1 = ISTR("Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."); ////MSG_FILE_CNT c=20 r=6 extern const char MSG_FILE_CNT [] PROGMEM_I1 = ISTR("Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100."); ////MSG_FILE_CNT c=20 r=6
extern const char MSG_CHANGED_MOTHERBOARD [] PROGMEM_I1 = ISTR("Warning: motherboard type changed."); ////MSG_CHANGED_MOTHERBOARD c=20 r=4 extern const char MSG_CHANGED_MOTHERBOARD [] PROGMEM_I1 = ISTR("Warning: motherboard type changed."); ////MSG_CHANGED_MOTHERBOARD c=20 r=4

View File

@ -194,6 +194,9 @@ extern const char MSG_LOAD_ALL[];
extern const char MSG_NOZZLE_CNG_MENU []; extern const char MSG_NOZZLE_CNG_MENU [];
extern const char MSG_NOZZLE_CNG_READ_HELP []; extern const char MSG_NOZZLE_CNG_READ_HELP [];
extern const char MSG_NOZZLE_CNG_CHANGED []; extern const char MSG_NOZZLE_CNG_CHANGED [];
#ifdef QUICK_NOZZLE_CHANGE
extern const char MSG_NOZZLE_CNG_COOLDOWN [];
#endif //QUICK_NOZZLE_CHANGE
extern const char MSG_REPRINT []; extern const char MSG_REPRINT [];
extern const char MSG_FILE_CNT []; extern const char MSG_FILE_CNT [];
extern const char MSG_CHANGED_MOTHERBOARD []; extern const char MSG_CHANGED_MOTHERBOARD [];

View File

@ -972,15 +972,18 @@ void lcd_commands()
{ {
if (!blocks_queued() && cmd_buffer_empty() && !saved_printing) if (!blocks_queued() && cmd_buffer_empty() && !saved_printing)
{ {
#ifndef QUICK_NOZZLE_CHANGE //thermal model can be ignored if a quickchange nozzle is in use, no heatup necessary
#ifdef THERMAL_MODEL #ifdef THERMAL_MODEL
static bool was_enabled; static bool was_enabled;
#endif //THERMAL_MODEL #endif //THERMAL_MODEL
#endif //QUICK_NOZZLE_CHANGE
switch(lcd_commands_step) switch(lcd_commands_step)
{ {
case 0: case 0:
lcd_commands_step = 3; lcd_commands_step = 3;
break; break;
case 3: case 3:
#ifndef QUICK_NOZZLE_CHANGE
lcd_update_enabled = false; //hack to avoid lcd_update recursion. lcd_update_enabled = false; //hack to avoid lcd_update recursion.
lcd_show_fullscreen_message_and_wait_P(_T(MSG_NOZZLE_CNG_READ_HELP)); lcd_show_fullscreen_message_and_wait_P(_T(MSG_NOZZLE_CNG_READ_HELP));
lcd_update_enabled = true; lcd_update_enabled = true;
@ -992,30 +995,47 @@ void lcd_commands()
was_enabled = thermal_model_enabled(); was_enabled = thermal_model_enabled();
thermal_model_set_enabled(false); thermal_model_set_enabled(false);
#endif //THERMAL_MODEL #endif //THERMAL_MODEL
#else //nozzle change without heating
while((int)degHotend(active_extruder)>40) { //check temp
fanSpeed = 255; //turn on fan
disable_heater();
uint8_t choice = lcd_show_multiscreen_message_yes_no_and_wait_P(_T(MSG_NOZZLE_CNG_COOLDOWN), true, LCD_LEFT_BUTTON_CHOICE);
lcd_update_enabled = false; //hack to avoid lcd_update recursion.
if (choice == LCD_MIDDLE_BUTTON_CHOICE) {
lcd_update_enabled = true;
lcd_draw_update = 2; //force lcd clear and update after the stack unwinds.
break;
}
lcd_update_enabled = true;
lcd_draw_update = 2; //force lcd clear and update after the stack unwinds.
}
enquecommand_P(G28W); //home
enquecommand_P(PSTR("G1 X125 Z200 F1000")); //move to top center
#endif //QUICK_NOZZLE_CHANGE
lcd_commands_step = 2; lcd_commands_step = 2;
break; break;
case 2: case 2:
//|0123456789012456789|
//|Hotend at 280C!
//|Nozzle changed and
//|tightend to specs?
//| Yes No
enquecommand_P(PSTR("M84 XY")); enquecommand_P(PSTR("M84 XY"));
lcd_update_enabled = false; //hack to avoid lcd_update recursion. lcd_update_enabled = false; //hack to avoid lcd_update recursion.
if (lcd_show_multiscreen_message_yes_no_and_wait_P(_T(MSG_NOZZLE_CNG_CHANGED), false) == LCD_LEFT_BUTTON_CHOICE) { if (lcd_show_multiscreen_message_yes_no_and_wait_P(_T(MSG_NOZZLE_CNG_CHANGED), false) == LCD_LEFT_BUTTON_CHOICE) {
#ifndef QUICK_NOZZLE_CHANGE
setTargetHotend(0); setTargetHotend(0);
#ifdef THERMAL_MODEL #ifdef THERMAL_MODEL
thermal_model_set_enabled(was_enabled); thermal_model_set_enabled(was_enabled);
#endif //THERMAL_MODEL #endif //THERMAL_MODEL
#else
fanSpeed = 0; //turn off fan
#endif //QUICK_NOZZLE_CHANGE
lcd_commands_step = 1; lcd_commands_step = 1;
} }
lcd_update_enabled = true; lcd_update_enabled = true;
break; break;
case 1: case 1:
lcd_setstatuspgm(MSG_WELCOME);
lcd_commands_step = 0; lcd_commands_step = 0;
lcd_commands_type = LcdCommands::Idle; lcd_commands_type = LcdCommands::Idle;
SetPrinterState(PrinterState::Idle); SetPrinterState(PrinterState::Idle);
menu_goto(lcd_hw_setup_menu, 2, true);
menu_depth = 3;
break; break;
} }
} }

View File

@ -1390,6 +1390,16 @@ msgid ""
" Print cancelled." " Print cancelled."
msgstr "" msgstr ""
#. MSG_NOZZLE_CNG_COOLDOWN c=20 r=3
#: ../../Firmware/messages.cpp:198 ../../Firmware/ultralcd.cpp:1002
msgid "Nozzle is hot! Wait for cooldown."
msgstr ""
#. MSG_NOZZLE_CNG_CHANGED_QUICK c=20 r=3
#: ../../Firmware/messages.cpp:199
msgid "Nozzle changed?"
msgstr ""
#. MSG_PROGRESS_OK c=4 #. MSG_PROGRESS_OK c=4
#: ../../Firmware/mmu2_progress_converter.cpp:8 #: ../../Firmware/mmu2_progress_converter.cpp:8
#: ../../Firmware/mmu2_progress_converter.cpp:34 #: ../../Firmware/mmu2_progress_converter.cpp:34

View File

@ -2584,6 +2584,16 @@ msgstr "Tisk. znovu"
msgid "Shutdown host" msgid "Shutdown host"
msgstr "Vypnutí hostitele" msgstr "Vypnutí hostitele"
#. MSG_NOZZLE_CNG_COOLDOWN c=20 r=3
#: ../../Firmware/messages.cpp:198 ../../Firmware/ultralcd.cpp:1002
msgid "Nozzle is hot! Wait for cooldown."
msgstr "Tryska je horká! Počkejte na vychladnutí."
#. MSG_NOZZLE_CNG_CHANGED_QUICK c=20 r=3
#: ../../Firmware/messages.cpp:199
msgid "Nozzle changed?"
msgstr "Vyměnili jste trysku?"
#~ msgid "Remove old filament and press the knob to start loading new filament." #~ msgid "Remove old filament and press the knob to start loading new filament."
#~ msgstr "Vyjmete stary filament a stisknete tlacitko pro zavedeni noveho." #~ msgstr "Vyjmete stary filament a stisknete tlacitko pro zavedeni noveho."

View File

@ -2612,6 +2612,16 @@ msgstr "Druck wiederholen"
msgid "Shutdown host" msgid "Shutdown host"
msgstr "Host runterfahren" msgstr "Host runterfahren"
#. MSG_NOZZLE_CNG_COOLDOWN c=20 r=3
#: ../../Firmware/messages.cpp:198 ../../Firmware/ultralcd.cpp:1002
msgid "Nozzle is hot! Wait for cooldown."
msgstr "Die Düse ist heiß! Auf Abkühlung warten."
#. MSG_NOZZLE_CNG_CHANGED_QUICK c=20 r=3
#: ../../Firmware/messages.cpp:199
msgid "Nozzle changed?"
msgstr "Düse gewechselt?"
#~ msgid "Remove old filament and press the knob to start loading new filament." #~ msgid "Remove old filament and press the knob to start loading new filament."
#~ msgstr "Entferne das alte Fil. und drücke den Knopf, um das neue zu laden." #~ msgstr "Entferne das alte Fil. und drücke den Knopf, um das neue zu laden."

View File

@ -2607,6 +2607,16 @@ msgstr "Volver a imprimir"
msgid "Shutdown host" msgid "Shutdown host"
msgstr "Apagar host" msgstr "Apagar host"
#. MSG_NOZZLE_CNG_COOLDOWN c=20 r=3
#: ../../Firmware/messages.cpp:198 ../../Firmware/ultralcd.cpp:1002
msgid "Nozzle is hot! Wait for cooldown."
msgstr "La boquilla está caliente! Espere a que se enfríe."
#. MSG_NOZZLE_CNG_CHANGED_QUICK c=20 r=3
#: ../../Firmware/messages.cpp:199
msgid "Nozzle changed?"
msgstr "Cambió la boquilla?"
#~ msgid "Remove old filament and press the knob to start loading new filament." #~ msgid "Remove old filament and press the knob to start loading new filament."
#~ msgstr "" #~ msgstr ""
#~ "Retira el fil. viejo y presiona el dial para comenzar a cargar el nuevo." #~ "Retira el fil. viejo y presiona el dial para comenzar a cargar el nuevo."

View File

@ -2619,6 +2619,16 @@ msgstr "Ré-imprimer"
msgid "Shutdown host" msgid "Shutdown host"
msgstr "Arrêter l'hôte" msgstr "Arrêter l'hôte"
#. MSG_NOZZLE_CNG_COOLDOWN c=20 r=3
#: ../../Firmware/messages.cpp:198 ../../Firmware/ultralcd.cpp:1002
msgid "Nozzle is hot! Wait for cooldown."
msgstr "La buse est chaude! Attendre le refroidissement."
#. MSG_NOZZLE_CNG_CHANGED_QUICK c=20 r=3
#: ../../Firmware/messages.cpp:199
msgid "Nozzle changed?"
msgstr "La buse a été changée?"
#~ msgid "Remove old filament and press the knob to start loading new filament." #~ msgid "Remove old filament and press the knob to start loading new filament."
#~ msgstr "" #~ msgstr ""
#~ "Retirez l'ancien fil. puis appuyez sur le bouton pour charger le nouveau." #~ "Retirez l'ancien fil. puis appuyez sur le bouton pour charger le nouveau."

View File

@ -2601,6 +2601,16 @@ msgstr "Ponovno tiskanje"
msgid "Shutdown host" msgid "Shutdown host"
msgstr "Iskljuciti host" msgstr "Iskljuciti host"
#. MSG_NOZZLE_CNG_COOLDOWN c=20 r=3
#: ../../Firmware/messages.cpp:198 ../../Firmware/ultralcd.cpp:1002
msgid "Nozzle is hot! Wait for cooldown."
msgstr "Mlaznica je vruća! Pričekajte hlađenje."
#. MSG_NOZZLE_CNG_CHANGED_QUICK c=20 r=3
#: ../../Firmware/messages.cpp:199
msgid "Nozzle changed?"
msgstr "Mlaznica se promijenila?"
#~ msgid "Remove old filament and press the knob to start loading new filament." #~ msgid "Remove old filament and press the knob to start loading new filament."
#~ msgstr "Uklonite stari fil. i pritisnite gumb za pocetak stavljanja novog." #~ msgstr "Uklonite stari fil. i pritisnite gumb za pocetak stavljanja novog."

View File

@ -2606,6 +2606,16 @@ msgstr "Újranyomtatás"
msgid "Shutdown host" msgid "Shutdown host"
msgstr "Gazdagép leállítás" msgstr "Gazdagép leállítás"
#. MSG_NOZZLE_CNG_COOLDOWN c=20 r=3
#: ../../Firmware/messages.cpp:198 ../../Firmware/ultralcd.cpp:1002
msgid "Nozzle is hot! Wait for cooldown."
msgstr "A fúvóka forró! Várja meg a lehűlést."
#. MSG_NOZZLE_CNG_CHANGED_QUICK c=20 r=3
#: ../../Firmware/messages.cpp:199
msgid "Nozzle changed?"
msgstr "Fúvóka cserélve?"
#~ msgid "Remove old filament and press the knob to start loading new filament." #~ msgid "Remove old filament and press the knob to start loading new filament."
#~ msgstr "Vedd ki a regi fil., majd nyomd meg a gombot az uj fil. betoltesehez." #~ msgstr "Vedd ki a regi fil., majd nyomd meg a gombot az uj fil. betoltesehez."

View File

@ -2607,6 +2607,16 @@ msgstr "Ristampa"
msgid "Shutdown host" msgid "Shutdown host"
msgstr "Spegnere l'host" msgstr "Spegnere l'host"
#. MSG_NOZZLE_CNG_COOLDOWN c=20 r=3
#: ../../Firmware/messages.cpp:198 ../../Firmware/ultralcd.cpp:1002
msgid "Nozzle is hot! Wait for cooldown."
msgstr "L'ugello è caldo! Attendere il raffreddamento."
#. MSG_NOZZLE_CNG_CHANGED_QUICK c=20 r=3
#: ../../Firmware/messages.cpp:199
msgid "Nozzle changed?"
msgstr "L'ugello è cambiato?"
#~ msgid "Remove old filament and press the knob to start loading new filament." #~ msgid "Remove old filament and press the knob to start loading new filament."
#~ msgstr "Rimuovi il fil. precedente e premi la manopola per caricare il nuovo." #~ msgstr "Rimuovi il fil. precedente e premi la manopola per caricare il nuovo."

View File

@ -2609,6 +2609,16 @@ msgstr "Herhaal druk"
msgid "Shutdown host" msgid "Shutdown host"
msgstr "Host uitschakelen" msgstr "Host uitschakelen"
#. MSG_NOZZLE_CNG_COOLDOWN c=20 r=3
#: ../../Firmware/messages.cpp:198 ../../Firmware/ultralcd.cpp:1002
msgid "Nozzle is hot! Wait for cooldown."
msgstr "Mondstuk is heet! Wacht op afkoeling."
#. MSG_NOZZLE_CNG_CHANGED_QUICK c=20 r=3
#: ../../Firmware/messages.cpp:199
msgid "Nozzle changed?"
msgstr "Mondstuk veranderd?"
#~ msgid "Remove old filament and press the knob to start loading new filament." #~ msgid "Remove old filament and press the knob to start loading new filament."
#~ msgstr "" #~ msgstr ""
#~ "Verwijder de oude filament en druk op de knop om nieuwe filament te laden." #~ "Verwijder de oude filament en druk op de knop om nieuwe filament te laden."

View File

@ -2583,6 +2583,16 @@ msgstr "Gjenta print"
msgid "Shutdown host" msgid "Shutdown host"
msgstr "Slå av vert" msgstr "Slå av vert"
#. MSG_NOZZLE_CNG_COOLDOWN c=20 r=3
#: ../../Firmware/messages.cpp:198 ../../Firmware/ultralcd.cpp:1002
msgid "Nozzle is hot! Wait for cooldown."
msgstr "Dysen er varm! Vent på nedkjøling."
#. MSG_NOZZLE_CNG_CHANGED_QUICK c=20 r=3
#: ../../Firmware/messages.cpp:199
msgid "Nozzle changed?"
msgstr "Har du byttet dyse?"
#~ msgid "Remove old filament and press the knob to start loading new filament." #~ msgid "Remove old filament and press the knob to start loading new filament."
#~ msgstr "Ta bort det gamle filamentet og trykk valghjulet for å laste et nytt." #~ msgstr "Ta bort det gamle filamentet og trykk valghjulet for å laste et nytt."

View File

@ -2599,6 +2599,16 @@ msgstr "Przedruk"
msgid "Shutdown host" msgid "Shutdown host"
msgstr "Zamknięcie hosta" msgstr "Zamknięcie hosta"
#. MSG_NOZZLE_CNG_COOLDOWN c=20 r=3
#: ../../Firmware/messages.cpp:198 ../../Firmware/ultralcd.cpp:1002
msgid "Nozzle is hot! Wait for cooldown."
msgstr "Dysza jest gorąca! Poczekaj na schłodzenie."
#. MSG_NOZZLE_CNG_CHANGED_QUICK c=20 r=3
#: ../../Firmware/messages.cpp:199
msgid "Nozzle changed?"
msgstr "Dysza została zmieniona?"
#~ msgid "Remove old filament and press the knob to start loading new filament." #~ msgid "Remove old filament and press the knob to start loading new filament."
#~ msgstr "Wyciągnij poprzedni filament i naciśnij pokrętło aby załadować nowy." #~ msgstr "Wyciągnij poprzedni filament i naciśnij pokrętło aby załadować nowy."

View File

@ -2608,6 +2608,16 @@ msgstr "Repetă print"
msgid "Shutdown host" msgid "Shutdown host"
msgstr "Oprește gazda" msgstr "Oprește gazda"
#. MSG_NOZZLE_CNG_COOLDOWN c=20 r=3
#: ../../Firmware/messages.cpp:198 ../../Firmware/ultralcd.cpp:1002
msgid "Nozzle is hot! Wait for cooldown."
msgstr "Duza este fierbinte! Așteptați să se răcească."
#. MSG_NOZZLE_CNG_CHANGED_QUICK c=20 r=3
#: ../../Firmware/messages.cpp:199
msgid "Nozzle changed?"
msgstr "S-a schimbat duza?"
#~ msgid "Remove old filament and press the knob to start loading new filament." #~ msgid "Remove old filament and press the knob to start loading new filament."
#~ msgstr "Scoateți fil. vechi și apăsați butonul pentru a încărca unul nou." #~ msgstr "Scoateți fil. vechi și apăsați butonul pentru a încărca unul nou."

View File

@ -2589,6 +2589,16 @@ msgstr "Vytlačiť znova"
msgid "Shutdown host" msgid "Shutdown host"
msgstr "Vypnutie hostiteľa" msgstr "Vypnutie hostiteľa"
#. MSG_NOZZLE_CNG_COOLDOWN c=20 r=3
#: ../../Firmware/messages.cpp:198 ../../Firmware/ultralcd.cpp:1002
msgid "Nozzle is hot! Wait for cooldown."
msgstr "Tryska je horúca! Počkajte na vychladnutie."
#. MSG_NOZZLE_CNG_CHANGED_QUICK c=20 r=3
#: ../../Firmware/messages.cpp:199
msgid "Nozzle changed?"
msgstr "Vymenili ste trysku?"
#~ msgid "Remove old filament and press the knob to start loading new filament." #~ msgid "Remove old filament and press the knob to start loading new filament."
#~ msgstr "Vyberte starý filament a stlačte tlačidlo pre zavedenie nového." #~ msgstr "Vyberte starý filament a stlačte tlačidlo pre zavedenie nového."

View File

@ -2596,6 +2596,16 @@ msgstr "Upprepa trycket"
msgid "Shutdown host" msgid "Shutdown host"
msgstr "Stänga av värd" msgstr "Stänga av värd"
#. MSG_NOZZLE_CNG_COOLDOWN c=20 r=3
#: ../../Firmware/messages.cpp:198 ../../Firmware/ultralcd.cpp:1002
msgid "Nozzle is hot! Wait for cooldown."
msgstr "Munstycket är varmt! Vänta på nedkylning."
#. MSG_NOZZLE_CNG_CHANGED_QUICK c=20 r=3
#: ../../Firmware/messages.cpp:199
msgid "Nozzle changed?"
msgstr "Har munstycket ändrats?"
#~ msgid "Remove old filament and press the knob to start loading new filament." #~ msgid "Remove old filament and press the knob to start loading new filament."
#~ msgstr "Ta bort det gamla fil. och tryck på knappen för att börja ladda nytt." #~ msgstr "Ta bort det gamla fil. och tryck på knappen för att börja ladda nytt."