From b13ff8e424bfd69291dc90714d05bd6d0129be82 Mon Sep 17 00:00:00 2001 From: PavelSindler Date: Sun, 26 Aug 2018 22:08:52 +0200 Subject: [PATCH 1/3] Wait for ok after U0 (unload current filament) command. --- Firmware/mmu.cpp | 9 +++++++-- Firmware/mmu.h | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index 196455dbd..623574ae4 100644 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -180,6 +180,12 @@ void mmu_loop(void) mmu_puts_P(PSTR("C0\n")); //send continue loading mmu_state = 3; } + else if (mmu_cmd == MMU_CMD_U0) + { + printf_P(PSTR("MMU <= 'U0'\n")); + mmu_puts_P(PSTR("U0\n")); //send continue loading + mmu_state = 3; + } mmu_cmd = 0; } else if ((mmu_last_response + 1000) < millis()) //request every 1s @@ -588,9 +594,8 @@ void extr_unload() current_position[E_AXIS] -= 80; plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 2500 / 60, active_extruder); st_synchronize(); - printf_P(PSTR("U0\n")); - fprintf_P(uart2io, PSTR("U0\n")); + mmu_command(MMU_CMD_U0); // get response manage_response(false, true); diff --git a/Firmware/mmu.h b/Firmware/mmu.h index a24dc4ccf..05f8e3582 100644 --- a/Firmware/mmu.h +++ b/Firmware/mmu.h @@ -29,6 +29,7 @@ extern int16_t mmu_buildnr; #define MMU_CMD_L3 0x23 #define MMU_CMD_L4 0x24 #define MMU_CMD_C0 0x30 +#define MMU_CMD_U0 0x40 extern int mmu_puts_P(const char* str); From d3ed270a5a625a47bc568dd053f24bb0abc30614 Mon Sep 17 00:00:00 2001 From: PavelSindler Date: Sun, 26 Aug 2018 23:52:45 +0200 Subject: [PATCH 2/3] single material printer (no mmu unit) M600 hotfix: M600_check_state loop working --- Firmware/Marlin_main.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index dbf5c6765..231ff0e02 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8843,8 +8843,7 @@ void M600_check_state() { //Wait for user to check the state lcd_change_fil_state = 0; - - while ((lcd_change_fil_state == 0)||(lcd_change_fil_state != 1)){ + while (lcd_change_fil_state != 1){ lcd_change_fil_state = 0; KEEPALIVE_STATE(PAUSED_FOR_USER); lcd_alright(); @@ -8871,7 +8870,7 @@ void M600_check_state() lcd_update_enable(true); break; } - } + } } void M600_wait_for_user() { @@ -9036,7 +9035,7 @@ if((eSoundMode==e_SOUND_MODE_LOUD)||(eSoundMode==e_SOUND_MODE_ONCE)) fsensor_disable(); } #endif //FILAMENT_SENSOR - + lcd_update_enable(false); } #define FIL_LOAD_LENGTH 60 From ac3b92bade47223ef1be255caf75e6120d341be1 Mon Sep 17 00:00:00 2001 From: PavelSindler Date: Sun, 26 Aug 2018 23:55:29 +0200 Subject: [PATCH 3/3] commentary fix --- Firmware/mmu.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index 623574ae4..88be7f0e6 100644 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -177,13 +177,13 @@ void mmu_loop(void) else if (mmu_cmd == MMU_CMD_C0) { printf_P(PSTR("MMU <= 'C0'\n")); - mmu_puts_P(PSTR("C0\n")); //send continue loading + mmu_puts_P(PSTR("C0\n")); //send 'continue loading' mmu_state = 3; } else if (mmu_cmd == MMU_CMD_U0) { printf_P(PSTR("MMU <= 'U0'\n")); - mmu_puts_P(PSTR("U0\n")); //send continue loading + mmu_puts_P(PSTR("U0\n")); //send 'unload current filament' mmu_state = 3; } mmu_cmd = 0;