[2.0.x] TMC driver update (#8769)
This commit is contained in:
		
				
					committed by
					
						 Scott Lahteine
						Scott Lahteine
					
				
			
			
				
	
			
			
			
						parent
						
							09d13f186f
						
					
				
				
					commit
					0cd1e91056
				
			| @@ -977,7 +977,7 @@ | ||||
|  | ||||
| #endif | ||||
|  | ||||
| // @section TMC2130 | ||||
| // @section TMC2130, TMC2208 | ||||
|  | ||||
| /** | ||||
|  * Enable this for SilentStepStick Trinamic TMC2130 SPI-configurable stepper drivers. | ||||
| @@ -991,7 +991,19 @@ | ||||
|  */ | ||||
| //#define HAVE_TMC2130 | ||||
|  | ||||
| #if ENABLED(HAVE_TMC2130) | ||||
| /** | ||||
|  * Enable this for SilentStepStick Trinamic TMC2208 UART-configurable stepper drivers. | ||||
|  * Connect #_SERIAL_TX_PIN to the driver side PDN_UART pin. | ||||
|  * To use the reading capabilities, also connect #_SERIAL_RX_PIN | ||||
|  * to #_SERIAL_TX_PIN with a 1K resistor. | ||||
|  * The drivers can also be used with hardware serial. | ||||
|  * | ||||
|  * You'll also need the TMC2208Stepper Arduino library | ||||
|  * (https://github.com/teemuatlut/TMC2208Stepper). | ||||
|  */ | ||||
| //#define HAVE_TMC2208 | ||||
|  | ||||
| #if ENABLED(HAVE_TMC2130) || ENABLED(HAVE_TMC2208) | ||||
|  | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY | ||||
|   //#define X_IS_TMC2130 | ||||
| @@ -1006,46 +1018,58 @@ | ||||
|   //#define E3_IS_TMC2130 | ||||
|   //#define E4_IS_TMC2130 | ||||
|  | ||||
|   //#define X_IS_TMC2208 | ||||
|   //#define X2_IS_TMC2208 | ||||
|   //#define Y_IS_TMC2208 | ||||
|   //#define Y2_IS_TMC2208 | ||||
|   //#define Z_IS_TMC2208 | ||||
|   //#define Z2_IS_TMC2208 | ||||
|   //#define E0_IS_TMC2208 | ||||
|   //#define E1_IS_TMC2208 | ||||
|   //#define E2_IS_TMC2208 | ||||
|   //#define E3_IS_TMC2208 | ||||
|   //#define E4_IS_TMC2208 | ||||
|  | ||||
|   /** | ||||
|    * Stepper driver settings | ||||
|    */ | ||||
|  | ||||
|   #define R_SENSE           0.11  // R_sense resistor for SilentStepStick2130 | ||||
|   #define HOLD_MULTIPLIER    0.5  // Scales down the holding current from run current | ||||
|   #define INTERPOLATE          1  // Interpolate X/Y/Z_MICROSTEPS to 256 | ||||
|   #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256 | ||||
|  | ||||
|   #define X_CURRENT         1000  // rms current in mA. Multiply by 1.41 for peak current. | ||||
|   #define X_CURRENT          800  // rms current in mA. Multiply by 1.41 for peak current. | ||||
|   #define X_MICROSTEPS        16  // 0..256 | ||||
|  | ||||
|   #define Y_CURRENT         1000 | ||||
|   #define Y_CURRENT          800 | ||||
|   #define Y_MICROSTEPS        16 | ||||
|  | ||||
|   #define Z_CURRENT         1000 | ||||
|   #define Z_CURRENT          800 | ||||
|   #define Z_MICROSTEPS        16 | ||||
|  | ||||
|   //#define X2_CURRENT      1000 | ||||
|   //#define X2_MICROSTEPS     16 | ||||
|   #define X2_CURRENT         800 | ||||
|   #define X2_MICROSTEPS       16 | ||||
|  | ||||
|   //#define Y2_CURRENT      1000 | ||||
|   //#define Y2_MICROSTEPS     16 | ||||
|   #define Y2_CURRENT         800 | ||||
|   #define Y2_MICROSTEPS       16 | ||||
|  | ||||
|   //#define Z2_CURRENT      1000 | ||||
|   //#define Z2_MICROSTEPS     16 | ||||
|   #define Z2_CURRENT         800 | ||||
|   #define Z2_MICROSTEPS       16 | ||||
|  | ||||
|   //#define E0_CURRENT      1000 | ||||
|   //#define E0_MICROSTEPS     16 | ||||
|   #define E0_CURRENT         800 | ||||
|   #define E0_MICROSTEPS       16 | ||||
|  | ||||
|   //#define E1_CURRENT      1000 | ||||
|   //#define E1_MICROSTEPS     16 | ||||
|   #define E1_CURRENT         800 | ||||
|   #define E1_MICROSTEPS       16 | ||||
|  | ||||
|   //#define E2_CURRENT      1000 | ||||
|   //#define E2_MICROSTEPS     16 | ||||
|   #define E2_CURRENT         800 | ||||
|   #define E2_MICROSTEPS       16 | ||||
|  | ||||
|   //#define E3_CURRENT      1000 | ||||
|   //#define E3_MICROSTEPS     16 | ||||
|   #define E3_CURRENT         800 | ||||
|   #define E3_MICROSTEPS       16 | ||||
|  | ||||
|   //#define E4_CURRENT      1000 | ||||
|   //#define E4_MICROSTEPS     16 | ||||
|   #define E4_CURRENT         800 | ||||
|   #define E4_MICROSTEPS       16 | ||||
|  | ||||
|   /** | ||||
|    * Use Trinamic's ultra quiet stepping mode. | ||||
| @@ -1054,24 +1078,22 @@ | ||||
|   #define STEALTHCHOP | ||||
|  | ||||
|   /** | ||||
|    * Let Marlin automatically control stepper current. | ||||
|    * This is still an experimental feature. | ||||
|    * Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered, | ||||
|    * then decrease current by CURRENT_STEP until temperature prewarn is cleared. | ||||
|    * Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX | ||||
|    * Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions, | ||||
|    * like overtemperature and short to ground. TMC2208 requires hardware serial. | ||||
|    * In the case of overtemperature Marlin can decrease the driver current until error condition clears. | ||||
|    * Other detected conditions can be used to stop the current print. | ||||
|    * Relevant g-codes: | ||||
|    * M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given. | ||||
|    * M906 S1 - Start adjusting current | ||||
|    * M906 S0 - Stop adjusting current | ||||
|    * M911 - Report stepper driver overtemperature pre-warn condition. | ||||
|    * M912 - Clear stepper driver overtemperature pre-warn condition flag. | ||||
|    * M122 S0/1 - Report driver parameters (Requires TMC_DEBUG) | ||||
|    */ | ||||
|   //#define AUTOMATIC_CURRENT_CONTROL | ||||
|   //#define MONITOR_DRIVER_STATUS | ||||
|  | ||||
|   #if ENABLED(AUTOMATIC_CURRENT_CONTROL) | ||||
|     #define CURRENT_STEP          50  // [mA] | ||||
|     #define AUTO_ADJUST_MAX     1300  // [mA], 1300mA_rms = 1840mA_peak | ||||
|   #if ENABLED(MONITOR_DRIVER_STATUS) | ||||
|     #define CURRENT_STEP_DOWN     50  // [mA] | ||||
|     #define REPORT_CURRENT_CHANGE | ||||
|     #define STOP_ON_ERROR | ||||
|   #endif | ||||
|  | ||||
|   /** | ||||
| @@ -1086,8 +1108,8 @@ | ||||
|   #define X2_HYBRID_THRESHOLD    100 | ||||
|   #define Y_HYBRID_THRESHOLD     100 | ||||
|   #define Y2_HYBRID_THRESHOLD    100 | ||||
|   #define Z_HYBRID_THRESHOLD       4 | ||||
|   #define Z2_HYBRID_THRESHOLD      4 | ||||
|   #define Z_HYBRID_THRESHOLD       3 | ||||
|   #define Z2_HYBRID_THRESHOLD      3 | ||||
|   #define E0_HYBRID_THRESHOLD     30 | ||||
|   #define E1_HYBRID_THRESHOLD     30 | ||||
|   #define E2_HYBRID_THRESHOLD     30 | ||||
| @@ -1097,7 +1119,7 @@ | ||||
|   /** | ||||
|    * Use stallGuard2 to sense an obstacle and trigger an endstop. | ||||
|    * You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin. | ||||
|    * If used along with STEALTHCHOP, the movement will be louder when homing. This is normal. | ||||
|    * X and Y homing will always be done in spreadCycle mode. | ||||
|    * | ||||
|    * X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity. | ||||
|    * Higher values make the system LESS sensitive. | ||||
| @@ -1106,27 +1128,34 @@ | ||||
|    * It is advised to set X/Y_HOME_BUMP_MM to 0. | ||||
|    * M914 X/Y to live tune the setting | ||||
|    */ | ||||
|   //#define SENSORLESS_HOMING | ||||
|   //#define SENSORLESS_HOMING // TMC2130 only | ||||
|  | ||||
|   #if ENABLED(SENSORLESS_HOMING) | ||||
|     #define X_HOMING_SENSITIVITY  19 | ||||
|     #define Y_HOMING_SENSITIVITY  19 | ||||
|     #define X_HOMING_SENSITIVITY  8 | ||||
|     #define Y_HOMING_SENSITIVITY  8 | ||||
|   #endif | ||||
|  | ||||
|   /** | ||||
|    * Enable M122 debugging command for TMC stepper drivers. | ||||
|    * M122 S0/1 will enable continous reporting. | ||||
|    */ | ||||
|   //#define TMC_DEBUG | ||||
|  | ||||
|   /** | ||||
|    * You can set your own advanced settings by filling in predefined functions. | ||||
|    * A list of available functions can be found on the library github page | ||||
|    * https://github.com/teemuatlut/TMC2130Stepper | ||||
|    * https://github.com/teemuatlut/TMC2208Stepper | ||||
|    * | ||||
|    * Example: | ||||
|    * #define TMC2130_ADV() { \ | ||||
|    * #define TMC_ADV() { \ | ||||
|    *   stepperX.diag0_temp_prewarn(1); \ | ||||
|    *   stepperX.interpolate(0); \ | ||||
|    *   stepperY.interpolate(0); \ | ||||
|    * } | ||||
|    */ | ||||
|   #define  TMC2130_ADV() {  } | ||||
|   #define  TMC_ADV() {  } | ||||
|  | ||||
| #endif // HAVE_TMC2130 | ||||
| #endif // TMC2130 || TMC2208 | ||||
|  | ||||
| // @section L6470 | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user