From 6fa798aa8300499cbf48ae049e50dbd3066c0dff Mon Sep 17 00:00:00 2001 From: PavelSindler Date: Mon, 10 Sep 2018 20:08:13 +0200 Subject: [PATCH 1/3] init --- Firmware/mmu.cpp | 14 +++++++++++++- Firmware/ultralcd.cpp | 14 +++++++++----- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index 7c38e9ea..ebed61ec 100644 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -113,8 +113,10 @@ void mmu_loop(void) case -1: if (mmu_rx_start() > 0) { +#ifdef MMU_DEBUG puts_P(PSTR("MMU => 'start'")); puts_P(PSTR("MMU <= 'S1'")); +#endif //MMU_DEBUG mmu_puts_P(PSTR("S1\n")); //send 'read version' request mmu_state = -2; } @@ -128,9 +130,11 @@ void mmu_loop(void) if (mmu_rx_ok() > 0) { fscanf_P(uart2io, PSTR("%u"), &mmu_version); //scan version from buffer +#ifdef MMU_DEBUG printf_P(PSTR("MMU => '%dok'\n"), mmu_version); puts_P(PSTR("MMU <= 'S2'")); - mmu_puts_P(PSTR("S2\n")); //send 'read buildnr' request +#endif //MMU_DEBUG + mmu_puts_P(PSTR("S2\n")); //send 'read buildnr' request mmu_state = -3; } return; @@ -138,11 +142,15 @@ void mmu_loop(void) if (mmu_rx_ok() > 0) { fscanf_P(uart2io, PSTR("%u"), &mmu_buildnr); //scan buildnr from buffer +#ifdef MMU_DEBUG printf_P(PSTR("MMU => '%dok'\n"), mmu_buildnr); +#endif //MMU_DEBUG bool version_valid = mmu_check_version(); if (!version_valid) mmu_show_warning(); else puts_P(PSTR("MMU version valid")); +#ifdef MMU_DEBUG puts_P(PSTR("MMU <= 'P0'")); +#endif //MMU_DEBUG mmu_puts_P(PSTR("P0\n")); //send 'read finda' request mmu_state = -4; } @@ -151,7 +159,9 @@ void mmu_loop(void) if (mmu_rx_ok() > 0) { fscanf_P(uart2io, PSTR("%hhu"), &mmu_finda); //scan finda from buffer +#ifdef MMU_DEBUG printf_P(PSTR("MMU => '%dok'\n"), mmu_finda); +#endif //MMU_DEBUG puts_P(PSTR("MMU - ENABLED")); mmu_enabled = true; mmu_state = 1; @@ -203,7 +213,9 @@ void mmu_loop(void) } else if ((mmu_last_response + 300) < millis()) //request every 300ms { +#ifdef MMU_DEBUG puts_P(PSTR("MMU <= 'P0'")); +#endif //MMU_DEBUG mmu_puts_P(PSTR("P0\n")); //send 'read finda' request mmu_state = 2; } diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 04cf8073..e49efdc7 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -530,7 +530,7 @@ void lcdui_print_extruder(void) { int chars = 0; if (mmu_extruder == tmp_extruder) - chars = lcd_printf_P(_N(" T%u"), mmu_extruder+1); + chars = lcd_printf_P(_N(" F%u"), mmu_extruder+1); else chars = lcd_printf_P(_N(" %u>%u"), mmu_extruder+1, tmp_extruder+1); lcd_space(5 - chars); @@ -4361,8 +4361,10 @@ void lcd_wizard(int state) { int wizard_event; const char *msg = NULL; while (!end) { + printf_P(PSTR("Wizard state: %d"), state); switch (state) { case 0: // run wizard? + wizard_active = true; wizard_event = lcd_show_multiscreen_message_yes_no_and_wait_P(_i("Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"), false, true);////MSG_WIZARD_WELCOME c=20 r=7 if (wizard_event) { state = 1; @@ -4408,7 +4410,6 @@ void lcd_wizard(int state) { break; case 5: //is filament loaded? //start to preheat nozzle and bed to save some time later - lcd_commands_type = LCD_COMMAND_V2_CAL; setTargetHotend(PLA_PREHEAT_HOTEND_TEMP, 0); setTargetBed(PLA_PREHEAT_HPB_TEMP); wizard_event = lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Is filament loaded?"), false);////MSG_WIZARD_FILAMENT_LOADED c=20 r=2 @@ -4446,7 +4447,7 @@ void lcd_wizard(int state) { #ifdef SNMM change_extr(0); #endif - loading_flag = true; + loading_flag = true; gcode_M701(); state = 9; break; @@ -4480,7 +4481,7 @@ void lcd_wizard(int state) { } } - printf_P(_N("State: %d\n"), state); + printf_P(_N("Wizard end state: %d\n"), state); switch (state) { //final message case 0: //user dont want to use wizard msg = _T(MSG_WIZARD_QUIT); @@ -4514,7 +4515,10 @@ void lcd_wizard(int state) { break; } - if (state != 9) lcd_show_fullscreen_message_and_wait_P(msg); + if (state != 9) { + lcd_show_fullscreen_message_and_wait_P(msg); + wizard_active = false; + } lcd_update_enable(true); lcd_return_to_status(); lcd_update(2); From 1bb9e9ed924af59731dc3ffc4c14fdb3970126a0 Mon Sep 17 00:00:00 2001 From: PavelSindler Date: Mon, 10 Sep 2018 20:39:28 +0200 Subject: [PATCH 2/3] MMU_DEBUG --- Firmware/mmu.cpp | 16 ++++++++++++++++ .../variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h | 2 ++ .../variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h | 2 ++ .../variants/1_75mm_MK3-EINSy10a-E3Dv6full.h | 2 ++ 4 files changed, 22 insertions(+) diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index ebed61ec..3e71737a 100644 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -173,39 +173,51 @@ void mmu_loop(void) if ((mmu_cmd >= MMU_CMD_T0) && (mmu_cmd <= MMU_CMD_T4)) { filament = mmu_cmd - MMU_CMD_T0; +#ifdef MMU_DEBUG printf_P(PSTR("MMU <= 'T%d'\n"), filament); +#endif //MMU_DEBUG mmu_printf_P(PSTR("T%d\n"), filament); mmu_state = 3; // wait for response } else if ((mmu_cmd >= MMU_CMD_L0) && (mmu_cmd <= MMU_CMD_L4)) { filament = mmu_cmd - MMU_CMD_L0; +#ifdef MMU_DEBUG printf_P(PSTR("MMU <= 'L%d'\n"), filament); +#endif //MMU_DEBUG mmu_printf_P(PSTR("L%d\n"), filament); mmu_state = 3; // wait for response } else if (mmu_cmd == MMU_CMD_C0) { +#ifdef MMU_DEBUG printf_P(PSTR("MMU <= 'C0'\n")); +#endif //MMU_DEBUG mmu_puts_P(PSTR("C0\n")); //send 'continue loading' mmu_state = 3; } else if (mmu_cmd == MMU_CMD_U0) { +#ifdef MMU_DEBUG printf_P(PSTR("MMU <= 'U0'\n")); +#endif //MMU_DEBUG mmu_puts_P(PSTR("U0\n")); //send 'unload current filament' mmu_state = 3; } else if ((mmu_cmd >= MMU_CMD_E0) && (mmu_cmd <= MMU_CMD_E4)) { int filament = mmu_cmd - MMU_CMD_E0; +#ifdef MMU_DEBUG printf_P(PSTR("MMU <= 'E%d'\n"), filament); +#endif //MMU_DEBUG mmu_printf_P(PSTR("E%d\n"), filament); //send eject filament mmu_state = 3; // wait for response } else if (mmu_cmd == MMU_CMD_R0) { +#ifdef MMU_DEBUG printf_P(PSTR("MMU <= 'R0'\n")); +#endif //MMU_DEBUG mmu_puts_P(PSTR("R0\n")); //send recover after eject mmu_state = 3; // wait for response } @@ -224,7 +236,9 @@ void mmu_loop(void) if (mmu_rx_ok() > 0) { fscanf_P(uart2io, PSTR("%hhu"), &mmu_finda); //scan finda from buffer +#ifdef MMU_DEBUG printf_P(PSTR("MMU => '%dok'\n"), mmu_finda); +#endif //MMU_DEBUG //printf_P(PSTR("Eact: %d\n"), int(e_active())); if (!mmu_finda && CHECK_FINDA && fsensor_enabled) { fsensor_stop_and_save_print(); @@ -244,7 +258,9 @@ void mmu_loop(void) case 3: //response to mmu commands if (mmu_rx_ok() > 0) { +#ifdef MMU_DEBUG printf_P(PSTR("MMU => 'ok'\n")); +#endif //MMU_DEBUG mmu_ready = true; mmu_state = 1; } diff --git a/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h index 304cde4b..626c64e8 100644 --- a/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h @@ -481,4 +481,6 @@ //#define SUPPORT_VERBOSITY +//#define MMU_DEBUG //print communication between MMU2 and printer on serial + #endif //__CONFIGURATION_PRUSA_H diff --git a/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h index 9fccbfc2..cb13e8ad 100644 --- a/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h @@ -482,4 +482,6 @@ //#define SUPPORT_VERBOSITY +//#define MMU_DEBUG //print communication between MMU2 and printer on serial + #endif //__CONFIGURATION_PRUSA_H diff --git a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h index 7cde630b..ea1951f4 100644 --- a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h @@ -613,4 +613,6 @@ //#define SUPPORT_VERBOSITY +//#define MMU_DEBUG //print communication between MMU2 and printer on serial + #endif //__CONFIGURATION_PRUSA_H From 8a9f066c1b5ea05a61d90b57c283f7f1ef3708c3 Mon Sep 17 00:00:00 2001 From: PavelSindler Date: Mon, 10 Sep 2018 22:09:37 +0200 Subject: [PATCH 3/3] choose_extruder_menu: extruder -> filament --- Firmware/ultralcd.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index e49efdc7..7a434a43 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -4364,7 +4364,6 @@ void lcd_wizard(int state) { printf_P(PSTR("Wizard state: %d"), state); switch (state) { case 0: // run wizard? - wizard_active = true; wizard_event = lcd_show_multiscreen_message_yes_no_and_wait_P(_i("Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"), false, true);////MSG_WIZARD_WELCOME c=20 r=7 if (wizard_event) { state = 1; @@ -4517,7 +4516,6 @@ void lcd_wizard(int state) { } if (state != 9) { lcd_show_fullscreen_message_and_wait_P(msg); - wizard_active = false; } lcd_update_enable(true); lcd_return_to_status(); @@ -5014,18 +5012,18 @@ char choose_extruder_menu() enc_dif = lcd_encoder_diff; lcd_clear(); - - lcd_puts_P(_T(MSG_CHOOSE_EXTRUDER)); + if (mmu_enabled) lcd_puts_P(_T(MSG_CHOOSE_FILAMENT)); + else lcd_puts_P(_T(MSG_CHOOSE_EXTRUDER)); lcd_set_cursor(0, 1); lcd_print(">"); for (int i = 0; i < 3; i++) { - lcd_puts_at_P(1, i + 1, _T(MSG_EXTRUDER)); + lcd_puts_at_P(1, i + 1, mmu_enabled ? _T(MSG_FILAMENT) : _T(MSG_EXTRUDER)); } KEEPALIVE_STATE(PAUSED_FOR_USER); while (1) { for (int i = 0; i < 3; i++) { - lcd_set_cursor(2 + strlen_P(_T(MSG_EXTRUDER)), i+1); + lcd_set_cursor(2 + strlen_P( mmu_enabled ? _T(MSG_FILAMENT) : _T(MSG_EXTRUDER)), i+1); lcd_print(first + i + 1); } @@ -5048,9 +5046,10 @@ char choose_extruder_menu() if (first < items_no - 3) { first++; lcd_clear(); - lcd_puts_P(_T(MSG_CHOOSE_EXTRUDER)); + if (mmu_enabled) lcd_puts_P(_T(MSG_CHOOSE_FILAMENT)); + else lcd_puts_P(_T(MSG_CHOOSE_EXTRUDER)); for (int i = 0; i < 3; i++) { - lcd_puts_at_P(1, i + 1, _T(MSG_EXTRUDER)); + lcd_puts_at_P(1, i + 1, mmu_enabled ? _T(MSG_FILAMENT) : _T(MSG_EXTRUDER)); } } } @@ -5060,9 +5059,10 @@ char choose_extruder_menu() if (first > 0) { first--; lcd_clear(); - lcd_puts_P(_T(MSG_CHOOSE_EXTRUDER)); + if (mmu_enabled) lcd_puts_P(_T(MSG_CHOOSE_FILAMENT)); + else lcd_puts_P(_T(MSG_CHOOSE_EXTRUDER)); for (int i = 0; i < 3; i++) { - lcd_puts_at_P(1, i + 1, _T(MSG_EXTRUDER)); + lcd_puts_at_P(1, i + 1, mmu_enabled ? _T(MSG_FILAMENT) : _T(MSG_EXTRUDER)); } } }