diff --git a/Firmware/menu.h b/Firmware/menu.h index b725adbf..31d36483 100755 --- a/Firmware/menu.h +++ b/Firmware/menu.h @@ -32,8 +32,11 @@ extern uint8_t menu_depth; //! definition of reasons blocking the main menu //! Use them as bit mask, so that the code may set various errors at the same time enum ESeriousErrors { - MENU_BLOCK_NONE = 0, - MENU_BLOCK_THERMAL_ERROR = 0x01, + MENU_BLOCK_NONE = 0, + MENU_BLOCK_THERMAL_ERROR = 0x01, +#ifdef TEMP_MODEL + MENU_BLOCK_TEMP_MODEL_AUTOTUNE = 0x02, +#endif }; // and possibly others in the future. //! this is a flag for disabling entering the main menu and longpress. If this is set to anything != diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index ae77de07..f04cb24f 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -35,6 +35,7 @@ #include "sound.h" #include "fancheck.h" #include "messages.h" +#include "language.h" #include "SdFatUtil.h" @@ -2810,7 +2811,11 @@ void temp_model_autotune(int16_t temp) return; } + // lockout the printer during calibration KEEPALIVE_STATE(IN_PROCESS); + menu_set_block(MENU_BLOCK_TEMP_MODEL_AUTOTUNE); + lcd_setstatuspgm(_i("Temp. model autotune")); + lcd_return_to_status(); // disable the model checking during self-calibration bool was_enabled = temp_model::enabled; @@ -2824,13 +2829,17 @@ void temp_model_autotune(int16_t temp) if(err) { SERIAL_ECHOLNPGM("TM: autotune failed"); + lcd_setstatuspgm(_i("TM autotune failed")); if(temp_error_state.v) fanSpeedSoftPwm = 255; } else { + lcd_setstatuspgm(MSG_WELCOME); fanSpeedSoftPwm = 0; temp_model_set_enabled(was_enabled); temp_model_report_settings(); } + + menu_unset_block(MENU_BLOCK_TEMP_MODEL_AUTOTUNE); } #ifdef TEMP_MODEL_DEBUG