diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 0b9beac55..bdb7f9738 100755 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -3522,7 +3522,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 @@ -3533,11 +3533,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 87163d45d..74efa0ab8 100755 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -1041,7 +1041,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);