diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 2e1001cc5..b37818402 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -1125,6 +1125,7 @@ void setup() if (eeprom_init_default_byte((uint8_t *)EEPROM_MMU_ENABLED, 0)) { MMU2::mmu2.Start(); } + MMU2::mmu2.Status(); SpoolJoin::spooljoin.initSpoolJoinStatus(); //SERIAL_ECHOPAIR("Active sheet before:", static_cast(eeprom_read_byte(&(EEPROM_Sheets_base->active_sheet)))); @@ -8640,7 +8641,7 @@ Sigma_Exit: break; } } - printf_P(_n("MMU state:%d\n"), MMU2::mmu2.Enabled()); + MMU2::mmu2.Status(); } break; diff --git a/Firmware/mmu2.cpp b/Firmware/mmu2.cpp index 3797d9e54..fd35e7514 100644 --- a/Firmware/mmu2.cpp +++ b/Firmware/mmu2.cpp @@ -12,6 +12,9 @@ #include "strlen_cx.h" #include "SpoolJoin.h" +#include "messages.h" +#include "language.h" + #ifdef __AVR__ // As of FW 3.12 we only support building the FW with only one extruder, all the multi-extruder infrastructure will be removed. // Saves at least 800B of code size @@ -52,6 +55,17 @@ MMU2::MMU2() , tmcFailures(0) { } +void MMU2::Status() { + // Useful information to see during bootup and change state + SERIAL_ECHOPGM("MMU is "); + uint8_t status = eeprom_init_default_byte((uint8_t*)EEPROM_MMU_ENABLED, 0); + if (status == 1) { + SERIAL_ECHOLNRPGM(_O(MSG_ON)); + } else { + SERIAL_ECHOLNRPGM(_O(MSG_OFF)); + } +} + void MMU2::Start() { mmu2Serial.begin(MMU_BAUD); diff --git a/Firmware/mmu2.h b/Firmware/mmu2.h index f5eea95b9..0765e82ec 100644 --- a/Firmware/mmu2.h +++ b/Firmware/mmu2.h @@ -39,6 +39,9 @@ public: /// Stops the protocol logic, closes the UART, powers OFF the MMU void Stop(); + /// Serial output of MMU state + void Status(); + inline xState State() const { return state; } inline bool Enabled() const { return State() == xState::Active; } diff --git a/Firmware/mmu2_reporting.cpp b/Firmware/mmu2_reporting.cpp index 3e3d69dc9..45f18034c 100644 --- a/Firmware/mmu2_reporting.cpp +++ b/Firmware/mmu2_reporting.cpp @@ -347,6 +347,7 @@ void TryLoadUnloadReporter::DumpToSerial(){ /// Disables MMU in EEPROM void DisableMMUInSettings() { eeprom_update_byte((uint8_t *)EEPROM_MMU_ENABLED, false); + mmu2.Status(); } void IncrementLoadFails(){ diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 203ab22f8..e6b90a9f4 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -4093,6 +4093,7 @@ static void mmu_enable_switch() } eeprom_toggle((uint8_t *)EEPROM_MMU_ENABLED); + MMU2::mmu2.Status(); } static void SETTINGS_SILENT_MODE()