From 142bf28dc262ac933c12bdd875daeda004e8fd70 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Thu, 23 Aug 2018 21:15:12 +0200 Subject: [PATCH 1/2] Clear communication buffer when sending load filament command to MMU. This fixes PFW-517 in the moment, when the problem with not displaying "Loading filament 1" to "Loading filament 5" has appeared for the first time. --- Firmware/mmu.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index 57da1e80..bf7645a8 100644 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -480,7 +480,7 @@ void extr_adj(int extruder) //loading filament for SNMM { #ifndef SNMM printf_P(PSTR("L%d \n"),extruder); - fprintf_P(uart2io, PSTR("L%d\n"), extruder); + mmu_printf_P(PSTR("L%d\n"), extruder); //show which filament is currently loaded From 050a7c41d0e2f3a4c2d1681af44461ba47959dcc Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Fri, 24 Aug 2018 03:49:51 +0200 Subject: [PATCH 2/2] Fix "Check MMU. Fix the issue and then press button on MMU unit." shown instead of "Loading filament 1". --- Firmware/mmu.cpp | 18 +++++++++++++++--- Firmware/mmu.h | 5 +++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index bf7645a8..94a19b9f 100644 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -162,6 +162,13 @@ void mmu_loop(void) mmu_printf_P(PSTR("T%d\n"), extruder); mmu_state = 3; // wait for response } + else if ((mmu_cmd >= MMU_CMD_L0) && (mmu_cmd <= MMU_CMD_L4)) + { + int filament = mmu_cmd - MMU_CMD_L0; + printf_P(PSTR("MMU <= 'L%d'\n"), filament); + mmu_printf_P(PSTR("L%d\n"), filament); + mmu_state = 3; // wait for response + } mmu_cmd = 0; } else if ((mmu_last_response + 1000) < millis()) //request every 1s @@ -479,8 +486,13 @@ void display_loading() void extr_adj(int extruder) //loading filament for SNMM { #ifndef SNMM - printf_P(PSTR("L%d \n"),extruder); - mmu_printf_P(PSTR("L%d\n"), extruder); + uint8_t cmd = MMU_CMD_L0 + extruder; + if (cmd > MMU_CMD_L4) + { + printf_P(PSTR("Filament out of range %d \n"),extruder); + return; + } + mmu_command(cmd); //show which filament is currently loaded @@ -490,7 +502,7 @@ void extr_adj(int extruder) //loading filament for SNMM //if(strlen(_T(MSG_LOADING_FILAMENT))>18) lcd.setCursor(0, 1); //else lcd.print(" "); lcd_print(" "); - lcd_print(mmu_extruder + 1); + lcd_print(extruder + 1); // get response manage_response(false, false); diff --git a/Firmware/mmu.h b/Firmware/mmu.h index 763c15ea..835b615c 100644 --- a/Firmware/mmu.h +++ b/Firmware/mmu.h @@ -23,6 +23,11 @@ extern int16_t mmu_buildnr; #define MMU_CMD_T2 0x12 #define MMU_CMD_T3 0x13 #define MMU_CMD_T4 0x14 +#define MMU_CMD_L0 0x20 +#define MMU_CMD_L1 0x21 +#define MMU_CMD_L2 0x22 +#define MMU_CMD_L3 0x23 +#define MMU_CMD_L4 0x24 extern int mmu_puts_P(const char* str);