During homing, line_to_axis_pos will make a path which moves across the
endstop trigger point. The move is stopped at endstop, so current_position should also be adjusted to reflect this! Caused error in subsequent call in endstop adjustment, since the movement would assume a wrong starting position.
This commit is contained in:
		
							parent
							
								
									f575e92f2e
								
							
						
					
					
						commit
						fe059f1221
					
				| @ -2414,6 +2414,10 @@ static void homeaxis(AxisEnum axis) { | |||||||
|   // Move slowly towards the endstop until triggered
 |   // Move slowly towards the endstop until triggered
 | ||||||
|   line_to_axis_pos(axis, 2 * home_bump_mm(axis) * axis_home_dir, get_homing_bump_feedrate(axis)); |   line_to_axis_pos(axis, 2 * home_bump_mm(axis) * axis_home_dir, get_homing_bump_feedrate(axis)); | ||||||
| 
 | 
 | ||||||
|  |   // reset current_position to 0 to reflect hitting endpoint
 | ||||||
|  |   current_position[axis] = 0; | ||||||
|  |   sync_plan_position(); | ||||||
|  | 
 | ||||||
|   #if ENABLED(DEBUG_LEVELING_FEATURE) |   #if ENABLED(DEBUG_LEVELING_FEATURE) | ||||||
|     if (DEBUGGING(LEVELING)) DEBUG_POS("> TRIGGER ENDSTOP", current_position); |     if (DEBUGGING(LEVELING)) DEBUG_POS("> TRIGGER ENDSTOP", current_position); | ||||||
|   #endif |   #endif | ||||||
| @ -2430,7 +2434,6 @@ static void homeaxis(AxisEnum axis) { | |||||||
|         lockZ1 = (z_endstop_adj < 0); |         lockZ1 = (z_endstop_adj < 0); | ||||||
| 
 | 
 | ||||||
|       if (lockZ1) stepper.set_z_lock(true); else stepper.set_z2_lock(true); |       if (lockZ1) stepper.set_z_lock(true); else stepper.set_z2_lock(true); | ||||||
|       sync_plan_position(); |  | ||||||
| 
 | 
 | ||||||
|       // Move to the adjusted endstop height
 |       // Move to the adjusted endstop height
 | ||||||
|       line_to_axis_pos(axis, adj); |       line_to_axis_pos(axis, adj); | ||||||
| @ -2443,7 +2446,6 @@ static void homeaxis(AxisEnum axis) { | |||||||
|   #if ENABLED(DELTA) |   #if ENABLED(DELTA) | ||||||
|     // retrace by the amount specified in endstop_adj
 |     // retrace by the amount specified in endstop_adj
 | ||||||
|     if (endstop_adj[axis] * axis_home_dir < 0) { |     if (endstop_adj[axis] * axis_home_dir < 0) { | ||||||
|       sync_plan_position(); |  | ||||||
|       #if ENABLED(DEBUG_LEVELING_FEATURE) |       #if ENABLED(DEBUG_LEVELING_FEATURE) | ||||||
|         if (DEBUGGING(LEVELING)) { |         if (DEBUGGING(LEVELING)) { | ||||||
|           SERIAL_ECHOPAIR("> endstop_adj = ", endstop_adj[axis]); |           SERIAL_ECHOPAIR("> endstop_adj = ", endstop_adj[axis]); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user