@ -997,7 +997,7 @@ XYZ_CONSTS_FROM_CONFIG(signed char, home_dir, HOME_DIR);
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					# endif  //DUAL_X_CARRIAGE
 # endif  //DUAL_X_CARRIAGE
  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					static  void  axis_is_at_home ( int axis )  { static  void  axis_is_at_home ( AxisEnum axis )  {  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  # ifdef DUAL_X_CARRIAGE 
  # ifdef DUAL_X_CARRIAGE 
 
			
		
	
		
		
			
				
					
					    if  ( axis  = =  X_AXIS )  { 
    if  ( axis  = =  X_AXIS )  { 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -1422,27 +1422,27 @@ static void setup_for_endstop_move() {
 
			
		
	
		
		
			
				
					
					  } ; 
  } ; 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  // Probe bed height at position (x,y), returns the measured z value
 
  // Probe bed height at position (x,y), returns the measured z value
 
 
			
		
	
		
		
			
				
					
					  static  float  probe_pt ( float  x ,  float  y ,  float  z_before ,  ProbeAction  tract _action= ProbeDeployAndStow ,  int  verbose_level = 1 )  { 
  static  float  probe_pt ( float  x ,  float  y ,  float  z_before ,  ProbeAction  p rob e_action= ProbeDeployAndStow ,  int  verbose_level = 1 )  { 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    // move to right place
 
    // move to right place
 
 
			
		
	
		
		
			
				
					
					    do_blocking_move_to ( current_position [ X_AXIS ] ,  current_position [ Y_AXIS ] ,  z_before ) ;  // this also updates current_position
 
    do_blocking_move_to ( current_position [ X_AXIS ] ,  current_position [ Y_AXIS ] ,  z_before ) ;  // this also updates current_position
 
 
			
		
	
		
		
			
				
					
					    do_blocking_move_to ( x  -  X_PROBE_OFFSET_FROM_EXTRUDER ,  y  -  Y_PROBE_OFFSET_FROM_EXTRUDER ,  current_position [ Z_AXIS ] ) ;  // this also updates current_position
 
    do_blocking_move_to ( x  -  X_PROBE_OFFSET_FROM_EXTRUDER ,  y  -  Y_PROBE_OFFSET_FROM_EXTRUDER ,  current_position [ Z_AXIS ] ) ;  // this also updates current_position
 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					    # if !defined(Z_PROBE_SLED) && !defined(Z_PROBE_ALLEN_KEY) 
    # if !defined(Z_PROBE_SLED) && !defined(Z_PROBE_ALLEN_KEY) 
 
			
		
	
		
		
			
				
					
					      if  ( tract _action &  ProbeDeploy )  deploy_z_probe ( ) ; 
      if  ( p rob e_action &  ProbeDeploy )  deploy_z_probe ( ) ; 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    # endif 
    # endif 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					    run_z_probe ( ) ; 
    run_z_probe ( ) ; 
 
			
		
	
		
		
			
				
					
					    float  measured_z  =  current_position [ Z_AXIS ] ; 
    float  measured_z  =  current_position [ Z_AXIS ] ; 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					    # if Z_RAISE_BETWEEN_PROBINGS > 0 
    # if Z_RAISE_BETWEEN_PROBINGS > 0 
 
			
		
	
		
		
			
				
					
					      if  ( tract _action = =  ProbeStay )  { 
      if  ( p rob e_action = =  ProbeStay )  { 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					        do_blocking_move_to ( current_position [ X_AXIS ] ,  current_position [ Y_AXIS ] ,  current_position [ Z_AXIS ]  +  Z_RAISE_BETWEEN_PROBINGS ) ;  // this also updates current_position
 
        do_blocking_move_to ( current_position [ X_AXIS ] ,  current_position [ Y_AXIS ] ,  current_position [ Z_AXIS ]  +  Z_RAISE_BETWEEN_PROBINGS ) ;  // this also updates current_position
 
 
			
		
	
		
		
			
				
					
					        st_synchronize ( ) ; 
        st_synchronize ( ) ; 
 
			
		
	
		
		
			
				
					
					      } 
      } 
 
			
		
	
		
		
			
				
					
					    # endif 
    # endif 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					    # if !defined(Z_PROBE_SLED) && !defined(Z_PROBE_ALLEN_KEY) 
    # if !defined(Z_PROBE_SLED) && !defined(Z_PROBE_ALLEN_KEY) 
 
			
		
	
		
		
			
				
					
					      if  ( tract _action &  ProbeStow )  stow_z_probe ( ) ; 
      if  ( p rob e_action &  ProbeStow )  stow_z_probe ( ) ; 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					    # endif 
    # endif 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					    if  ( verbose_level  >  2 )  { 
    if  ( verbose_level  >  2 )  { 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -5082,7 +5082,7 @@ inline void gcode_M999() {
 
			
		
	
		
		
			
				
					
					 *    F [ mm / min ]  Set  the  movement  feedrate 
 *    F [ mm / min ]  Set  the  movement  feedrate 
 
			
		
	
		
		
			
				
					
					 */ 
 */ 
 
			
		
	
		
		
			
				
					
					inline  void  gcode_T ( )  { inline  void  gcode_T ( )  {  
			
		
	
		
		
			
				
					
					  tmp_extruder  =  code_value ( ) ; 
  u int16_ t tmp_extruder  =  code_value _short ( ) ; 
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					  if  ( tmp_extruder  > =  EXTRUDERS )  { 
  if  ( tmp_extruder  > =  EXTRUDERS )  { 
 
			
		
	
		
		
			
				
					
					    SERIAL_ECHO_START ; 
    SERIAL_ECHO_START ; 
 
			
		
	
		
		
			
				
					
					    SERIAL_CHAR ( ' T ' ) ; 
    SERIAL_CHAR ( ' T ' ) ; 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -5595,7 +5595,7 @@ void process_next_command() {
 
			
		
	
		
		
			
				
					
					        gcode_M400 ( ) ; 
        gcode_M400 ( ) ; 
 
			
		
	
		
		
			
				
					
					        break ; 
        break ; 
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					      # if defined(ENABLE_AUTO_BED_LEVELING) && (defined(SERVO_ENDSTOPS) || defined(Z_PROBE_ALLEN_KEY)) &&  not  defined(Z_PROBE_SLED)
      # if defined(ENABLE_AUTO_BED_LEVELING) && (defined(SERVO_ENDSTOPS) || defined(Z_PROBE_ALLEN_KEY)) &&  ! defined(Z_PROBE_SLED)
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					        case  401 : 
        case  401 : 
 
			
		
	
		
		
			
				
					
					          gcode_M401 ( ) ; 
          gcode_M401 ( ) ; 
 
			
		
	
		
		
			
				
					
					          break ; 
          break ;