| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -2381,7 +2381,7 @@ inline void gcode_G28() {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    #endif
 | 
					 | 
					 | 
					 | 
					    #endif
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  #endif
 | 
					 | 
					 | 
					 | 
					  #endif
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  // For manual bed leveling deactivate the matrix temporarily
 | 
					 | 
					 | 
					 | 
					  // For mesh bed leveling deactivate the mesh calculations, will be turned on again when homing all axis
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  #if ENABLED(MESH_BED_LEVELING)
 | 
					 | 
					 | 
					 | 
					  #if ENABLED(MESH_BED_LEVELING)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    uint8_t mbl_was_active = mbl.active;
 | 
					 | 
					 | 
					 | 
					    uint8_t mbl_was_active = mbl.active;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    mbl.active = 0;
 | 
					 | 
					 | 
					 | 
					    mbl.active = 0;
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -2680,18 +2680,17 @@ inline void gcode_G28() {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    enable_endstops(false);
 | 
					 | 
					 | 
					 | 
					    enable_endstops(false);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  #endif
 | 
					 | 
					 | 
					 | 
					  #endif
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  // For manual leveling move back to 0,0
 | 
					 | 
					 | 
					 | 
					  // For mesh leveling move back to Z=0
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  #if ENABLED(MESH_BED_LEVELING)
 | 
					 | 
					 | 
					 | 
					  #if ENABLED(MESH_BED_LEVELING)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    if (mbl_was_active) {
 | 
					 | 
					 | 
					 | 
					    if (mbl_was_active && home_all_axis) {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      current_position[X_AXIS] = mbl.get_x(0);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      current_position[Y_AXIS] = mbl.get_y(0);
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      set_destination_to_current();
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      feedrate = homing_feedrate[X_AXIS];
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      line_to_destination();
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      st_synchronize();
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      current_position[Z_AXIS] = MESH_HOME_SEARCH_Z;
 | 
					 | 
					 | 
					 | 
					      current_position[Z_AXIS] = MESH_HOME_SEARCH_Z;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      sync_plan_position();
 | 
					 | 
					 | 
					 | 
					      sync_plan_position();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      mbl.active = 1;
 | 
					 | 
					 | 
					 | 
					      mbl.active = 1;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      current_position[Z_AXIS] = 0.0;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      set_destination_to_current();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      feedrate = homing_feedrate[Z_AXIS];
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      line_to_destination();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      st_synchronize();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      #if ENABLED(DEBUG_LEVELING_FEATURE)
 | 
					 | 
					 | 
					 | 
					      #if ENABLED(DEBUG_LEVELING_FEATURE)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if (marlin_debug_flags & DEBUG_LEVELING) {
 | 
					 | 
					 | 
					 | 
					        if (marlin_debug_flags & DEBUG_LEVELING) {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					          print_xyz("mbl_was_active > current_position", current_position);
 | 
					 | 
					 | 
					 | 
					          print_xyz("mbl_was_active > current_position", current_position);
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |