diff --git a/Firmware/mmu2.cpp b/Firmware/mmu2.cpp index 9e739fa6b..00bbb4a47 100644 --- a/Firmware/mmu2.cpp +++ b/Firmware/mmu2.cpp @@ -349,6 +349,12 @@ void MMU2::ToolChangeCommon(uint8_t slot){ break; // otherwise: failed to perform the command - unload first and then let it run again IncrementMMUFails(); + + // just in case we stood in an error screen for too long and the hotend got cold + ResumeHotendTemp(); + // if the extruder has been parked, it will get unparked once the ToolChange command finishes OK + // - so no ResumeUnpark() at this spot + unload(); // if we run out of retries, we must do something ... may be raise an error screen and allow the user to do something // but honestly - if the MMU restarts during every toolchange, @@ -771,7 +777,7 @@ bool MMU2::manage_response(const bool move_axes, const bool turn_off_nozzle) { if (!nozzleTimeout.running()){ nozzleTimeout.start(); LogEchoEvent_P(PSTR("Cooling Timeout started")); - } else if (nozzleTimeout.expired(DEFAULT_SAFETYTIMER_TIME_MINS*60*1000ul)){ // mins->msec. TODO: do we use the global or have our own independent timeout + } else if (nozzleTimeout.expired(DEFAULT_SAFETYTIMER_TIME_MINS*60*1000ul)){ // mins->msec. mmu_print_saved &= ~(SavedState::CooldownPending); mmu_print_saved |= SavedState::Cooldown; setAllTargetHotends(0);