From bb1fb4989489c2b01906e68bc08f408872d84590 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Tue, 10 Sep 2019 18:36:14 +0200 Subject: [PATCH] Use MMU cutter only as last resort. Cut filament only before last load retry. --- Firmware/mmu.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index e7a59e75c..f44bad97b 100755 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -1577,19 +1577,23 @@ void mmu_continue_loading(bool blocking) increment_load_fail(); // no break case Ls::Retry: -#ifdef MMU_HAS_CUTTER - if (1 == eeprom_read_byte((uint8_t*)EEPROM_MMU_CUTTER_ENABLED)) + ++retry; // overflow not handled, as it is not dangerous. + if (retry >= max_retry) { - mmu_command(MmuCmd::K0 + tmp_extruder); - manage_response(true, true, MMU_UNLOAD_MOVE); - } + state = Ls::Unload; +#ifdef MMU_HAS_CUTTER + if (1 == eeprom_read_byte((uint8_t*)EEPROM_MMU_CUTTER_ENABLED)) + { + mmu_command(MmuCmd::K0 + tmp_extruder); + manage_response(true, true, MMU_UNLOAD_MOVE); + } #endif //MMU_HAS_CUTTER + } mmu_command(MmuCmd::T0 + tmp_extruder); manage_response(true, true, MMU_TCODE_MOVE); success = load_more(); if (success) success = can_load(); - ++retry; // overflow not handled, as it is not dangerous. - if (retry >= max_retry) state = Ls::Unload; + break; case Ls::Unload: stop_and_save_print_to_ram(0, 0);