M425 Backlash Correction (#11061)
This commit is contained in:
		
				
					committed by
					
						 Scott Lahteine
						Scott Lahteine
					
				
			
			
				
	
			
			
			
						parent
						
							fa47ce369a
						
					
				
				
					commit
					b22716e938
				
			| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -489,6 +489,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -473,6 +473,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -489,6 +489,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -494,6 +494,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -495,6 +495,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.01  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -503,6 +503,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -492,6 +492,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -492,6 +492,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -492,6 +492,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -492,6 +492,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -492,6 +492,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -492,6 +492,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -492,6 +492,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -492,6 +492,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -492,6 +492,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -492,6 +492,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -490,6 +490,39 @@ | ||||
|   #define JUNCTION_DEVIATION_MM 0.02  // (mm) Distance from real junction edge | ||||
| #endif | ||||
|  | ||||
| // | ||||
| // Backlash Compensation | ||||
| // Adds extra movement to axes on direction-changes to account for backlash. | ||||
| // | ||||
| //#define BACKLASH_COMPENSATION | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   // Define values for backlash distance and correction. | ||||
|   // If BACKLASH_GCODE is enabled these values are the defaults. | ||||
|   #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) | ||||
|   #define BACKLASH_CORRECTION    0.0       // 0.0 = no correction; 1.0 = full correction | ||||
|  | ||||
|   // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments | ||||
|   // to reduce print artifacts. (Enabling this is costly in memory and computation!) | ||||
|   //#define BACKLASH_SMOOTHING_MM 3 // (mm) | ||||
|  | ||||
|   // Add runtime configuration and tuning of backlash values (M425) | ||||
|   //#define BACKLASH_GCODE | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     // Measure the Z backlash when probing (G29) and set with "M425 Z" | ||||
|     #define MEASURE_BACKLASH_WHEN_PROBING | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT | ||||
|       // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION | ||||
|       // increments while checking for the contact to be broken. | ||||
|       #define BACKLASH_MEASUREMENT_LIMIT       0.5   // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_RESOLUTION  0.005 // (mm) | ||||
|       #define BACKLASH_MEASUREMENT_FEEDRATE    Z_PROBE_SPEED_SLOW // (mm/m) | ||||
|     #endif | ||||
|   #endif | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies | ||||
|  * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible | ||||
|   | ||||
| @@ -81,7 +81,7 @@ | ||||
|       static uint8_t get_status_response(TMC2208Stepper &st, uint32_t drv_status) { | ||||
|         uint8_t gstat = st.GSTAT(); | ||||
|         uint8_t response = 0; | ||||
|         response |= (drv_status >> (31-3)) & 0b1000; | ||||
|         response |= (drv_status >> (31 - 3)) & 0b1000; | ||||
|         response |= gstat & 0b11; | ||||
|         return response; | ||||
|       } | ||||
|   | ||||
							
								
								
									
										123
									
								
								Marlin/src/gcode/calibrate/M425.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										123
									
								
								Marlin/src/gcode/calibrate/M425.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,123 @@ | ||||
| /** | ||||
|  * Marlin 3D Printer Firmware | ||||
|  * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] | ||||
|  * | ||||
|  * Based on Sprinter and grbl. | ||||
|  * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm | ||||
|  * | ||||
|  * This program is free software: you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU General Public License as published by | ||||
|  * the Free Software Foundation, either version 3 of the License, or | ||||
|  * (at your option) any later version. | ||||
|  * | ||||
|  * This program is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with this program.  If not, see <http://www.gnu.org/licenses/>. | ||||
|  * | ||||
|  */ | ||||
|  | ||||
| #include "../../inc/MarlinConfig.h" | ||||
|  | ||||
| #if ENABLED(BACKLASH_GCODE) | ||||
|  | ||||
| #include "../../module/planner.h" | ||||
|  | ||||
| float backlash_distance_mm[XYZ] = BACKLASH_DISTANCE_MM, | ||||
|       backlash_correction = BACKLASH_CORRECTION; | ||||
|  | ||||
| #ifdef BACKLASH_SMOOTHING_MM | ||||
|   float backlash_smoothing_mm = BACKLASH_SMOOTHING_MM; | ||||
| #endif | ||||
|  | ||||
| #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|   float backlash_measured_mm[XYZ] = { 0 }; | ||||
|   uint8_t backlash_measured_num[XYZ] = { 0 }; | ||||
| #endif | ||||
|  | ||||
| #include "../gcode.h" | ||||
|  | ||||
| /** | ||||
|  * M425: Enable and tune backlash correction. | ||||
|  * | ||||
|  *   F<fraction>     Enable/disable/fade-out backlash correction (0.0 to 1.0) | ||||
|  *   S<smoothing_mm> Distance over which backlash correction is spread | ||||
|  *   X<distance_mm>  Set the backlash distance on X (0 to disable) | ||||
|  *   Y<distance_mm>                        ... on Y | ||||
|  *   Z<distance_mm>                        ... on Z | ||||
|  *   X               If a backlash measurement was done on X, copy that value | ||||
|  *   Y                                              ... on Y | ||||
|  *   Z                                              ... on Z | ||||
|  * | ||||
|  * Type M425 without any arguments to show active values. | ||||
|  */ | ||||
| void GcodeSuite::M425() { | ||||
|   bool noArgs = true; | ||||
|  | ||||
|   LOOP_XYZ(i) { | ||||
|     if (parser.seen(axis_codes[i])) { | ||||
|       planner.synchronize(); | ||||
|       const float measured_backlash = ( | ||||
|         #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|           backlash_measured_num[i] > 0 ? backlash_measured_mm[i] / backlash_measured_num[i] : 0 | ||||
|         #else | ||||
|           0 | ||||
|         #endif | ||||
|       ); | ||||
|       backlash_distance_mm[i] = parser.has_value() ? parser.value_linear_units() : measured_backlash; | ||||
|       noArgs = false; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   if (parser.seen('F')) { | ||||
|     planner.synchronize(); | ||||
|     backlash_correction = max(0, min(1.0, parser.value_linear_units())); | ||||
|     noArgs = false; | ||||
|   } | ||||
|  | ||||
|   #ifdef BACKLASH_SMOOTHING_MM | ||||
|     if (parser.seen('S')) { | ||||
|       planner.synchronize(); | ||||
|       backlash_smoothing_mm = parser.value_linear_units(); | ||||
|       noArgs = false; | ||||
|     } | ||||
|   #endif | ||||
|  | ||||
|   if (noArgs) { | ||||
|     SERIAL_ECHOPGM("Backlash correction is "); | ||||
|     if (!backlash_correction) SERIAL_ECHOPGM("in"); | ||||
|     SERIAL_ECHOLNPGM("active:"); | ||||
|     SERIAL_ECHOPAIR("  Correction Amount/Fade-out:     F", backlash_correction); | ||||
|     SERIAL_ECHOLNPGM("     (F1.0 = full, F0.0 = none)"); | ||||
|     SERIAL_ECHOPGM("  Backlash Distance (mm):        "); | ||||
|     LOOP_XYZ(a) { | ||||
|       SERIAL_CHAR(' '); | ||||
|       SERIAL_CHAR(axis_codes[a]); | ||||
|       SERIAL_ECHO(backlash_distance_mm[a]); | ||||
|       SERIAL_EOL(); | ||||
|     } | ||||
|  | ||||
|     #ifdef BACKLASH_SMOOTHING_MM | ||||
|       SERIAL_ECHOLNPAIR("  Smoothing (mm):                 S", backlash_smoothing_mm); | ||||
|     #endif | ||||
|  | ||||
|     #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|       SERIAL_ECHOPGM("  Average measured backlash (mm):"); | ||||
|       LOOP_XYZ(a) { | ||||
|         if (backlash_measured_num[a] > 0) { | ||||
|           SERIAL_CHAR(' '); | ||||
|           SERIAL_CHAR(axis_codes[a]); | ||||
|           SERIAL_ECHO(backlash_measured_mm[a] / backlash_measured_num[a]); | ||||
|         } | ||||
|       } | ||||
|       if (!backlash_measured_num[X_AXIS] && !backlash_measured_num[Y_AXIS] && !backlash_measured_num[Z_AXIS]) | ||||
|         SERIAL_ECHOPGM(" (Not yet measured)"); | ||||
|       SERIAL_EOL(); | ||||
|     #endif | ||||
|   } | ||||
| } | ||||
|  | ||||
| #endif // BACKLASH_GCODE | ||||
| @@ -576,6 +576,10 @@ void GcodeSuite::process_parsed_command( | ||||
|         case 421: M421(); break;                                  // M421: Set a Mesh Bed Leveling Z coordinate | ||||
|       #endif | ||||
|  | ||||
|       #if ENABLED(BACKLASH_GCODE) | ||||
|         case 425: M425(); break;                                  // M425: Tune backlash compensation | ||||
|       #endif | ||||
|  | ||||
|       #if HAS_M206_COMMAND | ||||
|         case 428: M428(); break;                                  // M428: Apply current_position to home_offset | ||||
|       #endif | ||||
|   | ||||
| @@ -201,6 +201,7 @@ | ||||
|  * M420 - Enable/Disable Leveling (with current values) S1=enable S0=disable (Requires MESH_BED_LEVELING or ABL) | ||||
|  * M421 - Set a single Z coordinate in the Mesh Leveling grid. X<units> Y<units> Z<units> (Requires MESH_BED_LEVELING, AUTO_BED_LEVELING_BILINEAR, or AUTO_BED_LEVELING_UBL) | ||||
|  * M422 - Set Z Stepper automatic alignment position using probe. X<units> Y<units> A<axis> (Requires Z_STEPPER_AUTO_ALIGN) | ||||
|  * M425 - Enable/Disable and tune backlash correction. (Requires BACKLASH_COMPENSATION and BACKLASH_GCODE) | ||||
|  * M428 - Set the home_offset based on the current_position. Nearest edge applies. (Disabled by NO_WORKSPACE_OFFSETS or DELTA) | ||||
|  * M500 - Store parameters in EEPROM. (Requires EEPROM_SETTINGS) | ||||
|  * M501 - Restore parameters from EEPROM. (Requires EEPROM_SETTINGS) | ||||
| @@ -709,6 +710,10 @@ private: | ||||
|     static void M421(); | ||||
|   #endif | ||||
|  | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     static void M425(); | ||||
|   #endif | ||||
|  | ||||
|   #if HAS_M206_COMMAND | ||||
|     static void M428(); | ||||
|   #endif | ||||
|   | ||||
| @@ -1996,3 +1996,7 @@ static_assert(sanity_arr_3[0] > 0 && sanity_arr_3[1] > 0 && sanity_arr_3[2] > 0 | ||||
| #if ENABLED(GCODE_MACROS) && !WITHIN(GCODE_MACROS_SLOTS, 1, 10) | ||||
|   #error "GCODE_MACROS_SLOTS must be a number from 1 to 10." | ||||
| #endif | ||||
|  | ||||
| #if ENABLED(BACKLASH_COMPENSATION) && IS_CORE | ||||
|   #error "BACKLASH_COMPENSATION is incompatible with CORE kinematics." | ||||
| #endif | ||||
|   | ||||
| @@ -1546,6 +1546,99 @@ void Planner::synchronize() { | ||||
|   ) idle(); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * The following implements axis backlash correction. To minimize seams | ||||
|  * on the printed part, the backlash correction only adds steps to the | ||||
|  * current segment (instead of creating a new segment, which causes | ||||
|  * discontinuities and print artifacts). | ||||
|  * | ||||
|  * When BACKLASH_SMOOTHING_MM is enabled and non-zero, the backlash | ||||
|  * correction is spread over multiple segments, smoothing out print | ||||
|  * artifacts even more. | ||||
|  */ | ||||
| #if ENABLED(BACKLASH_COMPENSATION) | ||||
|   #if ENABLED(BACKLASH_GCODE) | ||||
|     extern float backlash_distance_mm[], backlash_correction; | ||||
|     #ifdef BACKLASH_SMOOTHING_MM | ||||
|       extern float backlash_smoothing_mm; | ||||
|     #endif | ||||
|   #else | ||||
|     constexpr float backlash_distance_mm[XYZ] = BACKLASH_DISTANCE_MM, | ||||
|                     backlash_correction = BACKLASH_CORRECTION; | ||||
|     #ifdef BACKLASH_SMOOTHING_MM | ||||
|       constexpr float backlash_smoothing_mm = BACKLASH_SMOOTHING_MM; | ||||
|     #endif | ||||
|   #endif | ||||
|  | ||||
|   void Planner::add_backlash_correction_steps(const int32_t da, const int32_t db, const int32_t dc, const uint8_t dm, block_t * const block, float (&delta_mm)[ABCE]) { | ||||
|     static uint8_t last_direction_bits; | ||||
|     uint8_t changed_dir = last_direction_bits ^ dm; | ||||
|     // Ignore direction change if no steps are taken in that direction | ||||
|     if (da == 0) CBI(changed_dir, X_AXIS); | ||||
|     if (db == 0) CBI(changed_dir, Y_AXIS); | ||||
|     if (dc == 0) CBI(changed_dir, Z_AXIS); | ||||
|     last_direction_bits ^= changed_dir; | ||||
|  | ||||
|     if (backlash_correction == 0) return; | ||||
|  | ||||
|     #ifdef BACKLASH_SMOOTHING_MM | ||||
|       // The segment proportion is a value greater than 0.0 indicating how much residual_error | ||||
|       // is corrected for in this segment. The contribution is based on segment length and the | ||||
|       // smoothing distance. Since the computation of this proportion involves a floating point | ||||
|       // division, defer computation until needed. | ||||
|       float segment_proportion = 0; | ||||
|  | ||||
|       // Residual error carried forward across multiple segments, so correction can be applied | ||||
|       // to segments where there is no direction change. | ||||
|       static int32_t residual_error[XYZ] = { 0 }; | ||||
|     #else | ||||
|       // No leftover residual error from segment to segment | ||||
|       int32_t residual_error[XYZ] = { 0 }; | ||||
|       // No direction change, no correction. | ||||
|       if (!changed_dir) return; | ||||
|     #endif | ||||
|  | ||||
|     const bool positive[XYZ] = {  da > 0,  db > 0, dc > 0 }, | ||||
|                non_zero[XYZ] = { da != 0, db != 0, dc != 0 }; | ||||
|     bool made_adjustment = false; | ||||
|  | ||||
|     LOOP_XYZ(i) { | ||||
|       if (backlash_distance_mm[i]) { | ||||
|         // When an axis changes direction, add axis backlash to the residual error | ||||
|         if (TEST(changed_dir, i)) | ||||
|           residual_error[i] += backlash_correction * (positive[i] ? 1.0f : -1.0f) * backlash_distance_mm[i] * planner.settings.axis_steps_per_mm[i]; | ||||
|  | ||||
|         // Decide how much of the residual error to correct in this segment | ||||
|         int32_t error_correction = residual_error[i]; | ||||
|         #ifdef BACKLASH_SMOOTHING_MM | ||||
|           if (error_correction && backlash_smoothing_mm != 0) { | ||||
|             // Take up a portion of the residual_error in this segment, but only when | ||||
|             // the current segment travels in the same direction as the correction | ||||
|             if (non_zero[i] && positive[i] == (error_correction > 0)) { | ||||
|               if (segment_proportion == 0) | ||||
|                 segment_proportion = MIN(1.0f, block->millimeters / backlash_smoothing_mm); | ||||
|               error_correction *= segment_proportion; | ||||
|             } | ||||
|             else | ||||
|               error_correction = 0; // Don't take up any backlash in this segment, as it would subtract steps | ||||
|           } | ||||
|         #endif | ||||
|         // Making a correction reduces the residual error and modifies delta_mm | ||||
|         if (error_correction) { | ||||
|           block->steps[i] += ABS(error_correction); | ||||
|           residual_error[i] -= error_correction; | ||||
|           delta_mm[i] = (positive[i] ? 1.0f : -1.0f) * block->steps[i] * steps_to_mm[i]; | ||||
|           made_adjustment = true; | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     // If any of the axes were adjusted, recompute block->millimeters | ||||
|     if (made_adjustment) | ||||
|       block->millimeters = SQRT(sq(delta_mm[X_AXIS]) + sq(delta_mm[Y_AXIS]) + sq(delta_mm[Z_AXIS])); | ||||
|   } | ||||
| #endif // BACKLASH_COMPENSATION | ||||
|  | ||||
| /** | ||||
|  * Planner::_buffer_steps | ||||
|  * | ||||
| @@ -1738,6 +1831,70 @@ bool Planner::_populate_block(block_t * const block, bool split_move, | ||||
|     block->steps[C_AXIS] = ABS(dc); | ||||
|   #endif | ||||
|  | ||||
|   /** | ||||
|    * This part of the code calculates the total length of the movement. | ||||
|    * For cartesian bots, the X_AXIS is the real X movement and same for Y_AXIS. | ||||
|    * But for corexy bots, that is not true. The "X_AXIS" and "Y_AXIS" motors (that should be named to A_AXIS | ||||
|    * and B_AXIS) cannot be used for X and Y length, because A=X+Y and B=X-Y. | ||||
|    * So we need to create other 2 "AXIS", named X_HEAD and Y_HEAD, meaning the real displacement of the Head. | ||||
|    * Having the real displacement of the head, we can calculate the total movement length and apply the desired speed. | ||||
|    */ | ||||
|   #if IS_CORE | ||||
|     float delta_mm[Z_HEAD + 1]; | ||||
|     #if CORE_IS_XY | ||||
|       delta_mm[X_HEAD] = da * steps_to_mm[A_AXIS]; | ||||
|       delta_mm[Y_HEAD] = db * steps_to_mm[B_AXIS]; | ||||
|       delta_mm[Z_AXIS] = dc * steps_to_mm[Z_AXIS]; | ||||
|       delta_mm[A_AXIS] = (da + db) * steps_to_mm[A_AXIS]; | ||||
|       delta_mm[B_AXIS] = CORESIGN(da - db) * steps_to_mm[B_AXIS]; | ||||
|     #elif CORE_IS_XZ | ||||
|       delta_mm[X_HEAD] = da * steps_to_mm[A_AXIS]; | ||||
|       delta_mm[Y_AXIS] = db * steps_to_mm[Y_AXIS]; | ||||
|       delta_mm[Z_HEAD] = dc * steps_to_mm[C_AXIS]; | ||||
|       delta_mm[A_AXIS] = (da + dc) * steps_to_mm[A_AXIS]; | ||||
|       delta_mm[C_AXIS] = CORESIGN(da - dc) * steps_to_mm[C_AXIS]; | ||||
|     #elif CORE_IS_YZ | ||||
|       delta_mm[X_AXIS] = da * steps_to_mm[X_AXIS]; | ||||
|       delta_mm[Y_HEAD] = db * steps_to_mm[B_AXIS]; | ||||
|       delta_mm[Z_HEAD] = dc * steps_to_mm[C_AXIS]; | ||||
|       delta_mm[B_AXIS] = (db + dc) * steps_to_mm[B_AXIS]; | ||||
|       delta_mm[C_AXIS] = CORESIGN(db - dc) * steps_to_mm[C_AXIS]; | ||||
|     #endif | ||||
|   #else | ||||
|     float delta_mm[ABCE]; | ||||
|     delta_mm[A_AXIS] = da * steps_to_mm[A_AXIS]; | ||||
|     delta_mm[B_AXIS] = db * steps_to_mm[B_AXIS]; | ||||
|     delta_mm[C_AXIS] = dc * steps_to_mm[C_AXIS]; | ||||
|   #endif | ||||
|   delta_mm[E_AXIS] = esteps_float * steps_to_mm[E_AXIS_N(extruder)]; | ||||
|  | ||||
|   if (block->steps[A_AXIS] < MIN_STEPS_PER_SEGMENT && block->steps[B_AXIS] < MIN_STEPS_PER_SEGMENT && block->steps[C_AXIS] < MIN_STEPS_PER_SEGMENT) { | ||||
|     block->millimeters = ABS(delta_mm[E_AXIS]); | ||||
|   } | ||||
|   else { | ||||
|     if (millimeters) | ||||
|       block->millimeters = millimeters; | ||||
|     else | ||||
|       block->millimeters = SQRT( | ||||
|         #if CORE_IS_XY | ||||
|           sq(delta_mm[X_HEAD]) + sq(delta_mm[Y_HEAD]) + sq(delta_mm[Z_AXIS]) | ||||
|         #elif CORE_IS_XZ | ||||
|           sq(delta_mm[X_HEAD]) + sq(delta_mm[Y_AXIS]) + sq(delta_mm[Z_HEAD]) | ||||
|         #elif CORE_IS_YZ | ||||
|           sq(delta_mm[X_AXIS]) + sq(delta_mm[Y_HEAD]) + sq(delta_mm[Z_HEAD]) | ||||
|         #else | ||||
|           sq(delta_mm[X_AXIS]) + sq(delta_mm[Y_AXIS]) + sq(delta_mm[Z_AXIS]) | ||||
|         #endif | ||||
|       ); | ||||
|  | ||||
|     #if ENABLED(BACKLASH_COMPENSATION) | ||||
|       // If we make it here, at least one of the axes has more steps than | ||||
|       // MIN_STEPS_PER_SEGMENT, so the segment won't get dropped by Marlin | ||||
|       // and it is okay to add steps for backlash correction. | ||||
|       add_backlash_correction_steps(da, db, dc, dm, block, delta_mm); | ||||
|     #endif | ||||
|   } | ||||
|  | ||||
|   block->steps[E_AXIS] = esteps; | ||||
|   block->step_event_count = MAX(block->steps[A_AXIS], block->steps[B_AXIS], block->steps[C_AXIS], esteps); | ||||
|  | ||||
| @@ -1925,62 +2082,6 @@ bool Planner::_populate_block(block_t * const block, bool split_move, | ||||
|   else | ||||
|     NOLESS(fr_mm_s, settings.min_travel_feedrate_mm_s); | ||||
|  | ||||
|   /** | ||||
|    * This part of the code calculates the total length of the movement. | ||||
|    * For cartesian bots, the X_AXIS is the real X movement and same for Y_AXIS. | ||||
|    * But for corexy bots, that is not true. The "X_AXIS" and "Y_AXIS" motors (that should be named to A_AXIS | ||||
|    * and B_AXIS) cannot be used for X and Y length, because A=X+Y and B=X-Y. | ||||
|    * So we need to create other 2 "AXIS", named X_HEAD and Y_HEAD, meaning the real displacement of the Head. | ||||
|    * Having the real displacement of the head, we can calculate the total movement length and apply the desired speed. | ||||
|    */ | ||||
|   #if IS_CORE | ||||
|     float delta_mm[Z_HEAD + 1]; | ||||
|     #if CORE_IS_XY | ||||
|       delta_mm[X_HEAD] = da * steps_to_mm[A_AXIS]; | ||||
|       delta_mm[Y_HEAD] = db * steps_to_mm[B_AXIS]; | ||||
|       delta_mm[Z_AXIS] = dc * steps_to_mm[Z_AXIS]; | ||||
|       delta_mm[A_AXIS] = (da + db) * steps_to_mm[A_AXIS]; | ||||
|       delta_mm[B_AXIS] = CORESIGN(da - db) * steps_to_mm[B_AXIS]; | ||||
|     #elif CORE_IS_XZ | ||||
|       delta_mm[X_HEAD] = da * steps_to_mm[A_AXIS]; | ||||
|       delta_mm[Y_AXIS] = db * steps_to_mm[Y_AXIS]; | ||||
|       delta_mm[Z_HEAD] = dc * steps_to_mm[C_AXIS]; | ||||
|       delta_mm[A_AXIS] = (da + dc) * steps_to_mm[A_AXIS]; | ||||
|       delta_mm[C_AXIS] = CORESIGN(da - dc) * steps_to_mm[C_AXIS]; | ||||
|     #elif CORE_IS_YZ | ||||
|       delta_mm[X_AXIS] = da * steps_to_mm[X_AXIS]; | ||||
|       delta_mm[Y_HEAD] = db * steps_to_mm[B_AXIS]; | ||||
|       delta_mm[Z_HEAD] = dc * steps_to_mm[C_AXIS]; | ||||
|       delta_mm[B_AXIS] = (db + dc) * steps_to_mm[B_AXIS]; | ||||
|       delta_mm[C_AXIS] = CORESIGN(db - dc) * steps_to_mm[C_AXIS]; | ||||
|     #endif | ||||
|   #else | ||||
|     float delta_mm[ABCE]; | ||||
|     delta_mm[A_AXIS] = da * steps_to_mm[A_AXIS]; | ||||
|     delta_mm[B_AXIS] = db * steps_to_mm[B_AXIS]; | ||||
|     delta_mm[C_AXIS] = dc * steps_to_mm[C_AXIS]; | ||||
|   #endif | ||||
|   delta_mm[E_AXIS] = esteps_float * steps_to_mm[E_AXIS_N(extruder)]; | ||||
|  | ||||
|   if (block->steps[A_AXIS] < MIN_STEPS_PER_SEGMENT && block->steps[B_AXIS] < MIN_STEPS_PER_SEGMENT && block->steps[C_AXIS] < MIN_STEPS_PER_SEGMENT) { | ||||
|     block->millimeters = ABS(delta_mm[E_AXIS]); | ||||
|   } | ||||
|   else if (!millimeters) { | ||||
|     block->millimeters = SQRT( | ||||
|       #if CORE_IS_XY | ||||
|         sq(delta_mm[X_HEAD]) + sq(delta_mm[Y_HEAD]) + sq(delta_mm[Z_AXIS]) | ||||
|       #elif CORE_IS_XZ | ||||
|         sq(delta_mm[X_HEAD]) + sq(delta_mm[Y_AXIS]) + sq(delta_mm[Z_HEAD]) | ||||
|       #elif CORE_IS_YZ | ||||
|         sq(delta_mm[X_AXIS]) + sq(delta_mm[Y_HEAD]) + sq(delta_mm[Z_HEAD]) | ||||
|       #else | ||||
|         sq(delta_mm[X_AXIS]) + sq(delta_mm[Y_AXIS]) + sq(delta_mm[Z_AXIS]) | ||||
|       #endif | ||||
|     ); | ||||
|   } | ||||
|   else | ||||
|     block->millimeters = millimeters; | ||||
|  | ||||
|   const float inverse_millimeters = 1.0f / block->millimeters;  // Inverse millimeters to remove multiple divides | ||||
|  | ||||
|   // Calculate inverse time for this move. No divide by zero due to previous checks. | ||||
|   | ||||
| @@ -338,6 +338,10 @@ class Planner { | ||||
|       volatile static uint32_t block_buffer_runtime_us; //Theoretical block buffer runtime in µs | ||||
|     #endif | ||||
|  | ||||
|     #if ENABLED(BACKLASH_COMPENSATION) | ||||
|       static void add_backlash_correction_steps(const int32_t da, const int32_t db, const int32_t dc, const uint8_t dm, block_t * const block, float (&delta_mm)[ABCE]); | ||||
|     #endif | ||||
|  | ||||
|   public: | ||||
|  | ||||
|     /** | ||||
|   | ||||
| @@ -511,6 +511,30 @@ bool set_probe_deployed(const bool deploy) { | ||||
|   } | ||||
| #endif | ||||
|  | ||||
| #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|   #if ENABLED(Z_MIN_PROBE_ENDSTOP) | ||||
|     #define TEST_PROBE_PIN (READ(Z_MIN_PROBE_PIN) != Z_MIN_PROBE_ENDSTOP_INVERTING) | ||||
|   #else | ||||
|     #define TEST_PROBE_PIN (READ(Z_MIN_PIN) != Z_MIN_ENDSTOP_INVERTING) | ||||
|   #endif | ||||
|  | ||||
|   extern float backlash_measured_mm[]; | ||||
|   extern uint8_t backlash_measured_num[]; | ||||
|  | ||||
|   /* Measure Z backlash by raising nozzle in increments until probe deactivates */ | ||||
|   static void measure_backlash_with_probe() { | ||||
|     if (backlash_measured_num[Z_AXIS] == 255) return; | ||||
|  | ||||
|     float start_height = current_position[Z_AXIS]; | ||||
|     while (current_position[Z_AXIS] < (start_height + BACKLASH_MEASUREMENT_LIMIT) && TEST_PROBE_PIN) | ||||
|       do_blocking_move_to_z(current_position[Z_AXIS] + BACKLASH_MEASUREMENT_RESOLUTION, MMM_TO_MMS(BACKLASH_MEASUREMENT_FEEDRATE)); | ||||
|  | ||||
|     // The backlash from all probe points is averaged, so count the number of measurements | ||||
|     backlash_measured_mm[Z_AXIS] += current_position[Z_AXIS] - start_height; | ||||
|     backlash_measured_num[Z_AXIS]++; | ||||
|   } | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * @brief Used by run_z_probe to do a single Z probe move. | ||||
|  * | ||||
| @@ -678,6 +702,10 @@ static float run_z_probe() { | ||||
|         return NAN; | ||||
|       } | ||||
|  | ||||
|       #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) | ||||
|         measure_backlash_with_probe(); | ||||
|       #endif | ||||
|  | ||||
|   #if MULTIPLE_PROBING > 2 | ||||
|       probes_total += current_position[Z_AXIS]; | ||||
|       if (p > 1) do_blocking_move_to_z(current_position[Z_AXIS] + Z_CLEARANCE_MULTI_PROBE, MMM_TO_MMS(Z_PROBE_SPEED_FAST)); | ||||
|   | ||||
| @@ -38,7 +38,7 @@ opt_enable PIDTEMPBED FIX_MOUNTED_PROBE Z_SAFE_HOMING \ | ||||
|            FWRETRACT ARC_P_CIRCLES ADVANCED_PAUSE_FEATURE CNC_WORKSPACE_PLANES CNC_COORDINATE_SYSTEMS \ | ||||
|            POWER_LOSS_RECOVERY POWER_LOSS_PIN POWER_LOSS_STATE FAST_FILE_TRANSFER \ | ||||
|            LCD_PROGRESS_BAR LCD_PROGRESS_BAR_TEST PINS_DEBUGGING \ | ||||
|            MAX7219_DEBUG LED_CONTROL_MENU CASE_LIGHT_ENABLE CASE_LIGHT_USE_NEOPIXEL CODEPENDENT_XY_HOMING | ||||
|            MAX7219_DEBUG LED_CONTROL_MENU CASE_LIGHT_ENABLE CASE_LIGHT_USE_NEOPIXEL CODEPENDENT_XY_HOMING BACKLASH_COMPENSATION BACKLASH_GCODE | ||||
| opt_set FANMUX0_PIN 53 | ||||
| exec_test $1 $2 "RAMPS with 2 extruders, RRDFGSC, Linear ABL, LEDs, and many options" | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user