diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 6bee0ae29..144b01d48 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -2242,8 +2242,11 @@ bool gcode_M45(bool onlyZ) { } } else { + //if wizard is active and selftest was succefully completed, we dont want to loose information about it + if (calibration_status() != 250 || eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE) == 0) { + calibration_status_store(CALIBRATION_STATUS_ASSEMBLED); + } // Reset the baby step value and the baby step applied flag. - calibration_status_store(CALIBRATION_STATUS_ASSEMBLED); eeprom_update_word((uint16_t*)EEPROM_BABYSTEP_Z, 0); // Complete XYZ calibration. uint8_t point_too_far_mask = 0; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 1acee81c7..a839e753f 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2968,8 +2968,6 @@ void lcd_wizard() { void lcd_wizard(int state) { - - bool end = false; int wizard_event; const char *msg = NULL; @@ -3048,6 +3046,9 @@ void lcd_wizard(int state) { lcd_implementation_clear(); lcd_print_at_PGM(0,2,MSG_LOADING_FILAMENT); loading_flag = true; +#ifdef SNMM + change_extr(0); +#endif gcode_M701(); state = 9; break; @@ -3062,7 +3063,7 @@ void lcd_wizard(int state) { lcd_commands_type = LCD_COMMAND_V2_CAL; end = true; break; - case 10: //repeat firt layer cal.? + case 10: //repeat first layer cal.? wizard_event = lcd_show_multiscreen_message_yes_no_and_wait_P(MSG_WIZARD_REPEAT_V2_CAL, false); if (wizard_event) { current_position[Z_AXIS] += 100; @@ -3075,6 +3076,7 @@ void lcd_wizard(int state) { else { state = 11; } + break; case 11: //we are finished eeprom_write_byte((uint8_t*)EEPROM_WIZARD_ACTIVE, 0); end = true;