|  |  | @ -1369,7 +1369,7 @@ inline void set_destination_to_current() { memcpy(destination, current_position, | 
			
		
	
		
		
			
				
					
					|  |  |  |     #endif |  |  |  |     #endif | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     if (verbose_level > 2) { |  |  |  |     if (verbose_level > 2) { | 
			
		
	
		
		
			
				
					
					|  |  |  |       SERIAL_PROTOCOLPGM(MSG_BED); |  |  |  |       SERIAL_PROTOCOLPGM("Bed"); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |       SERIAL_PROTOCOLPGM(" X: "); |  |  |  |       SERIAL_PROTOCOLPGM(" X: "); | 
			
		
	
		
		
			
				
					
					|  |  |  |       SERIAL_PROTOCOL_F(x, 3); |  |  |  |       SERIAL_PROTOCOL_F(x, 3); | 
			
		
	
		
		
			
				
					
					|  |  |  |       SERIAL_PROTOCOLPGM(" Y: "); |  |  |  |       SERIAL_PROTOCOLPGM(" Y: "); | 
			
		
	
	
		
		
			
				
					|  |  | @ -2518,7 +2518,7 @@ inline void gcode_G28() { | 
			
		
	
		
		
			
				
					
					|  |  |  |       feedrate = homing_feedrate[Z_AXIS]; |  |  |  |       feedrate = homing_feedrate[Z_AXIS]; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |       run_z_probe(); |  |  |  |       run_z_probe(); | 
			
		
	
		
		
			
				
					
					|  |  |  |       SERIAL_PROTOCOLPGM(MSG_BED); |  |  |  |       SERIAL_PROTOCOLPGM("Bed"); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |       SERIAL_PROTOCOLPGM(" X: "); |  |  |  |       SERIAL_PROTOCOLPGM(" X: "); | 
			
		
	
		
		
			
				
					
					|  |  |  |       SERIAL_PROTOCOL(current_position[X_AXIS] + 0.0001); |  |  |  |       SERIAL_PROTOCOL(current_position[X_AXIS] + 0.0001); | 
			
		
	
		
		
			
				
					
					|  |  |  |       SERIAL_PROTOCOLPGM(" Y: "); |  |  |  |       SERIAL_PROTOCOLPGM(" Y: "); | 
			
		
	
	
		
		
			
				
					|  |  | @ -2856,7 +2856,7 @@ inline void gcode_M42() { | 
			
		
	
		
		
			
				
					
					|  |  |  |   inline void gcode_M48() { |  |  |  |   inline void gcode_M48() { | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     double sum = 0.0, mean = 0.0, sigma = 0.0, sample_set[50]; |  |  |  |     double sum = 0.0, mean = 0.0, sigma = 0.0, sample_set[50]; | 
			
		
	
		
		
			
				
					
					|  |  |  |     int verbose_level = 1, n_samples = 10, n_legs = 0; |  |  |  |     uint8_t verbose_level = 1, n_samples = 10, n_legs = 0; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     if (code_seen('V') || code_seen('v')) { |  |  |  |     if (code_seen('V') || code_seen('v')) { | 
			
		
	
		
		
			
				
					
					|  |  |  |       verbose_level = code_value_short(); |  |  |  |       verbose_level = code_value_short(); | 
			
		
	
	
		
		
			
				
					|  |  | @ -2964,7 +2964,7 @@ inline void gcode_M42() { | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     if (deploy_probe_for_each_reading) stow_z_probe(); |  |  |  |     if (deploy_probe_for_each_reading) stow_z_probe(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     for (uint16_t n=0; n < n_samples; n++) { |  |  |  |     for (uint8_t n=0; n < n_samples; n++) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |       do_blocking_move_to(X_probe_location, Y_probe_location, Z_start_location); // Make sure we are at the probe location
 |  |  |  |       do_blocking_move_to(X_probe_location, Y_probe_location, Z_start_location); // Make sure we are at the probe location
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -2979,7 +2979,7 @@ inline void gcode_M42() { | 
			
		
	
		
		
			
				
					
					|  |  |  |         //SERIAL_ECHOPAIR("   direction: ",dir);
 |  |  |  |         //SERIAL_ECHOPAIR("   direction: ",dir);
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         //SERIAL_EOL;
 |  |  |  |         //SERIAL_EOL;
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         for (int l = 0; l < n_legs - 1; l++) { |  |  |  |         for (uint8_t l = 0; l < n_legs - 1; l++) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |           ms = millis(); |  |  |  |           ms = millis(); | 
			
		
	
		
		
			
				
					
					|  |  |  |           theta += RADIANS(dir * (ms % 20L)); |  |  |  |           theta += RADIANS(dir * (ms % 20L)); | 
			
		
	
		
		
			
				
					
					|  |  |  |           radius += (ms % 10L) - 5L; |  |  |  |           radius += (ms % 10L) - 5L; | 
			
		
	
	
		
		
			
				
					|  |  | @ -3018,7 +3018,7 @@ inline void gcode_M42() { | 
			
		
	
		
		
			
				
					
					|  |  |  |       // Get the current mean for the data points we have so far
 |  |  |  |       // Get the current mean for the data points we have so far
 | 
			
		
	
		
		
			
				
					
					|  |  |  |       //
 |  |  |  |       //
 | 
			
		
	
		
		
			
				
					
					|  |  |  |       sum = 0.0; |  |  |  |       sum = 0.0; | 
			
		
	
		
		
			
				
					
					|  |  |  |       for (int j = 0; j <= n; j++) sum += sample_set[j]; |  |  |  |       for (uint8_t j = 0; j <= n; j++) sum += sample_set[j]; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |       mean = sum / (n + 1); |  |  |  |       mean = sum / (n + 1); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |       //
 |  |  |  |       //
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -3026,7 +3026,7 @@ inline void gcode_M42() { | 
			
		
	
		
		
			
				
					
					|  |  |  |       // data points we have so far
 |  |  |  |       // data points we have so far
 | 
			
		
	
		
		
			
				
					
					|  |  |  |       //
 |  |  |  |       //
 | 
			
		
	
		
		
			
				
					
					|  |  |  |       sum = 0.0; |  |  |  |       sum = 0.0; | 
			
		
	
		
		
			
				
					
					|  |  |  |       for (int j = 0; j <= n; j++) { |  |  |  |       for (uint8_t j = 0; j <= n; j++) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         float ss = sample_set[j] - mean; |  |  |  |         float ss = sample_set[j] - mean; | 
			
		
	
		
		
			
				
					
					|  |  |  |         sum += ss * ss; |  |  |  |         sum += ss * ss; | 
			
		
	
		
		
			
				
					
					|  |  |  |       } |  |  |  |       } | 
			
		
	
	
		
		
			
				
					|  |  | 
 |