Apply TMC2130 to example configurations
This commit is contained in:
		| @@ -758,14 +758,15 @@ | ||||
|                                                      // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. | ||||
| #endif | ||||
|  | ||||
| /******************************************************************************\ | ||||
|  * enable this section if you have TMC26X motor drivers. | ||||
|  * you need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
|  | ||||
| // @section tmc | ||||
|  | ||||
| /** | ||||
|  * Enable this section if you have TMC26X motor drivers. | ||||
|  * You will need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  * (https://github.com/trinamic/TMC26XStepper.git) | ||||
|  */ | ||||
| //#define HAVE_TMCDRIVER | ||||
|  | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
|  | ||||
|   //#define X_IS_TMC | ||||
| @@ -823,23 +824,31 @@ | ||||
|  | ||||
| // @section TMC2130 | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Enable this for SilentStepStick Trinamic TMC2130 SPI-configurable stepper drivers. | ||||
|  * | ||||
|  * To use TMC2130 drivers in SPI mode, you'll also need the TMC2130 Arduino library | ||||
|  * (https://github.com/makertum/Trinamic_TMC2130). | ||||
|  * You'll also need the TMC2130Stepper Arduino library | ||||
|  * (https://github.com/teemuatlut/TMC2130Stepper). | ||||
|  * | ||||
|  * To use TMC2130 stepper drivers in SPI mode connect your SPI2130 pins to | ||||
|  * the hardware SPI interface on your board and define the required CS pins | ||||
|  * in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.). | ||||
|  */ | ||||
| //#define HAVE_TMC2130 | ||||
|  | ||||
| //#define HAVE_TMC2130DRIVER | ||||
| #if ENABLED(HAVE_TMC2130) | ||||
|   #define STEALTHCHOP | ||||
|  | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
|  | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION | ||||
|   /** | ||||
|    * 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_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX | ||||
|    */  | ||||
|   //#define AUTOMATIC_CURRENT_CONTROL | ||||
|   #define CURRENT_STEP          50  // [mA] | ||||
|   #define AUTO_ADJUST_MAX     1300  // [mA], 1300mA_rms = 1840mA_peak | ||||
|  | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY | ||||
|   //#define X_IS_TMC2130 | ||||
| @@ -853,180 +862,68 @@ | ||||
|   //#define E2_IS_TMC2130 | ||||
|   //#define E3_IS_TMC2130 | ||||
|  | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
|   /** | ||||
|    * Stepper driver settings | ||||
|    */ | ||||
|  | ||||
|     // If you've enabled TMC2130_ADVANCED_CONFIGURATION, define global settings below. | ||||
|     // Enabled settings will be automatically applied to all axes specified above. | ||||
|     // | ||||
|     // Please read the TMC2130 datasheet: | ||||
|     // http://www.trinamic.com/_articles/products/integrated-circuits/tmc2130/_datasheet/TMC2130_datasheet.pdf | ||||
|     // All settings here have the same (sometimes cryptic) names as in the datasheet. | ||||
|     // | ||||
|     // The following, uncommented settings are only suggestion. | ||||
|   #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 | ||||
|  | ||||
|     /* GENERAL CONFIGURATION */ | ||||
|   #define X_MAX_CURRENT     1000  // rms current in mA | ||||
|   #define X_MICROSTEPS        16  // FULLSTEP..256 | ||||
|   #define X_CHIP_SELECT       40  // Pin | ||||
|  | ||||
|     //#define GLOBAL_EN_PWM_MODE        0 | ||||
|     #define GLOBAL_I_SCALE_ANALOG     1 // [0,1] 0: Normal, 1: AIN | ||||
|     //#define GLOBAL_INTERNAL_RSENSE    0 // [0,1] 0: Normal, 1: Internal | ||||
|     #define GLOBAL_EN_PWM_MODE        0 // [0,1] 0: Normal, 1: stealthChop with velocity threshold | ||||
|     //#define GLOBAL_ENC_COMMUTATION    0 // [0,1] | ||||
|     #define GLOBAL_SHAFT              0 // [0,1] 0: normal, 1: invert | ||||
|     //#define GLOBAL_DIAG0_ERROR        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_OTPW         0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INDEX        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_SMALL_HYSTERESIS   0 // [0,1] | ||||
|     //#define GLOBAL_STOP_ENABLE        0 // [0,1] | ||||
|     //#define GLOBAL_DIRECT_MODE        0 // [0,1] | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_MICROSTEPS        16 | ||||
|   #define Y_CHIP_SELECT       42 | ||||
|  | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_MICROSTEPS        16 | ||||
|   #define Z_CHIP_SELECT       65 | ||||
|  | ||||
|     #define GLOBAL_IHOLD             22 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IRUN              31 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IHOLDDELAY        15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     //#define GLOBAL_TPOWERDOWN         0 // [0-255] 0: min, 255: about 4 seconds | ||||
|     //#define GLOBAL_TPWMTHRS           0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     //#define GLOBAL_TCOOLTHRS          0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     #define GLOBAL_THIGH             10 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|   //#define X2_MAX_CURRENT  1000 | ||||
|   //#define X2_MICROSTEPS     16 | ||||
|   //#define X2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
|   //#define Y2_MAX_CURRENT  1000 | ||||
|   //#define Y2_MICROSTEPS     16 | ||||
|   //#define Y2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_XDIRECT            0 | ||||
|   //#define Z2_MAX_CURRENT  1000 | ||||
|   //#define Z2_MICROSTEPS     16 | ||||
|   //#define Z2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
|   //#define E0_MAX_CURRENT  1000 | ||||
|   //#define E0_MICROSTEPS     16 | ||||
|   //#define E0_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_VDCMIN             0 | ||||
|   //#define E1_MAX_CURRENT  1000 | ||||
|   //#define E1_MICROSTEPS     16 | ||||
|   //#define E1_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
|   //#define E2_MAX_CURRENT  1000 | ||||
|   //#define E2_MICROSTEPS     16 | ||||
|   //#define E2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_DEDGE              0 | ||||
|     //#define GLOBAL_DISS2G             0 | ||||
|     #define GLOBAL_INTPOL             1 // 0: off 1: 256 microstep interpolation | ||||
|     #define GLOBAL_MRES              16 // number of microsteps | ||||
|     #define GLOBAL_SYNC               1 // [0-15] | ||||
|     #define GLOBAL_VHIGHCHM           1 // [0,1] 0: normal, 1: high velocity stepper mode | ||||
|     #define GLOBAL_VHIGHFS            0 // [0,1] 0: normal, 1: switch to full steps for high velocities | ||||
|     // #define GLOBAL_VSENSE            0 // [0,1] 0: normal, 1: high sensitivity (not recommended) | ||||
|     #define GLOBAL_TBL                1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define GLOBAL_CHM                0 // [0,1] 0: spreadCycle, 1: Constant off time with fast decay time. | ||||
|     //#define GLOBAL_RNDTF              0 | ||||
|     //#define GLOBAL_DISFDCC            0 | ||||
|     //#define GLOBAL_FD                 0 | ||||
|     //#define GLOBAL_HEND               0 | ||||
|     //#define GLOBAL_HSTRT              0 | ||||
|     #define GLOBAL_TOFF              10 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|   //#define E3_MAX_CURRENT  1000 | ||||
|   //#define E3_MICROSTEPS     16 | ||||
|   //#define E3_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_SFILT              0 | ||||
|     //#define GLOBAL_SGT                0 | ||||
|     //#define GLOBAL_SEIMIN             0 | ||||
|     //#define GLOBAL_SEDN               0 | ||||
|     //#define GLOBAL_SEMAX              0 | ||||
|     //#define GLOBAL_SEUP               0 | ||||
|     //#define GLOBAL_SEMIN              0 | ||||
|   /** | ||||
|    * 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 | ||||
|    * | ||||
|    * Example: | ||||
|    * #define TMC2130_ADV() { \ | ||||
|    *   stepperX.diag0_temp_prewarn(1); \ | ||||
|    *   stepperX.interpolate(0); \ | ||||
|    * } | ||||
|    */ | ||||
|   #define  TMC2130_ADV() {  } | ||||
|  | ||||
|     //#define GLOBAL_DC_TIME            0 | ||||
|     //#define GLOBAL_DC_SG              0 | ||||
|  | ||||
|     //#define GLOBAL_FREEWHEEL          0 | ||||
|     //#define GLOBAL_PWM_SYMMETRIC      0 | ||||
|     //#define GLOBAL_PWM_AUTOSCALE      0 | ||||
|     //#define GLOBAL_PWM_FREQ           0 | ||||
|     //#define GLOBAL_PWM_GRAD           0 | ||||
|     //#define GLOBAL_PWM_AMPL           0 | ||||
|  | ||||
|     //#define GLOBAL_ENCM_CTRL          0 | ||||
|  | ||||
|   #else | ||||
|  | ||||
|     #define X_IHOLD          31 // [0-31] 0: min, 31: max | ||||
|     #define X_IRUN           31 // [0-31] 0: min, 31: max | ||||
|     #define X_IHOLDDELAY     15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     #define X_I_SCALE_ANALOG  1 // 0: Normal, 1: AIN | ||||
|     #define X_MRES           16 // number of microsteps | ||||
|     #define X_TBL             1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define X_TOFF            8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|  | ||||
|     #define X2_IHOLD         31 | ||||
|     #define X2_IRUN          31 | ||||
|     #define X2_IHOLDDELAY    15 | ||||
|     #define X2_I_SCALE_ANALOG 1 | ||||
|     #define X2_MRES          16 | ||||
|     #define X2_TBL            1 | ||||
|     #define X2_TOFF           8 | ||||
|  | ||||
|     #define Y_IHOLD          31 | ||||
|     #define Y_IRUN           31 | ||||
|     #define Y_IHOLDDELAY     15 | ||||
|     #define Y_I_SCALE_ANALOG  1 | ||||
|     #define Y_MRES           16 | ||||
|     #define Y_TBL             1 | ||||
|     #define Y_TOFF            8 | ||||
|  | ||||
|     #define Y2_IHOLD         31 | ||||
|     #define Y2_IRUN          31 | ||||
|     #define Y2_IHOLDDELAY    15 | ||||
|     #define Y2_I_SCALE_ANALOG 1 | ||||
|     #define Y2_MRES          16 | ||||
|     #define Y2_TBL            1 | ||||
|     #define Y2_TOFF           8 | ||||
|  | ||||
|     #define Z_IHOLD          31 | ||||
|     #define Z_IRUN           31 | ||||
|     #define Z_IHOLDDELAY     15 | ||||
|     #define Z_I_SCALE_ANALOG  1 | ||||
|     #define Z_MRES           16 | ||||
|     #define Z_TBL             1 | ||||
|     #define Z_TOFF            8 | ||||
|  | ||||
|     #define Z2_IHOLD         31 | ||||
|     #define Z2_IRUN          31 | ||||
|     #define Z2_IHOLDDELAY    15 | ||||
|     #define Z2_I_SCALE_ANALOG 1 | ||||
|     #define Z2_MRES          16 | ||||
|     #define Z2_TBL            1 | ||||
|     #define Z2_TOFF           8 | ||||
|  | ||||
|     #define E0_IHOLD         31 | ||||
|     #define E0_IRUN          31 | ||||
|     #define E0_IHOLDDELAY    15 | ||||
|     #define E0_I_SCALE_ANALOG 1 | ||||
|     #define E0_MRES          16 | ||||
|     #define E0_TBL            1 | ||||
|     #define E0_TOFF           8 | ||||
|  | ||||
|     #define E1_IHOLD         31 | ||||
|     #define E1_IRUN          31 | ||||
|     #define E1_IHOLDDELAY    15 | ||||
|     #define E1_I_SCALE_ANALOG 1 | ||||
|     #define E1_MRES          16 | ||||
|     #define E1_TBL            1 | ||||
|     #define E1_TOFF           8 | ||||
|  | ||||
|     #define E2_IHOLD         31 | ||||
|     #define E2_IRUN          31 | ||||
|     #define E2_IHOLDDELAY    15 | ||||
|     #define E2_I_SCALE_ANALOG 1 | ||||
|     #define E2_MRES          16 | ||||
|     #define E2_TBL            1 | ||||
|     #define E2_TOFF           8 | ||||
|  | ||||
|     #define E3_IHOLD         31 | ||||
|     #define E3_IRUN          31 | ||||
|     #define E3_IHOLDDELAY    15 | ||||
|     #define E3_I_SCALE_ANALOG 1 | ||||
|     #define E3_MRES          16 | ||||
|     #define E3_TBL            1 | ||||
|     #define E3_TOFF           8 | ||||
|  | ||||
|   #endif // TMC2130_ADVANCED_CONFIGURATION | ||||
|  | ||||
| #endif // HAVE_TMC2130DRIVER | ||||
| #endif // ENABLED(HAVE_TMC2130) | ||||
|  | ||||
| // @section L6470 | ||||
|  | ||||
|   | ||||
| @@ -758,14 +758,15 @@ | ||||
|                                                      // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. | ||||
| #endif | ||||
|  | ||||
| /******************************************************************************\ | ||||
|  * enable this section if you have TMC26X motor drivers. | ||||
|  * you need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
|  | ||||
| // @section tmc | ||||
|  | ||||
| /** | ||||
|  * Enable this section if you have TMC26X motor drivers. | ||||
|  * You will need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  * (https://github.com/trinamic/TMC26XStepper.git) | ||||
|  */ | ||||
| //#define HAVE_TMCDRIVER | ||||
|  | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
|  | ||||
|   //#define X_IS_TMC | ||||
| @@ -823,23 +824,31 @@ | ||||
|  | ||||
| // @section TMC2130 | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Enable this for SilentStepStick Trinamic TMC2130 SPI-configurable stepper drivers. | ||||
|  * | ||||
|  * To use TMC2130 drivers in SPI mode, you'll also need the TMC2130 Arduino library | ||||
|  * (https://github.com/makertum/Trinamic_TMC2130). | ||||
|  * You'll also need the TMC2130Stepper Arduino library | ||||
|  * (https://github.com/teemuatlut/TMC2130Stepper). | ||||
|  * | ||||
|  * To use TMC2130 stepper drivers in SPI mode connect your SPI2130 pins to | ||||
|  * the hardware SPI interface on your board and define the required CS pins | ||||
|  * in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.). | ||||
|  */ | ||||
| //#define HAVE_TMC2130 | ||||
|  | ||||
| //#define HAVE_TMC2130DRIVER | ||||
| #if ENABLED(HAVE_TMC2130) | ||||
|   #define STEALTHCHOP | ||||
|  | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
|  | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION | ||||
|   /** | ||||
|    * 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_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX | ||||
|    */  | ||||
|   //#define AUTOMATIC_CURRENT_CONTROL | ||||
|   #define CURRENT_STEP          50  // [mA] | ||||
|   #define AUTO_ADJUST_MAX     1300  // [mA], 1300mA_rms = 1840mA_peak | ||||
|  | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY | ||||
|   //#define X_IS_TMC2130 | ||||
| @@ -853,180 +862,68 @@ | ||||
|   //#define E2_IS_TMC2130 | ||||
|   //#define E3_IS_TMC2130 | ||||
|  | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
|   /** | ||||
|    * Stepper driver settings | ||||
|    */ | ||||
|  | ||||
|     // If you've enabled TMC2130_ADVANCED_CONFIGURATION, define global settings below. | ||||
|     // Enabled settings will be automatically applied to all axes specified above. | ||||
|     // | ||||
|     // Please read the TMC2130 datasheet: | ||||
|     // http://www.trinamic.com/_articles/products/integrated-circuits/tmc2130/_datasheet/TMC2130_datasheet.pdf | ||||
|     // All settings here have the same (sometimes cryptic) names as in the datasheet. | ||||
|     // | ||||
|     // The following, uncommented settings are only suggestion. | ||||
|   #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 | ||||
|  | ||||
|     /* GENERAL CONFIGURATION */ | ||||
|   #define X_MAX_CURRENT     1000  // rms current in mA | ||||
|   #define X_MICROSTEPS        16  // FULLSTEP..256 | ||||
|   #define X_CHIP_SELECT       40  // Pin | ||||
|  | ||||
|     //#define GLOBAL_EN_PWM_MODE        0 | ||||
|     #define GLOBAL_I_SCALE_ANALOG     1 // [0,1] 0: Normal, 1: AIN | ||||
|     //#define GLOBAL_INTERNAL_RSENSE    0 // [0,1] 0: Normal, 1: Internal | ||||
|     #define GLOBAL_EN_PWM_MODE        0 // [0,1] 0: Normal, 1: stealthChop with velocity threshold | ||||
|     //#define GLOBAL_ENC_COMMUTATION    0 // [0,1] | ||||
|     #define GLOBAL_SHAFT              0 // [0,1] 0: normal, 1: invert | ||||
|     //#define GLOBAL_DIAG0_ERROR        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_OTPW         0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INDEX        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_SMALL_HYSTERESIS   0 // [0,1] | ||||
|     //#define GLOBAL_STOP_ENABLE        0 // [0,1] | ||||
|     //#define GLOBAL_DIRECT_MODE        0 // [0,1] | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_MICROSTEPS        16 | ||||
|   #define Y_CHIP_SELECT       42 | ||||
|  | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_MICROSTEPS        16 | ||||
|   #define Z_CHIP_SELECT       65 | ||||
|  | ||||
|     #define GLOBAL_IHOLD             22 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IRUN              31 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IHOLDDELAY        15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     //#define GLOBAL_TPOWERDOWN         0 // [0-255] 0: min, 255: about 4 seconds | ||||
|     //#define GLOBAL_TPWMTHRS           0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     //#define GLOBAL_TCOOLTHRS          0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     #define GLOBAL_THIGH             10 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|   //#define X2_MAX_CURRENT  1000 | ||||
|   //#define X2_MICROSTEPS     16 | ||||
|   //#define X2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
|   //#define Y2_MAX_CURRENT  1000 | ||||
|   //#define Y2_MICROSTEPS     16 | ||||
|   //#define Y2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_XDIRECT            0 | ||||
|   //#define Z2_MAX_CURRENT  1000 | ||||
|   //#define Z2_MICROSTEPS     16 | ||||
|   //#define Z2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
|   //#define E0_MAX_CURRENT  1000 | ||||
|   //#define E0_MICROSTEPS     16 | ||||
|   //#define E0_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_VDCMIN             0 | ||||
|   //#define E1_MAX_CURRENT  1000 | ||||
|   //#define E1_MICROSTEPS     16 | ||||
|   //#define E1_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
|   //#define E2_MAX_CURRENT  1000 | ||||
|   //#define E2_MICROSTEPS     16 | ||||
|   //#define E2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_DEDGE              0 | ||||
|     //#define GLOBAL_DISS2G             0 | ||||
|     #define GLOBAL_INTPOL             1 // 0: off 1: 256 microstep interpolation | ||||
|     #define GLOBAL_MRES              16 // number of microsteps | ||||
|     #define GLOBAL_SYNC               1 // [0-15] | ||||
|     #define GLOBAL_VHIGHCHM           1 // [0,1] 0: normal, 1: high velocity stepper mode | ||||
|     #define GLOBAL_VHIGHFS            0 // [0,1] 0: normal, 1: switch to full steps for high velocities | ||||
|     // #define GLOBAL_VSENSE            0 // [0,1] 0: normal, 1: high sensitivity (not recommended) | ||||
|     #define GLOBAL_TBL                1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define GLOBAL_CHM                0 // [0,1] 0: spreadCycle, 1: Constant off time with fast decay time. | ||||
|     //#define GLOBAL_RNDTF              0 | ||||
|     //#define GLOBAL_DISFDCC            0 | ||||
|     //#define GLOBAL_FD                 0 | ||||
|     //#define GLOBAL_HEND               0 | ||||
|     //#define GLOBAL_HSTRT              0 | ||||
|     #define GLOBAL_TOFF              10 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|   //#define E3_MAX_CURRENT  1000 | ||||
|   //#define E3_MICROSTEPS     16 | ||||
|   //#define E3_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_SFILT              0 | ||||
|     //#define GLOBAL_SGT                0 | ||||
|     //#define GLOBAL_SEIMIN             0 | ||||
|     //#define GLOBAL_SEDN               0 | ||||
|     //#define GLOBAL_SEMAX              0 | ||||
|     //#define GLOBAL_SEUP               0 | ||||
|     //#define GLOBAL_SEMIN              0 | ||||
|   /** | ||||
|    * 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 | ||||
|    * | ||||
|    * Example: | ||||
|    * #define TMC2130_ADV() { \ | ||||
|    *   stepperX.diag0_temp_prewarn(1); \ | ||||
|    *   stepperX.interpolate(0); \ | ||||
|    * } | ||||
|    */ | ||||
|   #define  TMC2130_ADV() {  } | ||||
|  | ||||
|     //#define GLOBAL_DC_TIME            0 | ||||
|     //#define GLOBAL_DC_SG              0 | ||||
|  | ||||
|     //#define GLOBAL_FREEWHEEL          0 | ||||
|     //#define GLOBAL_PWM_SYMMETRIC      0 | ||||
|     //#define GLOBAL_PWM_AUTOSCALE      0 | ||||
|     //#define GLOBAL_PWM_FREQ           0 | ||||
|     //#define GLOBAL_PWM_GRAD           0 | ||||
|     //#define GLOBAL_PWM_AMPL           0 | ||||
|  | ||||
|     //#define GLOBAL_ENCM_CTRL          0 | ||||
|  | ||||
|   #else | ||||
|  | ||||
|     #define X_IHOLD          31 // [0-31] 0: min, 31: max | ||||
|     #define X_IRUN           31 // [0-31] 0: min, 31: max | ||||
|     #define X_IHOLDDELAY     15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     #define X_I_SCALE_ANALOG  1 // 0: Normal, 1: AIN | ||||
|     #define X_MRES           16 // number of microsteps | ||||
|     #define X_TBL             1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define X_TOFF            8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|  | ||||
|     #define X2_IHOLD         31 | ||||
|     #define X2_IRUN          31 | ||||
|     #define X2_IHOLDDELAY    15 | ||||
|     #define X2_I_SCALE_ANALOG 1 | ||||
|     #define X2_MRES          16 | ||||
|     #define X2_TBL            1 | ||||
|     #define X2_TOFF           8 | ||||
|  | ||||
|     #define Y_IHOLD          31 | ||||
|     #define Y_IRUN           31 | ||||
|     #define Y_IHOLDDELAY     15 | ||||
|     #define Y_I_SCALE_ANALOG  1 | ||||
|     #define Y_MRES           16 | ||||
|     #define Y_TBL             1 | ||||
|     #define Y_TOFF            8 | ||||
|  | ||||
|     #define Y2_IHOLD         31 | ||||
|     #define Y2_IRUN          31 | ||||
|     #define Y2_IHOLDDELAY    15 | ||||
|     #define Y2_I_SCALE_ANALOG 1 | ||||
|     #define Y2_MRES          16 | ||||
|     #define Y2_TBL            1 | ||||
|     #define Y2_TOFF           8 | ||||
|  | ||||
|     #define Z_IHOLD          31 | ||||
|     #define Z_IRUN           31 | ||||
|     #define Z_IHOLDDELAY     15 | ||||
|     #define Z_I_SCALE_ANALOG  1 | ||||
|     #define Z_MRES           16 | ||||
|     #define Z_TBL             1 | ||||
|     #define Z_TOFF            8 | ||||
|  | ||||
|     #define Z2_IHOLD         31 | ||||
|     #define Z2_IRUN          31 | ||||
|     #define Z2_IHOLDDELAY    15 | ||||
|     #define Z2_I_SCALE_ANALOG 1 | ||||
|     #define Z2_MRES          16 | ||||
|     #define Z2_TBL            1 | ||||
|     #define Z2_TOFF           8 | ||||
|  | ||||
|     #define E0_IHOLD         31 | ||||
|     #define E0_IRUN          31 | ||||
|     #define E0_IHOLDDELAY    15 | ||||
|     #define E0_I_SCALE_ANALOG 1 | ||||
|     #define E0_MRES          16 | ||||
|     #define E0_TBL            1 | ||||
|     #define E0_TOFF           8 | ||||
|  | ||||
|     #define E1_IHOLD         31 | ||||
|     #define E1_IRUN          31 | ||||
|     #define E1_IHOLDDELAY    15 | ||||
|     #define E1_I_SCALE_ANALOG 1 | ||||
|     #define E1_MRES          16 | ||||
|     #define E1_TBL            1 | ||||
|     #define E1_TOFF           8 | ||||
|  | ||||
|     #define E2_IHOLD         31 | ||||
|     #define E2_IRUN          31 | ||||
|     #define E2_IHOLDDELAY    15 | ||||
|     #define E2_I_SCALE_ANALOG 1 | ||||
|     #define E2_MRES          16 | ||||
|     #define E2_TBL            1 | ||||
|     #define E2_TOFF           8 | ||||
|  | ||||
|     #define E3_IHOLD         31 | ||||
|     #define E3_IRUN          31 | ||||
|     #define E3_IHOLDDELAY    15 | ||||
|     #define E3_I_SCALE_ANALOG 1 | ||||
|     #define E3_MRES          16 | ||||
|     #define E3_TBL            1 | ||||
|     #define E3_TOFF           8 | ||||
|  | ||||
|   #endif // TMC2130_ADVANCED_CONFIGURATION | ||||
|  | ||||
| #endif // HAVE_TMC2130DRIVER | ||||
| #endif // ENABLED(HAVE_TMC2130) | ||||
|  | ||||
| // @section L6470 | ||||
|  | ||||
|   | ||||
| @@ -758,14 +758,15 @@ | ||||
|                                                      // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. | ||||
| #endif | ||||
|  | ||||
| /******************************************************************************\ | ||||
|  * enable this section if you have TMC26X motor drivers. | ||||
|  * you need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
|  | ||||
| // @section tmc | ||||
|  | ||||
| /** | ||||
|  * Enable this section if you have TMC26X motor drivers. | ||||
|  * You will need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  * (https://github.com/trinamic/TMC26XStepper.git) | ||||
|  */ | ||||
| //#define HAVE_TMCDRIVER | ||||
|  | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
|  | ||||
|   //#define X_IS_TMC | ||||
| @@ -823,23 +824,31 @@ | ||||
|  | ||||
| // @section TMC2130 | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Enable this for SilentStepStick Trinamic TMC2130 SPI-configurable stepper drivers. | ||||
|  * | ||||
|  * To use TMC2130 drivers in SPI mode, you'll also need the TMC2130 Arduino library | ||||
|  * (https://github.com/makertum/Trinamic_TMC2130). | ||||
|  * You'll also need the TMC2130Stepper Arduino library | ||||
|  * (https://github.com/teemuatlut/TMC2130Stepper). | ||||
|  * | ||||
|  * To use TMC2130 stepper drivers in SPI mode connect your SPI2130 pins to | ||||
|  * the hardware SPI interface on your board and define the required CS pins | ||||
|  * in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.). | ||||
|  */ | ||||
| //#define HAVE_TMC2130 | ||||
|  | ||||
| //#define HAVE_TMC2130DRIVER | ||||
| #if ENABLED(HAVE_TMC2130) | ||||
|   #define STEALTHCHOP | ||||
|  | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
|  | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION | ||||
|   /** | ||||
|    * 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_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX | ||||
|    */  | ||||
|   //#define AUTOMATIC_CURRENT_CONTROL | ||||
|   #define CURRENT_STEP          50  // [mA] | ||||
|   #define AUTO_ADJUST_MAX     1300  // [mA], 1300mA_rms = 1840mA_peak | ||||
|  | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY | ||||
|   //#define X_IS_TMC2130 | ||||
| @@ -853,180 +862,68 @@ | ||||
|   //#define E2_IS_TMC2130 | ||||
|   //#define E3_IS_TMC2130 | ||||
|  | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
|   /** | ||||
|    * Stepper driver settings | ||||
|    */ | ||||
|  | ||||
|     // If you've enabled TMC2130_ADVANCED_CONFIGURATION, define global settings below. | ||||
|     // Enabled settings will be automatically applied to all axes specified above. | ||||
|     // | ||||
|     // Please read the TMC2130 datasheet: | ||||
|     // http://www.trinamic.com/_articles/products/integrated-circuits/tmc2130/_datasheet/TMC2130_datasheet.pdf | ||||
|     // All settings here have the same (sometimes cryptic) names as in the datasheet. | ||||
|     // | ||||
|     // The following, uncommented settings are only suggestion. | ||||
|   #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 | ||||
|  | ||||
|     /* GENERAL CONFIGURATION */ | ||||
|   #define X_MAX_CURRENT     1000  // rms current in mA | ||||
|   #define X_MICROSTEPS        16  // FULLSTEP..256 | ||||
|   #define X_CHIP_SELECT       40  // Pin | ||||
|  | ||||
|     //#define GLOBAL_EN_PWM_MODE        0 | ||||
|     #define GLOBAL_I_SCALE_ANALOG     1 // [0,1] 0: Normal, 1: AIN | ||||
|     //#define GLOBAL_INTERNAL_RSENSE    0 // [0,1] 0: Normal, 1: Internal | ||||
|     #define GLOBAL_EN_PWM_MODE        0 // [0,1] 0: Normal, 1: stealthChop with velocity threshold | ||||
|     //#define GLOBAL_ENC_COMMUTATION    0 // [0,1] | ||||
|     #define GLOBAL_SHAFT              0 // [0,1] 0: normal, 1: invert | ||||
|     //#define GLOBAL_DIAG0_ERROR        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_OTPW         0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INDEX        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_SMALL_HYSTERESIS   0 // [0,1] | ||||
|     //#define GLOBAL_STOP_ENABLE        0 // [0,1] | ||||
|     //#define GLOBAL_DIRECT_MODE        0 // [0,1] | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_MICROSTEPS        16 | ||||
|   #define Y_CHIP_SELECT       42 | ||||
|  | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_MICROSTEPS        16 | ||||
|   #define Z_CHIP_SELECT       65 | ||||
|  | ||||
|     #define GLOBAL_IHOLD             22 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IRUN              31 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IHOLDDELAY        15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     //#define GLOBAL_TPOWERDOWN         0 // [0-255] 0: min, 255: about 4 seconds | ||||
|     //#define GLOBAL_TPWMTHRS           0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     //#define GLOBAL_TCOOLTHRS          0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     #define GLOBAL_THIGH             10 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|   //#define X2_MAX_CURRENT  1000 | ||||
|   //#define X2_MICROSTEPS     16 | ||||
|   //#define X2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
|   //#define Y2_MAX_CURRENT  1000 | ||||
|   //#define Y2_MICROSTEPS     16 | ||||
|   //#define Y2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_XDIRECT            0 | ||||
|   //#define Z2_MAX_CURRENT  1000 | ||||
|   //#define Z2_MICROSTEPS     16 | ||||
|   //#define Z2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
|   //#define E0_MAX_CURRENT  1000 | ||||
|   //#define E0_MICROSTEPS     16 | ||||
|   //#define E0_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_VDCMIN             0 | ||||
|   //#define E1_MAX_CURRENT  1000 | ||||
|   //#define E1_MICROSTEPS     16 | ||||
|   //#define E1_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
|   //#define E2_MAX_CURRENT  1000 | ||||
|   //#define E2_MICROSTEPS     16 | ||||
|   //#define E2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_DEDGE              0 | ||||
|     //#define GLOBAL_DISS2G             0 | ||||
|     #define GLOBAL_INTPOL             1 // 0: off 1: 256 microstep interpolation | ||||
|     #define GLOBAL_MRES              16 // number of microsteps | ||||
|     #define GLOBAL_SYNC               1 // [0-15] | ||||
|     #define GLOBAL_VHIGHCHM           1 // [0,1] 0: normal, 1: high velocity stepper mode | ||||
|     #define GLOBAL_VHIGHFS            0 // [0,1] 0: normal, 1: switch to full steps for high velocities | ||||
|     // #define GLOBAL_VSENSE            0 // [0,1] 0: normal, 1: high sensitivity (not recommended) | ||||
|     #define GLOBAL_TBL                1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define GLOBAL_CHM                0 // [0,1] 0: spreadCycle, 1: Constant off time with fast decay time. | ||||
|     //#define GLOBAL_RNDTF              0 | ||||
|     //#define GLOBAL_DISFDCC            0 | ||||
|     //#define GLOBAL_FD                 0 | ||||
|     //#define GLOBAL_HEND               0 | ||||
|     //#define GLOBAL_HSTRT              0 | ||||
|     #define GLOBAL_TOFF              10 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|   //#define E3_MAX_CURRENT  1000 | ||||
|   //#define E3_MICROSTEPS     16 | ||||
|   //#define E3_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_SFILT              0 | ||||
|     //#define GLOBAL_SGT                0 | ||||
|     //#define GLOBAL_SEIMIN             0 | ||||
|     //#define GLOBAL_SEDN               0 | ||||
|     //#define GLOBAL_SEMAX              0 | ||||
|     //#define GLOBAL_SEUP               0 | ||||
|     //#define GLOBAL_SEMIN              0 | ||||
|   /** | ||||
|    * 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 | ||||
|    * | ||||
|    * Example: | ||||
|    * #define TMC2130_ADV() { \ | ||||
|    *   stepperX.diag0_temp_prewarn(1); \ | ||||
|    *   stepperX.interpolate(0); \ | ||||
|    * } | ||||
|    */ | ||||
|   #define  TMC2130_ADV() {  } | ||||
|  | ||||
|     //#define GLOBAL_DC_TIME            0 | ||||
|     //#define GLOBAL_DC_SG              0 | ||||
|  | ||||
|     //#define GLOBAL_FREEWHEEL          0 | ||||
|     //#define GLOBAL_PWM_SYMMETRIC      0 | ||||
|     //#define GLOBAL_PWM_AUTOSCALE      0 | ||||
|     //#define GLOBAL_PWM_FREQ           0 | ||||
|     //#define GLOBAL_PWM_GRAD           0 | ||||
|     //#define GLOBAL_PWM_AMPL           0 | ||||
|  | ||||
|     //#define GLOBAL_ENCM_CTRL          0 | ||||
|  | ||||
|   #else | ||||
|  | ||||
|     #define X_IHOLD          31 // [0-31] 0: min, 31: max | ||||
|     #define X_IRUN           31 // [0-31] 0: min, 31: max | ||||
|     #define X_IHOLDDELAY     15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     #define X_I_SCALE_ANALOG  1 // 0: Normal, 1: AIN | ||||
|     #define X_MRES           16 // number of microsteps | ||||
|     #define X_TBL             1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define X_TOFF            8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|  | ||||
|     #define X2_IHOLD         31 | ||||
|     #define X2_IRUN          31 | ||||
|     #define X2_IHOLDDELAY    15 | ||||
|     #define X2_I_SCALE_ANALOG 1 | ||||
|     #define X2_MRES          16 | ||||
|     #define X2_TBL            1 | ||||
|     #define X2_TOFF           8 | ||||
|  | ||||
|     #define Y_IHOLD          31 | ||||
|     #define Y_IRUN           31 | ||||
|     #define Y_IHOLDDELAY     15 | ||||
|     #define Y_I_SCALE_ANALOG  1 | ||||
|     #define Y_MRES           16 | ||||
|     #define Y_TBL             1 | ||||
|     #define Y_TOFF            8 | ||||
|  | ||||
|     #define Y2_IHOLD         31 | ||||
|     #define Y2_IRUN          31 | ||||
|     #define Y2_IHOLDDELAY    15 | ||||
|     #define Y2_I_SCALE_ANALOG 1 | ||||
|     #define Y2_MRES          16 | ||||
|     #define Y2_TBL            1 | ||||
|     #define Y2_TOFF           8 | ||||
|  | ||||
|     #define Z_IHOLD          31 | ||||
|     #define Z_IRUN           31 | ||||
|     #define Z_IHOLDDELAY     15 | ||||
|     #define Z_I_SCALE_ANALOG  1 | ||||
|     #define Z_MRES           16 | ||||
|     #define Z_TBL             1 | ||||
|     #define Z_TOFF            8 | ||||
|  | ||||
|     #define Z2_IHOLD         31 | ||||
|     #define Z2_IRUN          31 | ||||
|     #define Z2_IHOLDDELAY    15 | ||||
|     #define Z2_I_SCALE_ANALOG 1 | ||||
|     #define Z2_MRES          16 | ||||
|     #define Z2_TBL            1 | ||||
|     #define Z2_TOFF           8 | ||||
|  | ||||
|     #define E0_IHOLD         31 | ||||
|     #define E0_IRUN          31 | ||||
|     #define E0_IHOLDDELAY    15 | ||||
|     #define E0_I_SCALE_ANALOG 1 | ||||
|     #define E0_MRES          16 | ||||
|     #define E0_TBL            1 | ||||
|     #define E0_TOFF           8 | ||||
|  | ||||
|     #define E1_IHOLD         31 | ||||
|     #define E1_IRUN          31 | ||||
|     #define E1_IHOLDDELAY    15 | ||||
|     #define E1_I_SCALE_ANALOG 1 | ||||
|     #define E1_MRES          16 | ||||
|     #define E1_TBL            1 | ||||
|     #define E1_TOFF           8 | ||||
|  | ||||
|     #define E2_IHOLD         31 | ||||
|     #define E2_IRUN          31 | ||||
|     #define E2_IHOLDDELAY    15 | ||||
|     #define E2_I_SCALE_ANALOG 1 | ||||
|     #define E2_MRES          16 | ||||
|     #define E2_TBL            1 | ||||
|     #define E2_TOFF           8 | ||||
|  | ||||
|     #define E3_IHOLD         31 | ||||
|     #define E3_IRUN          31 | ||||
|     #define E3_IHOLDDELAY    15 | ||||
|     #define E3_I_SCALE_ANALOG 1 | ||||
|     #define E3_MRES          16 | ||||
|     #define E3_TBL            1 | ||||
|     #define E3_TOFF           8 | ||||
|  | ||||
|   #endif // TMC2130_ADVANCED_CONFIGURATION | ||||
|  | ||||
| #endif // HAVE_TMC2130DRIVER | ||||
| #endif // ENABLED(HAVE_TMC2130) | ||||
|  | ||||
| // @section L6470 | ||||
|  | ||||
|   | ||||
| @@ -741,14 +741,15 @@ | ||||
|                                                      // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. | ||||
| #endif | ||||
|  | ||||
| /******************************************************************************\ | ||||
|  * enable this section if you have TMC26X motor drivers. | ||||
|  * you need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
|  | ||||
| // @section tmc | ||||
|  | ||||
| /** | ||||
|  * Enable this section if you have TMC26X motor drivers. | ||||
|  * You will need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  * (https://github.com/trinamic/TMC26XStepper.git) | ||||
|  */ | ||||
| //#define HAVE_TMCDRIVER | ||||
|  | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
|  | ||||
|   //#define X_IS_TMC | ||||
| @@ -806,23 +807,31 @@ | ||||
|  | ||||
| // @section TMC2130 | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Enable this for SilentStepStick Trinamic TMC2130 SPI-configurable stepper drivers. | ||||
|  * | ||||
|  * To use TMC2130 drivers in SPI mode, you'll also need the TMC2130 Arduino library | ||||
|  * (https://github.com/makertum/Trinamic_TMC2130). | ||||
|  * You'll also need the TMC2130Stepper Arduino library | ||||
|  * (https://github.com/teemuatlut/TMC2130Stepper). | ||||
|  * | ||||
|  * To use TMC2130 stepper drivers in SPI mode connect your SPI2130 pins to | ||||
|  * the hardware SPI interface on your board and define the required CS pins | ||||
|  * in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.). | ||||
|  */ | ||||
| //#define HAVE_TMC2130 | ||||
|  | ||||
| //#define HAVE_TMC2130DRIVER | ||||
| #if ENABLED(HAVE_TMC2130) | ||||
|   #define STEALTHCHOP | ||||
|  | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
|  | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION | ||||
|   /** | ||||
|    * 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_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX | ||||
|    */  | ||||
|   //#define AUTOMATIC_CURRENT_CONTROL | ||||
|   #define CURRENT_STEP          50  // [mA] | ||||
|   #define AUTO_ADJUST_MAX     1300  // [mA], 1300mA_rms = 1840mA_peak | ||||
|  | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY | ||||
|   //#define X_IS_TMC2130 | ||||
| @@ -836,180 +845,68 @@ | ||||
|   //#define E2_IS_TMC2130 | ||||
|   //#define E3_IS_TMC2130 | ||||
|  | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
|   /** | ||||
|    * Stepper driver settings | ||||
|    */ | ||||
|  | ||||
|     // If you've enabled TMC2130_ADVANCED_CONFIGURATION, define global settings below. | ||||
|     // Enabled settings will be automatically applied to all axes specified above. | ||||
|     // | ||||
|     // Please read the TMC2130 datasheet: | ||||
|     // http://www.trinamic.com/_articles/products/integrated-circuits/tmc2130/_datasheet/TMC2130_datasheet.pdf | ||||
|     // All settings here have the same (sometimes cryptic) names as in the datasheet. | ||||
|     // | ||||
|     // The following, uncommented settings are only suggestion. | ||||
|   #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 | ||||
|  | ||||
|     /* GENERAL CONFIGURATION */ | ||||
|   #define X_MAX_CURRENT     1000  // rms current in mA | ||||
|   #define X_MICROSTEPS        16  // FULLSTEP..256 | ||||
|   #define X_CHIP_SELECT       40  // Pin | ||||
|  | ||||
|     //#define GLOBAL_EN_PWM_MODE        0 | ||||
|     #define GLOBAL_I_SCALE_ANALOG     1 // [0,1] 0: Normal, 1: AIN | ||||
|     //#define GLOBAL_INTERNAL_RSENSE    0 // [0,1] 0: Normal, 1: Internal | ||||
|     #define GLOBAL_EN_PWM_MODE        0 // [0,1] 0: Normal, 1: stealthChop with velocity threshold | ||||
|     //#define GLOBAL_ENC_COMMUTATION    0 // [0,1] | ||||
|     #define GLOBAL_SHAFT              0 // [0,1] 0: normal, 1: invert | ||||
|     //#define GLOBAL_DIAG0_ERROR        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_OTPW         0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INDEX        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_SMALL_HYSTERESIS   0 // [0,1] | ||||
|     //#define GLOBAL_STOP_ENABLE        0 // [0,1] | ||||
|     //#define GLOBAL_DIRECT_MODE        0 // [0,1] | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_MICROSTEPS        16 | ||||
|   #define Y_CHIP_SELECT       42 | ||||
|  | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_MICROSTEPS        16 | ||||
|   #define Z_CHIP_SELECT       65 | ||||
|  | ||||
|     #define GLOBAL_IHOLD             22 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IRUN              31 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IHOLDDELAY        15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     //#define GLOBAL_TPOWERDOWN         0 // [0-255] 0: min, 255: about 4 seconds | ||||
|     //#define GLOBAL_TPWMTHRS           0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     //#define GLOBAL_TCOOLTHRS          0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     #define GLOBAL_THIGH             10 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|   //#define X2_MAX_CURRENT  1000 | ||||
|   //#define X2_MICROSTEPS     16 | ||||
|   //#define X2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
|   //#define Y2_MAX_CURRENT  1000 | ||||
|   //#define Y2_MICROSTEPS     16 | ||||
|   //#define Y2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_XDIRECT            0 | ||||
|   //#define Z2_MAX_CURRENT  1000 | ||||
|   //#define Z2_MICROSTEPS     16 | ||||
|   //#define Z2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
|   //#define E0_MAX_CURRENT  1000 | ||||
|   //#define E0_MICROSTEPS     16 | ||||
|   //#define E0_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_VDCMIN             0 | ||||
|   //#define E1_MAX_CURRENT  1000 | ||||
|   //#define E1_MICROSTEPS     16 | ||||
|   //#define E1_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
|   //#define E2_MAX_CURRENT  1000 | ||||
|   //#define E2_MICROSTEPS     16 | ||||
|   //#define E2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_DEDGE              0 | ||||
|     //#define GLOBAL_DISS2G             0 | ||||
|     #define GLOBAL_INTPOL             1 // 0: off 1: 256 microstep interpolation | ||||
|     #define GLOBAL_MRES              16 // number of microsteps | ||||
|     #define GLOBAL_SYNC               1 // [0-15] | ||||
|     #define GLOBAL_VHIGHCHM           1 // [0,1] 0: normal, 1: high velocity stepper mode | ||||
|     #define GLOBAL_VHIGHFS            0 // [0,1] 0: normal, 1: switch to full steps for high velocities | ||||
|     // #define GLOBAL_VSENSE            0 // [0,1] 0: normal, 1: high sensitivity (not recommended) | ||||
|     #define GLOBAL_TBL                1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define GLOBAL_CHM                0 // [0,1] 0: spreadCycle, 1: Constant off time with fast decay time. | ||||
|     //#define GLOBAL_RNDTF              0 | ||||
|     //#define GLOBAL_DISFDCC            0 | ||||
|     //#define GLOBAL_FD                 0 | ||||
|     //#define GLOBAL_HEND               0 | ||||
|     //#define GLOBAL_HSTRT              0 | ||||
|     #define GLOBAL_TOFF              10 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|   //#define E3_MAX_CURRENT  1000 | ||||
|   //#define E3_MICROSTEPS     16 | ||||
|   //#define E3_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_SFILT              0 | ||||
|     //#define GLOBAL_SGT                0 | ||||
|     //#define GLOBAL_SEIMIN             0 | ||||
|     //#define GLOBAL_SEDN               0 | ||||
|     //#define GLOBAL_SEMAX              0 | ||||
|     //#define GLOBAL_SEUP               0 | ||||
|     //#define GLOBAL_SEMIN              0 | ||||
|   /** | ||||
|    * 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 | ||||
|    * | ||||
|    * Example: | ||||
|    * #define TMC2130_ADV() { \ | ||||
|    *   stepperX.diag0_temp_prewarn(1); \ | ||||
|    *   stepperX.interpolate(0); \ | ||||
|    * } | ||||
|    */ | ||||
|   #define  TMC2130_ADV() {  } | ||||
|  | ||||
|     //#define GLOBAL_DC_TIME            0 | ||||
|     //#define GLOBAL_DC_SG              0 | ||||
|  | ||||
|     //#define GLOBAL_FREEWHEEL          0 | ||||
|     //#define GLOBAL_PWM_SYMMETRIC      0 | ||||
|     //#define GLOBAL_PWM_AUTOSCALE      0 | ||||
|     //#define GLOBAL_PWM_FREQ           0 | ||||
|     //#define GLOBAL_PWM_GRAD           0 | ||||
|     //#define GLOBAL_PWM_AMPL           0 | ||||
|  | ||||
|     //#define GLOBAL_ENCM_CTRL          0 | ||||
|  | ||||
|   #else | ||||
|  | ||||
|     #define X_IHOLD          31 // [0-31] 0: min, 31: max | ||||
|     #define X_IRUN           31 // [0-31] 0: min, 31: max | ||||
|     #define X_IHOLDDELAY     15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     #define X_I_SCALE_ANALOG  1 // 0: Normal, 1: AIN | ||||
|     #define X_MRES           16 // number of microsteps | ||||
|     #define X_TBL             1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define X_TOFF            8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|  | ||||
|     #define X2_IHOLD         31 | ||||
|     #define X2_IRUN          31 | ||||
|     #define X2_IHOLDDELAY    15 | ||||
|     #define X2_I_SCALE_ANALOG 1 | ||||
|     #define X2_MRES          16 | ||||
|     #define X2_TBL            1 | ||||
|     #define X2_TOFF           8 | ||||
|  | ||||
|     #define Y_IHOLD          31 | ||||
|     #define Y_IRUN           31 | ||||
|     #define Y_IHOLDDELAY     15 | ||||
|     #define Y_I_SCALE_ANALOG  1 | ||||
|     #define Y_MRES           16 | ||||
|     #define Y_TBL             1 | ||||
|     #define Y_TOFF            8 | ||||
|  | ||||
|     #define Y2_IHOLD         31 | ||||
|     #define Y2_IRUN          31 | ||||
|     #define Y2_IHOLDDELAY    15 | ||||
|     #define Y2_I_SCALE_ANALOG 1 | ||||
|     #define Y2_MRES          16 | ||||
|     #define Y2_TBL            1 | ||||
|     #define Y2_TOFF           8 | ||||
|  | ||||
|     #define Z_IHOLD          31 | ||||
|     #define Z_IRUN           31 | ||||
|     #define Z_IHOLDDELAY     15 | ||||
|     #define Z_I_SCALE_ANALOG  1 | ||||
|     #define Z_MRES           16 | ||||
|     #define Z_TBL             1 | ||||
|     #define Z_TOFF            8 | ||||
|  | ||||
|     #define Z2_IHOLD         31 | ||||
|     #define Z2_IRUN          31 | ||||
|     #define Z2_IHOLDDELAY    15 | ||||
|     #define Z2_I_SCALE_ANALOG 1 | ||||
|     #define Z2_MRES          16 | ||||
|     #define Z2_TBL            1 | ||||
|     #define Z2_TOFF           8 | ||||
|  | ||||
|     #define E0_IHOLD         31 | ||||
|     #define E0_IRUN          31 | ||||
|     #define E0_IHOLDDELAY    15 | ||||
|     #define E0_I_SCALE_ANALOG 1 | ||||
|     #define E0_MRES          16 | ||||
|     #define E0_TBL            1 | ||||
|     #define E0_TOFF           8 | ||||
|  | ||||
|     #define E1_IHOLD         31 | ||||
|     #define E1_IRUN          31 | ||||
|     #define E1_IHOLDDELAY    15 | ||||
|     #define E1_I_SCALE_ANALOG 1 | ||||
|     #define E1_MRES          16 | ||||
|     #define E1_TBL            1 | ||||
|     #define E1_TOFF           8 | ||||
|  | ||||
|     #define E2_IHOLD         31 | ||||
|     #define E2_IRUN          31 | ||||
|     #define E2_IHOLDDELAY    15 | ||||
|     #define E2_I_SCALE_ANALOG 1 | ||||
|     #define E2_MRES          16 | ||||
|     #define E2_TBL            1 | ||||
|     #define E2_TOFF           8 | ||||
|  | ||||
|     #define E3_IHOLD         31 | ||||
|     #define E3_IRUN          31 | ||||
|     #define E3_IHOLDDELAY    15 | ||||
|     #define E3_I_SCALE_ANALOG 1 | ||||
|     #define E3_MRES          16 | ||||
|     #define E3_TBL            1 | ||||
|     #define E3_TOFF           8 | ||||
|  | ||||
|   #endif // TMC2130_ADVANCED_CONFIGURATION | ||||
|  | ||||
| #endif // HAVE_TMC2130DRIVER | ||||
| #endif // ENABLED(HAVE_TMC2130) | ||||
|  | ||||
| // @section L6470 | ||||
|  | ||||
|   | ||||
| @@ -771,14 +771,15 @@ | ||||
|                                                      // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. | ||||
| #endif | ||||
|  | ||||
| /******************************************************************************\ | ||||
|  * enable this section if you have TMC26X motor drivers. | ||||
|  * you need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
|  | ||||
| // @section tmc | ||||
|  | ||||
| /** | ||||
|  * Enable this section if you have TMC26X motor drivers. | ||||
|  * You will need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  * (https://github.com/trinamic/TMC26XStepper.git) | ||||
|  */ | ||||
| //#define HAVE_TMCDRIVER | ||||
|  | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
|  | ||||
|   //#define X_IS_TMC | ||||
| @@ -836,23 +837,31 @@ | ||||
|  | ||||
| // @section TMC2130 | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Enable this for SilentStepStick Trinamic TMC2130 SPI-configurable stepper drivers. | ||||
|  * | ||||
|  * To use TMC2130 drivers in SPI mode, you'll also need the TMC2130 Arduino library | ||||
|  * (https://github.com/makertum/Trinamic_TMC2130). | ||||
|  * You'll also need the TMC2130Stepper Arduino library | ||||
|  * (https://github.com/teemuatlut/TMC2130Stepper). | ||||
|  * | ||||
|  * To use TMC2130 stepper drivers in SPI mode connect your SPI2130 pins to | ||||
|  * the hardware SPI interface on your board and define the required CS pins | ||||
|  * in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.). | ||||
|  */ | ||||
| //#define HAVE_TMC2130 | ||||
|  | ||||
| //#define HAVE_TMC2130DRIVER | ||||
| #if ENABLED(HAVE_TMC2130) | ||||
|   #define STEALTHCHOP | ||||
|  | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
|  | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION | ||||
|   /** | ||||
|    * 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_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX | ||||
|    */  | ||||
|   //#define AUTOMATIC_CURRENT_CONTROL | ||||
|   #define CURRENT_STEP          50  // [mA] | ||||
|   #define AUTO_ADJUST_MAX     1300  // [mA], 1300mA_rms = 1840mA_peak | ||||
|  | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY | ||||
|   //#define X_IS_TMC2130 | ||||
| @@ -866,180 +875,68 @@ | ||||
|   //#define E2_IS_TMC2130 | ||||
|   //#define E3_IS_TMC2130 | ||||
|  | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
|   /** | ||||
|    * Stepper driver settings | ||||
|    */ | ||||
|  | ||||
|     // If you've enabled TMC2130_ADVANCED_CONFIGURATION, define global settings below. | ||||
|     // Enabled settings will be automatically applied to all axes specified above. | ||||
|     // | ||||
|     // Please read the TMC2130 datasheet: | ||||
|     // http://www.trinamic.com/_articles/products/integrated-circuits/tmc2130/_datasheet/TMC2130_datasheet.pdf | ||||
|     // All settings here have the same (sometimes cryptic) names as in the datasheet. | ||||
|     // | ||||
|     // The following, uncommented settings are only suggestion. | ||||
|   #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 | ||||
|  | ||||
|     /* GENERAL CONFIGURATION */ | ||||
|   #define X_MAX_CURRENT     1000  // rms current in mA | ||||
|   #define X_MICROSTEPS        16  // FULLSTEP..256 | ||||
|   #define X_CHIP_SELECT       40  // Pin | ||||
|  | ||||
|     //#define GLOBAL_EN_PWM_MODE        0 | ||||
|     #define GLOBAL_I_SCALE_ANALOG     1 // [0,1] 0: Normal, 1: AIN | ||||
|     //#define GLOBAL_INTERNAL_RSENSE    0 // [0,1] 0: Normal, 1: Internal | ||||
|     #define GLOBAL_EN_PWM_MODE        0 // [0,1] 0: Normal, 1: stealthChop with velocity threshold | ||||
|     //#define GLOBAL_ENC_COMMUTATION    0 // [0,1] | ||||
|     #define GLOBAL_SHAFT              0 // [0,1] 0: normal, 1: invert | ||||
|     //#define GLOBAL_DIAG0_ERROR        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_OTPW         0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INDEX        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_SMALL_HYSTERESIS   0 // [0,1] | ||||
|     //#define GLOBAL_STOP_ENABLE        0 // [0,1] | ||||
|     //#define GLOBAL_DIRECT_MODE        0 // [0,1] | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_MICROSTEPS        16 | ||||
|   #define Y_CHIP_SELECT       42 | ||||
|  | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_MICROSTEPS        16 | ||||
|   #define Z_CHIP_SELECT       65 | ||||
|  | ||||
|     #define GLOBAL_IHOLD             22 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IRUN              31 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IHOLDDELAY        15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     //#define GLOBAL_TPOWERDOWN         0 // [0-255] 0: min, 255: about 4 seconds | ||||
|     //#define GLOBAL_TPWMTHRS           0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     //#define GLOBAL_TCOOLTHRS          0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     #define GLOBAL_THIGH             10 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|   //#define X2_MAX_CURRENT  1000 | ||||
|   //#define X2_MICROSTEPS     16 | ||||
|   //#define X2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
|   //#define Y2_MAX_CURRENT  1000 | ||||
|   //#define Y2_MICROSTEPS     16 | ||||
|   //#define Y2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_XDIRECT            0 | ||||
|   //#define Z2_MAX_CURRENT  1000 | ||||
|   //#define Z2_MICROSTEPS     16 | ||||
|   //#define Z2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
|   //#define E0_MAX_CURRENT  1000 | ||||
|   //#define E0_MICROSTEPS     16 | ||||
|   //#define E0_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_VDCMIN             0 | ||||
|   //#define E1_MAX_CURRENT  1000 | ||||
|   //#define E1_MICROSTEPS     16 | ||||
|   //#define E1_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
|   //#define E2_MAX_CURRENT  1000 | ||||
|   //#define E2_MICROSTEPS     16 | ||||
|   //#define E2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_DEDGE              0 | ||||
|     //#define GLOBAL_DISS2G             0 | ||||
|     #define GLOBAL_INTPOL             1 // 0: off 1: 256 microstep interpolation | ||||
|     #define GLOBAL_MRES              16 // number of microsteps | ||||
|     #define GLOBAL_SYNC               1 // [0-15] | ||||
|     #define GLOBAL_VHIGHCHM           1 // [0,1] 0: normal, 1: high velocity stepper mode | ||||
|     #define GLOBAL_VHIGHFS            0 // [0,1] 0: normal, 1: switch to full steps for high velocities | ||||
|     // #define GLOBAL_VSENSE            0 // [0,1] 0: normal, 1: high sensitivity (not recommended) | ||||
|     #define GLOBAL_TBL                1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define GLOBAL_CHM                0 // [0,1] 0: spreadCycle, 1: Constant off time with fast decay time. | ||||
|     //#define GLOBAL_RNDTF              0 | ||||
|     //#define GLOBAL_DISFDCC            0 | ||||
|     //#define GLOBAL_FD                 0 | ||||
|     //#define GLOBAL_HEND               0 | ||||
|     //#define GLOBAL_HSTRT              0 | ||||
|     #define GLOBAL_TOFF              10 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|   //#define E3_MAX_CURRENT  1000 | ||||
|   //#define E3_MICROSTEPS     16 | ||||
|   //#define E3_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_SFILT              0 | ||||
|     //#define GLOBAL_SGT                0 | ||||
|     //#define GLOBAL_SEIMIN             0 | ||||
|     //#define GLOBAL_SEDN               0 | ||||
|     //#define GLOBAL_SEMAX              0 | ||||
|     //#define GLOBAL_SEUP               0 | ||||
|     //#define GLOBAL_SEMIN              0 | ||||
|   /** | ||||
|    * 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 | ||||
|    * | ||||
|    * Example: | ||||
|    * #define TMC2130_ADV() { \ | ||||
|    *   stepperX.diag0_temp_prewarn(1); \ | ||||
|    *   stepperX.interpolate(0); \ | ||||
|    * } | ||||
|    */ | ||||
|   #define  TMC2130_ADV() {  } | ||||
|  | ||||
|     //#define GLOBAL_DC_TIME            0 | ||||
|     //#define GLOBAL_DC_SG              0 | ||||
|  | ||||
|     //#define GLOBAL_FREEWHEEL          0 | ||||
|     //#define GLOBAL_PWM_SYMMETRIC      0 | ||||
|     //#define GLOBAL_PWM_AUTOSCALE      0 | ||||
|     //#define GLOBAL_PWM_FREQ           0 | ||||
|     //#define GLOBAL_PWM_GRAD           0 | ||||
|     //#define GLOBAL_PWM_AMPL           0 | ||||
|  | ||||
|     //#define GLOBAL_ENCM_CTRL          0 | ||||
|  | ||||
|   #else | ||||
|  | ||||
|     #define X_IHOLD          31 // [0-31] 0: min, 31: max | ||||
|     #define X_IRUN           31 // [0-31] 0: min, 31: max | ||||
|     #define X_IHOLDDELAY     15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     #define X_I_SCALE_ANALOG  1 // 0: Normal, 1: AIN | ||||
|     #define X_MRES           16 // number of microsteps | ||||
|     #define X_TBL             1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define X_TOFF            8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|  | ||||
|     #define X2_IHOLD         31 | ||||
|     #define X2_IRUN          31 | ||||
|     #define X2_IHOLDDELAY    15 | ||||
|     #define X2_I_SCALE_ANALOG 1 | ||||
|     #define X2_MRES          16 | ||||
|     #define X2_TBL            1 | ||||
|     #define X2_TOFF           8 | ||||
|  | ||||
|     #define Y_IHOLD          31 | ||||
|     #define Y_IRUN           31 | ||||
|     #define Y_IHOLDDELAY     15 | ||||
|     #define Y_I_SCALE_ANALOG  1 | ||||
|     #define Y_MRES           16 | ||||
|     #define Y_TBL             1 | ||||
|     #define Y_TOFF            8 | ||||
|  | ||||
|     #define Y2_IHOLD         31 | ||||
|     #define Y2_IRUN          31 | ||||
|     #define Y2_IHOLDDELAY    15 | ||||
|     #define Y2_I_SCALE_ANALOG 1 | ||||
|     #define Y2_MRES          16 | ||||
|     #define Y2_TBL            1 | ||||
|     #define Y2_TOFF           8 | ||||
|  | ||||
|     #define Z_IHOLD          31 | ||||
|     #define Z_IRUN           31 | ||||
|     #define Z_IHOLDDELAY     15 | ||||
|     #define Z_I_SCALE_ANALOG  1 | ||||
|     #define Z_MRES           16 | ||||
|     #define Z_TBL             1 | ||||
|     #define Z_TOFF            8 | ||||
|  | ||||
|     #define Z2_IHOLD         31 | ||||
|     #define Z2_IRUN          31 | ||||
|     #define Z2_IHOLDDELAY    15 | ||||
|     #define Z2_I_SCALE_ANALOG 1 | ||||
|     #define Z2_MRES          16 | ||||
|     #define Z2_TBL            1 | ||||
|     #define Z2_TOFF           8 | ||||
|  | ||||
|     #define E0_IHOLD         31 | ||||
|     #define E0_IRUN          31 | ||||
|     #define E0_IHOLDDELAY    15 | ||||
|     #define E0_I_SCALE_ANALOG 1 | ||||
|     #define E0_MRES          16 | ||||
|     #define E0_TBL            1 | ||||
|     #define E0_TOFF           8 | ||||
|  | ||||
|     #define E1_IHOLD         31 | ||||
|     #define E1_IRUN          31 | ||||
|     #define E1_IHOLDDELAY    15 | ||||
|     #define E1_I_SCALE_ANALOG 1 | ||||
|     #define E1_MRES          16 | ||||
|     #define E1_TBL            1 | ||||
|     #define E1_TOFF           8 | ||||
|  | ||||
|     #define E2_IHOLD         31 | ||||
|     #define E2_IRUN          31 | ||||
|     #define E2_IHOLDDELAY    15 | ||||
|     #define E2_I_SCALE_ANALOG 1 | ||||
|     #define E2_MRES          16 | ||||
|     #define E2_TBL            1 | ||||
|     #define E2_TOFF           8 | ||||
|  | ||||
|     #define E3_IHOLD         31 | ||||
|     #define E3_IRUN          31 | ||||
|     #define E3_IHOLDDELAY    15 | ||||
|     #define E3_I_SCALE_ANALOG 1 | ||||
|     #define E3_MRES          16 | ||||
|     #define E3_TBL            1 | ||||
|     #define E3_TOFF           8 | ||||
|  | ||||
|   #endif // TMC2130_ADVANCED_CONFIGURATION | ||||
|  | ||||
| #endif // HAVE_TMC2130DRIVER | ||||
| #endif // ENABLED(HAVE_TMC2130) | ||||
|  | ||||
| // @section L6470 | ||||
|  | ||||
|   | ||||
| @@ -758,14 +758,15 @@ | ||||
|                                                      // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. | ||||
| #endif | ||||
|  | ||||
| /******************************************************************************\ | ||||
|  * enable this section if you have TMC26X motor drivers. | ||||
|  * you need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
|  | ||||
| // @section tmc | ||||
|  | ||||
| /** | ||||
|  * Enable this section if you have TMC26X motor drivers. | ||||
|  * You will need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  * (https://github.com/trinamic/TMC26XStepper.git) | ||||
|  */ | ||||
| //#define HAVE_TMCDRIVER | ||||
|  | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
|  | ||||
|   //#define X_IS_TMC | ||||
| @@ -823,23 +824,31 @@ | ||||
|  | ||||
| // @section TMC2130 | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Enable this for SilentStepStick Trinamic TMC2130 SPI-configurable stepper drivers. | ||||
|  * | ||||
|  * To use TMC2130 drivers in SPI mode, you'll also need the TMC2130 Arduino library | ||||
|  * (https://github.com/makertum/Trinamic_TMC2130). | ||||
|  * You'll also need the TMC2130Stepper Arduino library | ||||
|  * (https://github.com/teemuatlut/TMC2130Stepper). | ||||
|  * | ||||
|  * To use TMC2130 stepper drivers in SPI mode connect your SPI2130 pins to | ||||
|  * the hardware SPI interface on your board and define the required CS pins | ||||
|  * in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.). | ||||
|  */ | ||||
| //#define HAVE_TMC2130 | ||||
|  | ||||
| //#define HAVE_TMC2130DRIVER | ||||
| #if ENABLED(HAVE_TMC2130) | ||||
|   #define STEALTHCHOP | ||||
|  | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
|  | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION | ||||
|   /** | ||||
|    * 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_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX | ||||
|    */  | ||||
|   //#define AUTOMATIC_CURRENT_CONTROL | ||||
|   #define CURRENT_STEP          50  // [mA] | ||||
|   #define AUTO_ADJUST_MAX     1300  // [mA], 1300mA_rms = 1840mA_peak | ||||
|  | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY | ||||
|   //#define X_IS_TMC2130 | ||||
| @@ -853,180 +862,68 @@ | ||||
|   //#define E2_IS_TMC2130 | ||||
|   //#define E3_IS_TMC2130 | ||||
|  | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
|   /** | ||||
|    * Stepper driver settings | ||||
|    */ | ||||
|  | ||||
|     // If you've enabled TMC2130_ADVANCED_CONFIGURATION, define global settings below. | ||||
|     // Enabled settings will be automatically applied to all axes specified above. | ||||
|     // | ||||
|     // Please read the TMC2130 datasheet: | ||||
|     // http://www.trinamic.com/_articles/products/integrated-circuits/tmc2130/_datasheet/TMC2130_datasheet.pdf | ||||
|     // All settings here have the same (sometimes cryptic) names as in the datasheet. | ||||
|     // | ||||
|     // The following, uncommented settings are only suggestion. | ||||
|   #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 | ||||
|  | ||||
|     /* GENERAL CONFIGURATION */ | ||||
|   #define X_MAX_CURRENT     1000  // rms current in mA | ||||
|   #define X_MICROSTEPS        16  // FULLSTEP..256 | ||||
|   #define X_CHIP_SELECT       40  // Pin | ||||
|  | ||||
|     //#define GLOBAL_EN_PWM_MODE        0 | ||||
|     #define GLOBAL_I_SCALE_ANALOG     1 // [0,1] 0: Normal, 1: AIN | ||||
|     //#define GLOBAL_INTERNAL_RSENSE    0 // [0,1] 0: Normal, 1: Internal | ||||
|     #define GLOBAL_EN_PWM_MODE        0 // [0,1] 0: Normal, 1: stealthChop with velocity threshold | ||||
|     //#define GLOBAL_ENC_COMMUTATION    0 // [0,1] | ||||
|     #define GLOBAL_SHAFT              0 // [0,1] 0: normal, 1: invert | ||||
|     //#define GLOBAL_DIAG0_ERROR        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_OTPW         0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INDEX        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_SMALL_HYSTERESIS   0 // [0,1] | ||||
|     //#define GLOBAL_STOP_ENABLE        0 // [0,1] | ||||
|     //#define GLOBAL_DIRECT_MODE        0 // [0,1] | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_MICROSTEPS        16 | ||||
|   #define Y_CHIP_SELECT       42 | ||||
|  | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_MICROSTEPS        16 | ||||
|   #define Z_CHIP_SELECT       65 | ||||
|  | ||||
|     #define GLOBAL_IHOLD             22 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IRUN              31 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IHOLDDELAY        15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     //#define GLOBAL_TPOWERDOWN         0 // [0-255] 0: min, 255: about 4 seconds | ||||
|     //#define GLOBAL_TPWMTHRS           0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     //#define GLOBAL_TCOOLTHRS          0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     #define GLOBAL_THIGH             10 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|   //#define X2_MAX_CURRENT  1000 | ||||
|   //#define X2_MICROSTEPS     16 | ||||
|   //#define X2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
|   //#define Y2_MAX_CURRENT  1000 | ||||
|   //#define Y2_MICROSTEPS     16 | ||||
|   //#define Y2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_XDIRECT            0 | ||||
|   //#define Z2_MAX_CURRENT  1000 | ||||
|   //#define Z2_MICROSTEPS     16 | ||||
|   //#define Z2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
|   //#define E0_MAX_CURRENT  1000 | ||||
|   //#define E0_MICROSTEPS     16 | ||||
|   //#define E0_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_VDCMIN             0 | ||||
|   //#define E1_MAX_CURRENT  1000 | ||||
|   //#define E1_MICROSTEPS     16 | ||||
|   //#define E1_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
|   //#define E2_MAX_CURRENT  1000 | ||||
|   //#define E2_MICROSTEPS     16 | ||||
|   //#define E2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_DEDGE              0 | ||||
|     //#define GLOBAL_DISS2G             0 | ||||
|     #define GLOBAL_INTPOL             1 // 0: off 1: 256 microstep interpolation | ||||
|     #define GLOBAL_MRES              16 // number of microsteps | ||||
|     #define GLOBAL_SYNC               1 // [0-15] | ||||
|     #define GLOBAL_VHIGHCHM           1 // [0,1] 0: normal, 1: high velocity stepper mode | ||||
|     #define GLOBAL_VHIGHFS            0 // [0,1] 0: normal, 1: switch to full steps for high velocities | ||||
|     // #define GLOBAL_VSENSE            0 // [0,1] 0: normal, 1: high sensitivity (not recommended) | ||||
|     #define GLOBAL_TBL                1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define GLOBAL_CHM                0 // [0,1] 0: spreadCycle, 1: Constant off time with fast decay time. | ||||
|     //#define GLOBAL_RNDTF              0 | ||||
|     //#define GLOBAL_DISFDCC            0 | ||||
|     //#define GLOBAL_FD                 0 | ||||
|     //#define GLOBAL_HEND               0 | ||||
|     //#define GLOBAL_HSTRT              0 | ||||
|     #define GLOBAL_TOFF              10 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|   //#define E3_MAX_CURRENT  1000 | ||||
|   //#define E3_MICROSTEPS     16 | ||||
|   //#define E3_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_SFILT              0 | ||||
|     //#define GLOBAL_SGT                0 | ||||
|     //#define GLOBAL_SEIMIN             0 | ||||
|     //#define GLOBAL_SEDN               0 | ||||
|     //#define GLOBAL_SEMAX              0 | ||||
|     //#define GLOBAL_SEUP               0 | ||||
|     //#define GLOBAL_SEMIN              0 | ||||
|   /** | ||||
|    * 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 | ||||
|    * | ||||
|    * Example: | ||||
|    * #define TMC2130_ADV() { \ | ||||
|    *   stepperX.diag0_temp_prewarn(1); \ | ||||
|    *   stepperX.interpolate(0); \ | ||||
|    * } | ||||
|    */ | ||||
|   #define  TMC2130_ADV() {  } | ||||
|  | ||||
|     //#define GLOBAL_DC_TIME            0 | ||||
|     //#define GLOBAL_DC_SG              0 | ||||
|  | ||||
|     //#define GLOBAL_FREEWHEEL          0 | ||||
|     //#define GLOBAL_PWM_SYMMETRIC      0 | ||||
|     //#define GLOBAL_PWM_AUTOSCALE      0 | ||||
|     //#define GLOBAL_PWM_FREQ           0 | ||||
|     //#define GLOBAL_PWM_GRAD           0 | ||||
|     //#define GLOBAL_PWM_AMPL           0 | ||||
|  | ||||
|     //#define GLOBAL_ENCM_CTRL          0 | ||||
|  | ||||
|   #else | ||||
|  | ||||
|     #define X_IHOLD          31 // [0-31] 0: min, 31: max | ||||
|     #define X_IRUN           31 // [0-31] 0: min, 31: max | ||||
|     #define X_IHOLDDELAY     15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     #define X_I_SCALE_ANALOG  1 // 0: Normal, 1: AIN | ||||
|     #define X_MRES           16 // number of microsteps | ||||
|     #define X_TBL             1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define X_TOFF            8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|  | ||||
|     #define X2_IHOLD         31 | ||||
|     #define X2_IRUN          31 | ||||
|     #define X2_IHOLDDELAY    15 | ||||
|     #define X2_I_SCALE_ANALOG 1 | ||||
|     #define X2_MRES          16 | ||||
|     #define X2_TBL            1 | ||||
|     #define X2_TOFF           8 | ||||
|  | ||||
|     #define Y_IHOLD          31 | ||||
|     #define Y_IRUN           31 | ||||
|     #define Y_IHOLDDELAY     15 | ||||
|     #define Y_I_SCALE_ANALOG  1 | ||||
|     #define Y_MRES           16 | ||||
|     #define Y_TBL             1 | ||||
|     #define Y_TOFF            8 | ||||
|  | ||||
|     #define Y2_IHOLD         31 | ||||
|     #define Y2_IRUN          31 | ||||
|     #define Y2_IHOLDDELAY    15 | ||||
|     #define Y2_I_SCALE_ANALOG 1 | ||||
|     #define Y2_MRES          16 | ||||
|     #define Y2_TBL            1 | ||||
|     #define Y2_TOFF           8 | ||||
|  | ||||
|     #define Z_IHOLD          31 | ||||
|     #define Z_IRUN           31 | ||||
|     #define Z_IHOLDDELAY     15 | ||||
|     #define Z_I_SCALE_ANALOG  1 | ||||
|     #define Z_MRES           16 | ||||
|     #define Z_TBL             1 | ||||
|     #define Z_TOFF            8 | ||||
|  | ||||
|     #define Z2_IHOLD         31 | ||||
|     #define Z2_IRUN          31 | ||||
|     #define Z2_IHOLDDELAY    15 | ||||
|     #define Z2_I_SCALE_ANALOG 1 | ||||
|     #define Z2_MRES          16 | ||||
|     #define Z2_TBL            1 | ||||
|     #define Z2_TOFF           8 | ||||
|  | ||||
|     #define E0_IHOLD         31 | ||||
|     #define E0_IRUN          31 | ||||
|     #define E0_IHOLDDELAY    15 | ||||
|     #define E0_I_SCALE_ANALOG 1 | ||||
|     #define E0_MRES          16 | ||||
|     #define E0_TBL            1 | ||||
|     #define E0_TOFF           8 | ||||
|  | ||||
|     #define E1_IHOLD         31 | ||||
|     #define E1_IRUN          31 | ||||
|     #define E1_IHOLDDELAY    15 | ||||
|     #define E1_I_SCALE_ANALOG 1 | ||||
|     #define E1_MRES          16 | ||||
|     #define E1_TBL            1 | ||||
|     #define E1_TOFF           8 | ||||
|  | ||||
|     #define E2_IHOLD         31 | ||||
|     #define E2_IRUN          31 | ||||
|     #define E2_IHOLDDELAY    15 | ||||
|     #define E2_I_SCALE_ANALOG 1 | ||||
|     #define E2_MRES          16 | ||||
|     #define E2_TBL            1 | ||||
|     #define E2_TOFF           8 | ||||
|  | ||||
|     #define E3_IHOLD         31 | ||||
|     #define E3_IRUN          31 | ||||
|     #define E3_IHOLDDELAY    15 | ||||
|     #define E3_I_SCALE_ANALOG 1 | ||||
|     #define E3_MRES          16 | ||||
|     #define E3_TBL            1 | ||||
|     #define E3_TOFF           8 | ||||
|  | ||||
|   #endif // TMC2130_ADVANCED_CONFIGURATION | ||||
|  | ||||
| #endif // HAVE_TMC2130DRIVER | ||||
| #endif // ENABLED(HAVE_TMC2130) | ||||
|  | ||||
| // @section L6470 | ||||
|  | ||||
|   | ||||
| @@ -758,14 +758,15 @@ | ||||
|                                                      // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. | ||||
| #endif | ||||
|  | ||||
| /******************************************************************************\ | ||||
|  * enable this section if you have TMC26X motor drivers. | ||||
|  * you need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
|  | ||||
| // @section tmc | ||||
|  | ||||
| /** | ||||
|  * Enable this section if you have TMC26X motor drivers. | ||||
|  * You will need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  * (https://github.com/trinamic/TMC26XStepper.git) | ||||
|  */ | ||||
| //#define HAVE_TMCDRIVER | ||||
|  | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
|  | ||||
|   //#define X_IS_TMC | ||||
| @@ -823,23 +824,31 @@ | ||||
|  | ||||
| // @section TMC2130 | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Enable this for SilentStepStick Trinamic TMC2130 SPI-configurable stepper drivers. | ||||
|  * | ||||
|  * To use TMC2130 drivers in SPI mode, you'll also need the TMC2130 Arduino library | ||||
|  * (https://github.com/makertum/Trinamic_TMC2130). | ||||
|  * You'll also need the TMC2130Stepper Arduino library | ||||
|  * (https://github.com/teemuatlut/TMC2130Stepper). | ||||
|  * | ||||
|  * To use TMC2130 stepper drivers in SPI mode connect your SPI2130 pins to | ||||
|  * the hardware SPI interface on your board and define the required CS pins | ||||
|  * in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.). | ||||
|  */ | ||||
| //#define HAVE_TMC2130 | ||||
|  | ||||
| //#define HAVE_TMC2130DRIVER | ||||
| #if ENABLED(HAVE_TMC2130) | ||||
|   #define STEALTHCHOP | ||||
|  | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
|  | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION | ||||
|   /** | ||||
|    * 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_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX | ||||
|    */  | ||||
|   //#define AUTOMATIC_CURRENT_CONTROL | ||||
|   #define CURRENT_STEP          50  // [mA] | ||||
|   #define AUTO_ADJUST_MAX     1300  // [mA], 1300mA_rms = 1840mA_peak | ||||
|  | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY | ||||
|   //#define X_IS_TMC2130 | ||||
| @@ -853,180 +862,68 @@ | ||||
|   //#define E2_IS_TMC2130 | ||||
|   //#define E3_IS_TMC2130 | ||||
|  | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
|   /** | ||||
|    * Stepper driver settings | ||||
|    */ | ||||
|  | ||||
|     // If you've enabled TMC2130_ADVANCED_CONFIGURATION, define global settings below. | ||||
|     // Enabled settings will be automatically applied to all axes specified above. | ||||
|     // | ||||
|     // Please read the TMC2130 datasheet: | ||||
|     // http://www.trinamic.com/_articles/products/integrated-circuits/tmc2130/_datasheet/TMC2130_datasheet.pdf | ||||
|     // All settings here have the same (sometimes cryptic) names as in the datasheet. | ||||
|     // | ||||
|     // The following, uncommented settings are only suggestion. | ||||
|   #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 | ||||
|  | ||||
|     /* GENERAL CONFIGURATION */ | ||||
|   #define X_MAX_CURRENT     1000  // rms current in mA | ||||
|   #define X_MICROSTEPS        16  // FULLSTEP..256 | ||||
|   #define X_CHIP_SELECT       40  // Pin | ||||
|  | ||||
|     //#define GLOBAL_EN_PWM_MODE        0 | ||||
|     #define GLOBAL_I_SCALE_ANALOG     1 // [0,1] 0: Normal, 1: AIN | ||||
|     //#define GLOBAL_INTERNAL_RSENSE    0 // [0,1] 0: Normal, 1: Internal | ||||
|     #define GLOBAL_EN_PWM_MODE        0 // [0,1] 0: Normal, 1: stealthChop with velocity threshold | ||||
|     //#define GLOBAL_ENC_COMMUTATION    0 // [0,1] | ||||
|     #define GLOBAL_SHAFT              0 // [0,1] 0: normal, 1: invert | ||||
|     //#define GLOBAL_DIAG0_ERROR        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_OTPW         0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INDEX        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_SMALL_HYSTERESIS   0 // [0,1] | ||||
|     //#define GLOBAL_STOP_ENABLE        0 // [0,1] | ||||
|     //#define GLOBAL_DIRECT_MODE        0 // [0,1] | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_MICROSTEPS        16 | ||||
|   #define Y_CHIP_SELECT       42 | ||||
|  | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_MICROSTEPS        16 | ||||
|   #define Z_CHIP_SELECT       65 | ||||
|  | ||||
|     #define GLOBAL_IHOLD             22 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IRUN              31 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IHOLDDELAY        15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     //#define GLOBAL_TPOWERDOWN         0 // [0-255] 0: min, 255: about 4 seconds | ||||
|     //#define GLOBAL_TPWMTHRS           0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     //#define GLOBAL_TCOOLTHRS          0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     #define GLOBAL_THIGH             10 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|   //#define X2_MAX_CURRENT  1000 | ||||
|   //#define X2_MICROSTEPS     16 | ||||
|   //#define X2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
|   //#define Y2_MAX_CURRENT  1000 | ||||
|   //#define Y2_MICROSTEPS     16 | ||||
|   //#define Y2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_XDIRECT            0 | ||||
|   //#define Z2_MAX_CURRENT  1000 | ||||
|   //#define Z2_MICROSTEPS     16 | ||||
|   //#define Z2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
|   //#define E0_MAX_CURRENT  1000 | ||||
|   //#define E0_MICROSTEPS     16 | ||||
|   //#define E0_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_VDCMIN             0 | ||||
|   //#define E1_MAX_CURRENT  1000 | ||||
|   //#define E1_MICROSTEPS     16 | ||||
|   //#define E1_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
|   //#define E2_MAX_CURRENT  1000 | ||||
|   //#define E2_MICROSTEPS     16 | ||||
|   //#define E2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_DEDGE              0 | ||||
|     //#define GLOBAL_DISS2G             0 | ||||
|     #define GLOBAL_INTPOL             1 // 0: off 1: 256 microstep interpolation | ||||
|     #define GLOBAL_MRES              16 // number of microsteps | ||||
|     #define GLOBAL_SYNC               1 // [0-15] | ||||
|     #define GLOBAL_VHIGHCHM           1 // [0,1] 0: normal, 1: high velocity stepper mode | ||||
|     #define GLOBAL_VHIGHFS            0 // [0,1] 0: normal, 1: switch to full steps for high velocities | ||||
|     // #define GLOBAL_VSENSE            0 // [0,1] 0: normal, 1: high sensitivity (not recommended) | ||||
|     #define GLOBAL_TBL                1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define GLOBAL_CHM                0 // [0,1] 0: spreadCycle, 1: Constant off time with fast decay time. | ||||
|     //#define GLOBAL_RNDTF              0 | ||||
|     //#define GLOBAL_DISFDCC            0 | ||||
|     //#define GLOBAL_FD                 0 | ||||
|     //#define GLOBAL_HEND               0 | ||||
|     //#define GLOBAL_HSTRT              0 | ||||
|     #define GLOBAL_TOFF              10 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|   //#define E3_MAX_CURRENT  1000 | ||||
|   //#define E3_MICROSTEPS     16 | ||||
|   //#define E3_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_SFILT              0 | ||||
|     //#define GLOBAL_SGT                0 | ||||
|     //#define GLOBAL_SEIMIN             0 | ||||
|     //#define GLOBAL_SEDN               0 | ||||
|     //#define GLOBAL_SEMAX              0 | ||||
|     //#define GLOBAL_SEUP               0 | ||||
|     //#define GLOBAL_SEMIN              0 | ||||
|   /** | ||||
|    * 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 | ||||
|    * | ||||
|    * Example: | ||||
|    * #define TMC2130_ADV() { \ | ||||
|    *   stepperX.diag0_temp_prewarn(1); \ | ||||
|    *   stepperX.interpolate(0); \ | ||||
|    * } | ||||
|    */ | ||||
|   #define  TMC2130_ADV() {  } | ||||
|  | ||||
|     //#define GLOBAL_DC_TIME            0 | ||||
|     //#define GLOBAL_DC_SG              0 | ||||
|  | ||||
|     //#define GLOBAL_FREEWHEEL          0 | ||||
|     //#define GLOBAL_PWM_SYMMETRIC      0 | ||||
|     //#define GLOBAL_PWM_AUTOSCALE      0 | ||||
|     //#define GLOBAL_PWM_FREQ           0 | ||||
|     //#define GLOBAL_PWM_GRAD           0 | ||||
|     //#define GLOBAL_PWM_AMPL           0 | ||||
|  | ||||
|     //#define GLOBAL_ENCM_CTRL          0 | ||||
|  | ||||
|   #else | ||||
|  | ||||
|     #define X_IHOLD          31 // [0-31] 0: min, 31: max | ||||
|     #define X_IRUN           31 // [0-31] 0: min, 31: max | ||||
|     #define X_IHOLDDELAY     15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     #define X_I_SCALE_ANALOG  1 // 0: Normal, 1: AIN | ||||
|     #define X_MRES           16 // number of microsteps | ||||
|     #define X_TBL             1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define X_TOFF            8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|  | ||||
|     #define X2_IHOLD         31 | ||||
|     #define X2_IRUN          31 | ||||
|     #define X2_IHOLDDELAY    15 | ||||
|     #define X2_I_SCALE_ANALOG 1 | ||||
|     #define X2_MRES          16 | ||||
|     #define X2_TBL            1 | ||||
|     #define X2_TOFF           8 | ||||
|  | ||||
|     #define Y_IHOLD          31 | ||||
|     #define Y_IRUN           31 | ||||
|     #define Y_IHOLDDELAY     15 | ||||
|     #define Y_I_SCALE_ANALOG  1 | ||||
|     #define Y_MRES           16 | ||||
|     #define Y_TBL             1 | ||||
|     #define Y_TOFF            8 | ||||
|  | ||||
|     #define Y2_IHOLD         31 | ||||
|     #define Y2_IRUN          31 | ||||
|     #define Y2_IHOLDDELAY    15 | ||||
|     #define Y2_I_SCALE_ANALOG 1 | ||||
|     #define Y2_MRES          16 | ||||
|     #define Y2_TBL            1 | ||||
|     #define Y2_TOFF           8 | ||||
|  | ||||
|     #define Z_IHOLD          31 | ||||
|     #define Z_IRUN           31 | ||||
|     #define Z_IHOLDDELAY     15 | ||||
|     #define Z_I_SCALE_ANALOG  1 | ||||
|     #define Z_MRES           16 | ||||
|     #define Z_TBL             1 | ||||
|     #define Z_TOFF            8 | ||||
|  | ||||
|     #define Z2_IHOLD         31 | ||||
|     #define Z2_IRUN          31 | ||||
|     #define Z2_IHOLDDELAY    15 | ||||
|     #define Z2_I_SCALE_ANALOG 1 | ||||
|     #define Z2_MRES          16 | ||||
|     #define Z2_TBL            1 | ||||
|     #define Z2_TOFF           8 | ||||
|  | ||||
|     #define E0_IHOLD         31 | ||||
|     #define E0_IRUN          31 | ||||
|     #define E0_IHOLDDELAY    15 | ||||
|     #define E0_I_SCALE_ANALOG 1 | ||||
|     #define E0_MRES          16 | ||||
|     #define E0_TBL            1 | ||||
|     #define E0_TOFF           8 | ||||
|  | ||||
|     #define E1_IHOLD         31 | ||||
|     #define E1_IRUN          31 | ||||
|     #define E1_IHOLDDELAY    15 | ||||
|     #define E1_I_SCALE_ANALOG 1 | ||||
|     #define E1_MRES          16 | ||||
|     #define E1_TBL            1 | ||||
|     #define E1_TOFF           8 | ||||
|  | ||||
|     #define E2_IHOLD         31 | ||||
|     #define E2_IRUN          31 | ||||
|     #define E2_IHOLDDELAY    15 | ||||
|     #define E2_I_SCALE_ANALOG 1 | ||||
|     #define E2_MRES          16 | ||||
|     #define E2_TBL            1 | ||||
|     #define E2_TOFF           8 | ||||
|  | ||||
|     #define E3_IHOLD         31 | ||||
|     #define E3_IRUN          31 | ||||
|     #define E3_IHOLDDELAY    15 | ||||
|     #define E3_I_SCALE_ANALOG 1 | ||||
|     #define E3_MRES          16 | ||||
|     #define E3_TBL            1 | ||||
|     #define E3_TOFF           8 | ||||
|  | ||||
|   #endif // TMC2130_ADVANCED_CONFIGURATION | ||||
|  | ||||
| #endif // HAVE_TMC2130DRIVER | ||||
| #endif // ENABLED(HAVE_TMC2130) | ||||
|  | ||||
| // @section L6470 | ||||
|  | ||||
|   | ||||
| @@ -758,14 +758,15 @@ | ||||
|                                                      // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. | ||||
| #endif | ||||
|  | ||||
| /******************************************************************************\ | ||||
|  * enable this section if you have TMC26X motor drivers. | ||||
|  * you need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
|  | ||||
| // @section tmc | ||||
|  | ||||
| /** | ||||
|  * Enable this section if you have TMC26X motor drivers. | ||||
|  * You will need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  * (https://github.com/trinamic/TMC26XStepper.git) | ||||
|  */ | ||||
| //#define HAVE_TMCDRIVER | ||||
|  | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
|  | ||||
|   //#define X_IS_TMC | ||||
| @@ -823,23 +824,31 @@ | ||||
|  | ||||
| // @section TMC2130 | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Enable this for SilentStepStick Trinamic TMC2130 SPI-configurable stepper drivers. | ||||
|  * | ||||
|  * To use TMC2130 drivers in SPI mode, you'll also need the TMC2130 Arduino library | ||||
|  * (https://github.com/makertum/Trinamic_TMC2130). | ||||
|  * You'll also need the TMC2130Stepper Arduino library | ||||
|  * (https://github.com/teemuatlut/TMC2130Stepper). | ||||
|  * | ||||
|  * To use TMC2130 stepper drivers in SPI mode connect your SPI2130 pins to | ||||
|  * the hardware SPI interface on your board and define the required CS pins | ||||
|  * in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.). | ||||
|  */ | ||||
| //#define HAVE_TMC2130 | ||||
|  | ||||
| //#define HAVE_TMC2130DRIVER | ||||
| #if ENABLED(HAVE_TMC2130) | ||||
|   #define STEALTHCHOP | ||||
|  | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
|  | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION | ||||
|   /** | ||||
|    * 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_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX | ||||
|    */  | ||||
|   //#define AUTOMATIC_CURRENT_CONTROL | ||||
|   #define CURRENT_STEP          50  // [mA] | ||||
|   #define AUTO_ADJUST_MAX     1300  // [mA], 1300mA_rms = 1840mA_peak | ||||
|  | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY | ||||
|   //#define X_IS_TMC2130 | ||||
| @@ -853,180 +862,68 @@ | ||||
|   //#define E2_IS_TMC2130 | ||||
|   //#define E3_IS_TMC2130 | ||||
|  | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
|   /** | ||||
|    * Stepper driver settings | ||||
|    */ | ||||
|  | ||||
|     // If you've enabled TMC2130_ADVANCED_CONFIGURATION, define global settings below. | ||||
|     // Enabled settings will be automatically applied to all axes specified above. | ||||
|     // | ||||
|     // Please read the TMC2130 datasheet: | ||||
|     // http://www.trinamic.com/_articles/products/integrated-circuits/tmc2130/_datasheet/TMC2130_datasheet.pdf | ||||
|     // All settings here have the same (sometimes cryptic) names as in the datasheet. | ||||
|     // | ||||
|     // The following, uncommented settings are only suggestion. | ||||
|   #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 | ||||
|  | ||||
|     /* GENERAL CONFIGURATION */ | ||||
|   #define X_MAX_CURRENT     1000  // rms current in mA | ||||
|   #define X_MICROSTEPS        16  // FULLSTEP..256 | ||||
|   #define X_CHIP_SELECT       40  // Pin | ||||
|  | ||||
|     //#define GLOBAL_EN_PWM_MODE        0 | ||||
|     #define GLOBAL_I_SCALE_ANALOG     1 // [0,1] 0: Normal, 1: AIN | ||||
|     //#define GLOBAL_INTERNAL_RSENSE    0 // [0,1] 0: Normal, 1: Internal | ||||
|     #define GLOBAL_EN_PWM_MODE        0 // [0,1] 0: Normal, 1: stealthChop with velocity threshold | ||||
|     //#define GLOBAL_ENC_COMMUTATION    0 // [0,1] | ||||
|     #define GLOBAL_SHAFT              0 // [0,1] 0: normal, 1: invert | ||||
|     //#define GLOBAL_DIAG0_ERROR        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_OTPW         0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INDEX        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_SMALL_HYSTERESIS   0 // [0,1] | ||||
|     //#define GLOBAL_STOP_ENABLE        0 // [0,1] | ||||
|     //#define GLOBAL_DIRECT_MODE        0 // [0,1] | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_MICROSTEPS        16 | ||||
|   #define Y_CHIP_SELECT       42 | ||||
|  | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_MICROSTEPS        16 | ||||
|   #define Z_CHIP_SELECT       65 | ||||
|  | ||||
|     #define GLOBAL_IHOLD             22 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IRUN              31 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IHOLDDELAY        15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     //#define GLOBAL_TPOWERDOWN         0 // [0-255] 0: min, 255: about 4 seconds | ||||
|     //#define GLOBAL_TPWMTHRS           0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     //#define GLOBAL_TCOOLTHRS          0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     #define GLOBAL_THIGH             10 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|   //#define X2_MAX_CURRENT  1000 | ||||
|   //#define X2_MICROSTEPS     16 | ||||
|   //#define X2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
|   //#define Y2_MAX_CURRENT  1000 | ||||
|   //#define Y2_MICROSTEPS     16 | ||||
|   //#define Y2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_XDIRECT            0 | ||||
|   //#define Z2_MAX_CURRENT  1000 | ||||
|   //#define Z2_MICROSTEPS     16 | ||||
|   //#define Z2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
|   //#define E0_MAX_CURRENT  1000 | ||||
|   //#define E0_MICROSTEPS     16 | ||||
|   //#define E0_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_VDCMIN             0 | ||||
|   //#define E1_MAX_CURRENT  1000 | ||||
|   //#define E1_MICROSTEPS     16 | ||||
|   //#define E1_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
|   //#define E2_MAX_CURRENT  1000 | ||||
|   //#define E2_MICROSTEPS     16 | ||||
|   //#define E2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_DEDGE              0 | ||||
|     //#define GLOBAL_DISS2G             0 | ||||
|     #define GLOBAL_INTPOL             1 // 0: off 1: 256 microstep interpolation | ||||
|     #define GLOBAL_MRES              16 // number of microsteps | ||||
|     #define GLOBAL_SYNC               1 // [0-15] | ||||
|     #define GLOBAL_VHIGHCHM           1 // [0,1] 0: normal, 1: high velocity stepper mode | ||||
|     #define GLOBAL_VHIGHFS            0 // [0,1] 0: normal, 1: switch to full steps for high velocities | ||||
|     // #define GLOBAL_VSENSE            0 // [0,1] 0: normal, 1: high sensitivity (not recommended) | ||||
|     #define GLOBAL_TBL                1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define GLOBAL_CHM                0 // [0,1] 0: spreadCycle, 1: Constant off time with fast decay time. | ||||
|     //#define GLOBAL_RNDTF              0 | ||||
|     //#define GLOBAL_DISFDCC            0 | ||||
|     //#define GLOBAL_FD                 0 | ||||
|     //#define GLOBAL_HEND               0 | ||||
|     //#define GLOBAL_HSTRT              0 | ||||
|     #define GLOBAL_TOFF              10 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|   //#define E3_MAX_CURRENT  1000 | ||||
|   //#define E3_MICROSTEPS     16 | ||||
|   //#define E3_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_SFILT              0 | ||||
|     //#define GLOBAL_SGT                0 | ||||
|     //#define GLOBAL_SEIMIN             0 | ||||
|     //#define GLOBAL_SEDN               0 | ||||
|     //#define GLOBAL_SEMAX              0 | ||||
|     //#define GLOBAL_SEUP               0 | ||||
|     //#define GLOBAL_SEMIN              0 | ||||
|   /** | ||||
|    * 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 | ||||
|    * | ||||
|    * Example: | ||||
|    * #define TMC2130_ADV() { \ | ||||
|    *   stepperX.diag0_temp_prewarn(1); \ | ||||
|    *   stepperX.interpolate(0); \ | ||||
|    * } | ||||
|    */ | ||||
|   #define  TMC2130_ADV() {  } | ||||
|  | ||||
|     //#define GLOBAL_DC_TIME            0 | ||||
|     //#define GLOBAL_DC_SG              0 | ||||
|  | ||||
|     //#define GLOBAL_FREEWHEEL          0 | ||||
|     //#define GLOBAL_PWM_SYMMETRIC      0 | ||||
|     //#define GLOBAL_PWM_AUTOSCALE      0 | ||||
|     //#define GLOBAL_PWM_FREQ           0 | ||||
|     //#define GLOBAL_PWM_GRAD           0 | ||||
|     //#define GLOBAL_PWM_AMPL           0 | ||||
|  | ||||
|     //#define GLOBAL_ENCM_CTRL          0 | ||||
|  | ||||
|   #else | ||||
|  | ||||
|     #define X_IHOLD          31 // [0-31] 0: min, 31: max | ||||
|     #define X_IRUN           31 // [0-31] 0: min, 31: max | ||||
|     #define X_IHOLDDELAY     15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     #define X_I_SCALE_ANALOG  1 // 0: Normal, 1: AIN | ||||
|     #define X_MRES           16 // number of microsteps | ||||
|     #define X_TBL             1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define X_TOFF            8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|  | ||||
|     #define X2_IHOLD         31 | ||||
|     #define X2_IRUN          31 | ||||
|     #define X2_IHOLDDELAY    15 | ||||
|     #define X2_I_SCALE_ANALOG 1 | ||||
|     #define X2_MRES          16 | ||||
|     #define X2_TBL            1 | ||||
|     #define X2_TOFF           8 | ||||
|  | ||||
|     #define Y_IHOLD          31 | ||||
|     #define Y_IRUN           31 | ||||
|     #define Y_IHOLDDELAY     15 | ||||
|     #define Y_I_SCALE_ANALOG  1 | ||||
|     #define Y_MRES           16 | ||||
|     #define Y_TBL             1 | ||||
|     #define Y_TOFF            8 | ||||
|  | ||||
|     #define Y2_IHOLD         31 | ||||
|     #define Y2_IRUN          31 | ||||
|     #define Y2_IHOLDDELAY    15 | ||||
|     #define Y2_I_SCALE_ANALOG 1 | ||||
|     #define Y2_MRES          16 | ||||
|     #define Y2_TBL            1 | ||||
|     #define Y2_TOFF           8 | ||||
|  | ||||
|     #define Z_IHOLD          31 | ||||
|     #define Z_IRUN           31 | ||||
|     #define Z_IHOLDDELAY     15 | ||||
|     #define Z_I_SCALE_ANALOG  1 | ||||
|     #define Z_MRES           16 | ||||
|     #define Z_TBL             1 | ||||
|     #define Z_TOFF            8 | ||||
|  | ||||
|     #define Z2_IHOLD         31 | ||||
|     #define Z2_IRUN          31 | ||||
|     #define Z2_IHOLDDELAY    15 | ||||
|     #define Z2_I_SCALE_ANALOG 1 | ||||
|     #define Z2_MRES          16 | ||||
|     #define Z2_TBL            1 | ||||
|     #define Z2_TOFF           8 | ||||
|  | ||||
|     #define E0_IHOLD         31 | ||||
|     #define E0_IRUN          31 | ||||
|     #define E0_IHOLDDELAY    15 | ||||
|     #define E0_I_SCALE_ANALOG 1 | ||||
|     #define E0_MRES          16 | ||||
|     #define E0_TBL            1 | ||||
|     #define E0_TOFF           8 | ||||
|  | ||||
|     #define E1_IHOLD         31 | ||||
|     #define E1_IRUN          31 | ||||
|     #define E1_IHOLDDELAY    15 | ||||
|     #define E1_I_SCALE_ANALOG 1 | ||||
|     #define E1_MRES          16 | ||||
|     #define E1_TBL            1 | ||||
|     #define E1_TOFF           8 | ||||
|  | ||||
|     #define E2_IHOLD         31 | ||||
|     #define E2_IRUN          31 | ||||
|     #define E2_IHOLDDELAY    15 | ||||
|     #define E2_I_SCALE_ANALOG 1 | ||||
|     #define E2_MRES          16 | ||||
|     #define E2_TBL            1 | ||||
|     #define E2_TOFF           8 | ||||
|  | ||||
|     #define E3_IHOLD         31 | ||||
|     #define E3_IRUN          31 | ||||
|     #define E3_IHOLDDELAY    15 | ||||
|     #define E3_I_SCALE_ANALOG 1 | ||||
|     #define E3_MRES          16 | ||||
|     #define E3_TBL            1 | ||||
|     #define E3_TOFF           8 | ||||
|  | ||||
|   #endif // TMC2130_ADVANCED_CONFIGURATION | ||||
|  | ||||
| #endif // HAVE_TMC2130DRIVER | ||||
| #endif // ENABLED(HAVE_TMC2130) | ||||
|  | ||||
| // @section L6470 | ||||
|  | ||||
|   | ||||
| @@ -766,14 +766,15 @@ | ||||
|                                                      // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. | ||||
| #endif | ||||
|  | ||||
| /******************************************************************************\ | ||||
|  * enable this section if you have TMC26X motor drivers. | ||||
|  * you need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
|  | ||||
| // @section tmc | ||||
|  | ||||
| /** | ||||
|  * Enable this section if you have TMC26X motor drivers. | ||||
|  * You will need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  * (https://github.com/trinamic/TMC26XStepper.git) | ||||
|  */ | ||||
| //#define HAVE_TMCDRIVER | ||||
|  | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
|  | ||||
|   //#define X_IS_TMC | ||||
| @@ -831,23 +832,31 @@ | ||||
|  | ||||
| // @section TMC2130 | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Enable this for SilentStepStick Trinamic TMC2130 SPI-configurable stepper drivers. | ||||
|  * | ||||
|  * To use TMC2130 drivers in SPI mode, you'll also need the TMC2130 Arduino library | ||||
|  * (https://github.com/makertum/Trinamic_TMC2130). | ||||
|  * You'll also need the TMC2130Stepper Arduino library | ||||
|  * (https://github.com/teemuatlut/TMC2130Stepper). | ||||
|  * | ||||
|  * To use TMC2130 stepper drivers in SPI mode connect your SPI2130 pins to | ||||
|  * the hardware SPI interface on your board and define the required CS pins | ||||
|  * in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.). | ||||
|  */ | ||||
| //#define HAVE_TMC2130 | ||||
|  | ||||
| //#define HAVE_TMC2130DRIVER | ||||
| #if ENABLED(HAVE_TMC2130) | ||||
|   #define STEALTHCHOP | ||||
|  | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
|  | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION | ||||
|   /** | ||||
|    * 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_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX | ||||
|    */  | ||||
|   //#define AUTOMATIC_CURRENT_CONTROL | ||||
|   #define CURRENT_STEP          50  // [mA] | ||||
|   #define AUTO_ADJUST_MAX     1300  // [mA], 1300mA_rms = 1840mA_peak | ||||
|  | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY | ||||
|   //#define X_IS_TMC2130 | ||||
| @@ -861,180 +870,68 @@ | ||||
|   //#define E2_IS_TMC2130 | ||||
|   //#define E3_IS_TMC2130 | ||||
|  | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
|   /** | ||||
|    * Stepper driver settings | ||||
|    */ | ||||
|  | ||||
|     // If you've enabled TMC2130_ADVANCED_CONFIGURATION, define global settings below. | ||||
|     // Enabled settings will be automatically applied to all axes specified above. | ||||
|     // | ||||
|     // Please read the TMC2130 datasheet: | ||||
|     // http://www.trinamic.com/_articles/products/integrated-circuits/tmc2130/_datasheet/TMC2130_datasheet.pdf | ||||
|     // All settings here have the same (sometimes cryptic) names as in the datasheet. | ||||
|     // | ||||
|     // The following, uncommented settings are only suggestion. | ||||
|   #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 | ||||
|  | ||||
|     /* GENERAL CONFIGURATION */ | ||||
|   #define X_MAX_CURRENT     1000  // rms current in mA | ||||
|   #define X_MICROSTEPS        16  // FULLSTEP..256 | ||||
|   #define X_CHIP_SELECT       40  // Pin | ||||
|  | ||||
|     //#define GLOBAL_EN_PWM_MODE        0 | ||||
|     #define GLOBAL_I_SCALE_ANALOG     1 // [0,1] 0: Normal, 1: AIN | ||||
|     //#define GLOBAL_INTERNAL_RSENSE    0 // [0,1] 0: Normal, 1: Internal | ||||
|     #define GLOBAL_EN_PWM_MODE        0 // [0,1] 0: Normal, 1: stealthChop with velocity threshold | ||||
|     //#define GLOBAL_ENC_COMMUTATION    0 // [0,1] | ||||
|     #define GLOBAL_SHAFT              0 // [0,1] 0: normal, 1: invert | ||||
|     //#define GLOBAL_DIAG0_ERROR        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_OTPW         0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INDEX        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_SMALL_HYSTERESIS   0 // [0,1] | ||||
|     //#define GLOBAL_STOP_ENABLE        0 // [0,1] | ||||
|     //#define GLOBAL_DIRECT_MODE        0 // [0,1] | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_MICROSTEPS        16 | ||||
|   #define Y_CHIP_SELECT       42 | ||||
|  | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_MICROSTEPS        16 | ||||
|   #define Z_CHIP_SELECT       65 | ||||
|  | ||||
|     #define GLOBAL_IHOLD             22 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IRUN              31 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IHOLDDELAY        15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     //#define GLOBAL_TPOWERDOWN         0 // [0-255] 0: min, 255: about 4 seconds | ||||
|     //#define GLOBAL_TPWMTHRS           0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     //#define GLOBAL_TCOOLTHRS          0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     #define GLOBAL_THIGH             10 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|   //#define X2_MAX_CURRENT  1000 | ||||
|   //#define X2_MICROSTEPS     16 | ||||
|   //#define X2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
|   //#define Y2_MAX_CURRENT  1000 | ||||
|   //#define Y2_MICROSTEPS     16 | ||||
|   //#define Y2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_XDIRECT            0 | ||||
|   //#define Z2_MAX_CURRENT  1000 | ||||
|   //#define Z2_MICROSTEPS     16 | ||||
|   //#define Z2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
|   //#define E0_MAX_CURRENT  1000 | ||||
|   //#define E0_MICROSTEPS     16 | ||||
|   //#define E0_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_VDCMIN             0 | ||||
|   //#define E1_MAX_CURRENT  1000 | ||||
|   //#define E1_MICROSTEPS     16 | ||||
|   //#define E1_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
|   //#define E2_MAX_CURRENT  1000 | ||||
|   //#define E2_MICROSTEPS     16 | ||||
|   //#define E2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_DEDGE              0 | ||||
|     //#define GLOBAL_DISS2G             0 | ||||
|     #define GLOBAL_INTPOL             1 // 0: off 1: 256 microstep interpolation | ||||
|     #define GLOBAL_MRES              16 // number of microsteps | ||||
|     #define GLOBAL_SYNC               1 // [0-15] | ||||
|     #define GLOBAL_VHIGHCHM           1 // [0,1] 0: normal, 1: high velocity stepper mode | ||||
|     #define GLOBAL_VHIGHFS            0 // [0,1] 0: normal, 1: switch to full steps for high velocities | ||||
|     // #define GLOBAL_VSENSE            0 // [0,1] 0: normal, 1: high sensitivity (not recommended) | ||||
|     #define GLOBAL_TBL                1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define GLOBAL_CHM                0 // [0,1] 0: spreadCycle, 1: Constant off time with fast decay time. | ||||
|     //#define GLOBAL_RNDTF              0 | ||||
|     //#define GLOBAL_DISFDCC            0 | ||||
|     //#define GLOBAL_FD                 0 | ||||
|     //#define GLOBAL_HEND               0 | ||||
|     //#define GLOBAL_HSTRT              0 | ||||
|     #define GLOBAL_TOFF              10 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|   //#define E3_MAX_CURRENT  1000 | ||||
|   //#define E3_MICROSTEPS     16 | ||||
|   //#define E3_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_SFILT              0 | ||||
|     //#define GLOBAL_SGT                0 | ||||
|     //#define GLOBAL_SEIMIN             0 | ||||
|     //#define GLOBAL_SEDN               0 | ||||
|     //#define GLOBAL_SEMAX              0 | ||||
|     //#define GLOBAL_SEUP               0 | ||||
|     //#define GLOBAL_SEMIN              0 | ||||
|   /** | ||||
|    * 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 | ||||
|    * | ||||
|    * Example: | ||||
|    * #define TMC2130_ADV() { \ | ||||
|    *   stepperX.diag0_temp_prewarn(1); \ | ||||
|    *   stepperX.interpolate(0); \ | ||||
|    * } | ||||
|    */ | ||||
|   #define  TMC2130_ADV() {  } | ||||
|  | ||||
|     //#define GLOBAL_DC_TIME            0 | ||||
|     //#define GLOBAL_DC_SG              0 | ||||
|  | ||||
|     //#define GLOBAL_FREEWHEEL          0 | ||||
|     //#define GLOBAL_PWM_SYMMETRIC      0 | ||||
|     //#define GLOBAL_PWM_AUTOSCALE      0 | ||||
|     //#define GLOBAL_PWM_FREQ           0 | ||||
|     //#define GLOBAL_PWM_GRAD           0 | ||||
|     //#define GLOBAL_PWM_AMPL           0 | ||||
|  | ||||
|     //#define GLOBAL_ENCM_CTRL          0 | ||||
|  | ||||
|   #else | ||||
|  | ||||
|     #define X_IHOLD          31 // [0-31] 0: min, 31: max | ||||
|     #define X_IRUN           31 // [0-31] 0: min, 31: max | ||||
|     #define X_IHOLDDELAY     15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     #define X_I_SCALE_ANALOG  1 // 0: Normal, 1: AIN | ||||
|     #define X_MRES           16 // number of microsteps | ||||
|     #define X_TBL             1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define X_TOFF            8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|  | ||||
|     #define X2_IHOLD         31 | ||||
|     #define X2_IRUN          31 | ||||
|     #define X2_IHOLDDELAY    15 | ||||
|     #define X2_I_SCALE_ANALOG 1 | ||||
|     #define X2_MRES          16 | ||||
|     #define X2_TBL            1 | ||||
|     #define X2_TOFF           8 | ||||
|  | ||||
|     #define Y_IHOLD          31 | ||||
|     #define Y_IRUN           31 | ||||
|     #define Y_IHOLDDELAY     15 | ||||
|     #define Y_I_SCALE_ANALOG  1 | ||||
|     #define Y_MRES           16 | ||||
|     #define Y_TBL             1 | ||||
|     #define Y_TOFF            8 | ||||
|  | ||||
|     #define Y2_IHOLD         31 | ||||
|     #define Y2_IRUN          31 | ||||
|     #define Y2_IHOLDDELAY    15 | ||||
|     #define Y2_I_SCALE_ANALOG 1 | ||||
|     #define Y2_MRES          16 | ||||
|     #define Y2_TBL            1 | ||||
|     #define Y2_TOFF           8 | ||||
|  | ||||
|     #define Z_IHOLD          31 | ||||
|     #define Z_IRUN           31 | ||||
|     #define Z_IHOLDDELAY     15 | ||||
|     #define Z_I_SCALE_ANALOG  1 | ||||
|     #define Z_MRES           16 | ||||
|     #define Z_TBL             1 | ||||
|     #define Z_TOFF            8 | ||||
|  | ||||
|     #define Z2_IHOLD         31 | ||||
|     #define Z2_IRUN          31 | ||||
|     #define Z2_IHOLDDELAY    15 | ||||
|     #define Z2_I_SCALE_ANALOG 1 | ||||
|     #define Z2_MRES          16 | ||||
|     #define Z2_TBL            1 | ||||
|     #define Z2_TOFF           8 | ||||
|  | ||||
|     #define E0_IHOLD         31 | ||||
|     #define E0_IRUN          31 | ||||
|     #define E0_IHOLDDELAY    15 | ||||
|     #define E0_I_SCALE_ANALOG 1 | ||||
|     #define E0_MRES          16 | ||||
|     #define E0_TBL            1 | ||||
|     #define E0_TOFF           8 | ||||
|  | ||||
|     #define E1_IHOLD         31 | ||||
|     #define E1_IRUN          31 | ||||
|     #define E1_IHOLDDELAY    15 | ||||
|     #define E1_I_SCALE_ANALOG 1 | ||||
|     #define E1_MRES          16 | ||||
|     #define E1_TBL            1 | ||||
|     #define E1_TOFF           8 | ||||
|  | ||||
|     #define E2_IHOLD         31 | ||||
|     #define E2_IRUN          31 | ||||
|     #define E2_IHOLDDELAY    15 | ||||
|     #define E2_I_SCALE_ANALOG 1 | ||||
|     #define E2_MRES          16 | ||||
|     #define E2_TBL            1 | ||||
|     #define E2_TOFF           8 | ||||
|  | ||||
|     #define E3_IHOLD         31 | ||||
|     #define E3_IRUN          31 | ||||
|     #define E3_IHOLDDELAY    15 | ||||
|     #define E3_I_SCALE_ANALOG 1 | ||||
|     #define E3_MRES          16 | ||||
|     #define E3_TBL            1 | ||||
|     #define E3_TOFF           8 | ||||
|  | ||||
|   #endif // TMC2130_ADVANCED_CONFIGURATION | ||||
|  | ||||
| #endif // HAVE_TMC2130DRIVER | ||||
| #endif // ENABLED(HAVE_TMC2130) | ||||
|  | ||||
| // @section L6470 | ||||
|  | ||||
|   | ||||
| @@ -758,14 +758,15 @@ | ||||
|                                                      // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. | ||||
| #endif | ||||
|  | ||||
| /******************************************************************************\ | ||||
|  * enable this section if you have TMC26X motor drivers. | ||||
|  * you need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
|  | ||||
| // @section tmc | ||||
|  | ||||
| /** | ||||
|  * Enable this section if you have TMC26X motor drivers. | ||||
|  * You will need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  * (https://github.com/trinamic/TMC26XStepper.git) | ||||
|  */ | ||||
| //#define HAVE_TMCDRIVER | ||||
|  | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
|  | ||||
|   //#define X_IS_TMC | ||||
| @@ -823,23 +824,31 @@ | ||||
|  | ||||
| // @section TMC2130 | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Enable this for SilentStepStick Trinamic TMC2130 SPI-configurable stepper drivers. | ||||
|  * | ||||
|  * To use TMC2130 drivers in SPI mode, you'll also need the TMC2130 Arduino library | ||||
|  * (https://github.com/makertum/Trinamic_TMC2130). | ||||
|  * You'll also need the TMC2130Stepper Arduino library | ||||
|  * (https://github.com/teemuatlut/TMC2130Stepper). | ||||
|  * | ||||
|  * To use TMC2130 stepper drivers in SPI mode connect your SPI2130 pins to | ||||
|  * the hardware SPI interface on your board and define the required CS pins | ||||
|  * in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.). | ||||
|  */ | ||||
| //#define HAVE_TMC2130 | ||||
|  | ||||
| //#define HAVE_TMC2130DRIVER | ||||
| #if ENABLED(HAVE_TMC2130) | ||||
|   #define STEALTHCHOP | ||||
|  | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
|  | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION | ||||
|   /** | ||||
|    * 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_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX | ||||
|    */  | ||||
|   //#define AUTOMATIC_CURRENT_CONTROL | ||||
|   #define CURRENT_STEP          50  // [mA] | ||||
|   #define AUTO_ADJUST_MAX     1300  // [mA], 1300mA_rms = 1840mA_peak | ||||
|  | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY | ||||
|   //#define X_IS_TMC2130 | ||||
| @@ -853,180 +862,68 @@ | ||||
|   //#define E2_IS_TMC2130 | ||||
|   //#define E3_IS_TMC2130 | ||||
|  | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
|   /** | ||||
|    * Stepper driver settings | ||||
|    */ | ||||
|  | ||||
|     // If you've enabled TMC2130_ADVANCED_CONFIGURATION, define global settings below. | ||||
|     // Enabled settings will be automatically applied to all axes specified above. | ||||
|     // | ||||
|     // Please read the TMC2130 datasheet: | ||||
|     // http://www.trinamic.com/_articles/products/integrated-circuits/tmc2130/_datasheet/TMC2130_datasheet.pdf | ||||
|     // All settings here have the same (sometimes cryptic) names as in the datasheet. | ||||
|     // | ||||
|     // The following, uncommented settings are only suggestion. | ||||
|   #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 | ||||
|  | ||||
|     /* GENERAL CONFIGURATION */ | ||||
|   #define X_MAX_CURRENT     1000  // rms current in mA | ||||
|   #define X_MICROSTEPS        16  // FULLSTEP..256 | ||||
|   #define X_CHIP_SELECT       40  // Pin | ||||
|  | ||||
|     //#define GLOBAL_EN_PWM_MODE        0 | ||||
|     #define GLOBAL_I_SCALE_ANALOG     1 // [0,1] 0: Normal, 1: AIN | ||||
|     //#define GLOBAL_INTERNAL_RSENSE    0 // [0,1] 0: Normal, 1: Internal | ||||
|     #define GLOBAL_EN_PWM_MODE        0 // [0,1] 0: Normal, 1: stealthChop with velocity threshold | ||||
|     //#define GLOBAL_ENC_COMMUTATION    0 // [0,1] | ||||
|     #define GLOBAL_SHAFT              0 // [0,1] 0: normal, 1: invert | ||||
|     //#define GLOBAL_DIAG0_ERROR        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_OTPW         0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INDEX        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_SMALL_HYSTERESIS   0 // [0,1] | ||||
|     //#define GLOBAL_STOP_ENABLE        0 // [0,1] | ||||
|     //#define GLOBAL_DIRECT_MODE        0 // [0,1] | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_MICROSTEPS        16 | ||||
|   #define Y_CHIP_SELECT       42 | ||||
|  | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_MICROSTEPS        16 | ||||
|   #define Z_CHIP_SELECT       65 | ||||
|  | ||||
|     #define GLOBAL_IHOLD             22 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IRUN              31 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IHOLDDELAY        15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     //#define GLOBAL_TPOWERDOWN         0 // [0-255] 0: min, 255: about 4 seconds | ||||
|     //#define GLOBAL_TPWMTHRS           0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     //#define GLOBAL_TCOOLTHRS          0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     #define GLOBAL_THIGH             10 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|   //#define X2_MAX_CURRENT  1000 | ||||
|   //#define X2_MICROSTEPS     16 | ||||
|   //#define X2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
|   //#define Y2_MAX_CURRENT  1000 | ||||
|   //#define Y2_MICROSTEPS     16 | ||||
|   //#define Y2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_XDIRECT            0 | ||||
|   //#define Z2_MAX_CURRENT  1000 | ||||
|   //#define Z2_MICROSTEPS     16 | ||||
|   //#define Z2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
|   //#define E0_MAX_CURRENT  1000 | ||||
|   //#define E0_MICROSTEPS     16 | ||||
|   //#define E0_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_VDCMIN             0 | ||||
|   //#define E1_MAX_CURRENT  1000 | ||||
|   //#define E1_MICROSTEPS     16 | ||||
|   //#define E1_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
|   //#define E2_MAX_CURRENT  1000 | ||||
|   //#define E2_MICROSTEPS     16 | ||||
|   //#define E2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_DEDGE              0 | ||||
|     //#define GLOBAL_DISS2G             0 | ||||
|     #define GLOBAL_INTPOL             1 // 0: off 1: 256 microstep interpolation | ||||
|     #define GLOBAL_MRES              16 // number of microsteps | ||||
|     #define GLOBAL_SYNC               1 // [0-15] | ||||
|     #define GLOBAL_VHIGHCHM           1 // [0,1] 0: normal, 1: high velocity stepper mode | ||||
|     #define GLOBAL_VHIGHFS            0 // [0,1] 0: normal, 1: switch to full steps for high velocities | ||||
|     // #define GLOBAL_VSENSE            0 // [0,1] 0: normal, 1: high sensitivity (not recommended) | ||||
|     #define GLOBAL_TBL                1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define GLOBAL_CHM                0 // [0,1] 0: spreadCycle, 1: Constant off time with fast decay time. | ||||
|     //#define GLOBAL_RNDTF              0 | ||||
|     //#define GLOBAL_DISFDCC            0 | ||||
|     //#define GLOBAL_FD                 0 | ||||
|     //#define GLOBAL_HEND               0 | ||||
|     //#define GLOBAL_HSTRT              0 | ||||
|     #define GLOBAL_TOFF              10 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|   //#define E3_MAX_CURRENT  1000 | ||||
|   //#define E3_MICROSTEPS     16 | ||||
|   //#define E3_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_SFILT              0 | ||||
|     //#define GLOBAL_SGT                0 | ||||
|     //#define GLOBAL_SEIMIN             0 | ||||
|     //#define GLOBAL_SEDN               0 | ||||
|     //#define GLOBAL_SEMAX              0 | ||||
|     //#define GLOBAL_SEUP               0 | ||||
|     //#define GLOBAL_SEMIN              0 | ||||
|   /** | ||||
|    * 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 | ||||
|    * | ||||
|    * Example: | ||||
|    * #define TMC2130_ADV() { \ | ||||
|    *   stepperX.diag0_temp_prewarn(1); \ | ||||
|    *   stepperX.interpolate(0); \ | ||||
|    * } | ||||
|    */ | ||||
|   #define  TMC2130_ADV() {  } | ||||
|  | ||||
|     //#define GLOBAL_DC_TIME            0 | ||||
|     //#define GLOBAL_DC_SG              0 | ||||
|  | ||||
|     //#define GLOBAL_FREEWHEEL          0 | ||||
|     //#define GLOBAL_PWM_SYMMETRIC      0 | ||||
|     //#define GLOBAL_PWM_AUTOSCALE      0 | ||||
|     //#define GLOBAL_PWM_FREQ           0 | ||||
|     //#define GLOBAL_PWM_GRAD           0 | ||||
|     //#define GLOBAL_PWM_AMPL           0 | ||||
|  | ||||
|     //#define GLOBAL_ENCM_CTRL          0 | ||||
|  | ||||
|   #else | ||||
|  | ||||
|     #define X_IHOLD          31 // [0-31] 0: min, 31: max | ||||
|     #define X_IRUN           31 // [0-31] 0: min, 31: max | ||||
|     #define X_IHOLDDELAY     15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     #define X_I_SCALE_ANALOG  1 // 0: Normal, 1: AIN | ||||
|     #define X_MRES           16 // number of microsteps | ||||
|     #define X_TBL             1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define X_TOFF            8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|  | ||||
|     #define X2_IHOLD         31 | ||||
|     #define X2_IRUN          31 | ||||
|     #define X2_IHOLDDELAY    15 | ||||
|     #define X2_I_SCALE_ANALOG 1 | ||||
|     #define X2_MRES          16 | ||||
|     #define X2_TBL            1 | ||||
|     #define X2_TOFF           8 | ||||
|  | ||||
|     #define Y_IHOLD          31 | ||||
|     #define Y_IRUN           31 | ||||
|     #define Y_IHOLDDELAY     15 | ||||
|     #define Y_I_SCALE_ANALOG  1 | ||||
|     #define Y_MRES           16 | ||||
|     #define Y_TBL             1 | ||||
|     #define Y_TOFF            8 | ||||
|  | ||||
|     #define Y2_IHOLD         31 | ||||
|     #define Y2_IRUN          31 | ||||
|     #define Y2_IHOLDDELAY    15 | ||||
|     #define Y2_I_SCALE_ANALOG 1 | ||||
|     #define Y2_MRES          16 | ||||
|     #define Y2_TBL            1 | ||||
|     #define Y2_TOFF           8 | ||||
|  | ||||
|     #define Z_IHOLD          31 | ||||
|     #define Z_IRUN           31 | ||||
|     #define Z_IHOLDDELAY     15 | ||||
|     #define Z_I_SCALE_ANALOG  1 | ||||
|     #define Z_MRES           16 | ||||
|     #define Z_TBL             1 | ||||
|     #define Z_TOFF            8 | ||||
|  | ||||
|     #define Z2_IHOLD         31 | ||||
|     #define Z2_IRUN          31 | ||||
|     #define Z2_IHOLDDELAY    15 | ||||
|     #define Z2_I_SCALE_ANALOG 1 | ||||
|     #define Z2_MRES          16 | ||||
|     #define Z2_TBL            1 | ||||
|     #define Z2_TOFF           8 | ||||
|  | ||||
|     #define E0_IHOLD         31 | ||||
|     #define E0_IRUN          31 | ||||
|     #define E0_IHOLDDELAY    15 | ||||
|     #define E0_I_SCALE_ANALOG 1 | ||||
|     #define E0_MRES          16 | ||||
|     #define E0_TBL            1 | ||||
|     #define E0_TOFF           8 | ||||
|  | ||||
|     #define E1_IHOLD         31 | ||||
|     #define E1_IRUN          31 | ||||
|     #define E1_IHOLDDELAY    15 | ||||
|     #define E1_I_SCALE_ANALOG 1 | ||||
|     #define E1_MRES          16 | ||||
|     #define E1_TBL            1 | ||||
|     #define E1_TOFF           8 | ||||
|  | ||||
|     #define E2_IHOLD         31 | ||||
|     #define E2_IRUN          31 | ||||
|     #define E2_IHOLDDELAY    15 | ||||
|     #define E2_I_SCALE_ANALOG 1 | ||||
|     #define E2_MRES          16 | ||||
|     #define E2_TBL            1 | ||||
|     #define E2_TOFF           8 | ||||
|  | ||||
|     #define E3_IHOLD         31 | ||||
|     #define E3_IRUN          31 | ||||
|     #define E3_IHOLDDELAY    15 | ||||
|     #define E3_I_SCALE_ANALOG 1 | ||||
|     #define E3_MRES          16 | ||||
|     #define E3_TBL            1 | ||||
|     #define E3_TOFF           8 | ||||
|  | ||||
|   #endif // TMC2130_ADVANCED_CONFIGURATION | ||||
|  | ||||
| #endif // HAVE_TMC2130DRIVER | ||||
| #endif // ENABLED(HAVE_TMC2130) | ||||
|  | ||||
| // @section L6470 | ||||
|  | ||||
|   | ||||
| @@ -763,14 +763,15 @@ | ||||
|                                                      // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. | ||||
| #endif | ||||
|  | ||||
| /******************************************************************************\ | ||||
|  * enable this section if you have TMC26X motor drivers. | ||||
|  * you need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
|  | ||||
| // @section tmc | ||||
|  | ||||
| /** | ||||
|  * Enable this section if you have TMC26X motor drivers. | ||||
|  * You will need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  * (https://github.com/trinamic/TMC26XStepper.git) | ||||
|  */ | ||||
| //#define HAVE_TMCDRIVER | ||||
|  | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
|  | ||||
|   //#define X_IS_TMC | ||||
| @@ -828,23 +829,31 @@ | ||||
|  | ||||
| // @section TMC2130 | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Enable this for SilentStepStick Trinamic TMC2130 SPI-configurable stepper drivers. | ||||
|  * | ||||
|  * To use TMC2130 drivers in SPI mode, you'll also need the TMC2130 Arduino library | ||||
|  * (https://github.com/makertum/Trinamic_TMC2130). | ||||
|  * You'll also need the TMC2130Stepper Arduino library | ||||
|  * (https://github.com/teemuatlut/TMC2130Stepper). | ||||
|  * | ||||
|  * To use TMC2130 stepper drivers in SPI mode connect your SPI2130 pins to | ||||
|  * the hardware SPI interface on your board and define the required CS pins | ||||
|  * in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.). | ||||
|  */ | ||||
| //#define HAVE_TMC2130 | ||||
|  | ||||
| //#define HAVE_TMC2130DRIVER | ||||
| #if ENABLED(HAVE_TMC2130) | ||||
|   #define STEALTHCHOP | ||||
|  | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
|  | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION | ||||
|   /** | ||||
|    * 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_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX | ||||
|    */  | ||||
|   //#define AUTOMATIC_CURRENT_CONTROL | ||||
|   #define CURRENT_STEP          50  // [mA] | ||||
|   #define AUTO_ADJUST_MAX     1300  // [mA], 1300mA_rms = 1840mA_peak | ||||
|  | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY | ||||
|   //#define X_IS_TMC2130 | ||||
| @@ -858,180 +867,68 @@ | ||||
|   //#define E2_IS_TMC2130 | ||||
|   //#define E3_IS_TMC2130 | ||||
|  | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
|   /** | ||||
|    * Stepper driver settings | ||||
|    */ | ||||
|  | ||||
|     // If you've enabled TMC2130_ADVANCED_CONFIGURATION, define global settings below. | ||||
|     // Enabled settings will be automatically applied to all axes specified above. | ||||
|     // | ||||
|     // Please read the TMC2130 datasheet: | ||||
|     // http://www.trinamic.com/_articles/products/integrated-circuits/tmc2130/_datasheet/TMC2130_datasheet.pdf | ||||
|     // All settings here have the same (sometimes cryptic) names as in the datasheet. | ||||
|     // | ||||
|     // The following, uncommented settings are only suggestion. | ||||
|   #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 | ||||
|  | ||||
|     /* GENERAL CONFIGURATION */ | ||||
|   #define X_MAX_CURRENT     1000  // rms current in mA | ||||
|   #define X_MICROSTEPS        16  // FULLSTEP..256 | ||||
|   #define X_CHIP_SELECT       40  // Pin | ||||
|  | ||||
|     //#define GLOBAL_EN_PWM_MODE        0 | ||||
|     #define GLOBAL_I_SCALE_ANALOG     1 // [0,1] 0: Normal, 1: AIN | ||||
|     //#define GLOBAL_INTERNAL_RSENSE    0 // [0,1] 0: Normal, 1: Internal | ||||
|     #define GLOBAL_EN_PWM_MODE        0 // [0,1] 0: Normal, 1: stealthChop with velocity threshold | ||||
|     //#define GLOBAL_ENC_COMMUTATION    0 // [0,1] | ||||
|     #define GLOBAL_SHAFT              0 // [0,1] 0: normal, 1: invert | ||||
|     //#define GLOBAL_DIAG0_ERROR        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_OTPW         0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INDEX        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_SMALL_HYSTERESIS   0 // [0,1] | ||||
|     //#define GLOBAL_STOP_ENABLE        0 // [0,1] | ||||
|     //#define GLOBAL_DIRECT_MODE        0 // [0,1] | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_MICROSTEPS        16 | ||||
|   #define Y_CHIP_SELECT       42 | ||||
|  | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_MICROSTEPS        16 | ||||
|   #define Z_CHIP_SELECT       65 | ||||
|  | ||||
|     #define GLOBAL_IHOLD             22 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IRUN              31 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IHOLDDELAY        15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     //#define GLOBAL_TPOWERDOWN         0 // [0-255] 0: min, 255: about 4 seconds | ||||
|     //#define GLOBAL_TPWMTHRS           0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     //#define GLOBAL_TCOOLTHRS          0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     #define GLOBAL_THIGH             10 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|   //#define X2_MAX_CURRENT  1000 | ||||
|   //#define X2_MICROSTEPS     16 | ||||
|   //#define X2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
|   //#define Y2_MAX_CURRENT  1000 | ||||
|   //#define Y2_MICROSTEPS     16 | ||||
|   //#define Y2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_XDIRECT            0 | ||||
|   //#define Z2_MAX_CURRENT  1000 | ||||
|   //#define Z2_MICROSTEPS     16 | ||||
|   //#define Z2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
|   //#define E0_MAX_CURRENT  1000 | ||||
|   //#define E0_MICROSTEPS     16 | ||||
|   //#define E0_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_VDCMIN             0 | ||||
|   //#define E1_MAX_CURRENT  1000 | ||||
|   //#define E1_MICROSTEPS     16 | ||||
|   //#define E1_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
|   //#define E2_MAX_CURRENT  1000 | ||||
|   //#define E2_MICROSTEPS     16 | ||||
|   //#define E2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_DEDGE              0 | ||||
|     //#define GLOBAL_DISS2G             0 | ||||
|     #define GLOBAL_INTPOL             1 // 0: off 1: 256 microstep interpolation | ||||
|     #define GLOBAL_MRES              16 // number of microsteps | ||||
|     #define GLOBAL_SYNC               1 // [0-15] | ||||
|     #define GLOBAL_VHIGHCHM           1 // [0,1] 0: normal, 1: high velocity stepper mode | ||||
|     #define GLOBAL_VHIGHFS            0 // [0,1] 0: normal, 1: switch to full steps for high velocities | ||||
|     // #define GLOBAL_VSENSE            0 // [0,1] 0: normal, 1: high sensitivity (not recommended) | ||||
|     #define GLOBAL_TBL                1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define GLOBAL_CHM                0 // [0,1] 0: spreadCycle, 1: Constant off time with fast decay time. | ||||
|     //#define GLOBAL_RNDTF              0 | ||||
|     //#define GLOBAL_DISFDCC            0 | ||||
|     //#define GLOBAL_FD                 0 | ||||
|     //#define GLOBAL_HEND               0 | ||||
|     //#define GLOBAL_HSTRT              0 | ||||
|     #define GLOBAL_TOFF              10 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|   //#define E3_MAX_CURRENT  1000 | ||||
|   //#define E3_MICROSTEPS     16 | ||||
|   //#define E3_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_SFILT              0 | ||||
|     //#define GLOBAL_SGT                0 | ||||
|     //#define GLOBAL_SEIMIN             0 | ||||
|     //#define GLOBAL_SEDN               0 | ||||
|     //#define GLOBAL_SEMAX              0 | ||||
|     //#define GLOBAL_SEUP               0 | ||||
|     //#define GLOBAL_SEMIN              0 | ||||
|   /** | ||||
|    * 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 | ||||
|    * | ||||
|    * Example: | ||||
|    * #define TMC2130_ADV() { \ | ||||
|    *   stepperX.diag0_temp_prewarn(1); \ | ||||
|    *   stepperX.interpolate(0); \ | ||||
|    * } | ||||
|    */ | ||||
|   #define  TMC2130_ADV() {  } | ||||
|  | ||||
|     //#define GLOBAL_DC_TIME            0 | ||||
|     //#define GLOBAL_DC_SG              0 | ||||
|  | ||||
|     //#define GLOBAL_FREEWHEEL          0 | ||||
|     //#define GLOBAL_PWM_SYMMETRIC      0 | ||||
|     //#define GLOBAL_PWM_AUTOSCALE      0 | ||||
|     //#define GLOBAL_PWM_FREQ           0 | ||||
|     //#define GLOBAL_PWM_GRAD           0 | ||||
|     //#define GLOBAL_PWM_AMPL           0 | ||||
|  | ||||
|     //#define GLOBAL_ENCM_CTRL          0 | ||||
|  | ||||
|   #else | ||||
|  | ||||
|     #define X_IHOLD          31 // [0-31] 0: min, 31: max | ||||
|     #define X_IRUN           31 // [0-31] 0: min, 31: max | ||||
|     #define X_IHOLDDELAY     15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     #define X_I_SCALE_ANALOG  1 // 0: Normal, 1: AIN | ||||
|     #define X_MRES           16 // number of microsteps | ||||
|     #define X_TBL             1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define X_TOFF            8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|  | ||||
|     #define X2_IHOLD         31 | ||||
|     #define X2_IRUN          31 | ||||
|     #define X2_IHOLDDELAY    15 | ||||
|     #define X2_I_SCALE_ANALOG 1 | ||||
|     #define X2_MRES          16 | ||||
|     #define X2_TBL            1 | ||||
|     #define X2_TOFF           8 | ||||
|  | ||||
|     #define Y_IHOLD          31 | ||||
|     #define Y_IRUN           31 | ||||
|     #define Y_IHOLDDELAY     15 | ||||
|     #define Y_I_SCALE_ANALOG  1 | ||||
|     #define Y_MRES           16 | ||||
|     #define Y_TBL             1 | ||||
|     #define Y_TOFF            8 | ||||
|  | ||||
|     #define Y2_IHOLD         31 | ||||
|     #define Y2_IRUN          31 | ||||
|     #define Y2_IHOLDDELAY    15 | ||||
|     #define Y2_I_SCALE_ANALOG 1 | ||||
|     #define Y2_MRES          16 | ||||
|     #define Y2_TBL            1 | ||||
|     #define Y2_TOFF           8 | ||||
|  | ||||
|     #define Z_IHOLD          31 | ||||
|     #define Z_IRUN           31 | ||||
|     #define Z_IHOLDDELAY     15 | ||||
|     #define Z_I_SCALE_ANALOG  1 | ||||
|     #define Z_MRES           16 | ||||
|     #define Z_TBL             1 | ||||
|     #define Z_TOFF            8 | ||||
|  | ||||
|     #define Z2_IHOLD         31 | ||||
|     #define Z2_IRUN          31 | ||||
|     #define Z2_IHOLDDELAY    15 | ||||
|     #define Z2_I_SCALE_ANALOG 1 | ||||
|     #define Z2_MRES          16 | ||||
|     #define Z2_TBL            1 | ||||
|     #define Z2_TOFF           8 | ||||
|  | ||||
|     #define E0_IHOLD         31 | ||||
|     #define E0_IRUN          31 | ||||
|     #define E0_IHOLDDELAY    15 | ||||
|     #define E0_I_SCALE_ANALOG 1 | ||||
|     #define E0_MRES          16 | ||||
|     #define E0_TBL            1 | ||||
|     #define E0_TOFF           8 | ||||
|  | ||||
|     #define E1_IHOLD         31 | ||||
|     #define E1_IRUN          31 | ||||
|     #define E1_IHOLDDELAY    15 | ||||
|     #define E1_I_SCALE_ANALOG 1 | ||||
|     #define E1_MRES          16 | ||||
|     #define E1_TBL            1 | ||||
|     #define E1_TOFF           8 | ||||
|  | ||||
|     #define E2_IHOLD         31 | ||||
|     #define E2_IRUN          31 | ||||
|     #define E2_IHOLDDELAY    15 | ||||
|     #define E2_I_SCALE_ANALOG 1 | ||||
|     #define E2_MRES          16 | ||||
|     #define E2_TBL            1 | ||||
|     #define E2_TOFF           8 | ||||
|  | ||||
|     #define E3_IHOLD         31 | ||||
|     #define E3_IRUN          31 | ||||
|     #define E3_IHOLDDELAY    15 | ||||
|     #define E3_I_SCALE_ANALOG 1 | ||||
|     #define E3_MRES          16 | ||||
|     #define E3_TBL            1 | ||||
|     #define E3_TOFF           8 | ||||
|  | ||||
|   #endif // TMC2130_ADVANCED_CONFIGURATION | ||||
|  | ||||
| #endif // HAVE_TMC2130DRIVER | ||||
| #endif // ENABLED(HAVE_TMC2130) | ||||
|  | ||||
| // @section L6470 | ||||
|  | ||||
|   | ||||
| @@ -760,14 +760,15 @@ | ||||
|                                                      // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. | ||||
| #endif | ||||
|  | ||||
| /******************************************************************************\ | ||||
|  * enable this section if you have TMC26X motor drivers. | ||||
|  * you need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
|  | ||||
| // @section tmc | ||||
|  | ||||
| /** | ||||
|  * Enable this section if you have TMC26X motor drivers. | ||||
|  * You will need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  * (https://github.com/trinamic/TMC26XStepper.git) | ||||
|  */ | ||||
| //#define HAVE_TMCDRIVER | ||||
|  | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
|  | ||||
|   //#define X_IS_TMC | ||||
| @@ -825,23 +826,31 @@ | ||||
|  | ||||
| // @section TMC2130 | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Enable this for SilentStepStick Trinamic TMC2130 SPI-configurable stepper drivers. | ||||
|  * | ||||
|  * To use TMC2130 drivers in SPI mode, you'll also need the TMC2130 Arduino library | ||||
|  * (https://github.com/makertum/Trinamic_TMC2130). | ||||
|  * You'll also need the TMC2130Stepper Arduino library | ||||
|  * (https://github.com/teemuatlut/TMC2130Stepper). | ||||
|  * | ||||
|  * To use TMC2130 stepper drivers in SPI mode connect your SPI2130 pins to | ||||
|  * the hardware SPI interface on your board and define the required CS pins | ||||
|  * in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.). | ||||
|  */ | ||||
| //#define HAVE_TMC2130 | ||||
|  | ||||
| //#define HAVE_TMC2130DRIVER | ||||
| #if ENABLED(HAVE_TMC2130) | ||||
|   #define STEALTHCHOP | ||||
|  | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
|  | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION | ||||
|   /** | ||||
|    * 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_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX | ||||
|    */  | ||||
|   //#define AUTOMATIC_CURRENT_CONTROL | ||||
|   #define CURRENT_STEP          50  // [mA] | ||||
|   #define AUTO_ADJUST_MAX     1300  // [mA], 1300mA_rms = 1840mA_peak | ||||
|  | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY | ||||
|   //#define X_IS_TMC2130 | ||||
| @@ -855,180 +864,68 @@ | ||||
|   //#define E2_IS_TMC2130 | ||||
|   //#define E3_IS_TMC2130 | ||||
|  | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
|   /** | ||||
|    * Stepper driver settings | ||||
|    */ | ||||
|  | ||||
|     // If you've enabled TMC2130_ADVANCED_CONFIGURATION, define global settings below. | ||||
|     // Enabled settings will be automatically applied to all axes specified above. | ||||
|     // | ||||
|     // Please read the TMC2130 datasheet: | ||||
|     // http://www.trinamic.com/_articles/products/integrated-circuits/tmc2130/_datasheet/TMC2130_datasheet.pdf | ||||
|     // All settings here have the same (sometimes cryptic) names as in the datasheet. | ||||
|     // | ||||
|     // The following, uncommented settings are only suggestion. | ||||
|   #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 | ||||
|  | ||||
|     /* GENERAL CONFIGURATION */ | ||||
|   #define X_MAX_CURRENT     1000  // rms current in mA | ||||
|   #define X_MICROSTEPS        16  // FULLSTEP..256 | ||||
|   #define X_CHIP_SELECT       40  // Pin | ||||
|  | ||||
|     //#define GLOBAL_EN_PWM_MODE        0 | ||||
|     #define GLOBAL_I_SCALE_ANALOG     1 // [0,1] 0: Normal, 1: AIN | ||||
|     //#define GLOBAL_INTERNAL_RSENSE    0 // [0,1] 0: Normal, 1: Internal | ||||
|     #define GLOBAL_EN_PWM_MODE        0 // [0,1] 0: Normal, 1: stealthChop with velocity threshold | ||||
|     //#define GLOBAL_ENC_COMMUTATION    0 // [0,1] | ||||
|     #define GLOBAL_SHAFT              0 // [0,1] 0: normal, 1: invert | ||||
|     //#define GLOBAL_DIAG0_ERROR        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_OTPW         0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INDEX        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_SMALL_HYSTERESIS   0 // [0,1] | ||||
|     //#define GLOBAL_STOP_ENABLE        0 // [0,1] | ||||
|     //#define GLOBAL_DIRECT_MODE        0 // [0,1] | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_MICROSTEPS        16 | ||||
|   #define Y_CHIP_SELECT       42 | ||||
|  | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_MICROSTEPS        16 | ||||
|   #define Z_CHIP_SELECT       65 | ||||
|  | ||||
|     #define GLOBAL_IHOLD             22 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IRUN              31 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IHOLDDELAY        15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     //#define GLOBAL_TPOWERDOWN         0 // [0-255] 0: min, 255: about 4 seconds | ||||
|     //#define GLOBAL_TPWMTHRS           0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     //#define GLOBAL_TCOOLTHRS          0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     #define GLOBAL_THIGH             10 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|   //#define X2_MAX_CURRENT  1000 | ||||
|   //#define X2_MICROSTEPS     16 | ||||
|   //#define X2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
|   //#define Y2_MAX_CURRENT  1000 | ||||
|   //#define Y2_MICROSTEPS     16 | ||||
|   //#define Y2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_XDIRECT            0 | ||||
|   //#define Z2_MAX_CURRENT  1000 | ||||
|   //#define Z2_MICROSTEPS     16 | ||||
|   //#define Z2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
|   //#define E0_MAX_CURRENT  1000 | ||||
|   //#define E0_MICROSTEPS     16 | ||||
|   //#define E0_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_VDCMIN             0 | ||||
|   //#define E1_MAX_CURRENT  1000 | ||||
|   //#define E1_MICROSTEPS     16 | ||||
|   //#define E1_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
|   //#define E2_MAX_CURRENT  1000 | ||||
|   //#define E2_MICROSTEPS     16 | ||||
|   //#define E2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_DEDGE              0 | ||||
|     //#define GLOBAL_DISS2G             0 | ||||
|     #define GLOBAL_INTPOL             1 // 0: off 1: 256 microstep interpolation | ||||
|     #define GLOBAL_MRES              16 // number of microsteps | ||||
|     #define GLOBAL_SYNC               1 // [0-15] | ||||
|     #define GLOBAL_VHIGHCHM           1 // [0,1] 0: normal, 1: high velocity stepper mode | ||||
|     #define GLOBAL_VHIGHFS            0 // [0,1] 0: normal, 1: switch to full steps for high velocities | ||||
|     // #define GLOBAL_VSENSE            0 // [0,1] 0: normal, 1: high sensitivity (not recommended) | ||||
|     #define GLOBAL_TBL                1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define GLOBAL_CHM                0 // [0,1] 0: spreadCycle, 1: Constant off time with fast decay time. | ||||
|     //#define GLOBAL_RNDTF              0 | ||||
|     //#define GLOBAL_DISFDCC            0 | ||||
|     //#define GLOBAL_FD                 0 | ||||
|     //#define GLOBAL_HEND               0 | ||||
|     //#define GLOBAL_HSTRT              0 | ||||
|     #define GLOBAL_TOFF              10 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|   //#define E3_MAX_CURRENT  1000 | ||||
|   //#define E3_MICROSTEPS     16 | ||||
|   //#define E3_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_SFILT              0 | ||||
|     //#define GLOBAL_SGT                0 | ||||
|     //#define GLOBAL_SEIMIN             0 | ||||
|     //#define GLOBAL_SEDN               0 | ||||
|     //#define GLOBAL_SEMAX              0 | ||||
|     //#define GLOBAL_SEUP               0 | ||||
|     //#define GLOBAL_SEMIN              0 | ||||
|   /** | ||||
|    * 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 | ||||
|    * | ||||
|    * Example: | ||||
|    * #define TMC2130_ADV() { \ | ||||
|    *   stepperX.diag0_temp_prewarn(1); \ | ||||
|    *   stepperX.interpolate(0); \ | ||||
|    * } | ||||
|    */ | ||||
|   #define  TMC2130_ADV() {  } | ||||
|  | ||||
|     //#define GLOBAL_DC_TIME            0 | ||||
|     //#define GLOBAL_DC_SG              0 | ||||
|  | ||||
|     //#define GLOBAL_FREEWHEEL          0 | ||||
|     //#define GLOBAL_PWM_SYMMETRIC      0 | ||||
|     //#define GLOBAL_PWM_AUTOSCALE      0 | ||||
|     //#define GLOBAL_PWM_FREQ           0 | ||||
|     //#define GLOBAL_PWM_GRAD           0 | ||||
|     //#define GLOBAL_PWM_AMPL           0 | ||||
|  | ||||
|     //#define GLOBAL_ENCM_CTRL          0 | ||||
|  | ||||
|   #else | ||||
|  | ||||
|     #define X_IHOLD          31 // [0-31] 0: min, 31: max | ||||
|     #define X_IRUN           31 // [0-31] 0: min, 31: max | ||||
|     #define X_IHOLDDELAY     15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     #define X_I_SCALE_ANALOG  1 // 0: Normal, 1: AIN | ||||
|     #define X_MRES           16 // number of microsteps | ||||
|     #define X_TBL             1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define X_TOFF            8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|  | ||||
|     #define X2_IHOLD         31 | ||||
|     #define X2_IRUN          31 | ||||
|     #define X2_IHOLDDELAY    15 | ||||
|     #define X2_I_SCALE_ANALOG 1 | ||||
|     #define X2_MRES          16 | ||||
|     #define X2_TBL            1 | ||||
|     #define X2_TOFF           8 | ||||
|  | ||||
|     #define Y_IHOLD          31 | ||||
|     #define Y_IRUN           31 | ||||
|     #define Y_IHOLDDELAY     15 | ||||
|     #define Y_I_SCALE_ANALOG  1 | ||||
|     #define Y_MRES           16 | ||||
|     #define Y_TBL             1 | ||||
|     #define Y_TOFF            8 | ||||
|  | ||||
|     #define Y2_IHOLD         31 | ||||
|     #define Y2_IRUN          31 | ||||
|     #define Y2_IHOLDDELAY    15 | ||||
|     #define Y2_I_SCALE_ANALOG 1 | ||||
|     #define Y2_MRES          16 | ||||
|     #define Y2_TBL            1 | ||||
|     #define Y2_TOFF           8 | ||||
|  | ||||
|     #define Z_IHOLD          31 | ||||
|     #define Z_IRUN           31 | ||||
|     #define Z_IHOLDDELAY     15 | ||||
|     #define Z_I_SCALE_ANALOG  1 | ||||
|     #define Z_MRES           16 | ||||
|     #define Z_TBL             1 | ||||
|     #define Z_TOFF            8 | ||||
|  | ||||
|     #define Z2_IHOLD         31 | ||||
|     #define Z2_IRUN          31 | ||||
|     #define Z2_IHOLDDELAY    15 | ||||
|     #define Z2_I_SCALE_ANALOG 1 | ||||
|     #define Z2_MRES          16 | ||||
|     #define Z2_TBL            1 | ||||
|     #define Z2_TOFF           8 | ||||
|  | ||||
|     #define E0_IHOLD         31 | ||||
|     #define E0_IRUN          31 | ||||
|     #define E0_IHOLDDELAY    15 | ||||
|     #define E0_I_SCALE_ANALOG 1 | ||||
|     #define E0_MRES          16 | ||||
|     #define E0_TBL            1 | ||||
|     #define E0_TOFF           8 | ||||
|  | ||||
|     #define E1_IHOLD         31 | ||||
|     #define E1_IRUN          31 | ||||
|     #define E1_IHOLDDELAY    15 | ||||
|     #define E1_I_SCALE_ANALOG 1 | ||||
|     #define E1_MRES          16 | ||||
|     #define E1_TBL            1 | ||||
|     #define E1_TOFF           8 | ||||
|  | ||||
|     #define E2_IHOLD         31 | ||||
|     #define E2_IRUN          31 | ||||
|     #define E2_IHOLDDELAY    15 | ||||
|     #define E2_I_SCALE_ANALOG 1 | ||||
|     #define E2_MRES          16 | ||||
|     #define E2_TBL            1 | ||||
|     #define E2_TOFF           8 | ||||
|  | ||||
|     #define E3_IHOLD         31 | ||||
|     #define E3_IRUN          31 | ||||
|     #define E3_IHOLDDELAY    15 | ||||
|     #define E3_I_SCALE_ANALOG 1 | ||||
|     #define E3_MRES          16 | ||||
|     #define E3_TBL            1 | ||||
|     #define E3_TOFF           8 | ||||
|  | ||||
|   #endif // TMC2130_ADVANCED_CONFIGURATION | ||||
|  | ||||
| #endif // HAVE_TMC2130DRIVER | ||||
| #endif // ENABLED(HAVE_TMC2130) | ||||
|  | ||||
| // @section L6470 | ||||
|  | ||||
|   | ||||
| @@ -760,14 +760,15 @@ | ||||
|                                                      // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. | ||||
| #endif | ||||
|  | ||||
| /******************************************************************************\ | ||||
|  * enable this section if you have TMC26X motor drivers. | ||||
|  * you need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
|  | ||||
| // @section tmc | ||||
|  | ||||
| /** | ||||
|  * Enable this section if you have TMC26X motor drivers. | ||||
|  * You will need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  * (https://github.com/trinamic/TMC26XStepper.git) | ||||
|  */ | ||||
| //#define HAVE_TMCDRIVER | ||||
|  | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
|  | ||||
|   //#define X_IS_TMC | ||||
| @@ -825,23 +826,31 @@ | ||||
|  | ||||
| // @section TMC2130 | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Enable this for SilentStepStick Trinamic TMC2130 SPI-configurable stepper drivers. | ||||
|  * | ||||
|  * To use TMC2130 drivers in SPI mode, you'll also need the TMC2130 Arduino library | ||||
|  * (https://github.com/makertum/Trinamic_TMC2130). | ||||
|  * You'll also need the TMC2130Stepper Arduino library | ||||
|  * (https://github.com/teemuatlut/TMC2130Stepper). | ||||
|  * | ||||
|  * To use TMC2130 stepper drivers in SPI mode connect your SPI2130 pins to | ||||
|  * the hardware SPI interface on your board and define the required CS pins | ||||
|  * in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.). | ||||
|  */ | ||||
| //#define HAVE_TMC2130 | ||||
|  | ||||
| //#define HAVE_TMC2130DRIVER | ||||
| #if ENABLED(HAVE_TMC2130) | ||||
|   #define STEALTHCHOP | ||||
|  | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
|  | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION | ||||
|   /** | ||||
|    * 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_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX | ||||
|    */  | ||||
|   //#define AUTOMATIC_CURRENT_CONTROL | ||||
|   #define CURRENT_STEP          50  // [mA] | ||||
|   #define AUTO_ADJUST_MAX     1300  // [mA], 1300mA_rms = 1840mA_peak | ||||
|  | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY | ||||
|   //#define X_IS_TMC2130 | ||||
| @@ -855,180 +864,68 @@ | ||||
|   //#define E2_IS_TMC2130 | ||||
|   //#define E3_IS_TMC2130 | ||||
|  | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
|   /** | ||||
|    * Stepper driver settings | ||||
|    */ | ||||
|  | ||||
|     // If you've enabled TMC2130_ADVANCED_CONFIGURATION, define global settings below. | ||||
|     // Enabled settings will be automatically applied to all axes specified above. | ||||
|     // | ||||
|     // Please read the TMC2130 datasheet: | ||||
|     // http://www.trinamic.com/_articles/products/integrated-circuits/tmc2130/_datasheet/TMC2130_datasheet.pdf | ||||
|     // All settings here have the same (sometimes cryptic) names as in the datasheet. | ||||
|     // | ||||
|     // The following, uncommented settings are only suggestion. | ||||
|   #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 | ||||
|  | ||||
|     /* GENERAL CONFIGURATION */ | ||||
|   #define X_MAX_CURRENT     1000  // rms current in mA | ||||
|   #define X_MICROSTEPS        16  // FULLSTEP..256 | ||||
|   #define X_CHIP_SELECT       40  // Pin | ||||
|  | ||||
|     //#define GLOBAL_EN_PWM_MODE        0 | ||||
|     #define GLOBAL_I_SCALE_ANALOG     1 // [0,1] 0: Normal, 1: AIN | ||||
|     //#define GLOBAL_INTERNAL_RSENSE    0 // [0,1] 0: Normal, 1: Internal | ||||
|     #define GLOBAL_EN_PWM_MODE        0 // [0,1] 0: Normal, 1: stealthChop with velocity threshold | ||||
|     //#define GLOBAL_ENC_COMMUTATION    0 // [0,1] | ||||
|     #define GLOBAL_SHAFT              0 // [0,1] 0: normal, 1: invert | ||||
|     //#define GLOBAL_DIAG0_ERROR        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_OTPW         0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INDEX        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_SMALL_HYSTERESIS   0 // [0,1] | ||||
|     //#define GLOBAL_STOP_ENABLE        0 // [0,1] | ||||
|     //#define GLOBAL_DIRECT_MODE        0 // [0,1] | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_MICROSTEPS        16 | ||||
|   #define Y_CHIP_SELECT       42 | ||||
|  | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_MICROSTEPS        16 | ||||
|   #define Z_CHIP_SELECT       65 | ||||
|  | ||||
|     #define GLOBAL_IHOLD             22 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IRUN              31 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IHOLDDELAY        15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     //#define GLOBAL_TPOWERDOWN         0 // [0-255] 0: min, 255: about 4 seconds | ||||
|     //#define GLOBAL_TPWMTHRS           0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     //#define GLOBAL_TCOOLTHRS          0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     #define GLOBAL_THIGH             10 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|   //#define X2_MAX_CURRENT  1000 | ||||
|   //#define X2_MICROSTEPS     16 | ||||
|   //#define X2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
|   //#define Y2_MAX_CURRENT  1000 | ||||
|   //#define Y2_MICROSTEPS     16 | ||||
|   //#define Y2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_XDIRECT            0 | ||||
|   //#define Z2_MAX_CURRENT  1000 | ||||
|   //#define Z2_MICROSTEPS     16 | ||||
|   //#define Z2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
|   //#define E0_MAX_CURRENT  1000 | ||||
|   //#define E0_MICROSTEPS     16 | ||||
|   //#define E0_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_VDCMIN             0 | ||||
|   //#define E1_MAX_CURRENT  1000 | ||||
|   //#define E1_MICROSTEPS     16 | ||||
|   //#define E1_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
|   //#define E2_MAX_CURRENT  1000 | ||||
|   //#define E2_MICROSTEPS     16 | ||||
|   //#define E2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_DEDGE              0 | ||||
|     //#define GLOBAL_DISS2G             0 | ||||
|     #define GLOBAL_INTPOL             1 // 0: off 1: 256 microstep interpolation | ||||
|     #define GLOBAL_MRES              16 // number of microsteps | ||||
|     #define GLOBAL_SYNC               1 // [0-15] | ||||
|     #define GLOBAL_VHIGHCHM           1 // [0,1] 0: normal, 1: high velocity stepper mode | ||||
|     #define GLOBAL_VHIGHFS            0 // [0,1] 0: normal, 1: switch to full steps for high velocities | ||||
|     // #define GLOBAL_VSENSE            0 // [0,1] 0: normal, 1: high sensitivity (not recommended) | ||||
|     #define GLOBAL_TBL                1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define GLOBAL_CHM                0 // [0,1] 0: spreadCycle, 1: Constant off time with fast decay time. | ||||
|     //#define GLOBAL_RNDTF              0 | ||||
|     //#define GLOBAL_DISFDCC            0 | ||||
|     //#define GLOBAL_FD                 0 | ||||
|     //#define GLOBAL_HEND               0 | ||||
|     //#define GLOBAL_HSTRT              0 | ||||
|     #define GLOBAL_TOFF              10 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|   //#define E3_MAX_CURRENT  1000 | ||||
|   //#define E3_MICROSTEPS     16 | ||||
|   //#define E3_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_SFILT              0 | ||||
|     //#define GLOBAL_SGT                0 | ||||
|     //#define GLOBAL_SEIMIN             0 | ||||
|     //#define GLOBAL_SEDN               0 | ||||
|     //#define GLOBAL_SEMAX              0 | ||||
|     //#define GLOBAL_SEUP               0 | ||||
|     //#define GLOBAL_SEMIN              0 | ||||
|   /** | ||||
|    * 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 | ||||
|    * | ||||
|    * Example: | ||||
|    * #define TMC2130_ADV() { \ | ||||
|    *   stepperX.diag0_temp_prewarn(1); \ | ||||
|    *   stepperX.interpolate(0); \ | ||||
|    * } | ||||
|    */ | ||||
|   #define  TMC2130_ADV() {  } | ||||
|  | ||||
|     //#define GLOBAL_DC_TIME            0 | ||||
|     //#define GLOBAL_DC_SG              0 | ||||
|  | ||||
|     //#define GLOBAL_FREEWHEEL          0 | ||||
|     //#define GLOBAL_PWM_SYMMETRIC      0 | ||||
|     //#define GLOBAL_PWM_AUTOSCALE      0 | ||||
|     //#define GLOBAL_PWM_FREQ           0 | ||||
|     //#define GLOBAL_PWM_GRAD           0 | ||||
|     //#define GLOBAL_PWM_AMPL           0 | ||||
|  | ||||
|     //#define GLOBAL_ENCM_CTRL          0 | ||||
|  | ||||
|   #else | ||||
|  | ||||
|     #define X_IHOLD          31 // [0-31] 0: min, 31: max | ||||
|     #define X_IRUN           31 // [0-31] 0: min, 31: max | ||||
|     #define X_IHOLDDELAY     15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     #define X_I_SCALE_ANALOG  1 // 0: Normal, 1: AIN | ||||
|     #define X_MRES           16 // number of microsteps | ||||
|     #define X_TBL             1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define X_TOFF            8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|  | ||||
|     #define X2_IHOLD         31 | ||||
|     #define X2_IRUN          31 | ||||
|     #define X2_IHOLDDELAY    15 | ||||
|     #define X2_I_SCALE_ANALOG 1 | ||||
|     #define X2_MRES          16 | ||||
|     #define X2_TBL            1 | ||||
|     #define X2_TOFF           8 | ||||
|  | ||||
|     #define Y_IHOLD          31 | ||||
|     #define Y_IRUN           31 | ||||
|     #define Y_IHOLDDELAY     15 | ||||
|     #define Y_I_SCALE_ANALOG  1 | ||||
|     #define Y_MRES           16 | ||||
|     #define Y_TBL             1 | ||||
|     #define Y_TOFF            8 | ||||
|  | ||||
|     #define Y2_IHOLD         31 | ||||
|     #define Y2_IRUN          31 | ||||
|     #define Y2_IHOLDDELAY    15 | ||||
|     #define Y2_I_SCALE_ANALOG 1 | ||||
|     #define Y2_MRES          16 | ||||
|     #define Y2_TBL            1 | ||||
|     #define Y2_TOFF           8 | ||||
|  | ||||
|     #define Z_IHOLD          31 | ||||
|     #define Z_IRUN           31 | ||||
|     #define Z_IHOLDDELAY     15 | ||||
|     #define Z_I_SCALE_ANALOG  1 | ||||
|     #define Z_MRES           16 | ||||
|     #define Z_TBL             1 | ||||
|     #define Z_TOFF            8 | ||||
|  | ||||
|     #define Z2_IHOLD         31 | ||||
|     #define Z2_IRUN          31 | ||||
|     #define Z2_IHOLDDELAY    15 | ||||
|     #define Z2_I_SCALE_ANALOG 1 | ||||
|     #define Z2_MRES          16 | ||||
|     #define Z2_TBL            1 | ||||
|     #define Z2_TOFF           8 | ||||
|  | ||||
|     #define E0_IHOLD         31 | ||||
|     #define E0_IRUN          31 | ||||
|     #define E0_IHOLDDELAY    15 | ||||
|     #define E0_I_SCALE_ANALOG 1 | ||||
|     #define E0_MRES          16 | ||||
|     #define E0_TBL            1 | ||||
|     #define E0_TOFF           8 | ||||
|  | ||||
|     #define E1_IHOLD         31 | ||||
|     #define E1_IRUN          31 | ||||
|     #define E1_IHOLDDELAY    15 | ||||
|     #define E1_I_SCALE_ANALOG 1 | ||||
|     #define E1_MRES          16 | ||||
|     #define E1_TBL            1 | ||||
|     #define E1_TOFF           8 | ||||
|  | ||||
|     #define E2_IHOLD         31 | ||||
|     #define E2_IRUN          31 | ||||
|     #define E2_IHOLDDELAY    15 | ||||
|     #define E2_I_SCALE_ANALOG 1 | ||||
|     #define E2_MRES          16 | ||||
|     #define E2_TBL            1 | ||||
|     #define E2_TOFF           8 | ||||
|  | ||||
|     #define E3_IHOLD         31 | ||||
|     #define E3_IRUN          31 | ||||
|     #define E3_IHOLDDELAY    15 | ||||
|     #define E3_I_SCALE_ANALOG 1 | ||||
|     #define E3_MRES          16 | ||||
|     #define E3_TBL            1 | ||||
|     #define E3_TOFF           8 | ||||
|  | ||||
|   #endif // TMC2130_ADVANCED_CONFIGURATION | ||||
|  | ||||
| #endif // HAVE_TMC2130DRIVER | ||||
| #endif // ENABLED(HAVE_TMC2130) | ||||
|  | ||||
| // @section L6470 | ||||
|  | ||||
|   | ||||
| @@ -765,14 +765,15 @@ | ||||
|                                                      // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. | ||||
| #endif | ||||
|  | ||||
| /******************************************************************************\ | ||||
|  * enable this section if you have TMC26X motor drivers. | ||||
|  * you need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
|  | ||||
| // @section tmc | ||||
|  | ||||
| /** | ||||
|  * Enable this section if you have TMC26X motor drivers. | ||||
|  * You will need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  * (https://github.com/trinamic/TMC26XStepper.git) | ||||
|  */ | ||||
| //#define HAVE_TMCDRIVER | ||||
|  | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
|  | ||||
|   //#define X_IS_TMC | ||||
| @@ -830,23 +831,31 @@ | ||||
|  | ||||
| // @section TMC2130 | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Enable this for SilentStepStick Trinamic TMC2130 SPI-configurable stepper drivers. | ||||
|  * | ||||
|  * To use TMC2130 drivers in SPI mode, you'll also need the TMC2130 Arduino library | ||||
|  * (https://github.com/makertum/Trinamic_TMC2130). | ||||
|  * You'll also need the TMC2130Stepper Arduino library | ||||
|  * (https://github.com/teemuatlut/TMC2130Stepper). | ||||
|  * | ||||
|  * To use TMC2130 stepper drivers in SPI mode connect your SPI2130 pins to | ||||
|  * the hardware SPI interface on your board and define the required CS pins | ||||
|  * in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.). | ||||
|  */ | ||||
| //#define HAVE_TMC2130 | ||||
|  | ||||
| //#define HAVE_TMC2130DRIVER | ||||
| #if ENABLED(HAVE_TMC2130) | ||||
|   #define STEALTHCHOP | ||||
|  | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
|  | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION | ||||
|   /** | ||||
|    * 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_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX | ||||
|    */  | ||||
|   //#define AUTOMATIC_CURRENT_CONTROL | ||||
|   #define CURRENT_STEP          50  // [mA] | ||||
|   #define AUTO_ADJUST_MAX     1300  // [mA], 1300mA_rms = 1840mA_peak | ||||
|  | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY | ||||
|   //#define X_IS_TMC2130 | ||||
| @@ -860,180 +869,68 @@ | ||||
|   //#define E2_IS_TMC2130 | ||||
|   //#define E3_IS_TMC2130 | ||||
|  | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
|   /** | ||||
|    * Stepper driver settings | ||||
|    */ | ||||
|  | ||||
|     // If you've enabled TMC2130_ADVANCED_CONFIGURATION, define global settings below. | ||||
|     // Enabled settings will be automatically applied to all axes specified above. | ||||
|     // | ||||
|     // Please read the TMC2130 datasheet: | ||||
|     // http://www.trinamic.com/_articles/products/integrated-circuits/tmc2130/_datasheet/TMC2130_datasheet.pdf | ||||
|     // All settings here have the same (sometimes cryptic) names as in the datasheet. | ||||
|     // | ||||
|     // The following, uncommented settings are only suggestion. | ||||
|   #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 | ||||
|  | ||||
|     /* GENERAL CONFIGURATION */ | ||||
|   #define X_MAX_CURRENT     1000  // rms current in mA | ||||
|   #define X_MICROSTEPS        16  // FULLSTEP..256 | ||||
|   #define X_CHIP_SELECT       40  // Pin | ||||
|  | ||||
|     //#define GLOBAL_EN_PWM_MODE        0 | ||||
|     #define GLOBAL_I_SCALE_ANALOG     1 // [0,1] 0: Normal, 1: AIN | ||||
|     //#define GLOBAL_INTERNAL_RSENSE    0 // [0,1] 0: Normal, 1: Internal | ||||
|     #define GLOBAL_EN_PWM_MODE        0 // [0,1] 0: Normal, 1: stealthChop with velocity threshold | ||||
|     //#define GLOBAL_ENC_COMMUTATION    0 // [0,1] | ||||
|     #define GLOBAL_SHAFT              0 // [0,1] 0: normal, 1: invert | ||||
|     //#define GLOBAL_DIAG0_ERROR        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_OTPW         0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INDEX        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_SMALL_HYSTERESIS   0 // [0,1] | ||||
|     //#define GLOBAL_STOP_ENABLE        0 // [0,1] | ||||
|     //#define GLOBAL_DIRECT_MODE        0 // [0,1] | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_MICROSTEPS        16 | ||||
|   #define Y_CHIP_SELECT       42 | ||||
|  | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_MICROSTEPS        16 | ||||
|   #define Z_CHIP_SELECT       65 | ||||
|  | ||||
|     #define GLOBAL_IHOLD             22 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IRUN              31 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IHOLDDELAY        15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     //#define GLOBAL_TPOWERDOWN         0 // [0-255] 0: min, 255: about 4 seconds | ||||
|     //#define GLOBAL_TPWMTHRS           0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     //#define GLOBAL_TCOOLTHRS          0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     #define GLOBAL_THIGH             10 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|   //#define X2_MAX_CURRENT  1000 | ||||
|   //#define X2_MICROSTEPS     16 | ||||
|   //#define X2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
|   //#define Y2_MAX_CURRENT  1000 | ||||
|   //#define Y2_MICROSTEPS     16 | ||||
|   //#define Y2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_XDIRECT            0 | ||||
|   //#define Z2_MAX_CURRENT  1000 | ||||
|   //#define Z2_MICROSTEPS     16 | ||||
|   //#define Z2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
|   //#define E0_MAX_CURRENT  1000 | ||||
|   //#define E0_MICROSTEPS     16 | ||||
|   //#define E0_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_VDCMIN             0 | ||||
|   //#define E1_MAX_CURRENT  1000 | ||||
|   //#define E1_MICROSTEPS     16 | ||||
|   //#define E1_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
|   //#define E2_MAX_CURRENT  1000 | ||||
|   //#define E2_MICROSTEPS     16 | ||||
|   //#define E2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_DEDGE              0 | ||||
|     //#define GLOBAL_DISS2G             0 | ||||
|     #define GLOBAL_INTPOL             1 // 0: off 1: 256 microstep interpolation | ||||
|     #define GLOBAL_MRES              16 // number of microsteps | ||||
|     #define GLOBAL_SYNC               1 // [0-15] | ||||
|     #define GLOBAL_VHIGHCHM           1 // [0,1] 0: normal, 1: high velocity stepper mode | ||||
|     #define GLOBAL_VHIGHFS            0 // [0,1] 0: normal, 1: switch to full steps for high velocities | ||||
|     // #define GLOBAL_VSENSE            0 // [0,1] 0: normal, 1: high sensitivity (not recommended) | ||||
|     #define GLOBAL_TBL                1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define GLOBAL_CHM                0 // [0,1] 0: spreadCycle, 1: Constant off time with fast decay time. | ||||
|     //#define GLOBAL_RNDTF              0 | ||||
|     //#define GLOBAL_DISFDCC            0 | ||||
|     //#define GLOBAL_FD                 0 | ||||
|     //#define GLOBAL_HEND               0 | ||||
|     //#define GLOBAL_HSTRT              0 | ||||
|     #define GLOBAL_TOFF              10 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|   //#define E3_MAX_CURRENT  1000 | ||||
|   //#define E3_MICROSTEPS     16 | ||||
|   //#define E3_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_SFILT              0 | ||||
|     //#define GLOBAL_SGT                0 | ||||
|     //#define GLOBAL_SEIMIN             0 | ||||
|     //#define GLOBAL_SEDN               0 | ||||
|     //#define GLOBAL_SEMAX              0 | ||||
|     //#define GLOBAL_SEUP               0 | ||||
|     //#define GLOBAL_SEMIN              0 | ||||
|   /** | ||||
|    * 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 | ||||
|    * | ||||
|    * Example: | ||||
|    * #define TMC2130_ADV() { \ | ||||
|    *   stepperX.diag0_temp_prewarn(1); \ | ||||
|    *   stepperX.interpolate(0); \ | ||||
|    * } | ||||
|    */ | ||||
|   #define  TMC2130_ADV() {  } | ||||
|  | ||||
|     //#define GLOBAL_DC_TIME            0 | ||||
|     //#define GLOBAL_DC_SG              0 | ||||
|  | ||||
|     //#define GLOBAL_FREEWHEEL          0 | ||||
|     //#define GLOBAL_PWM_SYMMETRIC      0 | ||||
|     //#define GLOBAL_PWM_AUTOSCALE      0 | ||||
|     //#define GLOBAL_PWM_FREQ           0 | ||||
|     //#define GLOBAL_PWM_GRAD           0 | ||||
|     //#define GLOBAL_PWM_AMPL           0 | ||||
|  | ||||
|     //#define GLOBAL_ENCM_CTRL          0 | ||||
|  | ||||
|   #else | ||||
|  | ||||
|     #define X_IHOLD          31 // [0-31] 0: min, 31: max | ||||
|     #define X_IRUN           31 // [0-31] 0: min, 31: max | ||||
|     #define X_IHOLDDELAY     15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     #define X_I_SCALE_ANALOG  1 // 0: Normal, 1: AIN | ||||
|     #define X_MRES           16 // number of microsteps | ||||
|     #define X_TBL             1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define X_TOFF            8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|  | ||||
|     #define X2_IHOLD         31 | ||||
|     #define X2_IRUN          31 | ||||
|     #define X2_IHOLDDELAY    15 | ||||
|     #define X2_I_SCALE_ANALOG 1 | ||||
|     #define X2_MRES          16 | ||||
|     #define X2_TBL            1 | ||||
|     #define X2_TOFF           8 | ||||
|  | ||||
|     #define Y_IHOLD          31 | ||||
|     #define Y_IRUN           31 | ||||
|     #define Y_IHOLDDELAY     15 | ||||
|     #define Y_I_SCALE_ANALOG  1 | ||||
|     #define Y_MRES           16 | ||||
|     #define Y_TBL             1 | ||||
|     #define Y_TOFF            8 | ||||
|  | ||||
|     #define Y2_IHOLD         31 | ||||
|     #define Y2_IRUN          31 | ||||
|     #define Y2_IHOLDDELAY    15 | ||||
|     #define Y2_I_SCALE_ANALOG 1 | ||||
|     #define Y2_MRES          16 | ||||
|     #define Y2_TBL            1 | ||||
|     #define Y2_TOFF           8 | ||||
|  | ||||
|     #define Z_IHOLD          31 | ||||
|     #define Z_IRUN           31 | ||||
|     #define Z_IHOLDDELAY     15 | ||||
|     #define Z_I_SCALE_ANALOG  1 | ||||
|     #define Z_MRES           16 | ||||
|     #define Z_TBL             1 | ||||
|     #define Z_TOFF            8 | ||||
|  | ||||
|     #define Z2_IHOLD         31 | ||||
|     #define Z2_IRUN          31 | ||||
|     #define Z2_IHOLDDELAY    15 | ||||
|     #define Z2_I_SCALE_ANALOG 1 | ||||
|     #define Z2_MRES          16 | ||||
|     #define Z2_TBL            1 | ||||
|     #define Z2_TOFF           8 | ||||
|  | ||||
|     #define E0_IHOLD         31 | ||||
|     #define E0_IRUN          31 | ||||
|     #define E0_IHOLDDELAY    15 | ||||
|     #define E0_I_SCALE_ANALOG 1 | ||||
|     #define E0_MRES          16 | ||||
|     #define E0_TBL            1 | ||||
|     #define E0_TOFF           8 | ||||
|  | ||||
|     #define E1_IHOLD         31 | ||||
|     #define E1_IRUN          31 | ||||
|     #define E1_IHOLDDELAY    15 | ||||
|     #define E1_I_SCALE_ANALOG 1 | ||||
|     #define E1_MRES          16 | ||||
|     #define E1_TBL            1 | ||||
|     #define E1_TOFF           8 | ||||
|  | ||||
|     #define E2_IHOLD         31 | ||||
|     #define E2_IRUN          31 | ||||
|     #define E2_IHOLDDELAY    15 | ||||
|     #define E2_I_SCALE_ANALOG 1 | ||||
|     #define E2_MRES          16 | ||||
|     #define E2_TBL            1 | ||||
|     #define E2_TOFF           8 | ||||
|  | ||||
|     #define E3_IHOLD         31 | ||||
|     #define E3_IRUN          31 | ||||
|     #define E3_IHOLDDELAY    15 | ||||
|     #define E3_I_SCALE_ANALOG 1 | ||||
|     #define E3_MRES          16 | ||||
|     #define E3_TBL            1 | ||||
|     #define E3_TOFF           8 | ||||
|  | ||||
|   #endif // TMC2130_ADVANCED_CONFIGURATION | ||||
|  | ||||
| #endif // HAVE_TMC2130DRIVER | ||||
| #endif // ENABLED(HAVE_TMC2130) | ||||
|  | ||||
| // @section L6470 | ||||
|  | ||||
|   | ||||
| @@ -760,14 +760,15 @@ | ||||
|                                                      // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. | ||||
| #endif | ||||
|  | ||||
| /******************************************************************************\ | ||||
|  * enable this section if you have TMC26X motor drivers. | ||||
|  * you need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
|  | ||||
| // @section tmc | ||||
|  | ||||
| /** | ||||
|  * Enable this section if you have TMC26X motor drivers. | ||||
|  * You will need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  * (https://github.com/trinamic/TMC26XStepper.git) | ||||
|  */ | ||||
| //#define HAVE_TMCDRIVER | ||||
|  | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
|  | ||||
|   //#define X_IS_TMC | ||||
| @@ -825,23 +826,31 @@ | ||||
|  | ||||
| // @section TMC2130 | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Enable this for SilentStepStick Trinamic TMC2130 SPI-configurable stepper drivers. | ||||
|  * | ||||
|  * To use TMC2130 drivers in SPI mode, you'll also need the TMC2130 Arduino library | ||||
|  * (https://github.com/makertum/Trinamic_TMC2130). | ||||
|  * You'll also need the TMC2130Stepper Arduino library | ||||
|  * (https://github.com/teemuatlut/TMC2130Stepper). | ||||
|  * | ||||
|  * To use TMC2130 stepper drivers in SPI mode connect your SPI2130 pins to | ||||
|  * the hardware SPI interface on your board and define the required CS pins | ||||
|  * in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.). | ||||
|  */ | ||||
| //#define HAVE_TMC2130 | ||||
|  | ||||
| //#define HAVE_TMC2130DRIVER | ||||
| #if ENABLED(HAVE_TMC2130) | ||||
|   #define STEALTHCHOP | ||||
|  | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
|  | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION | ||||
|   /** | ||||
|    * 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_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX | ||||
|    */  | ||||
|   //#define AUTOMATIC_CURRENT_CONTROL | ||||
|   #define CURRENT_STEP          50  // [mA] | ||||
|   #define AUTO_ADJUST_MAX     1300  // [mA], 1300mA_rms = 1840mA_peak | ||||
|  | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY | ||||
|   //#define X_IS_TMC2130 | ||||
| @@ -855,180 +864,68 @@ | ||||
|   //#define E2_IS_TMC2130 | ||||
|   //#define E3_IS_TMC2130 | ||||
|  | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
|   /** | ||||
|    * Stepper driver settings | ||||
|    */ | ||||
|  | ||||
|     // If you've enabled TMC2130_ADVANCED_CONFIGURATION, define global settings below. | ||||
|     // Enabled settings will be automatically applied to all axes specified above. | ||||
|     // | ||||
|     // Please read the TMC2130 datasheet: | ||||
|     // http://www.trinamic.com/_articles/products/integrated-circuits/tmc2130/_datasheet/TMC2130_datasheet.pdf | ||||
|     // All settings here have the same (sometimes cryptic) names as in the datasheet. | ||||
|     // | ||||
|     // The following, uncommented settings are only suggestion. | ||||
|   #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 | ||||
|  | ||||
|     /* GENERAL CONFIGURATION */ | ||||
|   #define X_MAX_CURRENT     1000  // rms current in mA | ||||
|   #define X_MICROSTEPS        16  // FULLSTEP..256 | ||||
|   #define X_CHIP_SELECT       40  // Pin | ||||
|  | ||||
|     //#define GLOBAL_EN_PWM_MODE        0 | ||||
|     #define GLOBAL_I_SCALE_ANALOG     1 // [0,1] 0: Normal, 1: AIN | ||||
|     //#define GLOBAL_INTERNAL_RSENSE    0 // [0,1] 0: Normal, 1: Internal | ||||
|     #define GLOBAL_EN_PWM_MODE        0 // [0,1] 0: Normal, 1: stealthChop with velocity threshold | ||||
|     //#define GLOBAL_ENC_COMMUTATION    0 // [0,1] | ||||
|     #define GLOBAL_SHAFT              0 // [0,1] 0: normal, 1: invert | ||||
|     //#define GLOBAL_DIAG0_ERROR        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_OTPW         0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INDEX        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_SMALL_HYSTERESIS   0 // [0,1] | ||||
|     //#define GLOBAL_STOP_ENABLE        0 // [0,1] | ||||
|     //#define GLOBAL_DIRECT_MODE        0 // [0,1] | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_MICROSTEPS        16 | ||||
|   #define Y_CHIP_SELECT       42 | ||||
|  | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_MICROSTEPS        16 | ||||
|   #define Z_CHIP_SELECT       65 | ||||
|  | ||||
|     #define GLOBAL_IHOLD             22 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IRUN              31 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IHOLDDELAY        15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     //#define GLOBAL_TPOWERDOWN         0 // [0-255] 0: min, 255: about 4 seconds | ||||
|     //#define GLOBAL_TPWMTHRS           0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     //#define GLOBAL_TCOOLTHRS          0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     #define GLOBAL_THIGH             10 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|   //#define X2_MAX_CURRENT  1000 | ||||
|   //#define X2_MICROSTEPS     16 | ||||
|   //#define X2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
|   //#define Y2_MAX_CURRENT  1000 | ||||
|   //#define Y2_MICROSTEPS     16 | ||||
|   //#define Y2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_XDIRECT            0 | ||||
|   //#define Z2_MAX_CURRENT  1000 | ||||
|   //#define Z2_MICROSTEPS     16 | ||||
|   //#define Z2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
|   //#define E0_MAX_CURRENT  1000 | ||||
|   //#define E0_MICROSTEPS     16 | ||||
|   //#define E0_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_VDCMIN             0 | ||||
|   //#define E1_MAX_CURRENT  1000 | ||||
|   //#define E1_MICROSTEPS     16 | ||||
|   //#define E1_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
|   //#define E2_MAX_CURRENT  1000 | ||||
|   //#define E2_MICROSTEPS     16 | ||||
|   //#define E2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_DEDGE              0 | ||||
|     //#define GLOBAL_DISS2G             0 | ||||
|     #define GLOBAL_INTPOL             1 // 0: off 1: 256 microstep interpolation | ||||
|     #define GLOBAL_MRES              16 // number of microsteps | ||||
|     #define GLOBAL_SYNC               1 // [0-15] | ||||
|     #define GLOBAL_VHIGHCHM           1 // [0,1] 0: normal, 1: high velocity stepper mode | ||||
|     #define GLOBAL_VHIGHFS            0 // [0,1] 0: normal, 1: switch to full steps for high velocities | ||||
|     // #define GLOBAL_VSENSE            0 // [0,1] 0: normal, 1: high sensitivity (not recommended) | ||||
|     #define GLOBAL_TBL                1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define GLOBAL_CHM                0 // [0,1] 0: spreadCycle, 1: Constant off time with fast decay time. | ||||
|     //#define GLOBAL_RNDTF              0 | ||||
|     //#define GLOBAL_DISFDCC            0 | ||||
|     //#define GLOBAL_FD                 0 | ||||
|     //#define GLOBAL_HEND               0 | ||||
|     //#define GLOBAL_HSTRT              0 | ||||
|     #define GLOBAL_TOFF              10 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|   //#define E3_MAX_CURRENT  1000 | ||||
|   //#define E3_MICROSTEPS     16 | ||||
|   //#define E3_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_SFILT              0 | ||||
|     //#define GLOBAL_SGT                0 | ||||
|     //#define GLOBAL_SEIMIN             0 | ||||
|     //#define GLOBAL_SEDN               0 | ||||
|     //#define GLOBAL_SEMAX              0 | ||||
|     //#define GLOBAL_SEUP               0 | ||||
|     //#define GLOBAL_SEMIN              0 | ||||
|   /** | ||||
|    * 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 | ||||
|    * | ||||
|    * Example: | ||||
|    * #define TMC2130_ADV() { \ | ||||
|    *   stepperX.diag0_temp_prewarn(1); \ | ||||
|    *   stepperX.interpolate(0); \ | ||||
|    * } | ||||
|    */ | ||||
|   #define  TMC2130_ADV() {  } | ||||
|  | ||||
|     //#define GLOBAL_DC_TIME            0 | ||||
|     //#define GLOBAL_DC_SG              0 | ||||
|  | ||||
|     //#define GLOBAL_FREEWHEEL          0 | ||||
|     //#define GLOBAL_PWM_SYMMETRIC      0 | ||||
|     //#define GLOBAL_PWM_AUTOSCALE      0 | ||||
|     //#define GLOBAL_PWM_FREQ           0 | ||||
|     //#define GLOBAL_PWM_GRAD           0 | ||||
|     //#define GLOBAL_PWM_AMPL           0 | ||||
|  | ||||
|     //#define GLOBAL_ENCM_CTRL          0 | ||||
|  | ||||
|   #else | ||||
|  | ||||
|     #define X_IHOLD          31 // [0-31] 0: min, 31: max | ||||
|     #define X_IRUN           31 // [0-31] 0: min, 31: max | ||||
|     #define X_IHOLDDELAY     15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     #define X_I_SCALE_ANALOG  1 // 0: Normal, 1: AIN | ||||
|     #define X_MRES           16 // number of microsteps | ||||
|     #define X_TBL             1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define X_TOFF            8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|  | ||||
|     #define X2_IHOLD         31 | ||||
|     #define X2_IRUN          31 | ||||
|     #define X2_IHOLDDELAY    15 | ||||
|     #define X2_I_SCALE_ANALOG 1 | ||||
|     #define X2_MRES          16 | ||||
|     #define X2_TBL            1 | ||||
|     #define X2_TOFF           8 | ||||
|  | ||||
|     #define Y_IHOLD          31 | ||||
|     #define Y_IRUN           31 | ||||
|     #define Y_IHOLDDELAY     15 | ||||
|     #define Y_I_SCALE_ANALOG  1 | ||||
|     #define Y_MRES           16 | ||||
|     #define Y_TBL             1 | ||||
|     #define Y_TOFF            8 | ||||
|  | ||||
|     #define Y2_IHOLD         31 | ||||
|     #define Y2_IRUN          31 | ||||
|     #define Y2_IHOLDDELAY    15 | ||||
|     #define Y2_I_SCALE_ANALOG 1 | ||||
|     #define Y2_MRES          16 | ||||
|     #define Y2_TBL            1 | ||||
|     #define Y2_TOFF           8 | ||||
|  | ||||
|     #define Z_IHOLD          31 | ||||
|     #define Z_IRUN           31 | ||||
|     #define Z_IHOLDDELAY     15 | ||||
|     #define Z_I_SCALE_ANALOG  1 | ||||
|     #define Z_MRES           16 | ||||
|     #define Z_TBL             1 | ||||
|     #define Z_TOFF            8 | ||||
|  | ||||
|     #define Z2_IHOLD         31 | ||||
|     #define Z2_IRUN          31 | ||||
|     #define Z2_IHOLDDELAY    15 | ||||
|     #define Z2_I_SCALE_ANALOG 1 | ||||
|     #define Z2_MRES          16 | ||||
|     #define Z2_TBL            1 | ||||
|     #define Z2_TOFF           8 | ||||
|  | ||||
|     #define E0_IHOLD         31 | ||||
|     #define E0_IRUN          31 | ||||
|     #define E0_IHOLDDELAY    15 | ||||
|     #define E0_I_SCALE_ANALOG 1 | ||||
|     #define E0_MRES          16 | ||||
|     #define E0_TBL            1 | ||||
|     #define E0_TOFF           8 | ||||
|  | ||||
|     #define E1_IHOLD         31 | ||||
|     #define E1_IRUN          31 | ||||
|     #define E1_IHOLDDELAY    15 | ||||
|     #define E1_I_SCALE_ANALOG 1 | ||||
|     #define E1_MRES          16 | ||||
|     #define E1_TBL            1 | ||||
|     #define E1_TOFF           8 | ||||
|  | ||||
|     #define E2_IHOLD         31 | ||||
|     #define E2_IRUN          31 | ||||
|     #define E2_IHOLDDELAY    15 | ||||
|     #define E2_I_SCALE_ANALOG 1 | ||||
|     #define E2_MRES          16 | ||||
|     #define E2_TBL            1 | ||||
|     #define E2_TOFF           8 | ||||
|  | ||||
|     #define E3_IHOLD         31 | ||||
|     #define E3_IRUN          31 | ||||
|     #define E3_IHOLDDELAY    15 | ||||
|     #define E3_I_SCALE_ANALOG 1 | ||||
|     #define E3_MRES          16 | ||||
|     #define E3_TBL            1 | ||||
|     #define E3_TOFF           8 | ||||
|  | ||||
|   #endif // TMC2130_ADVANCED_CONFIGURATION | ||||
|  | ||||
| #endif // HAVE_TMC2130DRIVER | ||||
| #endif // ENABLED(HAVE_TMC2130) | ||||
|  | ||||
| // @section L6470 | ||||
|  | ||||
|   | ||||
| @@ -758,14 +758,15 @@ | ||||
|                                                      // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. | ||||
| #endif | ||||
|  | ||||
| /******************************************************************************\ | ||||
|  * enable this section if you have TMC26X motor drivers. | ||||
|  * you need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
|  | ||||
| // @section tmc | ||||
|  | ||||
| /** | ||||
|  * Enable this section if you have TMC26X motor drivers. | ||||
|  * You will need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  * (https://github.com/trinamic/TMC26XStepper.git) | ||||
|  */ | ||||
| //#define HAVE_TMCDRIVER | ||||
|  | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
|  | ||||
|   //#define X_IS_TMC | ||||
| @@ -823,23 +824,31 @@ | ||||
|  | ||||
| // @section TMC2130 | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Enable this for SilentStepStick Trinamic TMC2130 SPI-configurable stepper drivers. | ||||
|  * | ||||
|  * To use TMC2130 drivers in SPI mode, you'll also need the TMC2130 Arduino library | ||||
|  * (https://github.com/makertum/Trinamic_TMC2130). | ||||
|  * You'll also need the TMC2130Stepper Arduino library | ||||
|  * (https://github.com/teemuatlut/TMC2130Stepper). | ||||
|  * | ||||
|  * To use TMC2130 stepper drivers in SPI mode connect your SPI2130 pins to | ||||
|  * the hardware SPI interface on your board and define the required CS pins | ||||
|  * in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.). | ||||
|  */ | ||||
| //#define HAVE_TMC2130 | ||||
|  | ||||
| //#define HAVE_TMC2130DRIVER | ||||
| #if ENABLED(HAVE_TMC2130) | ||||
|   #define STEALTHCHOP | ||||
|  | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
|  | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION | ||||
|   /** | ||||
|    * 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_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX | ||||
|    */  | ||||
|   //#define AUTOMATIC_CURRENT_CONTROL | ||||
|   #define CURRENT_STEP          50  // [mA] | ||||
|   #define AUTO_ADJUST_MAX     1300  // [mA], 1300mA_rms = 1840mA_peak | ||||
|  | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY | ||||
|   //#define X_IS_TMC2130 | ||||
| @@ -853,180 +862,68 @@ | ||||
|   //#define E2_IS_TMC2130 | ||||
|   //#define E3_IS_TMC2130 | ||||
|  | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
|   /** | ||||
|    * Stepper driver settings | ||||
|    */ | ||||
|  | ||||
|     // If you've enabled TMC2130_ADVANCED_CONFIGURATION, define global settings below. | ||||
|     // Enabled settings will be automatically applied to all axes specified above. | ||||
|     // | ||||
|     // Please read the TMC2130 datasheet: | ||||
|     // http://www.trinamic.com/_articles/products/integrated-circuits/tmc2130/_datasheet/TMC2130_datasheet.pdf | ||||
|     // All settings here have the same (sometimes cryptic) names as in the datasheet. | ||||
|     // | ||||
|     // The following, uncommented settings are only suggestion. | ||||
|   #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 | ||||
|  | ||||
|     /* GENERAL CONFIGURATION */ | ||||
|   #define X_MAX_CURRENT     1000  // rms current in mA | ||||
|   #define X_MICROSTEPS        16  // FULLSTEP..256 | ||||
|   #define X_CHIP_SELECT       40  // Pin | ||||
|  | ||||
|     //#define GLOBAL_EN_PWM_MODE        0 | ||||
|     #define GLOBAL_I_SCALE_ANALOG     1 // [0,1] 0: Normal, 1: AIN | ||||
|     //#define GLOBAL_INTERNAL_RSENSE    0 // [0,1] 0: Normal, 1: Internal | ||||
|     #define GLOBAL_EN_PWM_MODE        0 // [0,1] 0: Normal, 1: stealthChop with velocity threshold | ||||
|     //#define GLOBAL_ENC_COMMUTATION    0 // [0,1] | ||||
|     #define GLOBAL_SHAFT              0 // [0,1] 0: normal, 1: invert | ||||
|     //#define GLOBAL_DIAG0_ERROR        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_OTPW         0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INDEX        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_SMALL_HYSTERESIS   0 // [0,1] | ||||
|     //#define GLOBAL_STOP_ENABLE        0 // [0,1] | ||||
|     //#define GLOBAL_DIRECT_MODE        0 // [0,1] | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_MICROSTEPS        16 | ||||
|   #define Y_CHIP_SELECT       42 | ||||
|  | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_MICROSTEPS        16 | ||||
|   #define Z_CHIP_SELECT       65 | ||||
|  | ||||
|     #define GLOBAL_IHOLD             22 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IRUN              31 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IHOLDDELAY        15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     //#define GLOBAL_TPOWERDOWN         0 // [0-255] 0: min, 255: about 4 seconds | ||||
|     //#define GLOBAL_TPWMTHRS           0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     //#define GLOBAL_TCOOLTHRS          0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     #define GLOBAL_THIGH             10 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|   //#define X2_MAX_CURRENT  1000 | ||||
|   //#define X2_MICROSTEPS     16 | ||||
|   //#define X2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
|   //#define Y2_MAX_CURRENT  1000 | ||||
|   //#define Y2_MICROSTEPS     16 | ||||
|   //#define Y2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_XDIRECT            0 | ||||
|   //#define Z2_MAX_CURRENT  1000 | ||||
|   //#define Z2_MICROSTEPS     16 | ||||
|   //#define Z2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
|   //#define E0_MAX_CURRENT  1000 | ||||
|   //#define E0_MICROSTEPS     16 | ||||
|   //#define E0_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_VDCMIN             0 | ||||
|   //#define E1_MAX_CURRENT  1000 | ||||
|   //#define E1_MICROSTEPS     16 | ||||
|   //#define E1_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
|   //#define E2_MAX_CURRENT  1000 | ||||
|   //#define E2_MICROSTEPS     16 | ||||
|   //#define E2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_DEDGE              0 | ||||
|     //#define GLOBAL_DISS2G             0 | ||||
|     #define GLOBAL_INTPOL             1 // 0: off 1: 256 microstep interpolation | ||||
|     #define GLOBAL_MRES              16 // number of microsteps | ||||
|     #define GLOBAL_SYNC               1 // [0-15] | ||||
|     #define GLOBAL_VHIGHCHM           1 // [0,1] 0: normal, 1: high velocity stepper mode | ||||
|     #define GLOBAL_VHIGHFS            0 // [0,1] 0: normal, 1: switch to full steps for high velocities | ||||
|     // #define GLOBAL_VSENSE            0 // [0,1] 0: normal, 1: high sensitivity (not recommended) | ||||
|     #define GLOBAL_TBL                1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define GLOBAL_CHM                0 // [0,1] 0: spreadCycle, 1: Constant off time with fast decay time. | ||||
|     //#define GLOBAL_RNDTF              0 | ||||
|     //#define GLOBAL_DISFDCC            0 | ||||
|     //#define GLOBAL_FD                 0 | ||||
|     //#define GLOBAL_HEND               0 | ||||
|     //#define GLOBAL_HSTRT              0 | ||||
|     #define GLOBAL_TOFF              10 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|   //#define E3_MAX_CURRENT  1000 | ||||
|   //#define E3_MICROSTEPS     16 | ||||
|   //#define E3_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_SFILT              0 | ||||
|     //#define GLOBAL_SGT                0 | ||||
|     //#define GLOBAL_SEIMIN             0 | ||||
|     //#define GLOBAL_SEDN               0 | ||||
|     //#define GLOBAL_SEMAX              0 | ||||
|     //#define GLOBAL_SEUP               0 | ||||
|     //#define GLOBAL_SEMIN              0 | ||||
|   /** | ||||
|    * 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 | ||||
|    * | ||||
|    * Example: | ||||
|    * #define TMC2130_ADV() { \ | ||||
|    *   stepperX.diag0_temp_prewarn(1); \ | ||||
|    *   stepperX.interpolate(0); \ | ||||
|    * } | ||||
|    */ | ||||
|   #define  TMC2130_ADV() {  } | ||||
|  | ||||
|     //#define GLOBAL_DC_TIME            0 | ||||
|     //#define GLOBAL_DC_SG              0 | ||||
|  | ||||
|     //#define GLOBAL_FREEWHEEL          0 | ||||
|     //#define GLOBAL_PWM_SYMMETRIC      0 | ||||
|     //#define GLOBAL_PWM_AUTOSCALE      0 | ||||
|     //#define GLOBAL_PWM_FREQ           0 | ||||
|     //#define GLOBAL_PWM_GRAD           0 | ||||
|     //#define GLOBAL_PWM_AMPL           0 | ||||
|  | ||||
|     //#define GLOBAL_ENCM_CTRL          0 | ||||
|  | ||||
|   #else | ||||
|  | ||||
|     #define X_IHOLD          31 // [0-31] 0: min, 31: max | ||||
|     #define X_IRUN           31 // [0-31] 0: min, 31: max | ||||
|     #define X_IHOLDDELAY     15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     #define X_I_SCALE_ANALOG  1 // 0: Normal, 1: AIN | ||||
|     #define X_MRES           16 // number of microsteps | ||||
|     #define X_TBL             1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define X_TOFF            8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|  | ||||
|     #define X2_IHOLD         31 | ||||
|     #define X2_IRUN          31 | ||||
|     #define X2_IHOLDDELAY    15 | ||||
|     #define X2_I_SCALE_ANALOG 1 | ||||
|     #define X2_MRES          16 | ||||
|     #define X2_TBL            1 | ||||
|     #define X2_TOFF           8 | ||||
|  | ||||
|     #define Y_IHOLD          31 | ||||
|     #define Y_IRUN           31 | ||||
|     #define Y_IHOLDDELAY     15 | ||||
|     #define Y_I_SCALE_ANALOG  1 | ||||
|     #define Y_MRES           16 | ||||
|     #define Y_TBL             1 | ||||
|     #define Y_TOFF            8 | ||||
|  | ||||
|     #define Y2_IHOLD         31 | ||||
|     #define Y2_IRUN          31 | ||||
|     #define Y2_IHOLDDELAY    15 | ||||
|     #define Y2_I_SCALE_ANALOG 1 | ||||
|     #define Y2_MRES          16 | ||||
|     #define Y2_TBL            1 | ||||
|     #define Y2_TOFF           8 | ||||
|  | ||||
|     #define Z_IHOLD          31 | ||||
|     #define Z_IRUN           31 | ||||
|     #define Z_IHOLDDELAY     15 | ||||
|     #define Z_I_SCALE_ANALOG  1 | ||||
|     #define Z_MRES           16 | ||||
|     #define Z_TBL             1 | ||||
|     #define Z_TOFF            8 | ||||
|  | ||||
|     #define Z2_IHOLD         31 | ||||
|     #define Z2_IRUN          31 | ||||
|     #define Z2_IHOLDDELAY    15 | ||||
|     #define Z2_I_SCALE_ANALOG 1 | ||||
|     #define Z2_MRES          16 | ||||
|     #define Z2_TBL            1 | ||||
|     #define Z2_TOFF           8 | ||||
|  | ||||
|     #define E0_IHOLD         31 | ||||
|     #define E0_IRUN          31 | ||||
|     #define E0_IHOLDDELAY    15 | ||||
|     #define E0_I_SCALE_ANALOG 1 | ||||
|     #define E0_MRES          16 | ||||
|     #define E0_TBL            1 | ||||
|     #define E0_TOFF           8 | ||||
|  | ||||
|     #define E1_IHOLD         31 | ||||
|     #define E1_IRUN          31 | ||||
|     #define E1_IHOLDDELAY    15 | ||||
|     #define E1_I_SCALE_ANALOG 1 | ||||
|     #define E1_MRES          16 | ||||
|     #define E1_TBL            1 | ||||
|     #define E1_TOFF           8 | ||||
|  | ||||
|     #define E2_IHOLD         31 | ||||
|     #define E2_IRUN          31 | ||||
|     #define E2_IHOLDDELAY    15 | ||||
|     #define E2_I_SCALE_ANALOG 1 | ||||
|     #define E2_MRES          16 | ||||
|     #define E2_TBL            1 | ||||
|     #define E2_TOFF           8 | ||||
|  | ||||
|     #define E3_IHOLD         31 | ||||
|     #define E3_IRUN          31 | ||||
|     #define E3_IHOLDDELAY    15 | ||||
|     #define E3_I_SCALE_ANALOG 1 | ||||
|     #define E3_MRES          16 | ||||
|     #define E3_TBL            1 | ||||
|     #define E3_TOFF           8 | ||||
|  | ||||
|   #endif // TMC2130_ADVANCED_CONFIGURATION | ||||
|  | ||||
| #endif // HAVE_TMC2130DRIVER | ||||
| #endif // ENABLED(HAVE_TMC2130) | ||||
|  | ||||
| // @section L6470 | ||||
|  | ||||
|   | ||||
| @@ -758,14 +758,15 @@ | ||||
|                                                      // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME. | ||||
| #endif | ||||
|  | ||||
| /******************************************************************************\ | ||||
|  * enable this section if you have TMC26X motor drivers. | ||||
|  * you need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
|  | ||||
| // @section tmc | ||||
|  | ||||
| /** | ||||
|  * Enable this section if you have TMC26X motor drivers. | ||||
|  * You will need to import the TMC26XStepper library into the Arduino IDE for this | ||||
|  * (https://github.com/trinamic/TMC26XStepper.git) | ||||
|  */ | ||||
| //#define HAVE_TMCDRIVER | ||||
|  | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
|  | ||||
|   //#define X_IS_TMC | ||||
| @@ -823,23 +824,31 @@ | ||||
|  | ||||
| // @section TMC2130 | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Enable this for SilentStepStick Trinamic TMC2130 SPI-configurable stepper drivers. | ||||
|  * | ||||
|  * To use TMC2130 drivers in SPI mode, you'll also need the TMC2130 Arduino library | ||||
|  * (https://github.com/makertum/Trinamic_TMC2130). | ||||
|  * You'll also need the TMC2130Stepper Arduino library | ||||
|  * (https://github.com/teemuatlut/TMC2130Stepper). | ||||
|  * | ||||
|  * To use TMC2130 stepper drivers in SPI mode connect your SPI2130 pins to | ||||
|  * the hardware SPI interface on your board and define the required CS pins | ||||
|  * in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.). | ||||
|  */ | ||||
| //#define HAVE_TMC2130 | ||||
|  | ||||
| //#define HAVE_TMC2130DRIVER | ||||
| #if ENABLED(HAVE_TMC2130) | ||||
|   #define STEALTHCHOP | ||||
|  | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
|  | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION | ||||
|   /** | ||||
|    * 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_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX | ||||
|    */  | ||||
|   //#define AUTOMATIC_CURRENT_CONTROL | ||||
|   #define CURRENT_STEP          50  // [mA] | ||||
|   #define AUTO_ADJUST_MAX     1300  // [mA], 1300mA_rms = 1840mA_peak | ||||
|  | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY | ||||
|   //#define X_IS_TMC2130 | ||||
| @@ -853,180 +862,68 @@ | ||||
|   //#define E2_IS_TMC2130 | ||||
|   //#define E3_IS_TMC2130 | ||||
|  | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
|   /** | ||||
|    * Stepper driver settings | ||||
|    */ | ||||
|  | ||||
|     // If you've enabled TMC2130_ADVANCED_CONFIGURATION, define global settings below. | ||||
|     // Enabled settings will be automatically applied to all axes specified above. | ||||
|     // | ||||
|     // Please read the TMC2130 datasheet: | ||||
|     // http://www.trinamic.com/_articles/products/integrated-circuits/tmc2130/_datasheet/TMC2130_datasheet.pdf | ||||
|     // All settings here have the same (sometimes cryptic) names as in the datasheet. | ||||
|     // | ||||
|     // The following, uncommented settings are only suggestion. | ||||
|   #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 | ||||
|  | ||||
|     /* GENERAL CONFIGURATION */ | ||||
|   #define X_MAX_CURRENT     1000  // rms current in mA | ||||
|   #define X_MICROSTEPS        16  // FULLSTEP..256 | ||||
|   #define X_CHIP_SELECT       40  // Pin | ||||
|  | ||||
|     //#define GLOBAL_EN_PWM_MODE        0 | ||||
|     #define GLOBAL_I_SCALE_ANALOG     1 // [0,1] 0: Normal, 1: AIN | ||||
|     //#define GLOBAL_INTERNAL_RSENSE    0 // [0,1] 0: Normal, 1: Internal | ||||
|     #define GLOBAL_EN_PWM_MODE        0 // [0,1] 0: Normal, 1: stealthChop with velocity threshold | ||||
|     //#define GLOBAL_ENC_COMMUTATION    0 // [0,1] | ||||
|     #define GLOBAL_SHAFT              0 // [0,1] 0: normal, 1: invert | ||||
|     //#define GLOBAL_DIAG0_ERROR        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_OTPW         0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_STALL        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INDEX        0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_ONSTATE      0 // [0,1] | ||||
|     //#define GLOBAL_DIAG0_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_DIAG1_INT_PUSHPULL 0 // [0,1] | ||||
|     //#define GLOBAL_SMALL_HYSTERESIS   0 // [0,1] | ||||
|     //#define GLOBAL_STOP_ENABLE        0 // [0,1] | ||||
|     //#define GLOBAL_DIRECT_MODE        0 // [0,1] | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_MICROSTEPS        16 | ||||
|   #define Y_CHIP_SELECT       42 | ||||
|  | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_MICROSTEPS        16 | ||||
|   #define Z_CHIP_SELECT       65 | ||||
|  | ||||
|     #define GLOBAL_IHOLD             22 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IRUN              31 // [0-31] 0: min, 31: max | ||||
|     #define GLOBAL_IHOLDDELAY        15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     //#define GLOBAL_TPOWERDOWN         0 // [0-255] 0: min, 255: about 4 seconds | ||||
|     //#define GLOBAL_TPWMTHRS           0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     //#define GLOBAL_TCOOLTHRS          0 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|     #define GLOBAL_THIGH             10 // [0-1048576] e.g. 20 corresponds with 2000 steps/s | ||||
|   //#define X2_MAX_CURRENT  1000 | ||||
|   //#define X2_MICROSTEPS     16 | ||||
|   //#define X2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
|   //#define Y2_MAX_CURRENT  1000 | ||||
|   //#define Y2_MICROSTEPS     16 | ||||
|   //#define Y2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_XDIRECT            0 | ||||
|   //#define Z2_MAX_CURRENT  1000 | ||||
|   //#define Z2_MICROSTEPS     16 | ||||
|   //#define Z2_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
|   //#define E0_MAX_CURRENT  1000 | ||||
|   //#define E0_MICROSTEPS     16 | ||||
|   //#define E0_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_VDCMIN             0 | ||||
|   //#define E1_MAX_CURRENT  1000 | ||||
|   //#define E1_MICROSTEPS     16 | ||||
|   //#define E1_CHIP_SELECT    -1 | ||||
|  | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
|   //#define E2_MAX_CURRENT  1000 | ||||
|   //#define E2_MICROSTEPS     16 | ||||
|   //#define E2_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_DEDGE              0 | ||||
|     //#define GLOBAL_DISS2G             0 | ||||
|     #define GLOBAL_INTPOL             1 // 0: off 1: 256 microstep interpolation | ||||
|     #define GLOBAL_MRES              16 // number of microsteps | ||||
|     #define GLOBAL_SYNC               1 // [0-15] | ||||
|     #define GLOBAL_VHIGHCHM           1 // [0,1] 0: normal, 1: high velocity stepper mode | ||||
|     #define GLOBAL_VHIGHFS            0 // [0,1] 0: normal, 1: switch to full steps for high velocities | ||||
|     // #define GLOBAL_VSENSE            0 // [0,1] 0: normal, 1: high sensitivity (not recommended) | ||||
|     #define GLOBAL_TBL                1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define GLOBAL_CHM                0 // [0,1] 0: spreadCycle, 1: Constant off time with fast decay time. | ||||
|     //#define GLOBAL_RNDTF              0 | ||||
|     //#define GLOBAL_DISFDCC            0 | ||||
|     //#define GLOBAL_FD                 0 | ||||
|     //#define GLOBAL_HEND               0 | ||||
|     //#define GLOBAL_HSTRT              0 | ||||
|     #define GLOBAL_TOFF              10 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|   //#define E3_MAX_CURRENT  1000 | ||||
|   //#define E3_MICROSTEPS     16 | ||||
|   //#define E3_CHIP_SELECT    -1 | ||||
|  | ||||
|     //#define GLOBAL_SFILT              0 | ||||
|     //#define GLOBAL_SGT                0 | ||||
|     //#define GLOBAL_SEIMIN             0 | ||||
|     //#define GLOBAL_SEDN               0 | ||||
|     //#define GLOBAL_SEMAX              0 | ||||
|     //#define GLOBAL_SEUP               0 | ||||
|     //#define GLOBAL_SEMIN              0 | ||||
|   /** | ||||
|    * 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 | ||||
|    * | ||||
|    * Example: | ||||
|    * #define TMC2130_ADV() { \ | ||||
|    *   stepperX.diag0_temp_prewarn(1); \ | ||||
|    *   stepperX.interpolate(0); \ | ||||
|    * } | ||||
|    */ | ||||
|   #define  TMC2130_ADV() {  } | ||||
|  | ||||
|     //#define GLOBAL_DC_TIME            0 | ||||
|     //#define GLOBAL_DC_SG              0 | ||||
|  | ||||
|     //#define GLOBAL_FREEWHEEL          0 | ||||
|     //#define GLOBAL_PWM_SYMMETRIC      0 | ||||
|     //#define GLOBAL_PWM_AUTOSCALE      0 | ||||
|     //#define GLOBAL_PWM_FREQ           0 | ||||
|     //#define GLOBAL_PWM_GRAD           0 | ||||
|     //#define GLOBAL_PWM_AMPL           0 | ||||
|  | ||||
|     //#define GLOBAL_ENCM_CTRL          0 | ||||
|  | ||||
|   #else | ||||
|  | ||||
|     #define X_IHOLD          31 // [0-31] 0: min, 31: max | ||||
|     #define X_IRUN           31 // [0-31] 0: min, 31: max | ||||
|     #define X_IHOLDDELAY     15 // [0-15] 0: min, 15: about 4 seconds | ||||
|     #define X_I_SCALE_ANALOG  1 // 0: Normal, 1: AIN | ||||
|     #define X_MRES           16 // number of microsteps | ||||
|     #define X_TBL             1 // 0-3: set comparator blank time to 16, 24, 36 or 54 clocks, 1 or 2 is recommended | ||||
|     #define X_TOFF            8 // 0: driver disable, 1: use only with TBL>2, 2-15: off time setting during slow decay phase | ||||
|  | ||||
|     #define X2_IHOLD         31 | ||||
|     #define X2_IRUN          31 | ||||
|     #define X2_IHOLDDELAY    15 | ||||
|     #define X2_I_SCALE_ANALOG 1 | ||||
|     #define X2_MRES          16 | ||||
|     #define X2_TBL            1 | ||||
|     #define X2_TOFF           8 | ||||
|  | ||||
|     #define Y_IHOLD          31 | ||||
|     #define Y_IRUN           31 | ||||
|     #define Y_IHOLDDELAY     15 | ||||
|     #define Y_I_SCALE_ANALOG  1 | ||||
|     #define Y_MRES           16 | ||||
|     #define Y_TBL             1 | ||||
|     #define Y_TOFF            8 | ||||
|  | ||||
|     #define Y2_IHOLD         31 | ||||
|     #define Y2_IRUN          31 | ||||
|     #define Y2_IHOLDDELAY    15 | ||||
|     #define Y2_I_SCALE_ANALOG 1 | ||||
|     #define Y2_MRES          16 | ||||
|     #define Y2_TBL            1 | ||||
|     #define Y2_TOFF           8 | ||||
|  | ||||
|     #define Z_IHOLD          31 | ||||
|     #define Z_IRUN           31 | ||||
|     #define Z_IHOLDDELAY     15 | ||||
|     #define Z_I_SCALE_ANALOG  1 | ||||
|     #define Z_MRES           16 | ||||
|     #define Z_TBL             1 | ||||
|     #define Z_TOFF            8 | ||||
|  | ||||
|     #define Z2_IHOLD         31 | ||||
|     #define Z2_IRUN          31 | ||||
|     #define Z2_IHOLDDELAY    15 | ||||
|     #define Z2_I_SCALE_ANALOG 1 | ||||
|     #define Z2_MRES          16 | ||||
|     #define Z2_TBL            1 | ||||
|     #define Z2_TOFF           8 | ||||
|  | ||||
|     #define E0_IHOLD         31 | ||||
|     #define E0_IRUN          31 | ||||
|     #define E0_IHOLDDELAY    15 | ||||
|     #define E0_I_SCALE_ANALOG 1 | ||||
|     #define E0_MRES          16 | ||||
|     #define E0_TBL            1 | ||||
|     #define E0_TOFF           8 | ||||
|  | ||||
|     #define E1_IHOLD         31 | ||||
|     #define E1_IRUN          31 | ||||
|     #define E1_IHOLDDELAY    15 | ||||
|     #define E1_I_SCALE_ANALOG 1 | ||||
|     #define E1_MRES          16 | ||||
|     #define E1_TBL            1 | ||||
|     #define E1_TOFF           8 | ||||
|  | ||||
|     #define E2_IHOLD         31 | ||||
|     #define E2_IRUN          31 | ||||
|     #define E2_IHOLDDELAY    15 | ||||
|     #define E2_I_SCALE_ANALOG 1 | ||||
|     #define E2_MRES          16 | ||||
|     #define E2_TBL            1 | ||||
|     #define E2_TOFF           8 | ||||
|  | ||||
|     #define E3_IHOLD         31 | ||||
|     #define E3_IRUN          31 | ||||
|     #define E3_IHOLDDELAY    15 | ||||
|     #define E3_I_SCALE_ANALOG 1 | ||||
|     #define E3_MRES          16 | ||||
|     #define E3_TBL            1 | ||||
|     #define E3_TOFF           8 | ||||
|  | ||||
|   #endif // TMC2130_ADVANCED_CONFIGURATION | ||||
|  | ||||
| #endif // HAVE_TMC2130DRIVER | ||||
| #endif // ENABLED(HAVE_TMC2130) | ||||
|  | ||||
| // @section L6470 | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user