Make a special welcome message for shipping/service prep
Another request from our Service dept. - the user shall be prevented from skipping the intro wizard, because otherwise some preset/calibrated features will look like not done - especially live-z calibration. And since there are users, who send a machine to service to perform 1st layer calibration only, they must not omit the Z-calibration at the start after shipping.
This commit is contained in:
parent
7a84ad71dc
commit
c3bea4d71c
3 changed files with 10 additions and 5 deletions
|
@ -756,7 +756,7 @@ static void factory_reset(char level)
|
||||||
lang_reset();
|
lang_reset();
|
||||||
// Force the "Follow calibration flow" message at the next boot up.
|
// Force the "Follow calibration flow" message at the next boot up.
|
||||||
calibration_status_store(CALIBRATION_STATUS_Z_CALIBRATION);
|
calibration_status_store(CALIBRATION_STATUS_Z_CALIBRATION);
|
||||||
eeprom_write_byte((uint8_t*)EEPROM_WIZARD_ACTIVE, 1); //run wizard
|
eeprom_write_byte((uint8_t*)EEPROM_WIZARD_ACTIVE, 2); //run wizard
|
||||||
farm_mode = false;
|
farm_mode = false;
|
||||||
eeprom_update_byte((uint8_t*)EEPROM_FARM_MODE, farm_mode);
|
eeprom_update_byte((uint8_t*)EEPROM_FARM_MODE, farm_mode);
|
||||||
|
|
||||||
|
@ -1564,7 +1564,7 @@ void setup()
|
||||||
lcd_show_fullscreen_message_and_wait_P(_i("Old settings found. Default PID, Esteps etc. will be set.")); //if EEPROM version or printer type was changed, inform user that default setting were loaded////MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
|
lcd_show_fullscreen_message_and_wait_P(_i("Old settings found. Default PID, Esteps etc. will be set.")); //if EEPROM version or printer type was changed, inform user that default setting were loaded////MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
|
||||||
Config_StoreSettings();
|
Config_StoreSettings();
|
||||||
}
|
}
|
||||||
if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE) == 1) {
|
if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE) >= 1) {
|
||||||
lcd_wizard(WizState::Run);
|
lcd_wizard(WizState::Run);
|
||||||
}
|
}
|
||||||
if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE) == 0) { //dont show calibration status messages if wizard is currently active
|
if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE) == 0) { //dont show calibration status messages if wizard is currently active
|
||||||
|
|
|
@ -408,7 +408,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP
|
||||||
#define EEPROM_POWER_COUNT (EEPROM_FERROR_COUNT - 1) // uint8 (orig EEPROM_UVLO_MESH_BED_LEVELING-17)
|
#define EEPROM_POWER_COUNT (EEPROM_FERROR_COUNT - 1) // uint8 (orig EEPROM_UVLO_MESH_BED_LEVELING-17)
|
||||||
|
|
||||||
#define EEPROM_XYZ_CAL_SKEW (EEPROM_POWER_COUNT - 4) // float for skew backup
|
#define EEPROM_XYZ_CAL_SKEW (EEPROM_POWER_COUNT - 4) // float for skew backup
|
||||||
#define EEPROM_WIZARD_ACTIVE (EEPROM_XYZ_CAL_SKEW - 1)
|
#define EEPROM_WIZARD_ACTIVE (EEPROM_XYZ_CAL_SKEW - 1) // 0: wizard not active, 1: wizard active, 2: wizard active without yes/no = forced calibrate Z after shipping/service prep.
|
||||||
#define EEPROM_BELTSTATUS_X (EEPROM_WIZARD_ACTIVE - 2) // uint16
|
#define EEPROM_BELTSTATUS_X (EEPROM_WIZARD_ACTIVE - 2) // uint16
|
||||||
#define EEPROM_BELTSTATUS_Y (EEPROM_BELTSTATUS_X - 2) // uint16
|
#define EEPROM_BELTSTATUS_Y (EEPROM_BELTSTATUS_X - 2) // uint16
|
||||||
|
|
||||||
|
|
|
@ -4962,7 +4962,7 @@ void lcd_wizard(WizState state)
|
||||||
{
|
{
|
||||||
using S = WizState;
|
using S = WizState;
|
||||||
bool end = false;
|
bool end = false;
|
||||||
int wizard_event;
|
int8_t wizard_event;
|
||||||
const char *msg = NULL;
|
const char *msg = NULL;
|
||||||
// Make sure EEPROM_WIZARD_ACTIVE is true if entering using different entry point
|
// Make sure EEPROM_WIZARD_ACTIVE is true if entering using different entry point
|
||||||
// other than WizState::Run - it is useful for debugging wizard.
|
// other than WizState::Run - it is useful for debugging wizard.
|
||||||
|
@ -4986,7 +4986,12 @@ void lcd_wizard(WizState state)
|
||||||
// Btw. the flag may even trigger the viper situation on normal start this way and the user won't be able to find out why.
|
// Btw. the flag may even trigger the viper situation on normal start this way and the user won't be able to find out why.
|
||||||
saved_printing = false;
|
saved_printing = false;
|
||||||
|
|
||||||
wizard_event = lcd_show_multiscreen_message_yes_no_and_wait_P(_i("Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"), false, true);////MSG_WIZARD_WELCOME c=20 r=7
|
if( eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE)==2){
|
||||||
|
lcd_show_fullscreen_message_and_wait_P(_i("Hi, I am your Original Prusa i3 printer. I will guide you through a short setup process, in which the Z-axis will be calibrated. Then, you will be ready to print."));////MSG_WIZARD_WELCOME_SHIPPING c=20 r=7
|
||||||
|
wizard_event = 1;
|
||||||
|
} else {
|
||||||
|
wizard_event = lcd_show_multiscreen_message_yes_no_and_wait_P(_i("Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"), false, true);////MSG_WIZARD_WELCOME c=20 r=7
|
||||||
|
}
|
||||||
if (wizard_event) {
|
if (wizard_event) {
|
||||||
state = S::Restore;
|
state = S::Restore;
|
||||||
eeprom_update_byte((uint8_t*)EEPROM_WIZARD_ACTIVE, 1);
|
eeprom_update_byte((uint8_t*)EEPROM_WIZARD_ACTIVE, 1);
|
||||||
|
|
Loading…
Reference in a new issue