Add loose soft endstop state, apply to UBL fine-tune (#19681)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
This commit is contained in:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							f5139f8bf4
						
					
				
				
					commit
					193c0a52d9
				
			@@ -61,7 +61,6 @@ inline void echo_not_entered(const char c) { SERIAL_CHAR(c); SERIAL_ECHOLNPGM("
 | 
			
		||||
void GcodeSuite::G29() {
 | 
			
		||||
 | 
			
		||||
  static int mbl_probe_index = -1;
 | 
			
		||||
  TERN_(HAS_SOFTWARE_ENDSTOPS, static bool saved_soft_endstops_state);
 | 
			
		||||
 | 
			
		||||
  MeshLevelingState state = (MeshLevelingState)parser.byteval('S', (int8_t)MeshReport);
 | 
			
		||||
  if (!WITHIN(state, 0, 5)) {
 | 
			
		||||
@@ -98,26 +97,19 @@ void GcodeSuite::G29() {
 | 
			
		||||
      }
 | 
			
		||||
      // For each G29 S2...
 | 
			
		||||
      if (mbl_probe_index == 0) {
 | 
			
		||||
        #if HAS_SOFTWARE_ENDSTOPS
 | 
			
		||||
          // For the initial G29 S2 save software endstop state
 | 
			
		||||
          saved_soft_endstops_state = soft_endstops_enabled;
 | 
			
		||||
        #endif
 | 
			
		||||
        // Move close to the bed before the first point
 | 
			
		||||
        do_blocking_move_to_z(0);
 | 
			
		||||
      }
 | 
			
		||||
      else {
 | 
			
		||||
        // Save Z for the previous mesh position
 | 
			
		||||
        mbl.set_zigzag_z(mbl_probe_index - 1, current_position.z);
 | 
			
		||||
        TERN_(HAS_SOFTWARE_ENDSTOPS, soft_endstops_enabled = saved_soft_endstops_state);
 | 
			
		||||
        SET_SOFT_ENDSTOP_LOOSE(false);
 | 
			
		||||
      }
 | 
			
		||||
      // If there's another point to sample, move there with optional lift.
 | 
			
		||||
      if (mbl_probe_index < GRID_MAX_POINTS) {
 | 
			
		||||
        #if HAS_SOFTWARE_ENDSTOPS
 | 
			
		||||
          // Disable software endstops to allow manual adjustment
 | 
			
		||||
          // If G29 is not completed, they will not be re-enabled
 | 
			
		||||
          soft_endstops_enabled = false;
 | 
			
		||||
        #endif
 | 
			
		||||
 | 
			
		||||
        // Disable software endstops to allow manual adjustment
 | 
			
		||||
        // If G29 is left hanging without completion they won't be re-enabled!
 | 
			
		||||
        SET_SOFT_ENDSTOP_LOOSE(true);
 | 
			
		||||
        mbl.zigzag(mbl_probe_index++, ix, iy);
 | 
			
		||||
        _manual_goto_xy({ mbl.index_to_xpos[ix], mbl.index_to_ypos[iy] });
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user