From 997c8de1613d6357d707f98c744bbfac2645021c Mon Sep 17 00:00:00 2001 From: PavelSindler Date: Tue, 12 Dec 2017 19:17:37 +0100 Subject: [PATCH 1/2] shipping prep. reset sets wizard flag, shipping prep wizard improvements --- Firmware/Marlin_main.cpp | 2 ++ Firmware/ultralcd.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index ee75901ba..943ceaaa8 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -727,6 +727,7 @@ void factory_reset(char level, bool quiet) lcd_force_language_selection(); // Force the "Follow calibration flow" message at the next boot up. calibration_status_store(CALIBRATION_STATUS_Z_CALIBRATION); + eeprom_write_byte((uint8_t*)EEPROM_WIZARD_ACTIVE, 1); //run wizard farm_no = 0; farm_mode == false; eeprom_update_byte((uint8_t*)EEPROM_FARM_MODE, farm_mode); @@ -1998,6 +1999,7 @@ bool gcode_M45(bool onlyZ) { if (calibration_status() == CALIBRATION_STATUS_Z_CALIBRATION) // Shipped, the nozzle height has been set already. The user can start printing now. calibration_status_store(CALIBRATION_STATUS_CALIBRATED); + final_result = true; // babystep_apply(); } } diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 53b2a339e..3691ed07b 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -3562,6 +3562,8 @@ void lcd_wizard(int state) { break; case 4: //z cal. lcd_show_fullscreen_message_and_wait_P(MSG_WIZARD_Z_CAL); + wizard_event = lcd_show_fullscreen_message_yes_no_and_wait_P(MSG_STEEL_SHEET_CHECK, false, false); + if (!wizard_event) lcd_show_fullscreen_message_and_wait_P(MSG_PLACE_STEEL_SHEET); wizard_event = gcode_M45(true); if (wizard_event) state = 11; //shipped, no need to set first layer, go to final message directly else end = true; From 82dffb688a4c61d5bf334ec0fe25ea3b89a3cbf3 Mon Sep 17 00:00:00 2001 From: PavelSindler Date: Tue, 12 Dec 2017 20:21:09 +0100 Subject: [PATCH 2/2] force high power mode during xyz cal. and selftest --- Firmware/Marlin.h | 9 +++++++++ Firmware/Marlin_main.cpp | 26 ++++++++++++++++++++++++-- Firmware/ultralcd.cpp | 6 ++++++ 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index 51ce9dbc7..29e1289f3 100644 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -420,6 +420,15 @@ extern int busy_state; #endif //HOST_KEEPALIVE_FEATURE +#ifdef TMC2130 + +#define FORCE_HIGH_POWER_START force_high_power_mode(true) +#define FORCE_HIGH_POWER_END force_high_power_mode(false) + +void force_high_power_mode(bool start_high_power_section); + +#endif //TMC2130 + // G-codes bool gcode_M45(bool onlyZ); void gcode_M701(); diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 943ceaaa8..a356e16be 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -1916,11 +1916,30 @@ void ramming() { } */ +#ifdef TMC2130 +void force_high_power_mode(bool start_high_power_section) { + uint8_t silent; + silent = eeprom_read_byte((uint8_t*)EEPROM_SILENT); + if (silent == 1) { + //we are in silent mode, set to normal mode to enable crash detection + + + st_synchronize(); + cli(); + tmc2130_mode = (start_high_power_section == true) ? TMC2130_MODE_NORMAL : TMC2130_MODE_SILENT; + tmc2130_init(); + sei(); + digipot_init(); + } +} +#endif //TMC2130 + bool gcode_M45(bool onlyZ) { bool final_result = false; + #ifdef TMC2130 + FORCE_HIGH_POWER_START; + #endif // TMC2130 // Only Z calibration? - - if (!onlyZ) { setTargetBed(0); setTargetHotend(0, 0); @@ -2048,6 +2067,9 @@ bool gcode_M45(bool onlyZ) { // Timeouted. } lcd_update_enable(true); +#ifdef TMC2130 + FORCE_HIGH_POWER_END; +#endif // TMC2130 return final_result; } diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 3691ed07b..427218d7f 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5433,6 +5433,9 @@ static bool lcd_selftest() lcd_implementation_clear(); lcd.setCursor(0, 0); lcd_printPGM(MSG_SELFTEST_START); + #ifdef TMC2130 + FORCE_HIGH_POWER_START; + #endif // TMC2130 delay(2000); _progress = lcd_selftest_screen(-1, _progress, 3, true, 2000); @@ -5545,6 +5548,9 @@ static bool lcd_selftest() { LCD_ALERTMESSAGERPGM(MSG_SELFTEST_FAILED); } + #ifdef TMC2130 + FORCE_HIGH_POWER_END; + #endif // TMC2130 return(_result); }