Merge pull request #5179 from thinkyhead/rc_TMC2130
TMC2130 "Silent StepStick" support
This commit is contained in:
		
						commit
						14b74181f5
					
				
							
								
								
									
										18
									
								
								.travis.yml
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								.travis.yml
									
									
									
									
									
								
							| @ -39,12 +39,16 @@ install: | ||||
|   - sudo mv U8glib_Arduino /usr/local/share/arduino/libraries/U8glib | ||||
|   # | ||||
|   # Install: L6470 Stepper Motor Driver library | ||||
|   - git clone https://github.com/ameyer/Arduino-L6470.git | ||||
|   - sudo mv Arduino-L6470/L6470 /usr/local/share/arduino/libraries/L6470 | ||||
|   # - git clone https://github.com/ameyer/Arduino-L6470.git | ||||
|   # - sudo mv Arduino-L6470/L6470 /usr/local/share/arduino/libraries/L6470 | ||||
|   # | ||||
|   # Install: TMC26X Stepper Motor Controller library | ||||
|   - git clone https://github.com/trinamic/TMC26XStepper.git | ||||
|   - sudo mv TMC26XStepper /usr/local/share/arduino/libraries/TMC26XStepper | ||||
|   # - git clone https://github.com/trinamic/TMC26XStepper.git | ||||
|   # - sudo mv TMC26XStepper /usr/local/share/arduino/libraries/TMC26XStepper | ||||
|   # | ||||
|   # Install: TMC2130 Stepper Motor Controller library | ||||
|   - git clone https://github.com/MarlinFirmware/Trinamic_TMC2130.git | ||||
|   - sudo mv Trinamic_TMC2130/Trinamic_TMC2130 /usr/local/share/arduino/libraries/Trinamic_TMC2130 | ||||
|   # | ||||
| before_script: | ||||
|   # | ||||
| @ -380,6 +384,12 @@ script: | ||||
|   - opt_enable AUTO_BED_LEVELING_BILINEAR FIX_MOUNTED_PROBE USE_ZMIN_PLUG EEPROM_SETTINGS EEPROM_CHITCHAT ULTIMAKERCONTROLLER | ||||
|   - build_marlin | ||||
|   # | ||||
|   # TMC2130 Config | ||||
|   # | ||||
|   - restore_configs | ||||
|   - opt_enable_adv HAVE_TMC2130DRIVER X_IS_TMC2130 Y_IS_TMC2130 Z_IS_TMC2130 E0_IS_TMC2130 | ||||
|   - build_marlin | ||||
|   # | ||||
|   # tvrrug Config need to check board type for sanguino atmega644p | ||||
|   # | ||||
|   #- use_example_configs tvrrug/Round2 | ||||
|  | ||||
| @ -705,126 +705,336 @@ | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
| 
 | ||||
|   //#define X_IS_TMC
 | ||||
|   #define X_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define X2_IS_TMC
 | ||||
|   #define X2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y_IS_TMC
 | ||||
|   #define Y_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y2_IS_TMC
 | ||||
|   #define Y2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z_IS_TMC
 | ||||
|   #define Z_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z2_IS_TMC
 | ||||
|   #define Z2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E0_IS_TMC
 | ||||
|   #define E0_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E0_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E1_IS_TMC
 | ||||
|   #define E1_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E1_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E2_IS_TMC
 | ||||
|   #define E2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E3_IS_TMC
 | ||||
|   #define E3_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E3_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   #define X_MAX_CURRENT     1000 // in mA
 | ||||
|   #define X_SENSE_RESISTOR    91 // in mOhms
 | ||||
|   #define X_MICROSTEPS        16 // number of microsteps
 | ||||
| 
 | ||||
|   #define X2_MAX_CURRENT    1000 | ||||
|   #define X2_SENSE_RESISTOR   91 | ||||
|   #define X2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_SENSE_RESISTOR    91 | ||||
|   #define Y_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Y2_MAX_CURRENT    1000 | ||||
|   #define Y2_SENSE_RESISTOR   91 | ||||
|   #define Y2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_SENSE_RESISTOR    91 | ||||
|   #define Z_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Z2_MAX_CURRENT    1000 | ||||
|   #define Z2_SENSE_RESISTOR   91 | ||||
|   #define Z2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E0_MAX_CURRENT    1000 | ||||
|   #define E0_SENSE_RESISTOR   91 | ||||
|   #define E0_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E1_MAX_CURRENT    1000 | ||||
|   #define E1_SENSE_RESISTOR   91 | ||||
|   #define E1_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E2_MAX_CURRENT    1000 | ||||
|   #define E2_SENSE_RESISTOR   91 | ||||
|   #define E2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E3_MAX_CURRENT    1000 | ||||
|   #define E3_SENSE_RESISTOR   91 | ||||
|   #define E3_MICROSTEPS       16 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /******************************************************************************\
 | ||||
|  * enable this section if you have L6470  motor drivers. | ||||
|  * you need to import the L6470 library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
| // @section TMC2130
 | ||||
| 
 | ||||
| // @section l6470
 | ||||
| 
 | ||||
| /**
 | ||||
|  * 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).
 | ||||
|  * | ||||
|  * 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_TMC2130DRIVER
 | ||||
| 
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
| 
 | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION
 | ||||
| 
 | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
 | ||||
|   //#define X_IS_TMC2130
 | ||||
|   //#define X2_IS_TMC2130
 | ||||
|   //#define Y_IS_TMC2130
 | ||||
|   //#define Y2_IS_TMC2130
 | ||||
|   //#define Z_IS_TMC2130
 | ||||
|   //#define Z2_IS_TMC2130
 | ||||
|   //#define E0_IS_TMC2130
 | ||||
|   //#define E1_IS_TMC2130
 | ||||
|   //#define E2_IS_TMC2130
 | ||||
|   //#define E3_IS_TMC2130
 | ||||
| 
 | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
| 
 | ||||
|     // 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.
 | ||||
| 
 | ||||
|     /* GENERAL CONFIGURATION */ | ||||
| 
 | ||||
|     //#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]
 | ||||
| 
 | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
| 
 | ||||
|     #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
 | ||||
| 
 | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
| 
 | ||||
|     //#define GLOBAL_XDIRECT            0
 | ||||
| 
 | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
| 
 | ||||
|     //#define GLOBAL_VDCMIN             0
 | ||||
| 
 | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
| 
 | ||||
|     //#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 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
 | ||||
| 
 | ||||
|     //#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
 | ||||
| 
 | ||||
| // @section L6470
 | ||||
| 
 | ||||
| /**
 | ||||
|  * Enable this section if you have L6470 motor drivers. | ||||
|  * You need to import the L6470 library into the Arduino IDE for this. | ||||
|  * (https://github.com/ameyer/Arduino-L6470)
 | ||||
|  */ | ||||
| 
 | ||||
| //#define HAVE_L6470DRIVER
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
| 
 | ||||
|   //#define X_IS_L6470
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define X2_IS_L6470
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y_IS_L6470
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y2_IS_L6470
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z_IS_L6470
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z2_IS_L6470
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E0_IS_L6470
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E0_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E0_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E1_IS_L6470
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E1_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E1_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E2_IS_L6470
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E3_IS_L6470
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E3_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E3_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X_MICROSTEPS      16 // number of microsteps
 | ||||
|   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT   2000 // maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT  1500 // current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X2_MICROSTEPS     16 | ||||
|   #define X2_K_VAL          50 | ||||
|   #define X2_OVERCURRENT  2000 | ||||
|   #define X2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Y_MICROSTEPS      16 | ||||
|   #define Y_K_VAL           50 | ||||
|   #define Y_OVERCURRENT   2000 | ||||
|   #define Y_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Y2_MICROSTEPS     16 | ||||
|   #define Y2_K_VAL          50 | ||||
|   #define Y2_OVERCURRENT  2000 | ||||
|   #define Y2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Z_MICROSTEPS      16 | ||||
|   #define Z_K_VAL           50 | ||||
|   #define Z_OVERCURRENT   2000 | ||||
|   #define Z_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Z2_MICROSTEPS     16 | ||||
|   #define Z2_K_VAL          50 | ||||
|   #define Z2_OVERCURRENT  2000 | ||||
|   #define Z2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E0_MICROSTEPS     16 | ||||
|   #define E0_K_VAL          50 | ||||
|   #define E0_OVERCURRENT  2000 | ||||
|   #define E0_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E1_MICROSTEPS     16 | ||||
|   #define E1_K_VAL          50 | ||||
|   #define E1_OVERCURRENT  2000 | ||||
|   #define E1_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E2_MICROSTEPS     16 | ||||
|   #define E2_K_VAL          50 | ||||
|   #define E2_OVERCURRENT  2000 | ||||
|   #define E2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E3_MICROSTEPS     16 | ||||
|   #define E3_K_VAL          50 | ||||
|   #define E3_OVERCURRENT  2000 | ||||
|   #define E3_STALLCURRENT 1500 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -67,6 +67,11 @@ | ||||
|   #include <TMC26XStepper.h> | ||||
| #endif | ||||
| 
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
|   #include <SPI.h> | ||||
|   #include <Trinamic_TMC2130.h> | ||||
| #endif | ||||
| 
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
|   #include <SPI.h> | ||||
|   #include <L6470.h> | ||||
|  | ||||
| @ -5891,6 +5891,58 @@ inline void gcode_M120() { endstops.enable_globally(true); } | ||||
|  */ | ||||
| inline void gcode_M121() { endstops.enable_globally(false); } | ||||
| 
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
| 
 | ||||
|   /**
 | ||||
|    * M122: Output Trinamic TMC2130 status to serial output. Very bad formatting. | ||||
|    */ | ||||
| 
 | ||||
|   static void tmc2130_report(Trinamic_TMC2130 &stepr, const char *name) { | ||||
|     stepr.read_STAT(); | ||||
|     SERIAL_PROTOCOL(name); | ||||
|     SERIAL_PROTOCOL(": "); | ||||
|     stepr.isReset() ? SERIAL_PROTOCOLPGM("RESET ") : SERIAL_PROTOCOLPGM("----- "); | ||||
|     stepr.isError() ? SERIAL_PROTOCOLPGM("ERROR ") : SERIAL_PROTOCOLPGM("----- "); | ||||
|     stepr.isStallguard() ? SERIAL_PROTOCOLPGM("SLGRD ") : SERIAL_PROTOCOLPGM("----- "); | ||||
|     stepr.isStandstill() ? SERIAL_PROTOCOLPGM("STILL ") : SERIAL_PROTOCOLPGM("----- "); | ||||
|     SERIAL_PROTOCOLLN(stepr.debug()); | ||||
|   } | ||||
| 
 | ||||
|   inline void gcode_M122() { | ||||
|     SERIAL_PROTOCOLLNPGM("Reporting TMC2130 status"); | ||||
|     #if ENABLED(X_IS_TMC2130) | ||||
|       tmc2130_report(stepperX, "X"); | ||||
|     #endif | ||||
|     #if ENABLED(X2_IS_TMC2130) | ||||
|       tmc2130_report(stepperX2, "X2"); | ||||
|     #endif | ||||
|     #if ENABLED(Y_IS_TMC2130) | ||||
|       tmc2130_report(stepperY, "Y"); | ||||
|     #endif | ||||
|     #if ENABLED(Y2_IS_TMC2130) | ||||
|       tmc2130_report(stepperY2, "Y2"); | ||||
|     #endif | ||||
|     #if ENABLED(Z_IS_TMC2130) | ||||
|       tmc2130_report(stepperZ, "Z"); | ||||
|     #endif | ||||
|     #if ENABLED(Z2_IS_TMC2130) | ||||
|       tmc2130_report(stepperZ2, "Z2"); | ||||
|     #endif | ||||
|     #if ENABLED(E0_IS_TMC2130) | ||||
|       tmc2130_report(stepperE0, "E0"); | ||||
|     #endif | ||||
|     #if ENABLED(E1_IS_TMC2130) | ||||
|       tmc2130_report(stepperE1, "E1"); | ||||
|     #endif | ||||
|     #if ENABLED(E2_IS_TMC2130) | ||||
|       tmc2130_report(stepperE2, "E2"); | ||||
|     #endif | ||||
|     #if ENABLED(E3_IS_TMC2130) | ||||
|       tmc2130_report(stepperE3, "E3"); | ||||
|     #endif | ||||
|   } | ||||
| #endif // HAVE_TMC2130DRIVER
 | ||||
| 
 | ||||
| #if ENABLED(BLINKM) | ||||
| 
 | ||||
|   /**
 | ||||
| @ -8035,14 +8087,17 @@ void process_next_command() { | ||||
|       case 92: // M92: Set the steps-per-unit for one or more axes
 | ||||
|         gcode_M92(); | ||||
|         break; | ||||
|       case 114: // M114: Report current position
 | ||||
|         gcode_M114(); | ||||
|         break; | ||||
|       case 115: // M115: Report capabilities
 | ||||
|         gcode_M115(); | ||||
|         break; | ||||
|       case 117: // M117: Set LCD message text, if possible
 | ||||
|         gcode_M117(); | ||||
|         break; | ||||
|       case 114: // M114: Report current position
 | ||||
|         gcode_M114(); | ||||
|       case 119: // M119: Report endstop states
 | ||||
|         gcode_M119(); | ||||
|         break; | ||||
|       case 120: // M120: Enable endstops
 | ||||
|         gcode_M120(); | ||||
| @ -8050,9 +8105,12 @@ void process_next_command() { | ||||
|       case 121: // M121: Disable endstops
 | ||||
|         gcode_M121(); | ||||
|         break; | ||||
|       case 119: // M119: Report endstop states
 | ||||
|         gcode_M119(); | ||||
|         break; | ||||
| 
 | ||||
|       #if ENABLED(HAVE_TMC2130DRIVER) | ||||
|         case 122: // M122: Diagnose, used to debug TMC2130
 | ||||
|           gcode_M122(); | ||||
|           break; | ||||
|       #endif | ||||
| 
 | ||||
|       #if ENABLED(ULTIPANEL) | ||||
| 
 | ||||
|  | ||||
| @ -705,126 +705,337 @@ | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
| 
 | ||||
|   //#define X_IS_TMC
 | ||||
|   #define X_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define X2_IS_TMC
 | ||||
|   #define X2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y_IS_TMC
 | ||||
|   #define Y_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y2_IS_TMC
 | ||||
|   #define Y2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z_IS_TMC
 | ||||
|   #define Z_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z2_IS_TMC
 | ||||
|   #define Z2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E0_IS_TMC
 | ||||
|   #define E0_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E0_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E1_IS_TMC
 | ||||
|   #define E1_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E1_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E2_IS_TMC
 | ||||
|   #define E2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E3_IS_TMC
 | ||||
|   #define E3_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E3_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   #define X_MAX_CURRENT     1000 // in mA
 | ||||
|   #define X_SENSE_RESISTOR    91 // in mOhms
 | ||||
|   #define X_MICROSTEPS        16 // number of microsteps
 | ||||
| 
 | ||||
|   #define X2_MAX_CURRENT    1000 | ||||
|   #define X2_SENSE_RESISTOR   91 | ||||
|   #define X2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_SENSE_RESISTOR    91 | ||||
|   #define Y_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Y2_MAX_CURRENT    1000 | ||||
|   #define Y2_SENSE_RESISTOR   91 | ||||
|   #define Y2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_SENSE_RESISTOR    91 | ||||
|   #define Z_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Z2_MAX_CURRENT    1000 | ||||
|   #define Z2_SENSE_RESISTOR   91 | ||||
|   #define Z2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E0_MAX_CURRENT    1000 | ||||
|   #define E0_SENSE_RESISTOR   91 | ||||
|   #define E0_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E1_MAX_CURRENT    1000 | ||||
|   #define E1_SENSE_RESISTOR   91 | ||||
|   #define E1_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E2_MAX_CURRENT    1000 | ||||
|   #define E2_SENSE_RESISTOR   91 | ||||
|   #define E2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E3_MAX_CURRENT    1000 | ||||
|   #define E3_SENSE_RESISTOR   91 | ||||
|   #define E3_MICROSTEPS       16 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /******************************************************************************\
 | ||||
|  * enable this section if you have L6470  motor drivers. | ||||
|  * you need to import the L6470 library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
| // @section TMC2130
 | ||||
| 
 | ||||
| // @section l6470
 | ||||
| 
 | ||||
| /**
 | ||||
|  * 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).
 | ||||
|  * | ||||
|  * 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_TMC2130DRIVER
 | ||||
| 
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
| 
 | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION
 | ||||
| 
 | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
 | ||||
|   //#define X_IS_TMC2130
 | ||||
|   //#define X2_IS_TMC2130
 | ||||
|   //#define Y_IS_TMC2130
 | ||||
|   //#define Y2_IS_TMC2130
 | ||||
|   //#define Z_IS_TMC2130
 | ||||
|   //#define Z2_IS_TMC2130
 | ||||
|   //#define E0_IS_TMC2130
 | ||||
|   //#define E1_IS_TMC2130
 | ||||
|   //#define E2_IS_TMC2130
 | ||||
|   //#define E3_IS_TMC2130
 | ||||
| 
 | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
| 
 | ||||
|     // 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.
 | ||||
| 
 | ||||
|     /* GENERAL CONFIGURATION */ | ||||
| 
 | ||||
|     //#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]
 | ||||
| 
 | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
| 
 | ||||
|     #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
 | ||||
| 
 | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
| 
 | ||||
|     //#define GLOBAL_XDIRECT            0
 | ||||
| 
 | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
| 
 | ||||
|     //#define GLOBAL_VDCMIN             0
 | ||||
| 
 | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
| 
 | ||||
|     //#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 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
 | ||||
| 
 | ||||
|     //#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
 | ||||
| 
 | ||||
| // @section L6470
 | ||||
| 
 | ||||
| 
 | ||||
| /**
 | ||||
|  * Enable this section if you have L6470 motor drivers. | ||||
|  * You need to import the L6470 library into the Arduino IDE for this. | ||||
|  * (https://github.com/ameyer/Arduino-L6470)
 | ||||
|  */ | ||||
| 
 | ||||
| //#define HAVE_L6470DRIVER
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
| 
 | ||||
|   //#define X_IS_L6470
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define X2_IS_L6470
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y_IS_L6470
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y2_IS_L6470
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z_IS_L6470
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z2_IS_L6470
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E0_IS_L6470
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E0_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E0_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E1_IS_L6470
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E1_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E1_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E2_IS_L6470
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E3_IS_L6470
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E3_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E3_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X_MICROSTEPS      16 // number of microsteps
 | ||||
|   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT   2000 // maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT  1500 // current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X2_MICROSTEPS     16 | ||||
|   #define X2_K_VAL          50 | ||||
|   #define X2_OVERCURRENT  2000 | ||||
|   #define X2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Y_MICROSTEPS      16 | ||||
|   #define Y_K_VAL           50 | ||||
|   #define Y_OVERCURRENT   2000 | ||||
|   #define Y_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Y2_MICROSTEPS     16 | ||||
|   #define Y2_K_VAL          50 | ||||
|   #define Y2_OVERCURRENT  2000 | ||||
|   #define Y2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Z_MICROSTEPS      16 | ||||
|   #define Z_K_VAL           50 | ||||
|   #define Z_OVERCURRENT   2000 | ||||
|   #define Z_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Z2_MICROSTEPS     16 | ||||
|   #define Z2_K_VAL          50 | ||||
|   #define Z2_OVERCURRENT  2000 | ||||
|   #define Z2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E0_MICROSTEPS     16 | ||||
|   #define E0_K_VAL          50 | ||||
|   #define E0_OVERCURRENT  2000 | ||||
|   #define E0_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E1_MICROSTEPS     16 | ||||
|   #define E1_K_VAL          50 | ||||
|   #define E1_OVERCURRENT  2000 | ||||
|   #define E1_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E2_MICROSTEPS     16 | ||||
|   #define E2_K_VAL          50 | ||||
|   #define E2_OVERCURRENT  2000 | ||||
|   #define E2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E3_MICROSTEPS     16 | ||||
|   #define E3_K_VAL          50 | ||||
|   #define E3_OVERCURRENT  2000 | ||||
|   #define E3_STALLCURRENT 1500 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -705,126 +705,337 @@ | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
| 
 | ||||
|   //#define X_IS_TMC
 | ||||
|   #define X_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define X2_IS_TMC
 | ||||
|   #define X2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y_IS_TMC
 | ||||
|   #define Y_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y2_IS_TMC
 | ||||
|   #define Y2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z_IS_TMC
 | ||||
|   #define Z_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z2_IS_TMC
 | ||||
|   #define Z2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E0_IS_TMC
 | ||||
|   #define E0_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E0_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E1_IS_TMC
 | ||||
|   #define E1_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E1_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E2_IS_TMC
 | ||||
|   #define E2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E3_IS_TMC
 | ||||
|   #define E3_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E3_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   #define X_MAX_CURRENT     1000 // in mA
 | ||||
|   #define X_SENSE_RESISTOR    91 // in mOhms
 | ||||
|   #define X_MICROSTEPS        16 // number of microsteps
 | ||||
| 
 | ||||
|   #define X2_MAX_CURRENT    1000 | ||||
|   #define X2_SENSE_RESISTOR   91 | ||||
|   #define X2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_SENSE_RESISTOR    91 | ||||
|   #define Y_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Y2_MAX_CURRENT    1000 | ||||
|   #define Y2_SENSE_RESISTOR   91 | ||||
|   #define Y2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_SENSE_RESISTOR    91 | ||||
|   #define Z_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Z2_MAX_CURRENT    1000 | ||||
|   #define Z2_SENSE_RESISTOR   91 | ||||
|   #define Z2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E0_MAX_CURRENT    1000 | ||||
|   #define E0_SENSE_RESISTOR   91 | ||||
|   #define E0_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E1_MAX_CURRENT    1000 | ||||
|   #define E1_SENSE_RESISTOR   91 | ||||
|   #define E1_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E2_MAX_CURRENT    1000 | ||||
|   #define E2_SENSE_RESISTOR   91 | ||||
|   #define E2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E3_MAX_CURRENT    1000 | ||||
|   #define E3_SENSE_RESISTOR   91 | ||||
|   #define E3_MICROSTEPS       16 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /******************************************************************************\
 | ||||
|  * enable this section if you have L6470  motor drivers. | ||||
|  * you need to import the L6470 library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
| // @section TMC2130
 | ||||
| 
 | ||||
| // @section l6470
 | ||||
| 
 | ||||
| /**
 | ||||
|  * 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).
 | ||||
|  * | ||||
|  * 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_TMC2130DRIVER
 | ||||
| 
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
| 
 | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION
 | ||||
| 
 | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
 | ||||
|   //#define X_IS_TMC2130
 | ||||
|   //#define X2_IS_TMC2130
 | ||||
|   //#define Y_IS_TMC2130
 | ||||
|   //#define Y2_IS_TMC2130
 | ||||
|   //#define Z_IS_TMC2130
 | ||||
|   //#define Z2_IS_TMC2130
 | ||||
|   //#define E0_IS_TMC2130
 | ||||
|   //#define E1_IS_TMC2130
 | ||||
|   //#define E2_IS_TMC2130
 | ||||
|   //#define E3_IS_TMC2130
 | ||||
| 
 | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
| 
 | ||||
|     // 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.
 | ||||
| 
 | ||||
|     /* GENERAL CONFIGURATION */ | ||||
| 
 | ||||
|     //#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]
 | ||||
| 
 | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
| 
 | ||||
|     #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
 | ||||
| 
 | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
| 
 | ||||
|     //#define GLOBAL_XDIRECT            0
 | ||||
| 
 | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
| 
 | ||||
|     //#define GLOBAL_VDCMIN             0
 | ||||
| 
 | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
| 
 | ||||
|     //#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 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
 | ||||
| 
 | ||||
|     //#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
 | ||||
| 
 | ||||
| // @section L6470
 | ||||
| 
 | ||||
| 
 | ||||
| /**
 | ||||
|  * Enable this section if you have L6470 motor drivers. | ||||
|  * You need to import the L6470 library into the Arduino IDE for this. | ||||
|  * (https://github.com/ameyer/Arduino-L6470)
 | ||||
|  */ | ||||
| 
 | ||||
| //#define HAVE_L6470DRIVER
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
| 
 | ||||
|   //#define X_IS_L6470
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define X2_IS_L6470
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y_IS_L6470
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y2_IS_L6470
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z_IS_L6470
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z2_IS_L6470
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E0_IS_L6470
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E0_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E0_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E1_IS_L6470
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E1_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E1_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E2_IS_L6470
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E3_IS_L6470
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E3_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E3_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X_MICROSTEPS      16 // number of microsteps
 | ||||
|   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT   2000 // maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT  1500 // current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X2_MICROSTEPS     16 | ||||
|   #define X2_K_VAL          50 | ||||
|   #define X2_OVERCURRENT  2000 | ||||
|   #define X2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Y_MICROSTEPS      16 | ||||
|   #define Y_K_VAL           50 | ||||
|   #define Y_OVERCURRENT   2000 | ||||
|   #define Y_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Y2_MICROSTEPS     16 | ||||
|   #define Y2_K_VAL          50 | ||||
|   #define Y2_OVERCURRENT  2000 | ||||
|   #define Y2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Z_MICROSTEPS      16 | ||||
|   #define Z_K_VAL           50 | ||||
|   #define Z_OVERCURRENT   2000 | ||||
|   #define Z_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Z2_MICROSTEPS     16 | ||||
|   #define Z2_K_VAL          50 | ||||
|   #define Z2_OVERCURRENT  2000 | ||||
|   #define Z2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E0_MICROSTEPS     16 | ||||
|   #define E0_K_VAL          50 | ||||
|   #define E0_OVERCURRENT  2000 | ||||
|   #define E0_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E1_MICROSTEPS     16 | ||||
|   #define E1_K_VAL          50 | ||||
|   #define E1_OVERCURRENT  2000 | ||||
|   #define E1_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E2_MICROSTEPS     16 | ||||
|   #define E2_K_VAL          50 | ||||
|   #define E2_OVERCURRENT  2000 | ||||
|   #define E2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E3_MICROSTEPS     16 | ||||
|   #define E3_K_VAL          50 | ||||
|   #define E3_OVERCURRENT  2000 | ||||
|   #define E3_STALLCURRENT 1500 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -705,126 +705,337 @@ | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
| 
 | ||||
|   //#define X_IS_TMC
 | ||||
|   #define X_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define X2_IS_TMC
 | ||||
|   #define X2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y_IS_TMC
 | ||||
|   #define Y_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y2_IS_TMC
 | ||||
|   #define Y2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z_IS_TMC
 | ||||
|   #define Z_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z2_IS_TMC
 | ||||
|   #define Z2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E0_IS_TMC
 | ||||
|   #define E0_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E0_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E1_IS_TMC
 | ||||
|   #define E1_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E1_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E2_IS_TMC
 | ||||
|   #define E2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E3_IS_TMC
 | ||||
|   #define E3_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E3_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   #define X_MAX_CURRENT     1000 // in mA
 | ||||
|   #define X_SENSE_RESISTOR    91 // in mOhms
 | ||||
|   #define X_MICROSTEPS        16 // number of microsteps
 | ||||
| 
 | ||||
|   #define X2_MAX_CURRENT    1000 | ||||
|   #define X2_SENSE_RESISTOR   91 | ||||
|   #define X2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_SENSE_RESISTOR    91 | ||||
|   #define Y_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Y2_MAX_CURRENT    1000 | ||||
|   #define Y2_SENSE_RESISTOR   91 | ||||
|   #define Y2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_SENSE_RESISTOR    91 | ||||
|   #define Z_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Z2_MAX_CURRENT    1000 | ||||
|   #define Z2_SENSE_RESISTOR   91 | ||||
|   #define Z2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E0_MAX_CURRENT    1000 | ||||
|   #define E0_SENSE_RESISTOR   91 | ||||
|   #define E0_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E1_MAX_CURRENT    1000 | ||||
|   #define E1_SENSE_RESISTOR   91 | ||||
|   #define E1_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E2_MAX_CURRENT    1000 | ||||
|   #define E2_SENSE_RESISTOR   91 | ||||
|   #define E2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E3_MAX_CURRENT    1000 | ||||
|   #define E3_SENSE_RESISTOR   91 | ||||
|   #define E3_MICROSTEPS       16 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /******************************************************************************\
 | ||||
|  * enable this section if you have L6470  motor drivers. | ||||
|  * you need to import the L6470 library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
| // @section TMC2130
 | ||||
| 
 | ||||
| // @section l6470
 | ||||
| 
 | ||||
| /**
 | ||||
|  * 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).
 | ||||
|  * | ||||
|  * 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_TMC2130DRIVER
 | ||||
| 
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
| 
 | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION
 | ||||
| 
 | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
 | ||||
|   //#define X_IS_TMC2130
 | ||||
|   //#define X2_IS_TMC2130
 | ||||
|   //#define Y_IS_TMC2130
 | ||||
|   //#define Y2_IS_TMC2130
 | ||||
|   //#define Z_IS_TMC2130
 | ||||
|   //#define Z2_IS_TMC2130
 | ||||
|   //#define E0_IS_TMC2130
 | ||||
|   //#define E1_IS_TMC2130
 | ||||
|   //#define E2_IS_TMC2130
 | ||||
|   //#define E3_IS_TMC2130
 | ||||
| 
 | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
| 
 | ||||
|     // 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.
 | ||||
| 
 | ||||
|     /* GENERAL CONFIGURATION */ | ||||
| 
 | ||||
|     //#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]
 | ||||
| 
 | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
| 
 | ||||
|     #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
 | ||||
| 
 | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
| 
 | ||||
|     //#define GLOBAL_XDIRECT            0
 | ||||
| 
 | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
| 
 | ||||
|     //#define GLOBAL_VDCMIN             0
 | ||||
| 
 | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
| 
 | ||||
|     //#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 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
 | ||||
| 
 | ||||
|     //#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
 | ||||
| 
 | ||||
| // @section L6470
 | ||||
| 
 | ||||
| 
 | ||||
| /**
 | ||||
|  * Enable this section if you have L6470 motor drivers. | ||||
|  * You need to import the L6470 library into the Arduino IDE for this. | ||||
|  * (https://github.com/ameyer/Arduino-L6470)
 | ||||
|  */ | ||||
| 
 | ||||
| //#define HAVE_L6470DRIVER
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
| 
 | ||||
|   //#define X_IS_L6470
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define X2_IS_L6470
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y_IS_L6470
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y2_IS_L6470
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z_IS_L6470
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z2_IS_L6470
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E0_IS_L6470
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E0_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E0_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E1_IS_L6470
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E1_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E1_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E2_IS_L6470
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E3_IS_L6470
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E3_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E3_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X_MICROSTEPS      16 // number of microsteps
 | ||||
|   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT   2000 // maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT  1500 // current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X2_MICROSTEPS     16 | ||||
|   #define X2_K_VAL          50 | ||||
|   #define X2_OVERCURRENT  2000 | ||||
|   #define X2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Y_MICROSTEPS      16 | ||||
|   #define Y_K_VAL           50 | ||||
|   #define Y_OVERCURRENT   2000 | ||||
|   #define Y_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Y2_MICROSTEPS     16 | ||||
|   #define Y2_K_VAL          50 | ||||
|   #define Y2_OVERCURRENT  2000 | ||||
|   #define Y2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Z_MICROSTEPS      16 | ||||
|   #define Z_K_VAL           50 | ||||
|   #define Z_OVERCURRENT   2000 | ||||
|   #define Z_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Z2_MICROSTEPS     16 | ||||
|   #define Z2_K_VAL          50 | ||||
|   #define Z2_OVERCURRENT  2000 | ||||
|   #define Z2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E0_MICROSTEPS     16 | ||||
|   #define E0_K_VAL          50 | ||||
|   #define E0_OVERCURRENT  2000 | ||||
|   #define E0_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E1_MICROSTEPS     16 | ||||
|   #define E1_K_VAL          50 | ||||
|   #define E1_OVERCURRENT  2000 | ||||
|   #define E1_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E2_MICROSTEPS     16 | ||||
|   #define E2_K_VAL          50 | ||||
|   #define E2_OVERCURRENT  2000 | ||||
|   #define E2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E3_MICROSTEPS     16 | ||||
|   #define E3_K_VAL          50 | ||||
|   #define E3_OVERCURRENT  2000 | ||||
|   #define E3_STALLCURRENT 1500 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -705,126 +705,337 @@ | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
| 
 | ||||
|   //#define X_IS_TMC
 | ||||
|   #define X_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define X2_IS_TMC
 | ||||
|   #define X2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y_IS_TMC
 | ||||
|   #define Y_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y2_IS_TMC
 | ||||
|   #define Y2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z_IS_TMC
 | ||||
|   #define Z_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z2_IS_TMC
 | ||||
|   #define Z2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E0_IS_TMC
 | ||||
|   #define E0_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E0_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E1_IS_TMC
 | ||||
|   #define E1_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E1_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E2_IS_TMC
 | ||||
|   #define E2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E3_IS_TMC
 | ||||
|   #define E3_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E3_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   #define X_MAX_CURRENT     1000 // in mA
 | ||||
|   #define X_SENSE_RESISTOR    91 // in mOhms
 | ||||
|   #define X_MICROSTEPS        16 // number of microsteps
 | ||||
| 
 | ||||
|   #define X2_MAX_CURRENT    1000 | ||||
|   #define X2_SENSE_RESISTOR   91 | ||||
|   #define X2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_SENSE_RESISTOR    91 | ||||
|   #define Y_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Y2_MAX_CURRENT    1000 | ||||
|   #define Y2_SENSE_RESISTOR   91 | ||||
|   #define Y2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_SENSE_RESISTOR    91 | ||||
|   #define Z_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Z2_MAX_CURRENT    1000 | ||||
|   #define Z2_SENSE_RESISTOR   91 | ||||
|   #define Z2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E0_MAX_CURRENT    1000 | ||||
|   #define E0_SENSE_RESISTOR   91 | ||||
|   #define E0_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E1_MAX_CURRENT    1000 | ||||
|   #define E1_SENSE_RESISTOR   91 | ||||
|   #define E1_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E2_MAX_CURRENT    1000 | ||||
|   #define E2_SENSE_RESISTOR   91 | ||||
|   #define E2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E3_MAX_CURRENT    1000 | ||||
|   #define E3_SENSE_RESISTOR   91 | ||||
|   #define E3_MICROSTEPS       16 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /******************************************************************************\
 | ||||
|  * enable this section if you have L6470  motor drivers. | ||||
|  * you need to import the L6470 library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
| // @section TMC2130
 | ||||
| 
 | ||||
| // @section l6470
 | ||||
| 
 | ||||
| /**
 | ||||
|  * 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).
 | ||||
|  * | ||||
|  * 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_TMC2130DRIVER
 | ||||
| 
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
| 
 | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION
 | ||||
| 
 | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
 | ||||
|   //#define X_IS_TMC2130
 | ||||
|   //#define X2_IS_TMC2130
 | ||||
|   //#define Y_IS_TMC2130
 | ||||
|   //#define Y2_IS_TMC2130
 | ||||
|   //#define Z_IS_TMC2130
 | ||||
|   //#define Z2_IS_TMC2130
 | ||||
|   //#define E0_IS_TMC2130
 | ||||
|   //#define E1_IS_TMC2130
 | ||||
|   //#define E2_IS_TMC2130
 | ||||
|   //#define E3_IS_TMC2130
 | ||||
| 
 | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
| 
 | ||||
|     // 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.
 | ||||
| 
 | ||||
|     /* GENERAL CONFIGURATION */ | ||||
| 
 | ||||
|     //#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]
 | ||||
| 
 | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
| 
 | ||||
|     #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
 | ||||
| 
 | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
| 
 | ||||
|     //#define GLOBAL_XDIRECT            0
 | ||||
| 
 | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
| 
 | ||||
|     //#define GLOBAL_VDCMIN             0
 | ||||
| 
 | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
| 
 | ||||
|     //#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 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
 | ||||
| 
 | ||||
|     //#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
 | ||||
| 
 | ||||
| // @section L6470
 | ||||
| 
 | ||||
| 
 | ||||
| /**
 | ||||
|  * Enable this section if you have L6470 motor drivers. | ||||
|  * You need to import the L6470 library into the Arduino IDE for this. | ||||
|  * (https://github.com/ameyer/Arduino-L6470)
 | ||||
|  */ | ||||
| 
 | ||||
| //#define HAVE_L6470DRIVER
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
| 
 | ||||
|   //#define X_IS_L6470
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define X2_IS_L6470
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y_IS_L6470
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y2_IS_L6470
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z_IS_L6470
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z2_IS_L6470
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E0_IS_L6470
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E0_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E0_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E1_IS_L6470
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E1_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E1_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E2_IS_L6470
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E3_IS_L6470
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E3_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E3_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X_MICROSTEPS      16 // number of microsteps
 | ||||
|   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT   2000 // maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT  1500 // current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X2_MICROSTEPS     16 | ||||
|   #define X2_K_VAL          50 | ||||
|   #define X2_OVERCURRENT  2000 | ||||
|   #define X2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Y_MICROSTEPS      16 | ||||
|   #define Y_K_VAL           50 | ||||
|   #define Y_OVERCURRENT   2000 | ||||
|   #define Y_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Y2_MICROSTEPS     16 | ||||
|   #define Y2_K_VAL          50 | ||||
|   #define Y2_OVERCURRENT  2000 | ||||
|   #define Y2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Z_MICROSTEPS      16 | ||||
|   #define Z_K_VAL           50 | ||||
|   #define Z_OVERCURRENT   2000 | ||||
|   #define Z_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Z2_MICROSTEPS     16 | ||||
|   #define Z2_K_VAL          50 | ||||
|   #define Z2_OVERCURRENT  2000 | ||||
|   #define Z2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E0_MICROSTEPS     16 | ||||
|   #define E0_K_VAL          50 | ||||
|   #define E0_OVERCURRENT  2000 | ||||
|   #define E0_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E1_MICROSTEPS     16 | ||||
|   #define E1_K_VAL          50 | ||||
|   #define E1_OVERCURRENT  2000 | ||||
|   #define E1_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E2_MICROSTEPS     16 | ||||
|   #define E2_K_VAL          50 | ||||
|   #define E2_OVERCURRENT  2000 | ||||
|   #define E2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E3_MICROSTEPS     16 | ||||
|   #define E3_K_VAL          50 | ||||
|   #define E3_OVERCURRENT  2000 | ||||
|   #define E3_STALLCURRENT 1500 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -718,126 +718,337 @@ | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
| 
 | ||||
|   //#define X_IS_TMC
 | ||||
|   #define X_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define X2_IS_TMC
 | ||||
|   #define X2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y_IS_TMC
 | ||||
|   #define Y_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y2_IS_TMC
 | ||||
|   #define Y2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z_IS_TMC
 | ||||
|   #define Z_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z2_IS_TMC
 | ||||
|   #define Z2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E0_IS_TMC
 | ||||
|   #define E0_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E0_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E1_IS_TMC
 | ||||
|   #define E1_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E1_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E2_IS_TMC
 | ||||
|   #define E2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E3_IS_TMC
 | ||||
|   #define E3_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E3_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   #define X_MAX_CURRENT     1000 // in mA
 | ||||
|   #define X_SENSE_RESISTOR    91 // in mOhms
 | ||||
|   #define X_MICROSTEPS        16 // number of microsteps
 | ||||
| 
 | ||||
|   #define X2_MAX_CURRENT    1000 | ||||
|   #define X2_SENSE_RESISTOR   91 | ||||
|   #define X2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_SENSE_RESISTOR    91 | ||||
|   #define Y_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Y2_MAX_CURRENT    1000 | ||||
|   #define Y2_SENSE_RESISTOR   91 | ||||
|   #define Y2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_SENSE_RESISTOR    91 | ||||
|   #define Z_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Z2_MAX_CURRENT    1000 | ||||
|   #define Z2_SENSE_RESISTOR   91 | ||||
|   #define Z2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E0_MAX_CURRENT    1000 | ||||
|   #define E0_SENSE_RESISTOR   91 | ||||
|   #define E0_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E1_MAX_CURRENT    1000 | ||||
|   #define E1_SENSE_RESISTOR   91 | ||||
|   #define E1_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E2_MAX_CURRENT    1000 | ||||
|   #define E2_SENSE_RESISTOR   91 | ||||
|   #define E2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E3_MAX_CURRENT    1000 | ||||
|   #define E3_SENSE_RESISTOR   91 | ||||
|   #define E3_MICROSTEPS       16 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /******************************************************************************\
 | ||||
|  * enable this section if you have L6470  motor drivers. | ||||
|  * you need to import the L6470 library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
| // @section TMC2130
 | ||||
| 
 | ||||
| // @section l6470
 | ||||
| 
 | ||||
| /**
 | ||||
|  * 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).
 | ||||
|  * | ||||
|  * 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_TMC2130DRIVER
 | ||||
| 
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
| 
 | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION
 | ||||
| 
 | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
 | ||||
|   //#define X_IS_TMC2130
 | ||||
|   //#define X2_IS_TMC2130
 | ||||
|   //#define Y_IS_TMC2130
 | ||||
|   //#define Y2_IS_TMC2130
 | ||||
|   //#define Z_IS_TMC2130
 | ||||
|   //#define Z2_IS_TMC2130
 | ||||
|   //#define E0_IS_TMC2130
 | ||||
|   //#define E1_IS_TMC2130
 | ||||
|   //#define E2_IS_TMC2130
 | ||||
|   //#define E3_IS_TMC2130
 | ||||
| 
 | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
| 
 | ||||
|     // 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.
 | ||||
| 
 | ||||
|     /* GENERAL CONFIGURATION */ | ||||
| 
 | ||||
|     //#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]
 | ||||
| 
 | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
| 
 | ||||
|     #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
 | ||||
| 
 | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
| 
 | ||||
|     //#define GLOBAL_XDIRECT            0
 | ||||
| 
 | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
| 
 | ||||
|     //#define GLOBAL_VDCMIN             0
 | ||||
| 
 | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
| 
 | ||||
|     //#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 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
 | ||||
| 
 | ||||
|     //#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
 | ||||
| 
 | ||||
| // @section L6470
 | ||||
| 
 | ||||
| 
 | ||||
| /**
 | ||||
|  * Enable this section if you have L6470 motor drivers. | ||||
|  * You need to import the L6470 library into the Arduino IDE for this. | ||||
|  * (https://github.com/ameyer/Arduino-L6470)
 | ||||
|  */ | ||||
| 
 | ||||
| //#define HAVE_L6470DRIVER
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
| 
 | ||||
|   //#define X_IS_L6470
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define X2_IS_L6470
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y_IS_L6470
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y2_IS_L6470
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z_IS_L6470
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z2_IS_L6470
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E0_IS_L6470
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E0_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E0_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E1_IS_L6470
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E1_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E1_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E2_IS_L6470
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E3_IS_L6470
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E3_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E3_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X_MICROSTEPS      16 // number of microsteps
 | ||||
|   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT   2000 // maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT  1500 // current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X2_MICROSTEPS     16 | ||||
|   #define X2_K_VAL          50 | ||||
|   #define X2_OVERCURRENT  2000 | ||||
|   #define X2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Y_MICROSTEPS      16 | ||||
|   #define Y_K_VAL           50 | ||||
|   #define Y_OVERCURRENT   2000 | ||||
|   #define Y_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Y2_MICROSTEPS     16 | ||||
|   #define Y2_K_VAL          50 | ||||
|   #define Y2_OVERCURRENT  2000 | ||||
|   #define Y2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Z_MICROSTEPS      16 | ||||
|   #define Z_K_VAL           50 | ||||
|   #define Z_OVERCURRENT   2000 | ||||
|   #define Z_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Z2_MICROSTEPS     16 | ||||
|   #define Z2_K_VAL          50 | ||||
|   #define Z2_OVERCURRENT  2000 | ||||
|   #define Z2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E0_MICROSTEPS     16 | ||||
|   #define E0_K_VAL          50 | ||||
|   #define E0_OVERCURRENT  2000 | ||||
|   #define E0_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E1_MICROSTEPS     16 | ||||
|   #define E1_K_VAL          50 | ||||
|   #define E1_OVERCURRENT  2000 | ||||
|   #define E1_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E2_MICROSTEPS     16 | ||||
|   #define E2_K_VAL          50 | ||||
|   #define E2_OVERCURRENT  2000 | ||||
|   #define E2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E3_MICROSTEPS     16 | ||||
|   #define E3_K_VAL          50 | ||||
|   #define E3_OVERCURRENT  2000 | ||||
|   #define E3_STALLCURRENT 1500 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -705,126 +705,337 @@ | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
| 
 | ||||
|   //#define X_IS_TMC
 | ||||
|   #define X_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define X2_IS_TMC
 | ||||
|   #define X2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y_IS_TMC
 | ||||
|   #define Y_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y2_IS_TMC
 | ||||
|   #define Y2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z_IS_TMC
 | ||||
|   #define Z_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z2_IS_TMC
 | ||||
|   #define Z2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E0_IS_TMC
 | ||||
|   #define E0_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E0_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E1_IS_TMC
 | ||||
|   #define E1_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E1_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E2_IS_TMC
 | ||||
|   #define E2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E3_IS_TMC
 | ||||
|   #define E3_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E3_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   #define X_MAX_CURRENT     1000 // in mA
 | ||||
|   #define X_SENSE_RESISTOR    91 // in mOhms
 | ||||
|   #define X_MICROSTEPS        16 // number of microsteps
 | ||||
| 
 | ||||
|   #define X2_MAX_CURRENT    1000 | ||||
|   #define X2_SENSE_RESISTOR   91 | ||||
|   #define X2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_SENSE_RESISTOR    91 | ||||
|   #define Y_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Y2_MAX_CURRENT    1000 | ||||
|   #define Y2_SENSE_RESISTOR   91 | ||||
|   #define Y2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_SENSE_RESISTOR    91 | ||||
|   #define Z_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Z2_MAX_CURRENT    1000 | ||||
|   #define Z2_SENSE_RESISTOR   91 | ||||
|   #define Z2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E0_MAX_CURRENT    1000 | ||||
|   #define E0_SENSE_RESISTOR   91 | ||||
|   #define E0_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E1_MAX_CURRENT    1000 | ||||
|   #define E1_SENSE_RESISTOR   91 | ||||
|   #define E1_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E2_MAX_CURRENT    1000 | ||||
|   #define E2_SENSE_RESISTOR   91 | ||||
|   #define E2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E3_MAX_CURRENT    1000 | ||||
|   #define E3_SENSE_RESISTOR   91 | ||||
|   #define E3_MICROSTEPS       16 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /******************************************************************************\
 | ||||
|  * enable this section if you have L6470  motor drivers. | ||||
|  * you need to import the L6470 library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
| // @section TMC2130
 | ||||
| 
 | ||||
| // @section l6470
 | ||||
| 
 | ||||
| /**
 | ||||
|  * 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).
 | ||||
|  * | ||||
|  * 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_TMC2130DRIVER
 | ||||
| 
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
| 
 | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION
 | ||||
| 
 | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
 | ||||
|   //#define X_IS_TMC2130
 | ||||
|   //#define X2_IS_TMC2130
 | ||||
|   //#define Y_IS_TMC2130
 | ||||
|   //#define Y2_IS_TMC2130
 | ||||
|   //#define Z_IS_TMC2130
 | ||||
|   //#define Z2_IS_TMC2130
 | ||||
|   //#define E0_IS_TMC2130
 | ||||
|   //#define E1_IS_TMC2130
 | ||||
|   //#define E2_IS_TMC2130
 | ||||
|   //#define E3_IS_TMC2130
 | ||||
| 
 | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
| 
 | ||||
|     // 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.
 | ||||
| 
 | ||||
|     /* GENERAL CONFIGURATION */ | ||||
| 
 | ||||
|     //#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]
 | ||||
| 
 | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
| 
 | ||||
|     #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
 | ||||
| 
 | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
| 
 | ||||
|     //#define GLOBAL_XDIRECT            0
 | ||||
| 
 | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
| 
 | ||||
|     //#define GLOBAL_VDCMIN             0
 | ||||
| 
 | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
| 
 | ||||
|     //#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 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
 | ||||
| 
 | ||||
|     //#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
 | ||||
| 
 | ||||
| // @section L6470
 | ||||
| 
 | ||||
| 
 | ||||
| /**
 | ||||
|  * Enable this section if you have L6470 motor drivers. | ||||
|  * You need to import the L6470 library into the Arduino IDE for this. | ||||
|  * (https://github.com/ameyer/Arduino-L6470)
 | ||||
|  */ | ||||
| 
 | ||||
| //#define HAVE_L6470DRIVER
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
| 
 | ||||
|   //#define X_IS_L6470
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define X2_IS_L6470
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y_IS_L6470
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y2_IS_L6470
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z_IS_L6470
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z2_IS_L6470
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E0_IS_L6470
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E0_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E0_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E1_IS_L6470
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E1_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E1_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E2_IS_L6470
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E3_IS_L6470
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E3_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E3_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X_MICROSTEPS      16 // number of microsteps
 | ||||
|   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT   2000 // maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT  1500 // current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X2_MICROSTEPS     16 | ||||
|   #define X2_K_VAL          50 | ||||
|   #define X2_OVERCURRENT  2000 | ||||
|   #define X2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Y_MICROSTEPS      16 | ||||
|   #define Y_K_VAL           50 | ||||
|   #define Y_OVERCURRENT   2000 | ||||
|   #define Y_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Y2_MICROSTEPS     16 | ||||
|   #define Y2_K_VAL          50 | ||||
|   #define Y2_OVERCURRENT  2000 | ||||
|   #define Y2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Z_MICROSTEPS      16 | ||||
|   #define Z_K_VAL           50 | ||||
|   #define Z_OVERCURRENT   2000 | ||||
|   #define Z_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Z2_MICROSTEPS     16 | ||||
|   #define Z2_K_VAL          50 | ||||
|   #define Z2_OVERCURRENT  2000 | ||||
|   #define Z2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E0_MICROSTEPS     16 | ||||
|   #define E0_K_VAL          50 | ||||
|   #define E0_OVERCURRENT  2000 | ||||
|   #define E0_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E1_MICROSTEPS     16 | ||||
|   #define E1_K_VAL          50 | ||||
|   #define E1_OVERCURRENT  2000 | ||||
|   #define E1_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E2_MICROSTEPS     16 | ||||
|   #define E2_K_VAL          50 | ||||
|   #define E2_OVERCURRENT  2000 | ||||
|   #define E2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E3_MICROSTEPS     16 | ||||
|   #define E3_K_VAL          50 | ||||
|   #define E3_OVERCURRENT  2000 | ||||
|   #define E3_STALLCURRENT 1500 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -705,126 +705,337 @@ | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
| 
 | ||||
|   //#define X_IS_TMC
 | ||||
|   #define X_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define X2_IS_TMC
 | ||||
|   #define X2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y_IS_TMC
 | ||||
|   #define Y_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y2_IS_TMC
 | ||||
|   #define Y2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z_IS_TMC
 | ||||
|   #define Z_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z2_IS_TMC
 | ||||
|   #define Z2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E0_IS_TMC
 | ||||
|   #define E0_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E0_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E1_IS_TMC
 | ||||
|   #define E1_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E1_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E2_IS_TMC
 | ||||
|   #define E2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E3_IS_TMC
 | ||||
|   #define E3_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E3_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   #define X_MAX_CURRENT     1000 // in mA
 | ||||
|   #define X_SENSE_RESISTOR    91 // in mOhms
 | ||||
|   #define X_MICROSTEPS        16 // number of microsteps
 | ||||
| 
 | ||||
|   #define X2_MAX_CURRENT    1000 | ||||
|   #define X2_SENSE_RESISTOR   91 | ||||
|   #define X2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_SENSE_RESISTOR    91 | ||||
|   #define Y_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Y2_MAX_CURRENT    1000 | ||||
|   #define Y2_SENSE_RESISTOR   91 | ||||
|   #define Y2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_SENSE_RESISTOR    91 | ||||
|   #define Z_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Z2_MAX_CURRENT    1000 | ||||
|   #define Z2_SENSE_RESISTOR   91 | ||||
|   #define Z2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E0_MAX_CURRENT    1000 | ||||
|   #define E0_SENSE_RESISTOR   91 | ||||
|   #define E0_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E1_MAX_CURRENT    1000 | ||||
|   #define E1_SENSE_RESISTOR   91 | ||||
|   #define E1_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E2_MAX_CURRENT    1000 | ||||
|   #define E2_SENSE_RESISTOR   91 | ||||
|   #define E2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E3_MAX_CURRENT    1000 | ||||
|   #define E3_SENSE_RESISTOR   91 | ||||
|   #define E3_MICROSTEPS       16 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /******************************************************************************\
 | ||||
|  * enable this section if you have L6470  motor drivers. | ||||
|  * you need to import the L6470 library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
| // @section TMC2130
 | ||||
| 
 | ||||
| // @section l6470
 | ||||
| 
 | ||||
| /**
 | ||||
|  * 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).
 | ||||
|  * | ||||
|  * 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_TMC2130DRIVER
 | ||||
| 
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
| 
 | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION
 | ||||
| 
 | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
 | ||||
|   //#define X_IS_TMC2130
 | ||||
|   //#define X2_IS_TMC2130
 | ||||
|   //#define Y_IS_TMC2130
 | ||||
|   //#define Y2_IS_TMC2130
 | ||||
|   //#define Z_IS_TMC2130
 | ||||
|   //#define Z2_IS_TMC2130
 | ||||
|   //#define E0_IS_TMC2130
 | ||||
|   //#define E1_IS_TMC2130
 | ||||
|   //#define E2_IS_TMC2130
 | ||||
|   //#define E3_IS_TMC2130
 | ||||
| 
 | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
| 
 | ||||
|     // 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.
 | ||||
| 
 | ||||
|     /* GENERAL CONFIGURATION */ | ||||
| 
 | ||||
|     //#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]
 | ||||
| 
 | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
| 
 | ||||
|     #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
 | ||||
| 
 | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
| 
 | ||||
|     //#define GLOBAL_XDIRECT            0
 | ||||
| 
 | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
| 
 | ||||
|     //#define GLOBAL_VDCMIN             0
 | ||||
| 
 | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
| 
 | ||||
|     //#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 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
 | ||||
| 
 | ||||
|     //#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
 | ||||
| 
 | ||||
| // @section L6470
 | ||||
| 
 | ||||
| 
 | ||||
| /**
 | ||||
|  * Enable this section if you have L6470 motor drivers. | ||||
|  * You need to import the L6470 library into the Arduino IDE for this. | ||||
|  * (https://github.com/ameyer/Arduino-L6470)
 | ||||
|  */ | ||||
| 
 | ||||
| //#define HAVE_L6470DRIVER
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
| 
 | ||||
|   //#define X_IS_L6470
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define X2_IS_L6470
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y_IS_L6470
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y2_IS_L6470
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z_IS_L6470
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z2_IS_L6470
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E0_IS_L6470
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E0_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E0_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E1_IS_L6470
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E1_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E1_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E2_IS_L6470
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E3_IS_L6470
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E3_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E3_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X_MICROSTEPS      16 // number of microsteps
 | ||||
|   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT   2000 // maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT  1500 // current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X2_MICROSTEPS     16 | ||||
|   #define X2_K_VAL          50 | ||||
|   #define X2_OVERCURRENT  2000 | ||||
|   #define X2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Y_MICROSTEPS      16 | ||||
|   #define Y_K_VAL           50 | ||||
|   #define Y_OVERCURRENT   2000 | ||||
|   #define Y_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Y2_MICROSTEPS     16 | ||||
|   #define Y2_K_VAL          50 | ||||
|   #define Y2_OVERCURRENT  2000 | ||||
|   #define Y2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Z_MICROSTEPS      16 | ||||
|   #define Z_K_VAL           50 | ||||
|   #define Z_OVERCURRENT   2000 | ||||
|   #define Z_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Z2_MICROSTEPS     16 | ||||
|   #define Z2_K_VAL          50 | ||||
|   #define Z2_OVERCURRENT  2000 | ||||
|   #define Z2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E0_MICROSTEPS     16 | ||||
|   #define E0_K_VAL          50 | ||||
|   #define E0_OVERCURRENT  2000 | ||||
|   #define E0_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E1_MICROSTEPS     16 | ||||
|   #define E1_K_VAL          50 | ||||
|   #define E1_OVERCURRENT  2000 | ||||
|   #define E1_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E2_MICROSTEPS     16 | ||||
|   #define E2_K_VAL          50 | ||||
|   #define E2_OVERCURRENT  2000 | ||||
|   #define E2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E3_MICROSTEPS     16 | ||||
|   #define E3_K_VAL          50 | ||||
|   #define E3_OVERCURRENT  2000 | ||||
|   #define E3_STALLCURRENT 1500 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -705,126 +705,337 @@ | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
| 
 | ||||
|   //#define X_IS_TMC
 | ||||
|   #define X_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define X2_IS_TMC
 | ||||
|   #define X2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y_IS_TMC
 | ||||
|   #define Y_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y2_IS_TMC
 | ||||
|   #define Y2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z_IS_TMC
 | ||||
|   #define Z_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z2_IS_TMC
 | ||||
|   #define Z2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E0_IS_TMC
 | ||||
|   #define E0_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E0_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E1_IS_TMC
 | ||||
|   #define E1_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E1_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E2_IS_TMC
 | ||||
|   #define E2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E3_IS_TMC
 | ||||
|   #define E3_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E3_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   #define X_MAX_CURRENT     1000 // in mA
 | ||||
|   #define X_SENSE_RESISTOR    91 // in mOhms
 | ||||
|   #define X_MICROSTEPS        16 // number of microsteps
 | ||||
| 
 | ||||
|   #define X2_MAX_CURRENT    1000 | ||||
|   #define X2_SENSE_RESISTOR   91 | ||||
|   #define X2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_SENSE_RESISTOR    91 | ||||
|   #define Y_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Y2_MAX_CURRENT    1000 | ||||
|   #define Y2_SENSE_RESISTOR   91 | ||||
|   #define Y2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_SENSE_RESISTOR    91 | ||||
|   #define Z_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Z2_MAX_CURRENT    1000 | ||||
|   #define Z2_SENSE_RESISTOR   91 | ||||
|   #define Z2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E0_MAX_CURRENT    1000 | ||||
|   #define E0_SENSE_RESISTOR   91 | ||||
|   #define E0_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E1_MAX_CURRENT    1000 | ||||
|   #define E1_SENSE_RESISTOR   91 | ||||
|   #define E1_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E2_MAX_CURRENT    1000 | ||||
|   #define E2_SENSE_RESISTOR   91 | ||||
|   #define E2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E3_MAX_CURRENT    1000 | ||||
|   #define E3_SENSE_RESISTOR   91 | ||||
|   #define E3_MICROSTEPS       16 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /******************************************************************************\
 | ||||
|  * enable this section if you have L6470  motor drivers. | ||||
|  * you need to import the L6470 library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
| // @section TMC2130
 | ||||
| 
 | ||||
| // @section l6470
 | ||||
| 
 | ||||
| /**
 | ||||
|  * 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).
 | ||||
|  * | ||||
|  * 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_TMC2130DRIVER
 | ||||
| 
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
| 
 | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION
 | ||||
| 
 | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
 | ||||
|   //#define X_IS_TMC2130
 | ||||
|   //#define X2_IS_TMC2130
 | ||||
|   //#define Y_IS_TMC2130
 | ||||
|   //#define Y2_IS_TMC2130
 | ||||
|   //#define Z_IS_TMC2130
 | ||||
|   //#define Z2_IS_TMC2130
 | ||||
|   //#define E0_IS_TMC2130
 | ||||
|   //#define E1_IS_TMC2130
 | ||||
|   //#define E2_IS_TMC2130
 | ||||
|   //#define E3_IS_TMC2130
 | ||||
| 
 | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
| 
 | ||||
|     // 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.
 | ||||
| 
 | ||||
|     /* GENERAL CONFIGURATION */ | ||||
| 
 | ||||
|     //#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]
 | ||||
| 
 | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
| 
 | ||||
|     #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
 | ||||
| 
 | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
| 
 | ||||
|     //#define GLOBAL_XDIRECT            0
 | ||||
| 
 | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
| 
 | ||||
|     //#define GLOBAL_VDCMIN             0
 | ||||
| 
 | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
| 
 | ||||
|     //#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 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
 | ||||
| 
 | ||||
|     //#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
 | ||||
| 
 | ||||
| // @section L6470
 | ||||
| 
 | ||||
| 
 | ||||
| /**
 | ||||
|  * Enable this section if you have L6470 motor drivers. | ||||
|  * You need to import the L6470 library into the Arduino IDE for this. | ||||
|  * (https://github.com/ameyer/Arduino-L6470)
 | ||||
|  */ | ||||
| 
 | ||||
| //#define HAVE_L6470DRIVER
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
| 
 | ||||
|   //#define X_IS_L6470
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define X2_IS_L6470
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y_IS_L6470
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y2_IS_L6470
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z_IS_L6470
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z2_IS_L6470
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E0_IS_L6470
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E0_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E0_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E1_IS_L6470
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E1_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E1_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E2_IS_L6470
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E3_IS_L6470
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E3_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E3_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X_MICROSTEPS      16 // number of microsteps
 | ||||
|   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT   2000 // maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT  1500 // current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X2_MICROSTEPS     16 | ||||
|   #define X2_K_VAL          50 | ||||
|   #define X2_OVERCURRENT  2000 | ||||
|   #define X2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Y_MICROSTEPS      16 | ||||
|   #define Y_K_VAL           50 | ||||
|   #define Y_OVERCURRENT   2000 | ||||
|   #define Y_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Y2_MICROSTEPS     16 | ||||
|   #define Y2_K_VAL          50 | ||||
|   #define Y2_OVERCURRENT  2000 | ||||
|   #define Y2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Z_MICROSTEPS      16 | ||||
|   #define Z_K_VAL           50 | ||||
|   #define Z_OVERCURRENT   2000 | ||||
|   #define Z_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Z2_MICROSTEPS     16 | ||||
|   #define Z2_K_VAL          50 | ||||
|   #define Z2_OVERCURRENT  2000 | ||||
|   #define Z2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E0_MICROSTEPS     16 | ||||
|   #define E0_K_VAL          50 | ||||
|   #define E0_OVERCURRENT  2000 | ||||
|   #define E0_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E1_MICROSTEPS     16 | ||||
|   #define E1_K_VAL          50 | ||||
|   #define E1_OVERCURRENT  2000 | ||||
|   #define E1_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E2_MICROSTEPS     16 | ||||
|   #define E2_K_VAL          50 | ||||
|   #define E2_OVERCURRENT  2000 | ||||
|   #define E2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E3_MICROSTEPS     16 | ||||
|   #define E3_K_VAL          50 | ||||
|   #define E3_OVERCURRENT  2000 | ||||
|   #define E3_STALLCURRENT 1500 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -713,126 +713,337 @@ | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
| 
 | ||||
|   //#define X_IS_TMC
 | ||||
|   #define X_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define X2_IS_TMC
 | ||||
|   #define X2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y_IS_TMC
 | ||||
|   #define Y_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y2_IS_TMC
 | ||||
|   #define Y2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z_IS_TMC
 | ||||
|   #define Z_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z2_IS_TMC
 | ||||
|   #define Z2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E0_IS_TMC
 | ||||
|   #define E0_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E0_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E1_IS_TMC
 | ||||
|   #define E1_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E1_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E2_IS_TMC
 | ||||
|   #define E2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E3_IS_TMC
 | ||||
|   #define E3_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E3_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   #define X_MAX_CURRENT     1000 // in mA
 | ||||
|   #define X_SENSE_RESISTOR    91 // in mOhms
 | ||||
|   #define X_MICROSTEPS        16 // number of microsteps
 | ||||
| 
 | ||||
|   #define X2_MAX_CURRENT    1000 | ||||
|   #define X2_SENSE_RESISTOR   91 | ||||
|   #define X2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_SENSE_RESISTOR    91 | ||||
|   #define Y_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Y2_MAX_CURRENT    1000 | ||||
|   #define Y2_SENSE_RESISTOR   91 | ||||
|   #define Y2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_SENSE_RESISTOR    91 | ||||
|   #define Z_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Z2_MAX_CURRENT    1000 | ||||
|   #define Z2_SENSE_RESISTOR   91 | ||||
|   #define Z2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E0_MAX_CURRENT    1000 | ||||
|   #define E0_SENSE_RESISTOR   91 | ||||
|   #define E0_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E1_MAX_CURRENT    1000 | ||||
|   #define E1_SENSE_RESISTOR   91 | ||||
|   #define E1_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E2_MAX_CURRENT    1000 | ||||
|   #define E2_SENSE_RESISTOR   91 | ||||
|   #define E2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E3_MAX_CURRENT    1000 | ||||
|   #define E3_SENSE_RESISTOR   91 | ||||
|   #define E3_MICROSTEPS       16 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /******************************************************************************\
 | ||||
|  * enable this section if you have L6470  motor drivers. | ||||
|  * you need to import the L6470 library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
| // @section TMC2130
 | ||||
| 
 | ||||
| // @section l6470
 | ||||
| 
 | ||||
| /**
 | ||||
|  * 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).
 | ||||
|  * | ||||
|  * 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_TMC2130DRIVER
 | ||||
| 
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
| 
 | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION
 | ||||
| 
 | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
 | ||||
|   //#define X_IS_TMC2130
 | ||||
|   //#define X2_IS_TMC2130
 | ||||
|   //#define Y_IS_TMC2130
 | ||||
|   //#define Y2_IS_TMC2130
 | ||||
|   //#define Z_IS_TMC2130
 | ||||
|   //#define Z2_IS_TMC2130
 | ||||
|   //#define E0_IS_TMC2130
 | ||||
|   //#define E1_IS_TMC2130
 | ||||
|   //#define E2_IS_TMC2130
 | ||||
|   //#define E3_IS_TMC2130
 | ||||
| 
 | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
| 
 | ||||
|     // 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.
 | ||||
| 
 | ||||
|     /* GENERAL CONFIGURATION */ | ||||
| 
 | ||||
|     //#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]
 | ||||
| 
 | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
| 
 | ||||
|     #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
 | ||||
| 
 | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
| 
 | ||||
|     //#define GLOBAL_XDIRECT            0
 | ||||
| 
 | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
| 
 | ||||
|     //#define GLOBAL_VDCMIN             0
 | ||||
| 
 | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
| 
 | ||||
|     //#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 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
 | ||||
| 
 | ||||
|     //#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
 | ||||
| 
 | ||||
| // @section L6470
 | ||||
| 
 | ||||
| 
 | ||||
| /**
 | ||||
|  * Enable this section if you have L6470 motor drivers. | ||||
|  * You need to import the L6470 library into the Arduino IDE for this. | ||||
|  * (https://github.com/ameyer/Arduino-L6470)
 | ||||
|  */ | ||||
| 
 | ||||
| //#define HAVE_L6470DRIVER
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
| 
 | ||||
|   //#define X_IS_L6470
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define X2_IS_L6470
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y_IS_L6470
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y2_IS_L6470
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z_IS_L6470
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z2_IS_L6470
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E0_IS_L6470
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E0_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E0_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E1_IS_L6470
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E1_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E1_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E2_IS_L6470
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E3_IS_L6470
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E3_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E3_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X_MICROSTEPS      16 // number of microsteps
 | ||||
|   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT   2000 // maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT  1500 // current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X2_MICROSTEPS     16 | ||||
|   #define X2_K_VAL          50 | ||||
|   #define X2_OVERCURRENT  2000 | ||||
|   #define X2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Y_MICROSTEPS      16 | ||||
|   #define Y_K_VAL           50 | ||||
|   #define Y_OVERCURRENT   2000 | ||||
|   #define Y_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Y2_MICROSTEPS     16 | ||||
|   #define Y2_K_VAL          50 | ||||
|   #define Y2_OVERCURRENT  2000 | ||||
|   #define Y2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Z_MICROSTEPS      16 | ||||
|   #define Z_K_VAL           50 | ||||
|   #define Z_OVERCURRENT   2000 | ||||
|   #define Z_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Z2_MICROSTEPS     16 | ||||
|   #define Z2_K_VAL          50 | ||||
|   #define Z2_OVERCURRENT  2000 | ||||
|   #define Z2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E0_MICROSTEPS     16 | ||||
|   #define E0_K_VAL          50 | ||||
|   #define E0_OVERCURRENT  2000 | ||||
|   #define E0_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E1_MICROSTEPS     16 | ||||
|   #define E1_K_VAL          50 | ||||
|   #define E1_OVERCURRENT  2000 | ||||
|   #define E1_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E2_MICROSTEPS     16 | ||||
|   #define E2_K_VAL          50 | ||||
|   #define E2_OVERCURRENT  2000 | ||||
|   #define E2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E3_MICROSTEPS     16 | ||||
|   #define E3_K_VAL          50 | ||||
|   #define E3_OVERCURRENT  2000 | ||||
|   #define E3_STALLCURRENT 1500 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -705,126 +705,336 @@ | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
| 
 | ||||
|   //#define X_IS_TMC
 | ||||
|   #define X_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define X2_IS_TMC
 | ||||
|   #define X2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y_IS_TMC
 | ||||
|   #define Y_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y2_IS_TMC
 | ||||
|   #define Y2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z_IS_TMC
 | ||||
|   #define Z_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z2_IS_TMC
 | ||||
|   #define Z2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E0_IS_TMC
 | ||||
|   #define E0_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E0_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E1_IS_TMC
 | ||||
|   #define E1_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E1_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E2_IS_TMC
 | ||||
|   #define E2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E3_IS_TMC
 | ||||
|   #define E3_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E3_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   #define X_MAX_CURRENT     1000 // in mA
 | ||||
|   #define X_SENSE_RESISTOR    91 // in mOhms
 | ||||
|   #define X_MICROSTEPS        16 // number of microsteps
 | ||||
| 
 | ||||
|   #define X2_MAX_CURRENT    1000 | ||||
|   #define X2_SENSE_RESISTOR   91 | ||||
|   #define X2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_SENSE_RESISTOR    91 | ||||
|   #define Y_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Y2_MAX_CURRENT    1000 | ||||
|   #define Y2_SENSE_RESISTOR   91 | ||||
|   #define Y2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_SENSE_RESISTOR    91 | ||||
|   #define Z_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Z2_MAX_CURRENT    1000 | ||||
|   #define Z2_SENSE_RESISTOR   91 | ||||
|   #define Z2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E0_MAX_CURRENT    1000 | ||||
|   #define E0_SENSE_RESISTOR   91 | ||||
|   #define E0_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E1_MAX_CURRENT    1000 | ||||
|   #define E1_SENSE_RESISTOR   91 | ||||
|   #define E1_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E2_MAX_CURRENT    1000 | ||||
|   #define E2_SENSE_RESISTOR   91 | ||||
|   #define E2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E3_MAX_CURRENT    1000 | ||||
|   #define E3_SENSE_RESISTOR   91 | ||||
|   #define E3_MICROSTEPS       16 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /******************************************************************************\
 | ||||
|  * enable this section if you have L6470  motor drivers. | ||||
|  * you need to import the L6470 library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
| // @section TMC2130
 | ||||
| 
 | ||||
| // @section l6470
 | ||||
| /**
 | ||||
|  * 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).
 | ||||
|  * | ||||
|  * 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_TMC2130DRIVER
 | ||||
| 
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
| 
 | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION
 | ||||
| 
 | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
 | ||||
|   //#define X_IS_TMC2130
 | ||||
|   //#define X2_IS_TMC2130
 | ||||
|   //#define Y_IS_TMC2130
 | ||||
|   //#define Y2_IS_TMC2130
 | ||||
|   //#define Z_IS_TMC2130
 | ||||
|   //#define Z2_IS_TMC2130
 | ||||
|   //#define E0_IS_TMC2130
 | ||||
|   //#define E1_IS_TMC2130
 | ||||
|   //#define E2_IS_TMC2130
 | ||||
|   //#define E3_IS_TMC2130
 | ||||
| 
 | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
| 
 | ||||
|     // 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.
 | ||||
| 
 | ||||
|     /* GENERAL CONFIGURATION */ | ||||
| 
 | ||||
|     //#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]
 | ||||
| 
 | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
| 
 | ||||
|     #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
 | ||||
| 
 | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
| 
 | ||||
|     //#define GLOBAL_XDIRECT            0
 | ||||
| 
 | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
| 
 | ||||
|     //#define GLOBAL_VDCMIN             0
 | ||||
| 
 | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
| 
 | ||||
|     //#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 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
 | ||||
| 
 | ||||
|     //#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
 | ||||
| 
 | ||||
| // @section L6470
 | ||||
| 
 | ||||
| 
 | ||||
| /**
 | ||||
|  * Enable this section if you have L6470 motor drivers. | ||||
|  * You need to import the L6470 library into the Arduino IDE for this. | ||||
|  * (https://github.com/ameyer/Arduino-L6470)
 | ||||
|  */ | ||||
| 
 | ||||
| //#define HAVE_L6470DRIVER
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
| 
 | ||||
|   //#define X_IS_L6470
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define X2_IS_L6470
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y_IS_L6470
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y2_IS_L6470
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z_IS_L6470
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z2_IS_L6470
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E0_IS_L6470
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E0_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E0_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E1_IS_L6470
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E1_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E1_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E2_IS_L6470
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E3_IS_L6470
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E3_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E3_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X_MICROSTEPS      16 // number of microsteps
 | ||||
|   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT   2000 // maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT  1500 // current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X2_MICROSTEPS     16 | ||||
|   #define X2_K_VAL          50 | ||||
|   #define X2_OVERCURRENT  2000 | ||||
|   #define X2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Y_MICROSTEPS      16 | ||||
|   #define Y_K_VAL           50 | ||||
|   #define Y_OVERCURRENT   2000 | ||||
|   #define Y_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Y2_MICROSTEPS     16 | ||||
|   #define Y2_K_VAL          50 | ||||
|   #define Y2_OVERCURRENT  2000 | ||||
|   #define Y2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Z_MICROSTEPS      16 | ||||
|   #define Z_K_VAL           50 | ||||
|   #define Z_OVERCURRENT   2000 | ||||
|   #define Z_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Z2_MICROSTEPS     16 | ||||
|   #define Z2_K_VAL          50 | ||||
|   #define Z2_OVERCURRENT  2000 | ||||
|   #define Z2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E0_MICROSTEPS     16 | ||||
|   #define E0_K_VAL          50 | ||||
|   #define E0_OVERCURRENT  2000 | ||||
|   #define E0_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E1_MICROSTEPS     16 | ||||
|   #define E1_K_VAL          50 | ||||
|   #define E1_OVERCURRENT  2000 | ||||
|   #define E1_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E2_MICROSTEPS     16 | ||||
|   #define E2_K_VAL          50 | ||||
|   #define E2_OVERCURRENT  2000 | ||||
|   #define E2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E3_MICROSTEPS     16 | ||||
|   #define E3_K_VAL          50 | ||||
|   #define E3_OVERCURRENT  2000 | ||||
|   #define E3_STALLCURRENT 1500 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -707,126 +707,337 @@ | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
| 
 | ||||
|   //#define X_IS_TMC
 | ||||
|   #define X_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define X2_IS_TMC
 | ||||
|   #define X2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y_IS_TMC
 | ||||
|   #define Y_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y2_IS_TMC
 | ||||
|   #define Y2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z_IS_TMC
 | ||||
|   #define Z_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z2_IS_TMC
 | ||||
|   #define Z2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E0_IS_TMC
 | ||||
|   #define E0_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E0_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E1_IS_TMC
 | ||||
|   #define E1_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E1_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E2_IS_TMC
 | ||||
|   #define E2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E3_IS_TMC
 | ||||
|   #define E3_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E3_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   #define X_MAX_CURRENT     1000 // in mA
 | ||||
|   #define X_SENSE_RESISTOR    91 // in mOhms
 | ||||
|   #define X_MICROSTEPS        16 // number of microsteps
 | ||||
| 
 | ||||
|   #define X2_MAX_CURRENT    1000 | ||||
|   #define X2_SENSE_RESISTOR   91 | ||||
|   #define X2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_SENSE_RESISTOR    91 | ||||
|   #define Y_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Y2_MAX_CURRENT    1000 | ||||
|   #define Y2_SENSE_RESISTOR   91 | ||||
|   #define Y2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_SENSE_RESISTOR    91 | ||||
|   #define Z_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Z2_MAX_CURRENT    1000 | ||||
|   #define Z2_SENSE_RESISTOR   91 | ||||
|   #define Z2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E0_MAX_CURRENT    1000 | ||||
|   #define E0_SENSE_RESISTOR   91 | ||||
|   #define E0_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E1_MAX_CURRENT    1000 | ||||
|   #define E1_SENSE_RESISTOR   91 | ||||
|   #define E1_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E2_MAX_CURRENT    1000 | ||||
|   #define E2_SENSE_RESISTOR   91 | ||||
|   #define E2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E3_MAX_CURRENT    1000 | ||||
|   #define E3_SENSE_RESISTOR   91 | ||||
|   #define E3_MICROSTEPS       16 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /******************************************************************************\
 | ||||
|  * enable this section if you have L6470  motor drivers. | ||||
|  * you need to import the L6470 library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
| // @section TMC2130
 | ||||
| 
 | ||||
| // @section l6470
 | ||||
| 
 | ||||
| /**
 | ||||
|  * 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).
 | ||||
|  * | ||||
|  * 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_TMC2130DRIVER
 | ||||
| 
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
| 
 | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION
 | ||||
| 
 | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
 | ||||
|   //#define X_IS_TMC2130
 | ||||
|   //#define X2_IS_TMC2130
 | ||||
|   //#define Y_IS_TMC2130
 | ||||
|   //#define Y2_IS_TMC2130
 | ||||
|   //#define Z_IS_TMC2130
 | ||||
|   //#define Z2_IS_TMC2130
 | ||||
|   //#define E0_IS_TMC2130
 | ||||
|   //#define E1_IS_TMC2130
 | ||||
|   //#define E2_IS_TMC2130
 | ||||
|   //#define E3_IS_TMC2130
 | ||||
| 
 | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
| 
 | ||||
|     // 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.
 | ||||
| 
 | ||||
|     /* GENERAL CONFIGURATION */ | ||||
| 
 | ||||
|     //#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]
 | ||||
| 
 | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
| 
 | ||||
|     #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
 | ||||
| 
 | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
| 
 | ||||
|     //#define GLOBAL_XDIRECT            0
 | ||||
| 
 | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
| 
 | ||||
|     //#define GLOBAL_VDCMIN             0
 | ||||
| 
 | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
| 
 | ||||
|     //#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 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
 | ||||
| 
 | ||||
|     //#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
 | ||||
| 
 | ||||
| // @section L6470
 | ||||
| 
 | ||||
| 
 | ||||
| /**
 | ||||
|  * Enable this section if you have L6470 motor drivers. | ||||
|  * You need to import the L6470 library into the Arduino IDE for this. | ||||
|  * (https://github.com/ameyer/Arduino-L6470)
 | ||||
|  */ | ||||
| 
 | ||||
| //#define HAVE_L6470DRIVER
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
| 
 | ||||
|   //#define X_IS_L6470
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define X2_IS_L6470
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y_IS_L6470
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y2_IS_L6470
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z_IS_L6470
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z2_IS_L6470
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E0_IS_L6470
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E0_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E0_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E1_IS_L6470
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E1_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E1_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E2_IS_L6470
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E3_IS_L6470
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E3_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E3_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X_MICROSTEPS      16 // number of microsteps
 | ||||
|   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT   2000 // maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT  1500 // current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X2_MICROSTEPS     16 | ||||
|   #define X2_K_VAL          50 | ||||
|   #define X2_OVERCURRENT  2000 | ||||
|   #define X2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Y_MICROSTEPS      16 | ||||
|   #define Y_K_VAL           50 | ||||
|   #define Y_OVERCURRENT   2000 | ||||
|   #define Y_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Y2_MICROSTEPS     16 | ||||
|   #define Y2_K_VAL          50 | ||||
|   #define Y2_OVERCURRENT  2000 | ||||
|   #define Y2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Z_MICROSTEPS      16 | ||||
|   #define Z_K_VAL           50 | ||||
|   #define Z_OVERCURRENT   2000 | ||||
|   #define Z_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Z2_MICROSTEPS     16 | ||||
|   #define Z2_K_VAL          50 | ||||
|   #define Z2_OVERCURRENT  2000 | ||||
|   #define Z2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E0_MICROSTEPS     16 | ||||
|   #define E0_K_VAL          50 | ||||
|   #define E0_OVERCURRENT  2000 | ||||
|   #define E0_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E1_MICROSTEPS     16 | ||||
|   #define E1_K_VAL          50 | ||||
|   #define E1_OVERCURRENT  2000 | ||||
|   #define E1_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E2_MICROSTEPS     16 | ||||
|   #define E2_K_VAL          50 | ||||
|   #define E2_OVERCURRENT  2000 | ||||
|   #define E2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E3_MICROSTEPS     16 | ||||
|   #define E3_K_VAL          50 | ||||
|   #define E3_OVERCURRENT  2000 | ||||
|   #define E3_STALLCURRENT 1500 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -707,126 +707,337 @@ | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
| 
 | ||||
|   //#define X_IS_TMC
 | ||||
|   #define X_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define X2_IS_TMC
 | ||||
|   #define X2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y_IS_TMC
 | ||||
|   #define Y_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y2_IS_TMC
 | ||||
|   #define Y2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z_IS_TMC
 | ||||
|   #define Z_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z2_IS_TMC
 | ||||
|   #define Z2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E0_IS_TMC
 | ||||
|   #define E0_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E0_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E1_IS_TMC
 | ||||
|   #define E1_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E1_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E2_IS_TMC
 | ||||
|   #define E2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E3_IS_TMC
 | ||||
|   #define E3_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E3_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   #define X_MAX_CURRENT     1000 // in mA
 | ||||
|   #define X_SENSE_RESISTOR    91 // in mOhms
 | ||||
|   #define X_MICROSTEPS        16 // number of microsteps
 | ||||
| 
 | ||||
|   #define X2_MAX_CURRENT    1000 | ||||
|   #define X2_SENSE_RESISTOR   91 | ||||
|   #define X2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_SENSE_RESISTOR    91 | ||||
|   #define Y_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Y2_MAX_CURRENT    1000 | ||||
|   #define Y2_SENSE_RESISTOR   91 | ||||
|   #define Y2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_SENSE_RESISTOR    91 | ||||
|   #define Z_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Z2_MAX_CURRENT    1000 | ||||
|   #define Z2_SENSE_RESISTOR   91 | ||||
|   #define Z2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E0_MAX_CURRENT    1000 | ||||
|   #define E0_SENSE_RESISTOR   91 | ||||
|   #define E0_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E1_MAX_CURRENT    1000 | ||||
|   #define E1_SENSE_RESISTOR   91 | ||||
|   #define E1_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E2_MAX_CURRENT    1000 | ||||
|   #define E2_SENSE_RESISTOR   91 | ||||
|   #define E2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E3_MAX_CURRENT    1000 | ||||
|   #define E3_SENSE_RESISTOR   91 | ||||
|   #define E3_MICROSTEPS       16 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /******************************************************************************\
 | ||||
|  * enable this section if you have L6470  motor drivers. | ||||
|  * you need to import the L6470 library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
| // @section TMC2130
 | ||||
| 
 | ||||
| // @section l6470
 | ||||
| 
 | ||||
| /**
 | ||||
|  * 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).
 | ||||
|  * | ||||
|  * 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_TMC2130DRIVER
 | ||||
| 
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
| 
 | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION
 | ||||
| 
 | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
 | ||||
|   //#define X_IS_TMC2130
 | ||||
|   //#define X2_IS_TMC2130
 | ||||
|   //#define Y_IS_TMC2130
 | ||||
|   //#define Y2_IS_TMC2130
 | ||||
|   //#define Z_IS_TMC2130
 | ||||
|   //#define Z2_IS_TMC2130
 | ||||
|   //#define E0_IS_TMC2130
 | ||||
|   //#define E1_IS_TMC2130
 | ||||
|   //#define E2_IS_TMC2130
 | ||||
|   //#define E3_IS_TMC2130
 | ||||
| 
 | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
| 
 | ||||
|     // 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.
 | ||||
| 
 | ||||
|     /* GENERAL CONFIGURATION */ | ||||
| 
 | ||||
|     //#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]
 | ||||
| 
 | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
| 
 | ||||
|     #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
 | ||||
| 
 | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
| 
 | ||||
|     //#define GLOBAL_XDIRECT            0
 | ||||
| 
 | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
| 
 | ||||
|     //#define GLOBAL_VDCMIN             0
 | ||||
| 
 | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
| 
 | ||||
|     //#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 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
 | ||||
| 
 | ||||
|     //#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
 | ||||
| 
 | ||||
| // @section L6470
 | ||||
| 
 | ||||
| 
 | ||||
| /**
 | ||||
|  * Enable this section if you have L6470 motor drivers. | ||||
|  * You need to import the L6470 library into the Arduino IDE for this. | ||||
|  * (https://github.com/ameyer/Arduino-L6470)
 | ||||
|  */ | ||||
| 
 | ||||
| //#define HAVE_L6470DRIVER
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
| 
 | ||||
|   //#define X_IS_L6470
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define X2_IS_L6470
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y_IS_L6470
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y2_IS_L6470
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z_IS_L6470
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z2_IS_L6470
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E0_IS_L6470
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E0_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E0_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E1_IS_L6470
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E1_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E1_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E2_IS_L6470
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E3_IS_L6470
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E3_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E3_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X_MICROSTEPS      16 // number of microsteps
 | ||||
|   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT   2000 // maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT  1500 // current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X2_MICROSTEPS     16 | ||||
|   #define X2_K_VAL          50 | ||||
|   #define X2_OVERCURRENT  2000 | ||||
|   #define X2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Y_MICROSTEPS      16 | ||||
|   #define Y_K_VAL           50 | ||||
|   #define Y_OVERCURRENT   2000 | ||||
|   #define Y_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Y2_MICROSTEPS     16 | ||||
|   #define Y2_K_VAL          50 | ||||
|   #define Y2_OVERCURRENT  2000 | ||||
|   #define Y2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Z_MICROSTEPS      16 | ||||
|   #define Z_K_VAL           50 | ||||
|   #define Z_OVERCURRENT   2000 | ||||
|   #define Z_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Z2_MICROSTEPS     16 | ||||
|   #define Z2_K_VAL          50 | ||||
|   #define Z2_OVERCURRENT  2000 | ||||
|   #define Z2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E0_MICROSTEPS     16 | ||||
|   #define E0_K_VAL          50 | ||||
|   #define E0_OVERCURRENT  2000 | ||||
|   #define E0_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E1_MICROSTEPS     16 | ||||
|   #define E1_K_VAL          50 | ||||
|   #define E1_OVERCURRENT  2000 | ||||
|   #define E1_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E2_MICROSTEPS     16 | ||||
|   #define E2_K_VAL          50 | ||||
|   #define E2_OVERCURRENT  2000 | ||||
|   #define E2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E3_MICROSTEPS     16 | ||||
|   #define E3_K_VAL          50 | ||||
|   #define E3_OVERCURRENT  2000 | ||||
|   #define E3_STALLCURRENT 1500 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -707,126 +707,337 @@ | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
| 
 | ||||
|   //#define X_IS_TMC
 | ||||
|   #define X_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define X2_IS_TMC
 | ||||
|   #define X2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y_IS_TMC
 | ||||
|   #define Y_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y2_IS_TMC
 | ||||
|   #define Y2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z_IS_TMC
 | ||||
|   #define Z_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z2_IS_TMC
 | ||||
|   #define Z2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E0_IS_TMC
 | ||||
|   #define E0_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E0_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E1_IS_TMC
 | ||||
|   #define E1_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E1_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E2_IS_TMC
 | ||||
|   #define E2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E3_IS_TMC
 | ||||
|   #define E3_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E3_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   #define X_MAX_CURRENT     1000 // in mA
 | ||||
|   #define X_SENSE_RESISTOR    91 // in mOhms
 | ||||
|   #define X_MICROSTEPS        16 // number of microsteps
 | ||||
| 
 | ||||
|   #define X2_MAX_CURRENT    1000 | ||||
|   #define X2_SENSE_RESISTOR   91 | ||||
|   #define X2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_SENSE_RESISTOR    91 | ||||
|   #define Y_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Y2_MAX_CURRENT    1000 | ||||
|   #define Y2_SENSE_RESISTOR   91 | ||||
|   #define Y2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_SENSE_RESISTOR    91 | ||||
|   #define Z_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Z2_MAX_CURRENT    1000 | ||||
|   #define Z2_SENSE_RESISTOR   91 | ||||
|   #define Z2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E0_MAX_CURRENT    1000 | ||||
|   #define E0_SENSE_RESISTOR   91 | ||||
|   #define E0_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E1_MAX_CURRENT    1000 | ||||
|   #define E1_SENSE_RESISTOR   91 | ||||
|   #define E1_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E2_MAX_CURRENT    1000 | ||||
|   #define E2_SENSE_RESISTOR   91 | ||||
|   #define E2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E3_MAX_CURRENT    1000 | ||||
|   #define E3_SENSE_RESISTOR   91 | ||||
|   #define E3_MICROSTEPS       16 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /******************************************************************************\
 | ||||
|  * enable this section if you have L6470  motor drivers. | ||||
|  * you need to import the L6470 library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
| // @section TMC2130
 | ||||
| 
 | ||||
| // @section l6470
 | ||||
| 
 | ||||
| /**
 | ||||
|  * 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).
 | ||||
|  * | ||||
|  * 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_TMC2130DRIVER
 | ||||
| 
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
| 
 | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION
 | ||||
| 
 | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
 | ||||
|   //#define X_IS_TMC2130
 | ||||
|   //#define X2_IS_TMC2130
 | ||||
|   //#define Y_IS_TMC2130
 | ||||
|   //#define Y2_IS_TMC2130
 | ||||
|   //#define Z_IS_TMC2130
 | ||||
|   //#define Z2_IS_TMC2130
 | ||||
|   //#define E0_IS_TMC2130
 | ||||
|   //#define E1_IS_TMC2130
 | ||||
|   //#define E2_IS_TMC2130
 | ||||
|   //#define E3_IS_TMC2130
 | ||||
| 
 | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
| 
 | ||||
|     // 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.
 | ||||
| 
 | ||||
|     /* GENERAL CONFIGURATION */ | ||||
| 
 | ||||
|     //#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]
 | ||||
| 
 | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
| 
 | ||||
|     #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
 | ||||
| 
 | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
| 
 | ||||
|     //#define GLOBAL_XDIRECT            0
 | ||||
| 
 | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
| 
 | ||||
|     //#define GLOBAL_VDCMIN             0
 | ||||
| 
 | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
| 
 | ||||
|     //#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 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
 | ||||
| 
 | ||||
|     //#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
 | ||||
| 
 | ||||
| // @section L6470
 | ||||
| 
 | ||||
| 
 | ||||
| /**
 | ||||
|  * Enable this section if you have L6470 motor drivers. | ||||
|  * You need to import the L6470 library into the Arduino IDE for this. | ||||
|  * (https://github.com/ameyer/Arduino-L6470)
 | ||||
|  */ | ||||
| 
 | ||||
| //#define HAVE_L6470DRIVER
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
| 
 | ||||
|   //#define X_IS_L6470
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define X2_IS_L6470
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y_IS_L6470
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y2_IS_L6470
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z_IS_L6470
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z2_IS_L6470
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E0_IS_L6470
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E0_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E0_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E1_IS_L6470
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E1_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E1_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E2_IS_L6470
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E3_IS_L6470
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E3_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E3_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X_MICROSTEPS      16 // number of microsteps
 | ||||
|   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT   2000 // maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT  1500 // current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X2_MICROSTEPS     16 | ||||
|   #define X2_K_VAL          50 | ||||
|   #define X2_OVERCURRENT  2000 | ||||
|   #define X2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Y_MICROSTEPS      16 | ||||
|   #define Y_K_VAL           50 | ||||
|   #define Y_OVERCURRENT   2000 | ||||
|   #define Y_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Y2_MICROSTEPS     16 | ||||
|   #define Y2_K_VAL          50 | ||||
|   #define Y2_OVERCURRENT  2000 | ||||
|   #define Y2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Z_MICROSTEPS      16 | ||||
|   #define Z_K_VAL           50 | ||||
|   #define Z_OVERCURRENT   2000 | ||||
|   #define Z_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Z2_MICROSTEPS     16 | ||||
|   #define Z2_K_VAL          50 | ||||
|   #define Z2_OVERCURRENT  2000 | ||||
|   #define Z2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E0_MICROSTEPS     16 | ||||
|   #define E0_K_VAL          50 | ||||
|   #define E0_OVERCURRENT  2000 | ||||
|   #define E0_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E1_MICROSTEPS     16 | ||||
|   #define E1_K_VAL          50 | ||||
|   #define E1_OVERCURRENT  2000 | ||||
|   #define E1_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E2_MICROSTEPS     16 | ||||
|   #define E2_K_VAL          50 | ||||
|   #define E2_OVERCURRENT  2000 | ||||
|   #define E2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E3_MICROSTEPS     16 | ||||
|   #define E3_K_VAL          50 | ||||
|   #define E3_OVERCURRENT  2000 | ||||
|   #define E3_STALLCURRENT 1500 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -712,126 +712,337 @@ | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
| 
 | ||||
|   //#define X_IS_TMC
 | ||||
|   #define X_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define X2_IS_TMC
 | ||||
|   #define X2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y_IS_TMC
 | ||||
|   #define Y_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y2_IS_TMC
 | ||||
|   #define Y2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z_IS_TMC
 | ||||
|   #define Z_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z2_IS_TMC
 | ||||
|   #define Z2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E0_IS_TMC
 | ||||
|   #define E0_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E0_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E1_IS_TMC
 | ||||
|   #define E1_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E1_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E2_IS_TMC
 | ||||
|   #define E2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E3_IS_TMC
 | ||||
|   #define E3_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E3_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   #define X_MAX_CURRENT     1000 // in mA
 | ||||
|   #define X_SENSE_RESISTOR    91 // in mOhms
 | ||||
|   #define X_MICROSTEPS        16 // number of microsteps
 | ||||
| 
 | ||||
|   #define X2_MAX_CURRENT    1000 | ||||
|   #define X2_SENSE_RESISTOR   91 | ||||
|   #define X2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_SENSE_RESISTOR    91 | ||||
|   #define Y_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Y2_MAX_CURRENT    1000 | ||||
|   #define Y2_SENSE_RESISTOR   91 | ||||
|   #define Y2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_SENSE_RESISTOR    91 | ||||
|   #define Z_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Z2_MAX_CURRENT    1000 | ||||
|   #define Z2_SENSE_RESISTOR   91 | ||||
|   #define Z2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E0_MAX_CURRENT    1000 | ||||
|   #define E0_SENSE_RESISTOR   91 | ||||
|   #define E0_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E1_MAX_CURRENT    1000 | ||||
|   #define E1_SENSE_RESISTOR   91 | ||||
|   #define E1_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E2_MAX_CURRENT    1000 | ||||
|   #define E2_SENSE_RESISTOR   91 | ||||
|   #define E2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E3_MAX_CURRENT    1000 | ||||
|   #define E3_SENSE_RESISTOR   91 | ||||
|   #define E3_MICROSTEPS       16 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /******************************************************************************\
 | ||||
|  * enable this section if you have L6470  motor drivers. | ||||
|  * you need to import the L6470 library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
| // @section TMC2130
 | ||||
| 
 | ||||
| // @section l6470
 | ||||
| 
 | ||||
| /**
 | ||||
|  * 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).
 | ||||
|  * | ||||
|  * 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_TMC2130DRIVER
 | ||||
| 
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
| 
 | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION
 | ||||
| 
 | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
 | ||||
|   //#define X_IS_TMC2130
 | ||||
|   //#define X2_IS_TMC2130
 | ||||
|   //#define Y_IS_TMC2130
 | ||||
|   //#define Y2_IS_TMC2130
 | ||||
|   //#define Z_IS_TMC2130
 | ||||
|   //#define Z2_IS_TMC2130
 | ||||
|   //#define E0_IS_TMC2130
 | ||||
|   //#define E1_IS_TMC2130
 | ||||
|   //#define E2_IS_TMC2130
 | ||||
|   //#define E3_IS_TMC2130
 | ||||
| 
 | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
| 
 | ||||
|     // 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.
 | ||||
| 
 | ||||
|     /* GENERAL CONFIGURATION */ | ||||
| 
 | ||||
|     //#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]
 | ||||
| 
 | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
| 
 | ||||
|     #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
 | ||||
| 
 | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
| 
 | ||||
|     //#define GLOBAL_XDIRECT            0
 | ||||
| 
 | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
| 
 | ||||
|     //#define GLOBAL_VDCMIN             0
 | ||||
| 
 | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
| 
 | ||||
|     //#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 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
 | ||||
| 
 | ||||
|     //#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
 | ||||
| 
 | ||||
| // @section L6470
 | ||||
| 
 | ||||
| 
 | ||||
| /**
 | ||||
|  * Enable this section if you have L6470 motor drivers. | ||||
|  * You need to import the L6470 library into the Arduino IDE for this. | ||||
|  * (https://github.com/ameyer/Arduino-L6470)
 | ||||
|  */ | ||||
| 
 | ||||
| //#define HAVE_L6470DRIVER
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
| 
 | ||||
|   //#define X_IS_L6470
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define X2_IS_L6470
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y_IS_L6470
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y2_IS_L6470
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z_IS_L6470
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z2_IS_L6470
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E0_IS_L6470
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E0_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E0_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E1_IS_L6470
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E1_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E1_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E2_IS_L6470
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E3_IS_L6470
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E3_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E3_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X_MICROSTEPS      16 // number of microsteps
 | ||||
|   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT   2000 // maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT  1500 // current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X2_MICROSTEPS     16 | ||||
|   #define X2_K_VAL          50 | ||||
|   #define X2_OVERCURRENT  2000 | ||||
|   #define X2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Y_MICROSTEPS      16 | ||||
|   #define Y_K_VAL           50 | ||||
|   #define Y_OVERCURRENT   2000 | ||||
|   #define Y_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Y2_MICROSTEPS     16 | ||||
|   #define Y2_K_VAL          50 | ||||
|   #define Y2_OVERCURRENT  2000 | ||||
|   #define Y2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Z_MICROSTEPS      16 | ||||
|   #define Z_K_VAL           50 | ||||
|   #define Z_OVERCURRENT   2000 | ||||
|   #define Z_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Z2_MICROSTEPS     16 | ||||
|   #define Z2_K_VAL          50 | ||||
|   #define Z2_OVERCURRENT  2000 | ||||
|   #define Z2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E0_MICROSTEPS     16 | ||||
|   #define E0_K_VAL          50 | ||||
|   #define E0_OVERCURRENT  2000 | ||||
|   #define E0_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E1_MICROSTEPS     16 | ||||
|   #define E1_K_VAL          50 | ||||
|   #define E1_OVERCURRENT  2000 | ||||
|   #define E1_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E2_MICROSTEPS     16 | ||||
|   #define E2_K_VAL          50 | ||||
|   #define E2_OVERCURRENT  2000 | ||||
|   #define E2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E3_MICROSTEPS     16 | ||||
|   #define E3_K_VAL          50 | ||||
|   #define E3_OVERCURRENT  2000 | ||||
|   #define E3_STALLCURRENT 1500 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -707,126 +707,337 @@ | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
| 
 | ||||
|   //#define X_IS_TMC
 | ||||
|   #define X_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define X2_IS_TMC
 | ||||
|   #define X2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y_IS_TMC
 | ||||
|   #define Y_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y2_IS_TMC
 | ||||
|   #define Y2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z_IS_TMC
 | ||||
|   #define Z_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z2_IS_TMC
 | ||||
|   #define Z2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E0_IS_TMC
 | ||||
|   #define E0_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E0_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E1_IS_TMC
 | ||||
|   #define E1_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E1_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E2_IS_TMC
 | ||||
|   #define E2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E3_IS_TMC
 | ||||
|   #define E3_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E3_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   #define X_MAX_CURRENT     1000 // in mA
 | ||||
|   #define X_SENSE_RESISTOR    91 // in mOhms
 | ||||
|   #define X_MICROSTEPS        16 // number of microsteps
 | ||||
| 
 | ||||
|   #define X2_MAX_CURRENT    1000 | ||||
|   #define X2_SENSE_RESISTOR   91 | ||||
|   #define X2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_SENSE_RESISTOR    91 | ||||
|   #define Y_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Y2_MAX_CURRENT    1000 | ||||
|   #define Y2_SENSE_RESISTOR   91 | ||||
|   #define Y2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_SENSE_RESISTOR    91 | ||||
|   #define Z_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Z2_MAX_CURRENT    1000 | ||||
|   #define Z2_SENSE_RESISTOR   91 | ||||
|   #define Z2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E0_MAX_CURRENT    1000 | ||||
|   #define E0_SENSE_RESISTOR   91 | ||||
|   #define E0_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E1_MAX_CURRENT    1000 | ||||
|   #define E1_SENSE_RESISTOR   91 | ||||
|   #define E1_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E2_MAX_CURRENT    1000 | ||||
|   #define E2_SENSE_RESISTOR   91 | ||||
|   #define E2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E3_MAX_CURRENT    1000 | ||||
|   #define E3_SENSE_RESISTOR   91 | ||||
|   #define E3_MICROSTEPS       16 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /******************************************************************************\
 | ||||
|  * enable this section if you have L6470  motor drivers. | ||||
|  * you need to import the L6470 library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
| // @section TMC2130
 | ||||
| 
 | ||||
| // @section l6470
 | ||||
| 
 | ||||
| /**
 | ||||
|  * 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).
 | ||||
|  * | ||||
|  * 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_TMC2130DRIVER
 | ||||
| 
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
| 
 | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION
 | ||||
| 
 | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
 | ||||
|   //#define X_IS_TMC2130
 | ||||
|   //#define X2_IS_TMC2130
 | ||||
|   //#define Y_IS_TMC2130
 | ||||
|   //#define Y2_IS_TMC2130
 | ||||
|   //#define Z_IS_TMC2130
 | ||||
|   //#define Z2_IS_TMC2130
 | ||||
|   //#define E0_IS_TMC2130
 | ||||
|   //#define E1_IS_TMC2130
 | ||||
|   //#define E2_IS_TMC2130
 | ||||
|   //#define E3_IS_TMC2130
 | ||||
| 
 | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
| 
 | ||||
|     // 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.
 | ||||
| 
 | ||||
|     /* GENERAL CONFIGURATION */ | ||||
| 
 | ||||
|     //#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]
 | ||||
| 
 | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
| 
 | ||||
|     #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
 | ||||
| 
 | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
| 
 | ||||
|     //#define GLOBAL_XDIRECT            0
 | ||||
| 
 | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
| 
 | ||||
|     //#define GLOBAL_VDCMIN             0
 | ||||
| 
 | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
| 
 | ||||
|     //#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 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
 | ||||
| 
 | ||||
|     //#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
 | ||||
| 
 | ||||
| // @section L6470
 | ||||
| 
 | ||||
| 
 | ||||
| /**
 | ||||
|  * Enable this section if you have L6470 motor drivers. | ||||
|  * You need to import the L6470 library into the Arduino IDE for this. | ||||
|  * (https://github.com/ameyer/Arduino-L6470)
 | ||||
|  */ | ||||
| 
 | ||||
| //#define HAVE_L6470DRIVER
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
| 
 | ||||
|   //#define X_IS_L6470
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define X2_IS_L6470
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y_IS_L6470
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y2_IS_L6470
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z_IS_L6470
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z2_IS_L6470
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E0_IS_L6470
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E0_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E0_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E1_IS_L6470
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E1_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E1_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E2_IS_L6470
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E3_IS_L6470
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E3_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E3_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X_MICROSTEPS      16 // number of microsteps
 | ||||
|   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT   2000 // maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT  1500 // current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X2_MICROSTEPS     16 | ||||
|   #define X2_K_VAL          50 | ||||
|   #define X2_OVERCURRENT  2000 | ||||
|   #define X2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Y_MICROSTEPS      16 | ||||
|   #define Y_K_VAL           50 | ||||
|   #define Y_OVERCURRENT   2000 | ||||
|   #define Y_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Y2_MICROSTEPS     16 | ||||
|   #define Y2_K_VAL          50 | ||||
|   #define Y2_OVERCURRENT  2000 | ||||
|   #define Y2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Z_MICROSTEPS      16 | ||||
|   #define Z_K_VAL           50 | ||||
|   #define Z_OVERCURRENT   2000 | ||||
|   #define Z_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Z2_MICROSTEPS     16 | ||||
|   #define Z2_K_VAL          50 | ||||
|   #define Z2_OVERCURRENT  2000 | ||||
|   #define Z2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E0_MICROSTEPS     16 | ||||
|   #define E0_K_VAL          50 | ||||
|   #define E0_OVERCURRENT  2000 | ||||
|   #define E0_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E1_MICROSTEPS     16 | ||||
|   #define E1_K_VAL          50 | ||||
|   #define E1_OVERCURRENT  2000 | ||||
|   #define E1_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E2_MICROSTEPS     16 | ||||
|   #define E2_K_VAL          50 | ||||
|   #define E2_OVERCURRENT  2000 | ||||
|   #define E2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E3_MICROSTEPS     16 | ||||
|   #define E3_K_VAL          50 | ||||
|   #define E3_OVERCURRENT  2000 | ||||
|   #define E3_STALLCURRENT 1500 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -705,126 +705,337 @@ | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
| 
 | ||||
|   //#define X_IS_TMC
 | ||||
|   #define X_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define X2_IS_TMC
 | ||||
|   #define X2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y_IS_TMC
 | ||||
|   #define Y_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y2_IS_TMC
 | ||||
|   #define Y2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z_IS_TMC
 | ||||
|   #define Z_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z2_IS_TMC
 | ||||
|   #define Z2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E0_IS_TMC
 | ||||
|   #define E0_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E0_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E1_IS_TMC
 | ||||
|   #define E1_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E1_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E2_IS_TMC
 | ||||
|   #define E2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E3_IS_TMC
 | ||||
|   #define E3_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E3_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   #define X_MAX_CURRENT     1000 // in mA
 | ||||
|   #define X_SENSE_RESISTOR    91 // in mOhms
 | ||||
|   #define X_MICROSTEPS        16 // number of microsteps
 | ||||
| 
 | ||||
|   #define X2_MAX_CURRENT    1000 | ||||
|   #define X2_SENSE_RESISTOR   91 | ||||
|   #define X2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_SENSE_RESISTOR    91 | ||||
|   #define Y_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Y2_MAX_CURRENT    1000 | ||||
|   #define Y2_SENSE_RESISTOR   91 | ||||
|   #define Y2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_SENSE_RESISTOR    91 | ||||
|   #define Z_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Z2_MAX_CURRENT    1000 | ||||
|   #define Z2_SENSE_RESISTOR   91 | ||||
|   #define Z2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E0_MAX_CURRENT    1000 | ||||
|   #define E0_SENSE_RESISTOR   91 | ||||
|   #define E0_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E1_MAX_CURRENT    1000 | ||||
|   #define E1_SENSE_RESISTOR   91 | ||||
|   #define E1_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E2_MAX_CURRENT    1000 | ||||
|   #define E2_SENSE_RESISTOR   91 | ||||
|   #define E2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E3_MAX_CURRENT    1000 | ||||
|   #define E3_SENSE_RESISTOR   91 | ||||
|   #define E3_MICROSTEPS       16 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /******************************************************************************\
 | ||||
|  * enable this section if you have L6470  motor drivers. | ||||
|  * you need to import the L6470 library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
| // @section TMC2130
 | ||||
| 
 | ||||
| // @section l6470
 | ||||
| 
 | ||||
| /**
 | ||||
|  * 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).
 | ||||
|  * | ||||
|  * 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_TMC2130DRIVER
 | ||||
| 
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
| 
 | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION
 | ||||
| 
 | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
 | ||||
|   //#define X_IS_TMC2130
 | ||||
|   //#define X2_IS_TMC2130
 | ||||
|   //#define Y_IS_TMC2130
 | ||||
|   //#define Y2_IS_TMC2130
 | ||||
|   //#define Z_IS_TMC2130
 | ||||
|   //#define Z2_IS_TMC2130
 | ||||
|   //#define E0_IS_TMC2130
 | ||||
|   //#define E1_IS_TMC2130
 | ||||
|   //#define E2_IS_TMC2130
 | ||||
|   //#define E3_IS_TMC2130
 | ||||
| 
 | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
| 
 | ||||
|     // 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.
 | ||||
| 
 | ||||
|     /* GENERAL CONFIGURATION */ | ||||
| 
 | ||||
|     //#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]
 | ||||
| 
 | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
| 
 | ||||
|     #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
 | ||||
| 
 | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
| 
 | ||||
|     //#define GLOBAL_XDIRECT            0
 | ||||
| 
 | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
| 
 | ||||
|     //#define GLOBAL_VDCMIN             0
 | ||||
| 
 | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
| 
 | ||||
|     //#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 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
 | ||||
| 
 | ||||
|     //#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
 | ||||
| 
 | ||||
| // @section L6470
 | ||||
| 
 | ||||
| 
 | ||||
| /**
 | ||||
|  * Enable this section if you have L6470 motor drivers. | ||||
|  * You need to import the L6470 library into the Arduino IDE for this. | ||||
|  * (https://github.com/ameyer/Arduino-L6470)
 | ||||
|  */ | ||||
| 
 | ||||
| //#define HAVE_L6470DRIVER
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
| 
 | ||||
|   //#define X_IS_L6470
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define X2_IS_L6470
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y_IS_L6470
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y2_IS_L6470
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z_IS_L6470
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z2_IS_L6470
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E0_IS_L6470
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E0_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E0_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E1_IS_L6470
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E1_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E1_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E2_IS_L6470
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E3_IS_L6470
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E3_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E3_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X_MICROSTEPS      16 // number of microsteps
 | ||||
|   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT   2000 // maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT  1500 // current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X2_MICROSTEPS     16 | ||||
|   #define X2_K_VAL          50 | ||||
|   #define X2_OVERCURRENT  2000 | ||||
|   #define X2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Y_MICROSTEPS      16 | ||||
|   #define Y_K_VAL           50 | ||||
|   #define Y_OVERCURRENT   2000 | ||||
|   #define Y_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Y2_MICROSTEPS     16 | ||||
|   #define Y2_K_VAL          50 | ||||
|   #define Y2_OVERCURRENT  2000 | ||||
|   #define Y2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Z_MICROSTEPS      16 | ||||
|   #define Z_K_VAL           50 | ||||
|   #define Z_OVERCURRENT   2000 | ||||
|   #define Z_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Z2_MICROSTEPS     16 | ||||
|   #define Z2_K_VAL          50 | ||||
|   #define Z2_OVERCURRENT  2000 | ||||
|   #define Z2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E0_MICROSTEPS     16 | ||||
|   #define E0_K_VAL          50 | ||||
|   #define E0_OVERCURRENT  2000 | ||||
|   #define E0_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E1_MICROSTEPS     16 | ||||
|   #define E1_K_VAL          50 | ||||
|   #define E1_OVERCURRENT  2000 | ||||
|   #define E1_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E2_MICROSTEPS     16 | ||||
|   #define E2_K_VAL          50 | ||||
|   #define E2_OVERCURRENT  2000 | ||||
|   #define E2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E3_MICROSTEPS     16 | ||||
|   #define E3_K_VAL          50 | ||||
|   #define E3_OVERCURRENT  2000 | ||||
|   #define E3_STALLCURRENT 1500 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -705,126 +705,337 @@ | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
| 
 | ||||
|   //#define X_IS_TMC
 | ||||
|   #define X_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define X2_IS_TMC
 | ||||
|   #define X2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define X2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y_IS_TMC
 | ||||
|   #define Y_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Y2_IS_TMC
 | ||||
|   #define Y2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Y2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z_IS_TMC
 | ||||
|   #define Z_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define Z2_IS_TMC
 | ||||
|   #define Z2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define Z2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E0_IS_TMC
 | ||||
|   #define E0_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E0_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E1_IS_TMC
 | ||||
|   #define E1_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E1_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E2_IS_TMC
 | ||||
|   #define E2_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E2_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   //#define E3_IS_TMC
 | ||||
|   #define E3_MAX_CURRENT 1000  //in mA
 | ||||
|   #define E3_SENSE_RESISTOR 91 //in mOhms
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
| 
 | ||||
|   #define X_MAX_CURRENT     1000 // in mA
 | ||||
|   #define X_SENSE_RESISTOR    91 // in mOhms
 | ||||
|   #define X_MICROSTEPS        16 // number of microsteps
 | ||||
| 
 | ||||
|   #define X2_MAX_CURRENT    1000 | ||||
|   #define X2_SENSE_RESISTOR   91 | ||||
|   #define X2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Y_MAX_CURRENT     1000 | ||||
|   #define Y_SENSE_RESISTOR    91 | ||||
|   #define Y_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Y2_MAX_CURRENT    1000 | ||||
|   #define Y2_SENSE_RESISTOR   91 | ||||
|   #define Y2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define Z_MAX_CURRENT     1000 | ||||
|   #define Z_SENSE_RESISTOR    91 | ||||
|   #define Z_MICROSTEPS        16 | ||||
| 
 | ||||
|   #define Z2_MAX_CURRENT    1000 | ||||
|   #define Z2_SENSE_RESISTOR   91 | ||||
|   #define Z2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E0_MAX_CURRENT    1000 | ||||
|   #define E0_SENSE_RESISTOR   91 | ||||
|   #define E0_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E1_MAX_CURRENT    1000 | ||||
|   #define E1_SENSE_RESISTOR   91 | ||||
|   #define E1_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E2_MAX_CURRENT    1000 | ||||
|   #define E2_SENSE_RESISTOR   91 | ||||
|   #define E2_MICROSTEPS       16 | ||||
| 
 | ||||
|   #define E3_MAX_CURRENT    1000 | ||||
|   #define E3_SENSE_RESISTOR   91 | ||||
|   #define E3_MICROSTEPS       16 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| /******************************************************************************\
 | ||||
|  * enable this section if you have L6470  motor drivers. | ||||
|  * you need to import the L6470 library into the Arduino IDE for this | ||||
|  ******************************************************************************/ | ||||
| // @section TMC2130
 | ||||
| 
 | ||||
| // @section l6470
 | ||||
| 
 | ||||
| /**
 | ||||
|  * 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).
 | ||||
|  * | ||||
|  * 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_TMC2130DRIVER
 | ||||
| 
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
| 
 | ||||
|   //#define TMC2130_ADVANCED_CONFIGURATION
 | ||||
| 
 | ||||
|   // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
 | ||||
|   //#define X_IS_TMC2130
 | ||||
|   //#define X2_IS_TMC2130
 | ||||
|   //#define Y_IS_TMC2130
 | ||||
|   //#define Y2_IS_TMC2130
 | ||||
|   //#define Z_IS_TMC2130
 | ||||
|   //#define Z2_IS_TMC2130
 | ||||
|   //#define E0_IS_TMC2130
 | ||||
|   //#define E1_IS_TMC2130
 | ||||
|   //#define E2_IS_TMC2130
 | ||||
|   //#define E3_IS_TMC2130
 | ||||
| 
 | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
| 
 | ||||
|     // 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.
 | ||||
| 
 | ||||
|     /* GENERAL CONFIGURATION */ | ||||
| 
 | ||||
|     //#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]
 | ||||
| 
 | ||||
|     /* VELOCITY-DEPENDENT DRIVE FEATURES */ | ||||
| 
 | ||||
|     #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
 | ||||
| 
 | ||||
|     /* SPI MODE CONFIGURATION */ | ||||
| 
 | ||||
|     //#define GLOBAL_XDIRECT            0
 | ||||
| 
 | ||||
|     /* DCSTEP MINIMUM VELOCITY */ | ||||
| 
 | ||||
|     //#define GLOBAL_VDCMIN             0
 | ||||
| 
 | ||||
|     /* MOTOR DRIVER CONFIGURATION*/ | ||||
| 
 | ||||
|     //#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 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
 | ||||
| 
 | ||||
|     //#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
 | ||||
| 
 | ||||
| // @section L6470
 | ||||
| 
 | ||||
| 
 | ||||
| /**
 | ||||
|  * Enable this section if you have L6470 motor drivers. | ||||
|  * You need to import the L6470 library into the Arduino IDE for this. | ||||
|  * (https://github.com/ameyer/Arduino-L6470)
 | ||||
|  */ | ||||
| 
 | ||||
| //#define HAVE_L6470DRIVER
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
| 
 | ||||
|   //#define X_IS_L6470
 | ||||
|   #define X_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define X2_IS_L6470
 | ||||
|   #define X2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define X2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y_IS_L6470
 | ||||
|   #define Y_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Y2_IS_L6470
 | ||||
|   #define Y2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Y2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Y2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z_IS_L6470
 | ||||
|   #define Z_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define Z2_IS_L6470
 | ||||
|   #define Z2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define Z2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define Z2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E0_IS_L6470
 | ||||
|   #define E0_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E0_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E0_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E1_IS_L6470
 | ||||
|   #define E1_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E1_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E1_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E2_IS_L6470
 | ||||
|   #define E2_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   //#define E3_IS_L6470
 | ||||
|   #define E3_MICROSTEPS 16     //number of microsteps
 | ||||
|   #define E3_K_VAL 50          // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define E3_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X_MICROSTEPS      16 // number of microsteps
 | ||||
|   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
 | ||||
|   #define X_OVERCURRENT   2000 // maxc current in mA. If the current goes over this value, the driver will switch off
 | ||||
|   #define X_STALLCURRENT  1500 // current in mA where the driver will detect a stall
 | ||||
| 
 | ||||
|   #define X2_MICROSTEPS     16 | ||||
|   #define X2_K_VAL          50 | ||||
|   #define X2_OVERCURRENT  2000 | ||||
|   #define X2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Y_MICROSTEPS      16 | ||||
|   #define Y_K_VAL           50 | ||||
|   #define Y_OVERCURRENT   2000 | ||||
|   #define Y_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Y2_MICROSTEPS     16 | ||||
|   #define Y2_K_VAL          50 | ||||
|   #define Y2_OVERCURRENT  2000 | ||||
|   #define Y2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define Z_MICROSTEPS      16 | ||||
|   #define Z_K_VAL           50 | ||||
|   #define Z_OVERCURRENT   2000 | ||||
|   #define Z_STALLCURRENT  1500 | ||||
| 
 | ||||
|   #define Z2_MICROSTEPS     16 | ||||
|   #define Z2_K_VAL          50 | ||||
|   #define Z2_OVERCURRENT  2000 | ||||
|   #define Z2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E0_MICROSTEPS     16 | ||||
|   #define E0_K_VAL          50 | ||||
|   #define E0_OVERCURRENT  2000 | ||||
|   #define E0_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E1_MICROSTEPS     16 | ||||
|   #define E1_K_VAL          50 | ||||
|   #define E1_OVERCURRENT  2000 | ||||
|   #define E1_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E2_MICROSTEPS     16 | ||||
|   #define E2_K_VAL          50 | ||||
|   #define E2_OVERCURRENT  2000 | ||||
|   #define E2_STALLCURRENT 1500 | ||||
| 
 | ||||
|   #define E3_MICROSTEPS     16 | ||||
|   #define E3_K_VAL          50 | ||||
|   #define E3_OVERCURRENT  2000 | ||||
|   #define E3_STALLCURRENT 1500 | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
| @ -93,22 +93,27 @@ | ||||
| #define X_STEP_PIN         54 | ||||
| #define X_DIR_PIN          55 | ||||
| #define X_ENABLE_PIN       38 | ||||
| #define X_CS_PIN           53 | ||||
| 
 | ||||
| #define Y_STEP_PIN         60 | ||||
| #define Y_DIR_PIN          61 | ||||
| #define Y_ENABLE_PIN       56 | ||||
| #define Y_CS_PIN           49 | ||||
| 
 | ||||
| #define Z_STEP_PIN         46 | ||||
| #define Z_DIR_PIN          48 | ||||
| #define Z_ENABLE_PIN       62 | ||||
| #define Z_CS_PIN           40 | ||||
| 
 | ||||
| #define E0_STEP_PIN        26 | ||||
| #define E0_DIR_PIN         28 | ||||
| #define E0_ENABLE_PIN      24 | ||||
| #define E0_CS_PIN          42 | ||||
| 
 | ||||
| #define E1_STEP_PIN        36 | ||||
| #define E1_DIR_PIN         34 | ||||
| #define E1_ENABLE_PIN      30 | ||||
| #define E1_CS_PIN          44 | ||||
| 
 | ||||
| //
 | ||||
| // Temperature Sensors
 | ||||
|  | ||||
| @ -789,6 +789,11 @@ void Stepper::init() { | ||||
|     tmc_init(); | ||||
|   #endif | ||||
| 
 | ||||
|   // Init TMC2130 Steppers
 | ||||
|   #if ENABLED(HAVE_TMC2130DRIVER) | ||||
|     tmc2130_init(); | ||||
|   #endif | ||||
| 
 | ||||
|   // Init L6470 Steppers
 | ||||
|   #if ENABLED(HAVE_L6470DRIVER) | ||||
|     L6470_init(); | ||||
|  | ||||
| @ -45,201 +45,590 @@ | ||||
| 
 | ||||
| #include "MarlinConfig.h" | ||||
| 
 | ||||
| //
 | ||||
| // TMC26X Driver objects and inits
 | ||||
| //
 | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
| 
 | ||||
|   #include <SPI.h> | ||||
|   #include <TMC26XStepper.h> | ||||
| #endif | ||||
| 
 | ||||
| // Stepper objects of TMC steppers used
 | ||||
| #if ENABLED(X_IS_TMC) | ||||
|   TMC26XStepper stepperX(200, X_ENABLE_PIN, X_STEP_PIN, X_DIR_PIN, X_MAX_CURRENT, X_SENSE_RESISTOR); | ||||
| #endif | ||||
| #if ENABLED(X2_IS_TMC) | ||||
|   TMC26XStepper stepperX2(200, X2_ENABLE_PIN, X2_STEP_PIN, X2_DIR_PIN, X2_MAX_CURRENT, X2_SENSE_RESISTOR); | ||||
| #endif | ||||
| #if ENABLED(Y_IS_TMC) | ||||
|   TMC26XStepper stepperY(200, Y_ENABLE_PIN, Y_STEP_PIN, Y_DIR_PIN, Y_MAX_CURRENT, Y_SENSE_RESISTOR); | ||||
| #endif | ||||
| #if ENABLED(Y2_IS_TMC) | ||||
|   TMC26XStepper stepperY2(200, Y2_ENABLE_PIN, Y2_STEP_PIN, Y2_DIR_PIN, Y2_MAX_CURRENT, Y2_SENSE_RESISTOR); | ||||
| #endif | ||||
| #if ENABLED(Z_IS_TMC) | ||||
|   TMC26XStepper stepperZ(200, Z_ENABLE_PIN, Z_STEP_PIN, Z_DIR_PIN, Z_MAX_CURRENT, Z_SENSE_RESISTOR); | ||||
| #endif | ||||
| #if ENABLED(Z2_IS_TMC) | ||||
|   TMC26XStepper stepperZ2(200, Z2_ENABLE_PIN, Z2_STEP_PIN, Z2_DIR_PIN, Z2_MAX_CURRENT, Z2_SENSE_RESISTOR); | ||||
| #endif | ||||
| #if ENABLED(E0_IS_TMC) | ||||
|   TMC26XStepper stepperE0(200, E0_ENABLE_PIN, E0_STEP_PIN, E0_DIR_PIN, E0_MAX_CURRENT, E0_SENSE_RESISTOR); | ||||
| #endif | ||||
| #if ENABLED(E1_IS_TMC) | ||||
|   TMC26XStepper stepperE1(200, E1_ENABLE_PIN, E1_STEP_PIN, E1_DIR_PIN, E1_MAX_CURRENT, E1_SENSE_RESISTOR); | ||||
| #endif | ||||
| #if ENABLED(E2_IS_TMC) | ||||
|   TMC26XStepper stepperE2(200, E2_ENABLE_PIN, E2_STEP_PIN, E2_DIR_PIN, E2_MAX_CURRENT, E2_SENSE_RESISTOR); | ||||
| #endif | ||||
| #if ENABLED(E3_IS_TMC) | ||||
|   TMC26XStepper stepperE3(200, E3_ENABLE_PIN, E3_STEP_PIN, E3_DIR_PIN, E3_MAX_CURRENT, E3_SENSE_RESISTOR); | ||||
| #endif | ||||
| 
 | ||||
| #if ENABLED(HAVE_TMCDRIVER) | ||||
| void tmc_init() { | ||||
|   #if ENABLED(X_IS_TMC) | ||||
|     stepperX.setMicrosteps(X_MICROSTEPS); | ||||
|     stepperX.start(); | ||||
|     TMC26XStepper stepperX(200, X_ENABLE_PIN, X_STEP_PIN, X_DIR_PIN, X_MAX_CURRENT, X_SENSE_RESISTOR); | ||||
|   #endif | ||||
|   #if ENABLED(X2_IS_TMC) | ||||
|     stepperX2.setMicrosteps(X2_MICROSTEPS); | ||||
|     stepperX2.start(); | ||||
|     TMC26XStepper stepperX2(200, X2_ENABLE_PIN, X2_STEP_PIN, X2_DIR_PIN, X2_MAX_CURRENT, X2_SENSE_RESISTOR); | ||||
|   #endif | ||||
|   #if ENABLED(Y_IS_TMC) | ||||
|     stepperY.setMicrosteps(Y_MICROSTEPS); | ||||
|     stepperY.start(); | ||||
|     TMC26XStepper stepperY(200, Y_ENABLE_PIN, Y_STEP_PIN, Y_DIR_PIN, Y_MAX_CURRENT, Y_SENSE_RESISTOR); | ||||
|   #endif | ||||
|   #if ENABLED(Y2_IS_TMC) | ||||
|     stepperY2.setMicrosteps(Y2_MICROSTEPS); | ||||
|     stepperY2.start(); | ||||
|     TMC26XStepper stepperY2(200, Y2_ENABLE_PIN, Y2_STEP_PIN, Y2_DIR_PIN, Y2_MAX_CURRENT, Y2_SENSE_RESISTOR); | ||||
|   #endif | ||||
|   #if ENABLED(Z_IS_TMC) | ||||
|     stepperZ.setMicrosteps(Z_MICROSTEPS); | ||||
|     stepperZ.start(); | ||||
|     TMC26XStepper stepperZ(200, Z_ENABLE_PIN, Z_STEP_PIN, Z_DIR_PIN, Z_MAX_CURRENT, Z_SENSE_RESISTOR); | ||||
|   #endif | ||||
|   #if ENABLED(Z2_IS_TMC) | ||||
|     stepperZ2.setMicrosteps(Z2_MICROSTEPS); | ||||
|     stepperZ2.start(); | ||||
|     TMC26XStepper stepperZ2(200, Z2_ENABLE_PIN, Z2_STEP_PIN, Z2_DIR_PIN, Z2_MAX_CURRENT, Z2_SENSE_RESISTOR); | ||||
|   #endif | ||||
|   #if ENABLED(E0_IS_TMC) | ||||
|     stepperE0.setMicrosteps(E0_MICROSTEPS); | ||||
|     stepperE0.start(); | ||||
|     TMC26XStepper stepperE0(200, E0_ENABLE_PIN, E0_STEP_PIN, E0_DIR_PIN, E0_MAX_CURRENT, E0_SENSE_RESISTOR); | ||||
|   #endif | ||||
|   #if ENABLED(E1_IS_TMC) | ||||
|     stepperE1.setMicrosteps(E1_MICROSTEPS); | ||||
|     stepperE1.start(); | ||||
|     TMC26XStepper stepperE1(200, E1_ENABLE_PIN, E1_STEP_PIN, E1_DIR_PIN, E1_MAX_CURRENT, E1_SENSE_RESISTOR); | ||||
|   #endif | ||||
|   #if ENABLED(E2_IS_TMC) | ||||
|     stepperE2.setMicrosteps(E2_MICROSTEPS); | ||||
|     stepperE2.start(); | ||||
|     TMC26XStepper stepperE2(200, E2_ENABLE_PIN, E2_STEP_PIN, E2_DIR_PIN, E2_MAX_CURRENT, E2_SENSE_RESISTOR); | ||||
|   #endif | ||||
|   #if ENABLED(E3_IS_TMC) | ||||
|     stepperE3.setMicrosteps(E3_MICROSTEPS); | ||||
|     stepperE3.start(); | ||||
|     TMC26XStepper stepperE3(200, E3_ENABLE_PIN, E3_STEP_PIN, E3_DIR_PIN, E3_MAX_CURRENT, E3_SENSE_RESISTOR); | ||||
|   #endif | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
|   #define _TMC_INIT(A) do{ \ | ||||
|     stepper##A.setMicrosteps(A##_MICROSTEPS); | ||||
|     stepper##A.start(); | ||||
|   } while(0) | ||||
| 
 | ||||
|   void tmc_init() { | ||||
|     #if ENABLED(X_IS_TMC) | ||||
|       _TMC_INIT(X); | ||||
|     #endif | ||||
|     #if ENABLED(X2_IS_TMC) | ||||
|       _TMC_INIT(X2); | ||||
|     #endif | ||||
|     #if ENABLED(Y_IS_TMC) | ||||
|       _TMC_INIT(Y); | ||||
|     #endif | ||||
|     #if ENABLED(Y2_IS_TMC) | ||||
|       _TMC_INIT(Y2); | ||||
|     #endif | ||||
|     #if ENABLED(Z_IS_TMC) | ||||
|       _TMC_INIT(Z); | ||||
|     #endif | ||||
|     #if ENABLED(Z2_IS_TMC) | ||||
|       _TMC_INIT(Z2); | ||||
|     #endif | ||||
|     #if ENABLED(E0_IS_TMC) | ||||
|       _TMC_INIT(E0); | ||||
|     #endif | ||||
|     #if ENABLED(E1_IS_TMC) | ||||
|       _TMC_INIT(E1); | ||||
|     #endif | ||||
|     #if ENABLED(E2_IS_TMC) | ||||
|       _TMC_INIT(E2); | ||||
|     #endif | ||||
|     #if ENABLED(E3_IS_TMC) | ||||
|       _TMC_INIT(E3); | ||||
|     #endif | ||||
|   } | ||||
| 
 | ||||
| #endif // HAVE_TMCDRIVER
 | ||||
| 
 | ||||
| //
 | ||||
| // TMC2130 Driver objects and inits
 | ||||
| //
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
| 
 | ||||
|   #include <SPI.h> | ||||
|   #include <Trinamic_TMC2130.h> | ||||
| 
 | ||||
|   #if ENABLED(TMC2130_ADVANCED_CONFIGURATION) | ||||
| 
 | ||||
|     #ifdef GLOBAL_I_SCALE_ANALOG | ||||
|       #define _2130_set_I_scale_analog(A) stepper##A.set_I_scale_analog(GLOBAL_I_SCALE_ANALOG) | ||||
|     #else | ||||
|       #define _2130_set_I_scale_analog(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_INTERNAL_RSENSE | ||||
|       #define _2130_set_internal_Rsense(A) stepper##A.set_internal_Rsense(GLOBAL_INTERNAL_RSENSE) | ||||
|     #else | ||||
|       #define _2130_set_internal_Rsense(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_EN_PWM_MODE | ||||
|       #define _2130_set_en_pwm_mode(A) stepper##A.set_en_pwm_mode(GLOBAL_EN_PWM_MODE) | ||||
|     #else | ||||
|       #define _2130_set_en_pwm_mode(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_ENC_COMMUTATION | ||||
|       #define _2130_set_enc_commutation(A) stepper##A.set_enc_commutation(GLOBAL_ENC_COMMUTATION) | ||||
|     #else | ||||
|       #define _2130_set_enc_commutation(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_SHAFT | ||||
|       #define _2130_set_shaft(A) stepper##A.set_shaft(GLOBAL_SHAFT) | ||||
|     #else | ||||
|       #define _2130_set_shaft(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_DIAG0_ERROR | ||||
|       #define _2130_set_diag0_error(A) stepper##A.set_diag0_error(GLOBAL_DIAG0_ERROR) | ||||
|     #else | ||||
|       #define _2130_set_diag0_error(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_DIAG0_OTPW | ||||
|       #define _2130_set_diag0_otpw(A) stepper##A.set_diag0_otpw(GLOBAL_DIAG0_OTPW) | ||||
|     #else | ||||
|       #define _2130_set_diag0_otpw(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_DIAG0_STALL | ||||
|       #define _2130_set_diag0_stall(A) stepper##A.set_diag0_stall(GLOBAL_DIAG0_STALL) | ||||
|     #else | ||||
|       #define _2130_set_diag0_stall(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_DIAG1_STALL | ||||
|       #define _2130_set_diag1_stall(A) stepper##A.set_diag1_stall(GLOBAL_DIAG1_STALL) | ||||
|     #else | ||||
|       #define _2130_set_diag1_stall(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_DIAG1_INDEX | ||||
|       #define _2130_set_diag1_index(A) stepper##A.set_diag1_index(GLOBAL_DIAG1_INDEX) | ||||
|     #else | ||||
|       #define _2130_set_diag1_index(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_DIAG1_ONSTATE | ||||
|       #define _2130_set_diag1_onstate(A) stepper##A.set_diag1_onstate(GLOBAL_DIAG1_ONSTATE) | ||||
|     #else | ||||
|       #define _2130_set_diag1_onstate(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_DIAG1_ONSTATE | ||||
|       #define _2130_set_diag1_steps_skipped(A) stepper##A.set_diag1_steps_skipped(GLOBAL_DIAG1_ONSTATE) | ||||
|     #else | ||||
|       #define _2130_set_diag1_steps_skipped(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_DIAG0_INT_PUSHPULL | ||||
|       #define _2130_set_diag0_int_pushpull(A) stepper##A.set_diag0_int_pushpull(GLOBAL_DIAG0_INT_PUSHPULL) | ||||
|     #else | ||||
|       #define _2130_set_diag0_int_pushpull(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_DIAG1_INT_PUSHPULL | ||||
|       #define _2130_set_diag1_int_pushpull(A) stepper##A.set_diag1_int_pushpull(GLOBAL_DIAG1_INT_PUSHPULL) | ||||
|     #else | ||||
|       #define _2130_set_diag1_int_pushpull(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_SMALL_HYSTERESIS | ||||
|       #define _2130_set_small_hysteresis(A) stepper##A.set_small_hysteresis(GLOBAL_SMALL_HYSTERESIS) | ||||
|     #else | ||||
|       #define _2130_set_small_hysteresis(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_STOP_ENABLE | ||||
|       #define _2130_set_stop_enable(A) stepper##A.set_stop_enable(GLOBAL_STOP_ENABLE) | ||||
|     #else | ||||
|       #define _2130_set_stop_enable(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_DIRECT_MODE | ||||
|       #define _2130_set_direct_mode(A) stepper##A.set_direct_mode(GLOBAL_DIRECT_MODE) | ||||
|     #else | ||||
|       #define _2130_set_direct_mode(A) NOOP | ||||
|     #endif | ||||
|     #if defined(GLOBAL_IHOLD) && defined(GLOBAL_IRUN) && defined(GLOBAL_IHOLDDELAY) | ||||
|       #define _2130_set_IHOLD_IRUN(A) stepper##A.set_IHOLD_IRUN(GLOBAL_IHOLD, GLOBAL_IRUN, GLOBAL_IHOLDDELAY) | ||||
|     #else | ||||
|       #define _2130_set_IHOLD_IRUN(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_TPOWERDOWN | ||||
|       #define _2130_set_TPOWERDOWN(A) stepper##A.set_TPOWERDOWN(GLOBAL_TPOWERDOWN) | ||||
|     #else | ||||
|       #define _2130_set_TPOWERDOWN(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_TPWMTHRS | ||||
|       #define _2130_set_TPWMTHRS(A) stepper##A.set_TPWMTHRS(GLOBAL_TPWMTHRS) | ||||
|     #else | ||||
|       #define _2130_set_TPWMTHRS(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_TCOOLTHRS | ||||
|       #define _2130_set_TCOOLTHRS(A) stepper##A.set_TCOOLTHRS(GLOBAL_TCOOLTHRS) | ||||
|     #else | ||||
|       #define _2130_set_TCOOLTHRS(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_THIGH | ||||
|       #define _2130_set_THIGH(A) stepper##A.set_THIGH(GLOBAL_THIGH) | ||||
|     #else | ||||
|       #define _2130_set_THIGH(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_XDIRECT | ||||
|       #define _2130_set_XDIRECT(A) stepper##A.set_XDIRECT(GLOBAL_XDIRECT) | ||||
|     #else | ||||
|       #define _2130_set_XDIRECT(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_VDCMIN | ||||
|       #define _2130_set_VDCMIN(A) stepper##A.set_VDCMIN(GLOBAL_VDCMIN) | ||||
|     #else | ||||
|       #define _2130_set_VDCMIN(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_DEDGE | ||||
|       #define _2130_set_dedge(A) stepper##A.set_dedge(GLOBAL_DEDGE) | ||||
|     #else | ||||
|       #define _2130_set_dedge(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_DISS2G | ||||
|       #define _2130_set_diss2g(A) stepper##A.set_diss2g(GLOBAL_DISS2G) | ||||
|     #else | ||||
|       #define _2130_set_diss2g(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_INTPOL | ||||
|       #define _2130_set_intpol(A) stepper##A.set_intpol(GLOBAL_INTPOL) | ||||
|     #else | ||||
|       #define _2130_set_intpol(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_MRES | ||||
|       #define _2130_set_mres(A) stepper##A.set_mres(GLOBAL_MRES) | ||||
|     #else | ||||
|       #define _2130_set_mres(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_SYNC | ||||
|       #define _2130_set_sync(A) stepper##A.set_sync(GLOBAL_SYNC) | ||||
|     #else | ||||
|       #define _2130_set_sync(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_VHIGHCHM | ||||
|       #define _2130_set_vhighchm(A) stepper##A.set_vhighchm(GLOBAL_VHIGHCHM) | ||||
|     #else | ||||
|       #define _2130_set_vhighchm(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_VHIGHFS | ||||
|       #define _2130_set_vhighfs(A) stepper##A.set_vhighfs(GLOBAL_VHIGHFS) | ||||
|     #else | ||||
|       #define _2130_set_vhighfs(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_VSENSE | ||||
|       #define _2130_set_vsense(A) stepper##A.set_vsense(GLOBAL_VSENSE) | ||||
|     #else | ||||
|       #define _2130_set_vsense(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_TBL | ||||
|       #define _2130_set_tbl(A) stepper##A.set_tbl(GLOBAL_TBL) | ||||
|     #else | ||||
|       #define _2130_set_tbl(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_CHM | ||||
|       #define _2130_set_chm(A) stepper##A.set_chm(GLOBAL_CHM) | ||||
|     #else | ||||
|       #define _2130_set_chm(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_RNDTF | ||||
|       #define _2130_set_rndtf(A) stepper##A.set_rndtf(GLOBAL_RNDTF) | ||||
|     #else | ||||
|       #define _2130_set_rndtf(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_DISFDCC | ||||
|       #define _2130_set_disfdcc(A) stepper##A.set_disfdcc(GLOBAL_DISFDCC) | ||||
|     #else | ||||
|       #define _2130_set_disfdcc(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_FD | ||||
|       #define _2130_set_fd(A) stepper##A.set_fd(GLOBAL_FD) | ||||
|     #else | ||||
|       #define _2130_set_fd(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_HEND | ||||
|       #define _2130_set_hend(A) stepper##A.set_hend(GLOBAL_HEND) | ||||
|     #else | ||||
|       #define _2130_set_hend(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_HSTRT | ||||
|       #define _2130_set_hstrt(A) stepper##A.set_hstrt(GLOBAL_HSTRT) | ||||
|     #else | ||||
|       #define _2130_set_hstrt(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_TOFF | ||||
|       #define _2130_set_toff(A) stepper##A.set_toff(GLOBAL_TOFF) | ||||
|     #else | ||||
|       #define _2130_set_toff(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_SFILT | ||||
|       #define _2130_set_sfilt(A) stepper##A.set_sfilt(GLOBAL_SFILT) | ||||
|     #else | ||||
|       #define _2130_set_sfilt(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_SGT | ||||
|       #define _2130_set_sgt(A) stepper##A.set_sgt(GLOBAL_SGT) | ||||
|     #else | ||||
|       #define _2130_set_sgt(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_SEIMIN | ||||
|       #define _2130_set_seimin(A) stepper##A.set_seimin(GLOBAL_SEIMIN) | ||||
|     #else | ||||
|       #define _2130_set_seimin(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_SEDN | ||||
|       #define _2130_set_sedn(A) stepper##A.set_sedn(GLOBAL_SEDN) | ||||
|     #else | ||||
|       #define _2130_set_sedn(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_SEMAX | ||||
|       #define _2130_set_semax(A) stepper##A.set_semax(GLOBAL_SEMAX) | ||||
|     #else | ||||
|       #define _2130_set_semax(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_SEUP | ||||
|       #define _2130_set_seup(A) stepper##A.set_seup(GLOBAL_SEUP) | ||||
|     #else | ||||
|       #define _2130_set_seup(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_SEMIN | ||||
|       #define _2130_set_semin(A) stepper##A.set_semin(GLOBAL_SEMIN) | ||||
|     #else | ||||
|       #define _2130_set_semin(A) NOOP | ||||
|     #endif | ||||
|     #if defined(GLOBAL_DC_TIME) && defined(GLOBAL_DC_SG) | ||||
|       #define _2130_set_DCCTRL(A) stepper##A.set_DCCTRL(GLOBAL_DC_TIME, GLOBAL_DC_SG) | ||||
|     #else | ||||
|       #define _2130_set_DCCTRL(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_FREEWHEEL | ||||
|       #define _2130_set_freewheel(A) stepper##A.set_freewheel(GLOBAL_FREEWHEEL) | ||||
|     #else | ||||
|       #define _2130_set_freewheel(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_PWM_SYMMETRIC | ||||
|       #define _2130_set_pwm_symmetric(A) stepper##A.set_pwm_symmetric(GLOBAL_PWM_SYMMETRIC) | ||||
|     #else | ||||
|       #define _2130_set_pwm_symmetric(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_PWM_AUTOSCALE | ||||
|       #define _2130_set_pwm_autoscale(A) stepper##A.set_pwm_autoscale(GLOBAL_PWM_AUTOSCALE) | ||||
|     #else | ||||
|       #define _2130_set_pwm_autoscale(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_PWM_FREQ | ||||
|       #define _2130_set_pwm_freq(A) stepper##A.set_pwm_freq(GLOBAL_PWM_FREQ) | ||||
|     #else | ||||
|       #define _2130_set_pwm_freq(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_PWM_GRAD | ||||
|       #define _2130_set_PWM_GRAD(A) stepper##A.set_PWM_GRAD(GLOBAL_PWM_GRAD) | ||||
|     #else | ||||
|       #define _2130_set_PWM_GRAD(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_PWM_AMPL | ||||
|       #define _2130_set_PWM_AMPL(A) stepper##A.set_PWM_AMPL(GLOBAL_PWM_AMPL) | ||||
|     #else | ||||
|       #define _2130_set_PWM_AMPL(A) NOOP | ||||
|     #endif | ||||
|     #ifdef GLOBAL_ENCM_CTRL | ||||
|       #define _2130_set_ENCM_CTRL(A) stepper##A.set_ENCM_CTRL(GLOBAL_ENCM_CTRL) | ||||
|     #else | ||||
|       #define _2130_set_ENCM_CTRL(A) NOOP | ||||
|     #endif | ||||
| 
 | ||||
|     #define _TMC2130_INIT(A) do{ \ | ||||
|       stepper##A.init(); \ | ||||
|       _2130_set_I_scale_analog(A); \ | ||||
|       _2130_set_internal_Rsense(A); \ | ||||
|       _2130_set_en_pwm_mode(A); \ | ||||
|       _2130_set_enc_commutation(A); \ | ||||
|       _2130_set_shaft(A); \ | ||||
|       _2130_set_diag0_error(A); \ | ||||
|       _2130_set_diag0_otpw(A); \ | ||||
|       _2130_set_diag0_stall(A); \ | ||||
|       _2130_set_diag1_stall(A); \ | ||||
|       _2130_set_diag1_index(A); \ | ||||
|       _2130_set_diag1_onstate(A); \ | ||||
|       _2130_set_diag1_steps_skipped(A); \ | ||||
|       _2130_set_diag0_int_pushpull(A); \ | ||||
|       _2130_set_diag1_int_pushpull(A); \ | ||||
|       _2130_set_small_hysteresis(A); \ | ||||
|       _2130_set_stop_enable(A); \ | ||||
|       _2130_set_direct_mode(A); \ | ||||
|       _2130_set_IHOLD_IRUN(A); \ | ||||
|       _2130_set_TPOWERDOWN(A); \ | ||||
|       _2130_set_TPWMTHRS(A); \ | ||||
|       _2130_set_TCOOLTHRS(A); \ | ||||
|       _2130_set_THIGH(A); \ | ||||
|       _2130_set_XDIRECT(A); \ | ||||
|       _2130_set_VDCMIN(A); \ | ||||
|       _2130_set_dedge(A); \ | ||||
|       _2130_set_diss2g(A); \ | ||||
|       _2130_set_intpol(A); \ | ||||
|       _2130_set_mres(A); \ | ||||
|       _2130_set_sync(A); \ | ||||
|       _2130_set_vhighchm(A); \ | ||||
|       _2130_set_vhighfs(A); \ | ||||
|       _2130_set_vsense(A); \ | ||||
|       _2130_set_tbl(A); \ | ||||
|       _2130_set_chm(A); \ | ||||
|       _2130_set_rndtf(A); \ | ||||
|       _2130_set_disfdcc(A); \ | ||||
|       _2130_set_fd(A); \ | ||||
|       _2130_set_hend(A); \ | ||||
|       _2130_set_hstrt(A); \ | ||||
|       _2130_set_toff(A); \ | ||||
|       _2130_set_sfilt(A); \ | ||||
|       _2130_set_sgt(A); \ | ||||
|       _2130_set_seimin(A); \ | ||||
|       _2130_set_sedn(A); \ | ||||
|       _2130_set_semax(A); \ | ||||
|       _2130_set_seup(A); \ | ||||
|       _2130_set_semin(A); \ | ||||
|       _2130_set_DCCTRL(A); \ | ||||
|       _2130_set_freewheel(A); \ | ||||
|       _2130_set_pwm_symmetric(A); \ | ||||
|       _2130_set_pwm_autoscale(A); \ | ||||
|       _2130_set_pwm_freq(A); \ | ||||
|       _2130_set_PWM_GRAD(A); \ | ||||
|       _2130_set_PWM_AMPL(A); \ | ||||
|       _2130_set_ENCM_CTRL(A); \ | ||||
|     } while(0) | ||||
| 
 | ||||
|   #else // !TMC2130_ADVANCED_CONFIGURATION
 | ||||
| 
 | ||||
|     #define _TMC2130_INIT(A) do{ \ | ||||
|       stepper##A.init(); \ | ||||
|       stepper##A.set_mres(A##_MRES); \ | ||||
|       stepper##A.set_IHOLD_IRUN(A##_IHOLD, A##_IRUN, A##_IHOLDDELAY); \ | ||||
|       stepper##A.set_I_scale_analog(A##_I_SCALE_ANALOG); \ | ||||
|       stepper##A.set_tbl(A##_TBL); \ | ||||
|       stepper##A.set_toff(A##_TOFF); \ | ||||
|     } while(0) | ||||
| 
 | ||||
|   #endif // TMC2130_ADVANCED_CONFIGURATION
 | ||||
| 
 | ||||
|   // Stepper objects of TMC2310 steppers used
 | ||||
|   #if ENABLED(X_IS_TMC2130) | ||||
|     Trinamic_TMC2130 stepperX(X_CS_PIN); | ||||
|   #endif | ||||
|   #if ENABLED(X2_IS_TMC2130) | ||||
|     Trinamic_TMC2130 stepperX2(X2_CS_PIN); | ||||
|   #endif | ||||
|   #if ENABLED(Y_IS_TMC2130) | ||||
|     Trinamic_TMC2130 stepperY(Y_CS_PIN); | ||||
|   #endif | ||||
|   #if ENABLED(Y2_IS_TMC2130) | ||||
|     Trinamic_TMC2130 stepperY2(Y2_CS_PINR); | ||||
|   #endif | ||||
|   #if ENABLED(Z_IS_TMC2130) | ||||
|     Trinamic_TMC2130 stepperZ(Z_CS_PIN); | ||||
|   #endif | ||||
|   #if ENABLED(Z2_IS_TMC2130) | ||||
|     Trinamic_TMC2130 stepperZ2(Z2_CS_PIN); | ||||
|   #endif | ||||
|   #if ENABLED(E0_IS_TMC2130) | ||||
|     Trinamic_TMC2130 stepperE0(E0_CS_PIN); | ||||
|   #endif | ||||
|   #if ENABLED(E1_IS_TMC2130) | ||||
|     Trinamic_TMC2130 stepperE1(E1_CS_PIN); | ||||
|   #endif | ||||
|   #if ENABLED(E2_IS_TMC2130) | ||||
|     Trinamic_TMC2130 stepperE2(E2_CS_PIN); | ||||
|   #endif | ||||
|   #if ENABLED(E3_IS_TMC2130) | ||||
|     Trinamic_TMC2130 stepperE3(E3_CS_PIN); | ||||
|   #endif | ||||
| 
 | ||||
|   void tmc2130_init() { | ||||
|     #if ENABLED(X_IS_TMC2130) | ||||
|       _TMC2130_INIT(X); | ||||
|     #endif | ||||
|     #if ENABLED(X2_IS_TMC2130) | ||||
|       _TMC2130_INIT(X2); | ||||
|     #endif | ||||
|     #if ENABLED(Y_IS_TMC2130) | ||||
|       _TMC2130_INIT(Y); | ||||
|     #endif | ||||
|     #if ENABLED(Y2_IS_TMC2130) | ||||
|       _TMC2130_INIT(Y2); | ||||
|     #endif | ||||
|     #if ENABLED(Z_IS_TMC2130) | ||||
|       _TMC2130_INIT(Z); | ||||
|     #endif | ||||
|     #if ENABLED(Z2_IS_TMC2130) | ||||
|       _TMC2130_INIT(Z2); | ||||
|     #endif | ||||
|     #if ENABLED(E0_IS_TMC2130) | ||||
|       _TMC2130_INIT(E0); | ||||
|     #endif | ||||
|     #if ENABLED(E1_IS_TMC2130) | ||||
|       _TMC2130_INIT(E1); | ||||
|     #endif | ||||
|     #if ENABLED(E2_IS_TMC2130) | ||||
|       _TMC2130_INIT(E2); | ||||
|     #endif | ||||
|     #if ENABLED(E3_IS_TMC2130) | ||||
|       _TMC2130_INIT(E3); | ||||
|     #endif | ||||
|   } | ||||
| 
 | ||||
| #endif // HAVE_TMC2130DRIVER
 | ||||
| 
 | ||||
| //
 | ||||
| // L6470 Driver objects and inits
 | ||||
| 
 | ||||
| //
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
| 
 | ||||
|   #include <SPI.h> | ||||
|   #include <L6470.h> | ||||
| #endif | ||||
| 
 | ||||
| // L6470 Stepper objects
 | ||||
| #if ENABLED(X_IS_L6470) | ||||
|   L6470 stepperX(X_ENABLE_PIN); | ||||
| #endif | ||||
| #if ENABLED(X2_IS_L6470) | ||||
|   L6470 stepperX2(X2_ENABLE_PIN); | ||||
| #endif | ||||
| #if ENABLED(Y_IS_L6470) | ||||
|   L6470 stepperY(Y_ENABLE_PIN); | ||||
| #endif | ||||
| #if ENABLED(Y2_IS_L6470) | ||||
|   L6470 stepperY2(Y2_ENABLE_PIN); | ||||
| #endif | ||||
| #if ENABLED(Z_IS_L6470) | ||||
|   L6470 stepperZ(Z_ENABLE_PIN); | ||||
| #endif | ||||
| #if ENABLED(Z2_IS_L6470) | ||||
|   L6470 stepperZ2(Z2_ENABLE_PIN); | ||||
| #endif | ||||
| #if ENABLED(E0_IS_L6470) | ||||
|   L6470 stepperE0(E0_ENABLE_PIN); | ||||
| #endif | ||||
| #if ENABLED(E1_IS_L6470) | ||||
|   L6470 stepperE1(E1_ENABLE_PIN); | ||||
| #endif | ||||
| #if ENABLED(E2_IS_L6470) | ||||
|   L6470 stepperE2(E2_ENABLE_PIN); | ||||
| #endif | ||||
| #if ENABLED(E3_IS_L6470) | ||||
|   L6470 stepperE3(E3_ENABLE_PIN); | ||||
| #endif | ||||
| 
 | ||||
| 
 | ||||
| // init routine
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
| void L6470_init() { | ||||
|   // L6470 Stepper objects
 | ||||
|   #if ENABLED(X_IS_L6470) | ||||
|     stepperX.init(X_K_VAL); | ||||
|     stepperX.softFree(); | ||||
|     stepperX.setMicroSteps(X_MICROSTEPS); | ||||
|     stepperX.setOverCurrent(X_OVERCURRENT); //set overcurrent protection
 | ||||
|     stepperX.setStallCurrent(X_STALLCURRENT); | ||||
|     L6470 stepperX(X_ENABLE_PIN); | ||||
|   #endif | ||||
|   #if ENABLED(X2_IS_L6470) | ||||
|     stepperX2.init(X2_K_VAL); | ||||
|     stepperX2.softFree(); | ||||
|     stepperX2.setMicroSteps(X2_MICROSTEPS); | ||||
|     stepperX2.setOverCurrent(X2_OVERCURRENT); //set overcurrent protection
 | ||||
|     stepperX2.setStallCurrent(X2_STALLCURRENT); | ||||
|     L6470 stepperX2(X2_ENABLE_PIN); | ||||
|   #endif | ||||
|   #if ENABLED(Y_IS_L6470) | ||||
|     stepperY.init(Y_K_VAL); | ||||
|     stepperY.softFree(); | ||||
|     stepperY.setMicroSteps(Y_MICROSTEPS); | ||||
|     stepperY.setOverCurrent(Y_OVERCURRENT); //set overcurrent protection
 | ||||
|     stepperY.setStallCurrent(Y_STALLCURRENT); | ||||
|     L6470 stepperY(Y_ENABLE_PIN); | ||||
|   #endif | ||||
|   #if ENABLED(Y2_IS_L6470) | ||||
|     stepperY2.init(Y2_K_VAL); | ||||
|     stepperY2.softFree(); | ||||
|     stepperY2.setMicroSteps(Y2_MICROSTEPS); | ||||
|     stepperY2.setOverCurrent(Y2_OVERCURRENT); //set overcurrent protection
 | ||||
|     stepperY2.setStallCurrent(Y2_STALLCURRENT); | ||||
|     L6470 stepperY2(Y2_ENABLE_PIN); | ||||
|   #endif | ||||
|   #if ENABLED(Z_IS_L6470) | ||||
|     stepperZ.init(Z_K_VAL); | ||||
|     stepperZ.softFree(); | ||||
|     stepperZ.setMicroSteps(Z_MICROSTEPS); | ||||
|     stepperZ.setOverCurrent(Z_OVERCURRENT); //set overcurrent protection
 | ||||
|     stepperZ.setStallCurrent(Z_STALLCURRENT); | ||||
|     L6470 stepperZ(Z_ENABLE_PIN); | ||||
|   #endif | ||||
|   #if ENABLED(Z2_IS_L6470) | ||||
|     stepperZ2.init(Z2_K_VAL); | ||||
|     stepperZ2.softFree(); | ||||
|     stepperZ2.setMicroSteps(Z2_MICROSTEPS); | ||||
|     stepperZ2.setOverCurrent(Z2_OVERCURRENT); //set overcurrent protection
 | ||||
|     stepperZ2.setStallCurrent(Z2_STALLCURRENT); | ||||
|     L6470 stepperZ2(Z2_ENABLE_PIN); | ||||
|   #endif | ||||
|   #if ENABLED(E0_IS_L6470) | ||||
|     stepperE0.init(E0_K_VAL); | ||||
|     stepperE0.softFree(); | ||||
|     stepperE0.setMicroSteps(E0_MICROSTEPS); | ||||
|     stepperE0.setOverCurrent(E0_OVERCURRENT); //set overcurrent protection
 | ||||
|     stepperE0.setStallCurrent(E0_STALLCURRENT); | ||||
|     L6470 stepperE0(E0_ENABLE_PIN); | ||||
|   #endif | ||||
|   #if ENABLED(E1_IS_L6470) | ||||
|     stepperE1.init(E1_K_VAL); | ||||
|     stepperE1.softFree(); | ||||
|     stepperE1.setMicroSteps(E1_MICROSTEPS); | ||||
|     stepperE1.setOverCurrent(E1_OVERCURRENT); //set overcurrent protection
 | ||||
|     stepperE1.setStallCurrent(E1_STALLCURRENT); | ||||
|     L6470 stepperE1(E1_ENABLE_PIN); | ||||
|   #endif | ||||
|   #if ENABLED(E2_IS_L6470) | ||||
|     stepperE2.init(E2_K_VAL); | ||||
|     stepperE2.softFree(); | ||||
|     stepperE2.setMicroSteps(E2_MICROSTEPS); | ||||
|     stepperE2.setOverCurrent(E2_OVERCURRENT); //set overcurrent protection
 | ||||
|     stepperE2.setStallCurrent(E2_STALLCURRENT); | ||||
|     L6470 stepperE2(E2_ENABLE_PIN); | ||||
|   #endif | ||||
|   #if ENABLED(E3_IS_L6470) | ||||
|     stepperE3.init(E3_K_VAL); | ||||
|     stepperE3.softFree(); | ||||
|     stepperE3.setMicroSteps(E3_MICROSTEPS); | ||||
|     stepperE3.setOverCurrent(E3_OVERCURRENT); //set overcurrent protection
 | ||||
|     stepperE3.setStallCurrent(E3_STALLCURRENT); | ||||
|     L6470 stepperE3(E3_ENABLE_PIN); | ||||
|   #endif | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
|   #define _L6470_INIT(A) do{ \ | ||||
|     stepper##A.init(A##_K_VAL); \ | ||||
|     stepper##A.softFree(); \ | ||||
|     stepper##A.setMicroSteps(A##_MICROSTEPS); \ | ||||
|     stepper##A.setOverCurrent(A##_OVERCURRENT); \ | ||||
|     stepper##A.setStallCurrent(A##_STALLCURRENT); \ | ||||
|   } while(0) | ||||
| 
 | ||||
|   void L6470_init() { | ||||
|     #if ENABLED(X_IS_L6470) | ||||
|       _L6470_INIT(X); | ||||
|     #endif | ||||
|     #if ENABLED(X2_IS_L6470) | ||||
|       _L6470_INIT(X2); | ||||
|     #endif | ||||
|     #if ENABLED(Y_IS_L6470) | ||||
|       _L6470_INIT(Y); | ||||
|     #endif | ||||
|     #if ENABLED(Y2_IS_L6470) | ||||
|       _L6470_INIT(Y2); | ||||
|     #endif | ||||
|     #if ENABLED(Z_IS_L6470) | ||||
|       _L6470_INIT(Z); | ||||
|     #endif | ||||
|     #if ENABLED(Z2_IS_L6470) | ||||
|       _L6470_INIT(Z2); | ||||
|     #endif | ||||
|     #if ENABLED(E0_IS_L6470) | ||||
|       _L6470_INIT(E0); | ||||
|     #endif | ||||
|     #if ENABLED(E1_IS_L6470) | ||||
|       _L6470_INIT(E1); | ||||
|     #endif | ||||
|     #if ENABLED(E2_IS_L6470) | ||||
|       _L6470_INIT(E2); | ||||
|     #endif | ||||
|     #if ENABLED(E3_IS_L6470) | ||||
|       _L6470_INIT(E3); | ||||
|     #endif | ||||
|   } | ||||
| 
 | ||||
| #endif // HAVE_L6470DRIVER
 | ||||
| 
 | ||||
|  | ||||
| @ -53,6 +53,13 @@ | ||||
|   void tmc_init(); | ||||
| #endif | ||||
| 
 | ||||
| // TMC130 drivers have STEP/DIR/ENABLE on normal pins
 | ||||
| #if ENABLED(HAVE_TMC2130DRIVER) | ||||
|   #include <SPI.h> | ||||
|   #include <Trinamic_TMC2130.h> | ||||
|   void tmc2130_init(); | ||||
| #endif | ||||
| 
 | ||||
| // L6470 has STEP on normal pins, but DIR/ENABLE via SPI
 | ||||
| #if ENABLED(HAVE_L6470DRIVER) | ||||
|   #include <SPI.h> | ||||
| @ -76,6 +83,9 @@ | ||||
|     #define X_ENABLE_WRITE(STATE) stepperX.setEnabled(STATE) | ||||
|     #define X_ENABLE_READ stepperX.isEnabled() | ||||
|   #else | ||||
|     #if ENABLED(HAVE_TMC2130DRIVER) && ENABLED(X_IS_TMC2130) | ||||
|       extern Trinamic_TMC2130 stepperX; | ||||
|     #endif | ||||
|     #define X_ENABLE_INIT SET_OUTPUT(X_ENABLE_PIN) | ||||
|     #define X_ENABLE_WRITE(STATE) WRITE(X_ENABLE_PIN,STATE) | ||||
|     #define X_ENABLE_READ READ(X_ENABLE_PIN) | ||||
| @ -104,6 +114,9 @@ | ||||
|     #define Y_ENABLE_WRITE(STATE) stepperY.setEnabled(STATE) | ||||
|     #define Y_ENABLE_READ stepperY.isEnabled() | ||||
|   #else | ||||
|     #if ENABLED(HAVE_TMC2130DRIVER) && ENABLED(Y_IS_TMC2130) | ||||
|       extern Trinamic_TMC2130 stepperY; | ||||
|     #endif | ||||
|     #define Y_ENABLE_INIT SET_OUTPUT(Y_ENABLE_PIN) | ||||
|     #define Y_ENABLE_WRITE(STATE) WRITE(Y_ENABLE_PIN,STATE) | ||||
|     #define Y_ENABLE_READ READ(Y_ENABLE_PIN) | ||||
| @ -132,6 +145,9 @@ | ||||
|     #define Z_ENABLE_WRITE(STATE) stepperZ.setEnabled(STATE) | ||||
|     #define Z_ENABLE_READ stepperZ.isEnabled() | ||||
|   #else | ||||
|     #if ENABLED(HAVE_TMC2130DRIVER) && ENABLED(Z_IS_TMC2130) | ||||
|       extern Trinamic_TMC2130 stepperZ; | ||||
|     #endif | ||||
|     #define Z_ENABLE_INIT SET_OUTPUT(Z_ENABLE_PIN) | ||||
|     #define Z_ENABLE_WRITE(STATE) WRITE(Z_ENABLE_PIN,STATE) | ||||
|     #define Z_ENABLE_READ READ(Z_ENABLE_PIN) | ||||
| @ -161,6 +177,9 @@ | ||||
|       #define X2_ENABLE_WRITE(STATE) stepperX2.setEnabled(STATE) | ||||
|       #define X2_ENABLE_READ stepperX2.isEnabled() | ||||
|     #else | ||||
|       #if ENABLED(HAVE_TMC2130DRIVER) && ENABLED(X2_IS_TMC2130) | ||||
|         extern Trinamic_TMC2130 stepperX2; | ||||
|       #endif | ||||
|       #define X2_ENABLE_INIT SET_OUTPUT(X2_ENABLE_PIN) | ||||
|       #define X2_ENABLE_WRITE(STATE) WRITE(X2_ENABLE_PIN,STATE) | ||||
|       #define X2_ENABLE_READ READ(X2_ENABLE_PIN) | ||||
| @ -191,6 +210,9 @@ | ||||
|       #define Y2_ENABLE_WRITE(STATE) stepperY2.setEnabled(STATE) | ||||
|       #define Y2_ENABLE_READ stepperY2.isEnabled() | ||||
|     #else | ||||
|       #if ENABLED(HAVE_TMC2130DRIVER) && ENABLED(Y2_IS_TMC2130) | ||||
|         extern Trinamic_TMC2130 stepperY2; | ||||
|       #endif | ||||
|       #define Y2_ENABLE_INIT SET_OUTPUT(Y2_ENABLE_PIN) | ||||
|       #define Y2_ENABLE_WRITE(STATE) WRITE(Y2_ENABLE_PIN,STATE) | ||||
|       #define Y2_ENABLE_READ READ(Y2_ENABLE_PIN) | ||||
| @ -221,6 +243,9 @@ | ||||
|       #define Z2_ENABLE_WRITE(STATE) stepperZ2.setEnabled(STATE) | ||||
|       #define Z2_ENABLE_READ stepperZ2.isEnabled() | ||||
|     #else | ||||
|       #if ENABLED(HAVE_TMC2130DRIVER) && ENABLED(Z2_IS_TMC2130) | ||||
|         extern Trinamic_TMC2130 stepperZ2; | ||||
|       #endif | ||||
|       #define Z2_ENABLE_INIT SET_OUTPUT(Z2_ENABLE_PIN) | ||||
|       #define Z2_ENABLE_WRITE(STATE) WRITE(Z2_ENABLE_PIN,STATE) | ||||
|       #define Z2_ENABLE_READ READ(Z2_ENABLE_PIN) | ||||
| @ -250,6 +275,9 @@ | ||||
|     #define E0_ENABLE_WRITE(STATE) stepperE0.setEnabled(STATE) | ||||
|     #define E0_ENABLE_READ stepperE0.isEnabled() | ||||
|   #else | ||||
|     #if ENABLED(HAVE_TMC2130DRIVER) && ENABLED(E0_IS_TMC2130) | ||||
|       extern Trinamic_TMC2130 stepperE0; | ||||
|     #endif | ||||
|     #define E0_ENABLE_INIT SET_OUTPUT(E0_ENABLE_PIN) | ||||
|     #define E0_ENABLE_WRITE(STATE) WRITE(E0_ENABLE_PIN,STATE) | ||||
|     #define E0_ENABLE_READ READ(E0_ENABLE_PIN) | ||||
| @ -278,6 +306,9 @@ | ||||
|     #define E1_ENABLE_WRITE(STATE) stepperE1.setEnabled(STATE) | ||||
|     #define E1_ENABLE_READ stepperE1.isEnabled() | ||||
|   #else | ||||
|     #if ENABLED(HAVE_TMC2130DRIVER) && ENABLED(E1_IS_TMC2130) | ||||
|       extern Trinamic_TMC2130 stepperE1; | ||||
|     #endif | ||||
|     #define E1_ENABLE_INIT SET_OUTPUT(E1_ENABLE_PIN) | ||||
|     #define E1_ENABLE_WRITE(STATE) WRITE(E1_ENABLE_PIN,STATE) | ||||
|     #define E1_ENABLE_READ READ(E1_ENABLE_PIN) | ||||
| @ -306,6 +337,9 @@ | ||||
|     #define E2_ENABLE_WRITE(STATE) stepperE2.setEnabled(STATE) | ||||
|     #define E2_ENABLE_READ stepperE2.isEnabled() | ||||
|   #else | ||||
|     #if ENABLED(HAVE_TMC2130DRIVER) && ENABLED(E2_IS_TMC2130) | ||||
|       extern Trinamic_TMC2130 stepperE2; | ||||
|     #endif | ||||
|     #define E2_ENABLE_INIT SET_OUTPUT(E2_ENABLE_PIN) | ||||
|     #define E2_ENABLE_WRITE(STATE) WRITE(E2_ENABLE_PIN,STATE) | ||||
|     #define E2_ENABLE_READ READ(E2_ENABLE_PIN) | ||||
| @ -334,6 +368,9 @@ | ||||
|     #define E3_ENABLE_WRITE(STATE) stepperE3.setEnabled(STATE) | ||||
|     #define E3_ENABLE_READ stepperE3.isEnabled() | ||||
|   #else | ||||
|     #if ENABLED(HAVE_TMC2130DRIVER) && ENABLED(E3_IS_TMC2130) | ||||
|       extern Trinamic_TMC2130 stepperE3; | ||||
|     #endif | ||||
|     #define E3_ENABLE_INIT SET_OUTPUT(E3_ENABLE_PIN) | ||||
|     #define E3_ENABLE_WRITE(STATE) WRITE(E3_ENABLE_PIN,STATE) | ||||
|     #define E3_ENABLE_READ READ(E3_ENABLE_PIN) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user