Merge pull request #3769 from 3d-gussner/MK3_Temp_model_cal_wizard

PFW-1434: MK3 Temp model calibration during wizard
This commit is contained in:
3d-gussner 2022-11-30 15:33:38 +01:00 committed by GitHub
commit 54ef2a6c28
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 254 additions and 12 deletions

View File

@ -539,7 +539,12 @@ enum CalibrationStatus
// For the wizard: factory assembled, needs to run Z calibration.
CALIBRATION_STATUS_Z_CALIBRATION = 240,
// The XYZ calibration has been performed, now it remains to run the V2Calibration.gcode.
#ifdef TEMP_MODEL
// The XYZ calibration has been performed, needs to run Temp model calibration.
CALIBRATION_STATUS_TEMP_MODEL_CALIBRATION = 235,
#endif //TEMP_MODEL
// The XYZ calibration AND OR Temp model calibration has been performed, now it remains to run the V2Calibration.gcode.
CALIBRATION_STATUS_LIVE_ADJUST = 230,
// Calibrated, ready to print.

View File

@ -1504,6 +1504,12 @@ void setup()
// Show the message.
lcd_show_fullscreen_message_and_wait_P(_T(MSG_FOLLOW_CALIBRATION_FLOW));
}
#ifdef TEMP_MODEL
else if (calibration_status() == CALIBRATION_STATUS_TEMP_MODEL_CALIBRATION) {
lcd_show_fullscreen_message_and_wait_P(_T(MSG_TM_NOT_CAL));
lcd_update_enable(true);
}
#endif //TEMP_MODEL
else if (calibration_status() == CALIBRATION_STATUS_LIVE_ADJUST) {
// Show the message.
lcd_show_fullscreen_message_and_wait_P(_T(MSG_BABYSTEP_Z_NOT_SET));
@ -3363,9 +3369,14 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level)
lcd_bed_calibration_show_result(result, point_too_far_mask);
if (result >= 0)
{
#ifdef TEMP_MODEL
calibration_status_store(CALIBRATION_STATUS_TEMP_MODEL_CALIBRATION);
if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE) != 1) lcd_show_fullscreen_message_and_wait_P(_T(MSG_TM_NOT_CAL));
#else
// Calibration valid, the machine should be able to print. Advise the user to run the V2Calibration.gcode.
calibration_status_store(CALIBRATION_STATUS_LIVE_ADJUST);
if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE) != 1) lcd_show_fullscreen_message_and_wait_P(_T(MSG_BABYSTEP_Z_NOT_SET));
#endif //TEMP_MODEL
final_result = true;
}
}

View File

@ -168,6 +168,7 @@ const char MSG_IR_UNKNOWN[] PROGMEM_I1 = ISTR("unknown state");////MSG_IR_UNKNOW
extern const char MSG_PAUSED_THERMAL_ERROR[] PROGMEM_I1 = ISTR("PAUSED THERMAL ERROR");////MSG_PAUSED_THERMAL_ERROR c=20
#ifdef TEMP_MODEL
extern const char MSG_THERMAL_ANOMALY[] PROGMEM_I1 = ISTR("THERMAL ANOMALY");////MSG_THERMAL_ANOMALY c=20
extern const char MSG_TM_NOT_CAL[] PROGMEM_I1 = ISTR("Temp model not calibrated yet.");////MSG_TM_NOT_CAL c=20 r=4
#endif
extern const char MSG_LOAD_ALL[] PROGMEM_I1 = ISTR("Load All"); ////MSG_LOAD_ALL c=18
extern const char MSG_NOZZLE_CNG_MENU [] PROGMEM_I1 = ISTR("Nozzle change");////MSG_NOZZLE_CNG_MENU c=18

View File

@ -172,6 +172,7 @@ extern const char MSG_IR_UNKNOWN[];
extern const char MSG_PAUSED_THERMAL_ERROR[];
#ifdef TEMP_MODEL
extern const char MSG_THERMAL_ANOMALY[];
extern const char MSG_TM_NOT_CAL[];
#endif
extern const char MSG_LOAD_ALL[];
extern const char MSG_NOZZLE_CNG_MENU [];

View File

@ -1000,9 +1000,12 @@ void lcd_commands()
}
//if (lcd_commands_step == 1 && calibrated()) {
if (lcd_commands_step == 1 && temp_model_valid()) {
enquecommand_P(PSTR("M500"));
lcd_commands_step = 0;
lcd_commands_type = LcdCommands::Idle;
enquecommand_P(PSTR("M500"));
if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE) == 1) {
lcd_wizard(WizState::IsFil);
}
}
}
#endif //TEMP_MODEL
@ -3916,7 +3919,6 @@ void lcd_wizard(WizState state)
using S = WizState;
bool end = false;
uint8_t wizard_event;
const char *msg = NULL;
// Make sure EEPROM_WIZARD_ACTIVE is true if entering using different entry point
// other than WizState::Run - it is useful for debugging wizard.
if (state != S::Run) eeprom_update_byte((uint8_t*)EEPROM_WIZARD_ACTIVE, 1);
@ -3924,7 +3926,7 @@ void lcd_wizard(WizState state)
FORCE_BL_ON_START;
while (!end) {
printf_P(PSTR("Wizard state: %d\n"), state);
printf_P(PSTR("Wizard state: %d\n"), (uint8_t)state);
switch (state) {
case S::Run: //Run wizard?
@ -3958,6 +3960,9 @@ void lcd_wizard(WizState state)
case CALIBRATION_STATUS_ASSEMBLED: state = S::Selftest; break; //run selftest
case CALIBRATION_STATUS_XYZ_CALIBRATION: state = S::Xyz; break; //run xyz cal.
case CALIBRATION_STATUS_Z_CALIBRATION: state = S::Z; break; //run z cal.
#ifdef TEMP_MODEL
case CALIBRATION_STATUS_TEMP_MODEL_CALIBRATION: state = S::TempModel; break; //run temp model cal.
#endif //TEMP_MODEL
case CALIBRATION_STATUS_LIVE_ADJUST: state = S::IsFil; break; //run live adjust
case CALIBRATION_STATUS_CALIBRATED: end = true; eeprom_update_byte((uint8_t*)EEPROM_WIZARD_ACTIVE, 0); break;
default: state = S::Selftest; break; //if calibration status is unknown, run wizard from the beginning
@ -3975,8 +3980,14 @@ void lcd_wizard(WizState state)
case S::Xyz:
lcd_show_fullscreen_message_and_wait_P(_i("I will run xyz calibration now. It will take approx. 12 mins."));////MSG_WIZARD_XYZ_CAL c=20 r=8
wizard_event = gcode_M45(false, 0);
if (wizard_event) state = S::IsFil;
else end = true;
if (wizard_event) {
#ifdef TEMP_MODEL
lcd_reset_alert_level();
state = S::TempModel;
#else
state = S::IsFil;
#endif //TEMP_MODEL
} else end = true;
break;
case S::Z:
lcd_show_fullscreen_message_and_wait_P(_i("Please remove shipping helpers first."));////MSG_REMOVE_SHIPPING_HELPERS c=20 r=3
@ -4002,6 +4013,13 @@ void lcd_wizard(WizState state)
}
else end = true;
break;
#ifdef TEMP_MODEL
case S::TempModel:
lcd_show_fullscreen_message_and_wait_P(_i("Temp model cal. takes approx. 12 mins."));////MSG_TM_CAL c=20 r=4
lcd_commands_type = LcdCommands::TempModel;
end = true; // Leave wizard temporarily for Temp model cal.
break;
#endif //TEMP_MODEL
case S::IsFil:
//start to preheat nozzle and bed to save some time later
setTargetHotend(PLA_PREHEAT_HOTEND_TEMP, 0);
@ -4062,7 +4080,8 @@ void lcd_wizard(WizState state)
FORCE_BL_ON_END;
printf_P(_N("Wizard end state: %d\n"), state);
const char *msg = NULL;
printf_P(_N("Wizard end state: %d\n"), (uint8_t)state);
switch (state) { //final message
case S::Restore: //printer was already calibrated
msg = _T(MSG_WIZARD_DONE);
@ -4072,21 +4091,25 @@ void lcd_wizard(WizState state)
case S::Z: //z cal.
msg = _T(MSG_WIZARD_CALIBRATION_FAILED);
break;
#ifdef TEMP_MODEL
case S::TempModel: //Temp model calibration
break;
#endif //TEMP_MODEL
case S::Finish: //we are finished
msg = _T(MSG_WIZARD_DONE);
lcd_reset_alert_level();
lcd_setstatuspgm(MSG_WELCOME);
lcd_return_to_status();
break;
case S::Preheat:
case S::Lay1CalCold:
case S::Lay1CalHot:
break;
default:
msg = _T(MSG_WIZARD_QUIT);
break;
}
if (!((S::Lay1CalCold == state) || (S::Lay1CalHot == state) || (S::Preheat == state)))
{
if (msg) {
lcd_show_fullscreen_message_and_wait_P(msg);
}
lcd_update_enable(true);

View File

@ -230,6 +230,9 @@ enum class WizState : uint8_t
Selftest, //!< self test
Xyz, //!< xyz calibration
Z, //!< z calibration
#ifdef TEMP_MODEL
TempModel, //!< Temp model calibration
#endif //TEMP_MODEL
IsFil, //!< Is filament loaded? First step of 1st layer calibration
PreheatPla, //!< waiting for preheat nozzle for PLA
Preheat, //!< Preheat for any material

View File

@ -2047,6 +2047,17 @@ msgstr ""
msgid "TMC UNDERVOLTAGE ERR"
msgstr ""
#. MSG_TM_CAL c=20 r=4
#: ../../Firmware/ultralcd.cpp:4054
msgid "Temp model cal. takes approx. 12 mins."
msgstr ""
#. MSG_TM_NOT_CAL c=20 r=4
#: ../../Firmware/Marlin_main.cpp:1527 ../../Firmware/Marlin_main.cpp:3404
#: ../../Firmware/messages.cpp:170
msgid "Temp model not calibrated yet."
msgstr ""
#. MSG_TEMPERATURE c=18
#: ../../Firmware/ultralcd.cpp:4717
msgid "Temperature"

View File

@ -2125,6 +2125,17 @@ msgstr "TMC CHYBA: PREHRATI"
msgid "TMC UNDERVOLTAGE ERR"
msgstr "TMC CHYBA NIZKE NAP."
#. MSG_TM_CAL c=20 r=4
#: ../../Firmware/ultralcd.cpp:4054
msgid "Temp model cal. takes approx. 12 mins."
msgstr "Kalibrace teplotního modelu trvá asi 12 minut."
#. MSG_TM_NOT_CAL c=20 r=4
#: ../../Firmware/Marlin_main.cpp:1527 ../../Firmware/Marlin_main.cpp:3404
#: ../../Firmware/messages.cpp:170
msgid "Temp model not calibrated yet."
msgstr "Teplotní model zatím nebyl kalibrován."
#. MSG_TEMPERATURE c=18
#: ../../Firmware/ultralcd.cpp:4717
msgid "Temperature"

View File

@ -2056,6 +2056,17 @@ msgstr ""
msgid "TMC UNDERVOLTAGE ERR"
msgstr ""
#. MSG_TM_CAL c=20 r=4
#: ../../Firmware/ultralcd.cpp:4054
msgid "Temp model cal. takes approx. 12 mins."
msgstr ""
#. MSG_TM_NOT_CAL c=20 r=4
#: ../../Firmware/Marlin_main.cpp:1527 ../../Firmware/Marlin_main.cpp:3404
#: ../../Firmware/messages.cpp:170
msgid "Temp model not calibrated yet."
msgstr ""
#. MSG_TEMPERATURE c=18
#: ../../Firmware/ultralcd.cpp:4717
msgid "Temperature"

View File

@ -2145,6 +2145,17 @@ msgstr "TMC ÜBERHITZ.FEHL."
msgid "TMC UNDERVOLTAGE ERR"
msgstr "TMC UNTERSPANN.FEHL."
#. MSG_TM_CAL c=20 r=4
#: ../../Firmware/ultralcd.cpp:4054
msgid "Temp model cal. takes approx. 12 mins."
msgstr "Tempmodell Kal. benötigt ca. 12 Min."
#. MSG_TM_NOT_CAL c=20 r=4
#: ../../Firmware/Marlin_main.cpp:1527 ../../Firmware/Marlin_main.cpp:3404
#: ../../Firmware/messages.cpp:170
msgid "Temp model not calibrated yet."
msgstr "Tempmodell noch unkalibriert."
#. MSG_TEMPERATURE c=18
#: ../../Firmware/ultralcd.cpp:4717
msgid "Temperature"

View File

@ -2145,6 +2145,17 @@ msgstr "ERROR SOBRECAL TMC"
msgid "TMC UNDERVOLTAGE ERR"
msgstr "ERROR SBRVOLTAJE TMC"
#. MSG_TM_CAL c=20 r=4
#: ../../Firmware/ultralcd.cpp:4054
msgid "Temp model cal. takes approx. 12 mins."
msgstr "Cal. modelo temp. tarda 12 mins. aprox."
#. MSG_TM_NOT_CAL c=20 r=4
#: ../../Firmware/Marlin_main.cpp:1527 ../../Firmware/Marlin_main.cpp:3404
#: ../../Firmware/messages.cpp:170
msgid "Temp model not calibrated yet."
msgstr "Modelo temp. todavia sin cal."
#. MSG_TEMPERATURE c=18
#: ../../Firmware/ultralcd.cpp:4717
msgid "Temperature"

View File

@ -2148,6 +2148,17 @@ msgstr "ERR SURCHAUFFE TMC"
msgid "TMC UNDERVOLTAGE ERR"
msgstr "ERR SOUS TENSION TMC"
#. MSG_TM_CAL c=20 r=4
#: ../../Firmware/ultralcd.cpp:4054
msgid "Temp model cal. takes approx. 12 mins."
msgstr "Cal. du modele temp. dure env. 12 min."
#. MSG_TM_NOT_CAL c=20 r=4
#: ../../Firmware/Marlin_main.cpp:1527 ../../Firmware/Marlin_main.cpp:3404
#: ../../Firmware/messages.cpp:170
msgid "Temp model not calibrated yet."
msgstr "Modele de temp. non calibre."
#. MSG_TEMPERATURE c=18
#: ../../Firmware/ultralcd.cpp:4717
msgid "Temperature"

View File

@ -2131,6 +2131,17 @@ msgstr "TMC GRESKA PREGRIJAN"
msgid "TMC UNDERVOLTAGE ERR"
msgstr "TMC NISKA VOLTAZA"
#. MSG_TM_CAL c=20 r=4
#: ../../Firmware/ultralcd.cpp:4054
msgid "Temp model cal. takes approx. 12 mins."
msgstr "Temp model kal. traje cca. 12 min."
#. MSG_TM_NOT_CAL c=20 r=4
#: ../../Firmware/Marlin_main.cpp:1527 ../../Firmware/Marlin_main.cpp:3404
#: ../../Firmware/messages.cpp:170
msgid "Temp model not calibrated yet."
msgstr "Temp model još nije kalibriran."
#. MSG_TEMPERATURE c=18
#: ../../Firmware/ultralcd.cpp:4717
msgid "Temperature"

View File

@ -2133,6 +2133,17 @@ msgstr "TMC TULHEVULES HIBA"
msgid "TMC UNDERVOLTAGE ERR"
msgstr "TMC ALACSONY FESZ."
#. MSG_TM_CAL c=20 r=4
#: ../../Firmware/ultralcd.cpp:4054
msgid "Temp model cal. takes approx. 12 mins."
msgstr "Hőmérsékleti modell kal. kb. 12 percet."
#. MSG_TM_NOT_CAL c=20 r=4
#: ../../Firmware/Marlin_main.cpp:1527 ../../Firmware/Marlin_main.cpp:3404
#: ../../Firmware/messages.cpp:170
msgid "Temp model not calibrated yet."
msgstr "A hőmérsékleti modell még nincs kalibrálva."
#. MSG_TEMPERATURE c=18
#: ../../Firmware/ultralcd.cpp:4717
msgid "Temperature"

View File

@ -2138,6 +2138,17 @@ msgstr "ERR TMC SURRISCALD"
msgid "TMC UNDERVOLTAGE ERR"
msgstr "TMC UNDERVOLTAGE ERR"
#. MSG_TM_CAL c=20 r=4
#: ../../Firmware/ultralcd.cpp:4054
msgid "Temp model cal. takes approx. 12 mins."
msgstr "Calib mod temp richiede circa 12 min."
#. MSG_TM_NOT_CAL c=20 r=4
#: ../../Firmware/Marlin_main.cpp:1527 ../../Firmware/Marlin_main.cpp:3404
#: ../../Firmware/messages.cpp:170
msgid "Temp model not calibrated yet."
msgstr "Modello temp non calibrato."
#. MSG_TEMPERATURE c=18
#: ../../Firmware/ultralcd.cpp:4717
msgid "Temperature"

View File

@ -2056,6 +2056,17 @@ msgstr ""
msgid "TMC UNDERVOLTAGE ERR"
msgstr ""
#. MSG_TM_CAL c=20 r=4
#: ../../Firmware/ultralcd.cpp:4054
msgid "Temp model cal. takes approx. 12 mins."
msgstr ""
#. MSG_TM_NOT_CAL c=20 r=4
#: ../../Firmware/Marlin_main.cpp:1527 ../../Firmware/Marlin_main.cpp:3404
#: ../../Firmware/messages.cpp:170
msgid "Temp model not calibrated yet."
msgstr ""
#. MSG_TEMPERATURE c=18
#: ../../Firmware/ultralcd.cpp:4717
msgid "Temperature"

View File

@ -2056,6 +2056,17 @@ msgstr ""
msgid "TMC UNDERVOLTAGE ERR"
msgstr ""
#. MSG_TM_CAL c=20 r=4
#: ../../Firmware/ultralcd.cpp:4054
msgid "Temp model cal. takes approx. 12 mins."
msgstr ""
#. MSG_TM_NOT_CAL c=20 r=4
#: ../../Firmware/Marlin_main.cpp:1527 ../../Firmware/Marlin_main.cpp:3404
#: ../../Firmware/messages.cpp:170
msgid "Temp model not calibrated yet."
msgstr ""
#. MSG_TEMPERATURE c=18
#: ../../Firmware/ultralcd.cpp:4717
msgid "Temperature"

View File

@ -2143,6 +2143,17 @@ msgstr "TMC OVERHITTINGSFOUT"
msgid "TMC UNDERVOLTAGE ERR"
msgstr "TMC ONDERVOLT. FOUT"
#. MSG_TM_CAL c=20 r=4
#: ../../Firmware/ultralcd.cpp:4054
msgid "Temp model cal. takes approx. 12 mins."
msgstr "Temp model kal. duurt ongeveer 12 min."
#. MSG_TM_NOT_CAL c=20 r=4
#: ../../Firmware/Marlin_main.cpp:1527 ../../Firmware/Marlin_main.cpp:3404
#: ../../Firmware/messages.cpp:170
msgid "Temp model not calibrated yet."
msgstr "Temp model nog ongekalibreerd."
#. MSG_TEMPERATURE c=18
#: ../../Firmware/ultralcd.cpp:4717
msgid "Temperature"

View File

@ -2114,6 +2114,17 @@ msgstr "TMC OVEROPPHETING"
msgid "TMC UNDERVOLTAGE ERR"
msgstr "TMC LAVSPENNING FEIL"
#. MSG_TM_CAL c=20 r=4
#: ../../Firmware/ultralcd.cpp:4054
msgid "Temp model cal. takes approx. 12 mins."
msgstr "Temp modell kal. tar omtrent 12 min."
#. MSG_TM_NOT_CAL c=20 r=4
#: ../../Firmware/Marlin_main.cpp:1527 ../../Firmware/Marlin_main.cpp:3404
#: ../../Firmware/messages.cpp:170
msgid "Temp model not calibrated yet."
msgstr "Temp modell ikke kalibrert enda."
#. MSG_TEMPERATURE c=18
#: ../../Firmware/ultralcd.cpp:4717
msgid "Temperature"

View File

@ -2133,6 +2133,17 @@ msgstr "PRZEGRZANIE TMC"
msgid "TMC UNDERVOLTAGE ERR"
msgstr "ZA NIS. NAPIECIE TMC"
#. MSG_TM_CAL c=20 r=4
#: ../../Firmware/ultralcd.cpp:4054
msgid "Temp model cal. takes approx. 12 mins."
msgstr "Kal. modelu temp. moze zajac ok. 12min."
#. MSG_TM_NOT_CAL c=20 r=4
#: ../../Firmware/Marlin_main.cpp:1527 ../../Firmware/Marlin_main.cpp:3404
#: ../../Firmware/messages.cpp:170
msgid "Temp model not calibrated yet."
msgstr "Model temp. nie zostal skalib."
#. MSG_TEMPERATURE c=18
#: ../../Firmware/ultralcd.cpp:4717
msgid "Temperature"

View File

@ -2133,6 +2133,17 @@ msgstr "ERR TMC supraincalz."
msgid "TMC UNDERVOLTAGE ERR"
msgstr "ERR subtensiune TMC"
#. MSG_TM_CAL c=20 r=4
#: ../../Firmware/ultralcd.cpp:4054
msgid "Temp model cal. takes approx. 12 mins."
msgstr "Cal. Model de temp dureaza aprox. 12 min."
#. MSG_TM_NOT_CAL c=20 r=4
#: ../../Firmware/Marlin_main.cpp:1527 ../../Firmware/Marlin_main.cpp:3404
#: ../../Firmware/messages.cpp:170
msgid "Temp model not calibrated yet."
msgstr "Modelul de temp. nu este inca calibrat."
#. MSG_TEMPERATURE c=18
#: ../../Firmware/ultralcd.cpp:4717
msgid "Temperature"

View File

@ -2124,6 +2124,17 @@ msgstr "TMC OVERHEAT ERROR"
msgid "TMC UNDERVOLTAGE ERR"
msgstr "TMC UNDERVOLTAGE ERR"
#. MSG_TM_CAL c=20 r=4
#: ../../Firmware/ultralcd.cpp:4054
msgid "Temp model cal. takes approx. 12 mins."
msgstr "Výpočet teplotného modelu trvá približne 12 minút."
#. MSG_TM_NOT_CAL c=20 r=4
#: ../../Firmware/Marlin_main.cpp:1527 ../../Firmware/Marlin_main.cpp:3404
#: ../../Firmware/messages.cpp:170
msgid "Temp model not calibrated yet."
msgstr "Teplotný model zatiaľ nebol kalibrovaný"
#. MSG_TEMPERATURE c=18
#: ../../Firmware/ultralcd.cpp:4717
msgid "Temperature"

View File

@ -2056,6 +2056,17 @@ msgstr ""
msgid "TMC UNDERVOLTAGE ERR"
msgstr ""
#. MSG_TM_CAL c=20 r=4
#: ../../Firmware/ultralcd.cpp:4054
msgid "Temp model cal. takes approx. 12 mins."
msgstr ""
#. MSG_TM_NOT_CAL c=20 r=4
#: ../../Firmware/Marlin_main.cpp:1527 ../../Firmware/Marlin_main.cpp:3404
#: ../../Firmware/messages.cpp:170
msgid "Temp model not calibrated yet."
msgstr ""
#. MSG_TEMPERATURE c=18
#: ../../Firmware/ultralcd.cpp:4717
msgid "Temperature"

View File

@ -2133,6 +2133,17 @@ msgstr "TMC ÖVERHETTNINGSFEL"
msgid "TMC UNDERVOLTAGE ERR"
msgstr "TMC UNDERSPÄNNINGFEL"
#. MSG_TM_CAL c=20 r=4
#: ../../Firmware/ultralcd.cpp:4054
msgid "Temp model cal. takes approx. 12 mins."
msgstr "Temp modell kal. tar ca. 12 min."
#. MSG_TM_NOT_CAL c=20 r=4
#: ../../Firmware/Marlin_main.cpp:1527 ../../Firmware/Marlin_main.cpp:3404
#: ../../Firmware/messages.cpp:170
msgid "Temp model not calibrated yet."
msgstr "Temp-modellen är inte kalibrerad ännu."
#. MSG_TEMPERATURE c=18
#: ../../Firmware/ultralcd.cpp:4717
msgid "Temperature"