From 0016b778277087688b3ebfa576ea27662208adc3 Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Thu, 9 Nov 2023 09:53:37 +0100 Subject: [PATCH] Updated MMU serial status message - Shown during bootup - Shown on LCD menue MMU [ON|OFF] - Shown using `M709` - Shown when `Disable`d with MMU ERROR FW UPDATE NEEDED --- Firmware/Marlin_main.cpp | 3 ++- Firmware/mmu2.cpp | 14 ++++++++++++++ Firmware/mmu2.h | 3 +++ Firmware/mmu2_reporting.cpp | 1 + Firmware/ultralcd.cpp | 1 + 5 files changed, 21 insertions(+), 1 deletion(-) 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()