From f5d382f9f4d77b32f1779099cc7fad1f1277d7e9 Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 28 Dec 2019 20:35:04 +0100 Subject: [PATCH 1/2] Remove useless st_synchronize calls when unparking --- Firmware/Marlin_main.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 4970091ea..994fba7bb 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -10312,12 +10312,10 @@ void restore_print_from_ram_and_continue(float e_move) //first move print head in XY to the saved position: plan_buffer_line(saved_pos[X_AXIS], saved_pos[Y_AXIS], current_position[Z_AXIS], saved_pos[E_AXIS] - e_move, homing_feedrate[Z_AXIS]/13, active_extruder); - st_synchronize(); //then move Z plan_buffer_line(saved_pos[X_AXIS], saved_pos[Y_AXIS], saved_pos[Z_AXIS], saved_pos[E_AXIS] - e_move, homing_feedrate[Z_AXIS]/13, active_extruder); - st_synchronize(); //and finaly unretract (35mm/s) - plan_buffer_line(saved_pos[X_AXIS], saved_pos[Y_AXIS], saved_pos[Z_AXIS], saved_pos[E_AXIS], 35, active_extruder); + plan_buffer_line(saved_pos[X_AXIS], saved_pos[Y_AXIS], saved_pos[Z_AXIS], saved_pos[E_AXIS], FILAMENTCHANGE_RFEED, active_extruder); st_synchronize(); #ifdef FANCHECK From 57be14fca6d791a550be515fc1c074d11296dcbd Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Sat, 28 Dec 2019 20:26:19 +0100 Subject: [PATCH 2/2] Complete all pending moves before restoring a saved print --- Firmware/mmu.cpp | 1 + Firmware/ultralcd.cpp | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index 2bb2afa76..bc369fd53 100755 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -1589,6 +1589,7 @@ void mmu_continue_loading(bool blocking) if (blocking) { marlin_wait_for_click(); + st_synchronize(); restore_print_from_ram_and_continue(0); state = Ls::Retry; } diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 5d0abeac9..f5b73d3ed 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -6764,12 +6764,13 @@ static bool fan_error_selftest() void lcd_resume_print() { lcd_return_to_status(); - lcd_reset_alert_level(); - lcd_setstatuspgm(_T(MSG_RESUMING_PRINT)); lcd_reset_alert_level(); //for fan speed error - if (fan_error_selftest()) return; //abort if error persists + lcd_setstatuspgm(_T(MSG_FINISHING_MOVEMENTS)); + st_synchronize(); + + lcd_setstatuspgm(_T(MSG_RESUMING_PRINT)); isPrintPaused = false; restore_print_from_ram_and_continue(0.0); pause_time += (_millis() - start_pause_print); //accumulate time when print is paused for correct statistics calculation