diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 6aea1214b..046ed3ecf 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -6808,7 +6808,7 @@ if (mmu_enabled) mmu_command(MMU_CMD_T0 + tmp_extruder); manage_response(true, true); - + mmu_command(MMU_CMD_C0); mmu_extruder = tmp_extruder; //filament change is finished if (*(strchr_pointer + index) == '?')// for single material usage with mmu diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index 843f415c0..c644bdb72 100644 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -162,6 +162,12 @@ void mmu_loop(void) mmu_printf_P(PSTR("T%d\n"), extruder); mmu_state = 3; // wait for response } + else if (mmu_cmd == MMU_CMD_C0) + { + printf_P(PSTR("MMU <= 'C0'\n")); + mmu_puts_P(PSTR("C0\n")); //send continue loading + mmu_state = 3; + } mmu_cmd = 0; } else if ((mmu_last_response + 1000) < millis()) //request every 1s @@ -188,7 +194,7 @@ void mmu_loop(void) case 3: //response to commands T0-T4 if (mmu_rx_ok() > 0) { - printf_P(PSTR("MMU => 'ok'\n"), mmu_finda); + printf_P(PSTR("MMU => 'ok'\n")); mmu_ready = true; mmu_state = 1; } @@ -395,6 +401,7 @@ void mmu_M600_load_filament(bool automatic) mmu_command(MMU_CMD_T0 + tmp_extruder); manage_response(false, true); + mmu_command(MMU_CMD_C0); mmu_extruder = tmp_extruder; //filament change is finished mmu_load_to_nozzle(); diff --git a/Firmware/mmu.h b/Firmware/mmu.h index 763c15ea8..144f2ef27 100644 --- a/Firmware/mmu.h +++ b/Firmware/mmu.h @@ -23,6 +23,7 @@ extern int16_t mmu_buildnr; #define MMU_CMD_T2 0x12 #define MMU_CMD_T3 0x13 #define MMU_CMD_T4 0x14 +#define MMU_CMD_C0 0x30 extern int mmu_puts_P(const char* str);