diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index da54ce4d6..0ea3e68ee 100755 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -3515,7 +3515,7 @@ inline void gcode_G28() { inline void _mbl_goto_xy(float x, float y) { float old_feedrate_mm_s = feedrate_mm_s; - feedrate_mm_s = homing_feedrate_mm_s[X_AXIS]; + feedrate_mm_s = homing_feedrate_mm_s[Z_AXIS]; current_position[Z_AXIS] = MESH_HOME_SEARCH_Z #if Z_CLEARANCE_BETWEEN_PROBES > Z_HOMING_HEIGHT @@ -3526,11 +3526,13 @@ inline void gcode_G28() { ; line_to_current_position(); + feedrate_mm_s = MMM_TO_MMS(XY_PROBE_SPEED); current_position[X_AXIS] = LOGICAL_X_POSITION(x); current_position[Y_AXIS] = LOGICAL_Y_POSITION(y); line_to_current_position(); #if Z_CLEARANCE_BETWEEN_PROBES > 0 || Z_HOMING_HEIGHT > 0 + feedrate_mm_s = homing_feedrate_mm_s[Z_AXIS]; current_position[Z_AXIS] = LOGICAL_Z_POSITION(MESH_HOME_SEARCH_Z); line_to_current_position(); #endif diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index 7073b9125..cbab5395f 100755 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -1026,7 +1026,7 @@ void kill_screen(const char* lcd_msg) { line_to_current(Z_AXIS); current_position[X_AXIS] = LOGICAL_X_POSITION(x); current_position[Y_AXIS] = LOGICAL_Y_POSITION(y); - line_to_current(manual_feedrate_mm_m[X_AXIS] <= manual_feedrate_mm_m[Y_AXIS] ? X_AXIS : Y_AXIS); + planner.buffer_line_kinematic(current_position, MMM_TO_MMS(XY_PROBE_SPEED), active_extruder); #if Z_HOMING_HEIGHT > 0 current_position[Z_AXIS] = LOGICAL_Z_POSITION(MESH_HOME_SEARCH_Z); line_to_current(Z_AXIS);