TMC connection test, spreadCycle parameters, improved debugging (#12616)

2.0.x
teemuatlut 6 years ago committed by Scott Lahteine
parent 97de9d54a5
commit 55144284c2

@ -1298,17 +1298,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1391,6 +1388,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -945,6 +945,10 @@ void setup() {
#if ENABLED(SDSUPPORT) && DISABLED(ULTRA_LCD)
card.beginautostart();
#endif
#if HAS_TRINAMIC && DISABLED(PS_DEFAULT_OFF)
test_tmc_connection(true, true, true, true);
#endif
}
/**

@ -1298,17 +1298,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1391,6 +1388,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1296,17 +1296,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1389,6 +1386,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1271,17 +1271,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1364,6 +1361,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1296,17 +1296,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1389,6 +1386,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1305,17 +1305,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1398,6 +1395,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1299,17 +1299,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1392,6 +1389,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1302,17 +1302,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1395,6 +1392,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1302,17 +1302,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1395,6 +1392,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1298,17 +1298,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1391,6 +1388,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1305,17 +1305,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1398,6 +1395,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1298,17 +1298,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1391,6 +1388,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1310,17 +1310,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1403,6 +1400,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1299,17 +1299,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1392,6 +1389,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1299,17 +1299,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1392,6 +1389,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1299,17 +1299,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1392,6 +1389,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1299,17 +1299,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1392,6 +1389,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1299,17 +1299,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1392,6 +1389,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1272,17 +1272,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1365,6 +1362,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1299,17 +1299,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1392,6 +1389,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1299,17 +1299,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1392,6 +1389,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1299,17 +1299,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1392,6 +1389,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1299,17 +1299,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1392,6 +1389,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1299,17 +1299,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1392,6 +1389,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1297,17 +1297,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1390,6 +1387,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -1298,17 +1298,14 @@
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
* You may also use software SPI if you wish to use general purpose IO pins.
*
* The TMC2130Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2130Stepper
*
* To use TMC2208 stepper UART-configurable stepper drivers
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
* to PDN_UART without a resistor.
* The drivers can also be used with hardware serial.
*
* The TMC2208Stepper library is required for this stepper driver.
* https://github.com/teemuatlut/TMC2208Stepper
* TMCStepper library is required for connected TMC stepper drivers.
* https://github.com/teemuatlut/TMCStepper
*/
#if HAS_TRINAMIC
@ -1391,6 +1388,12 @@
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Adjust spreadCycle chopper parameters with the help of an example included in the library.
* The parameters are off time, hysteresis end and hysteresis start.
*/
#define CHOPPER_TIMING { 4, -2, 1 }
/**
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
* like overtemperature and short to ground. TMC2208 requires hardware serial.

@ -34,7 +34,10 @@
#if ENABLED(TMC_DEBUG)
#include "../module/planner.h"
static bool report_tmc_status; // = false;
#include "../libs/hex_print_routines.h"
#if ENABLED(MONITOR_DRIVER_STATUS)
static bool report_tmc_status; // = false;
#endif
#endif
/**
@ -130,7 +133,7 @@
if (data.is_s2ga) SERIAL_ECHOLNPGM("short to ground (coil A)");
if (data.is_s2gb) SERIAL_ECHOLNPGM("short to ground (coil B)");
#if ENABLED(TMC_DEBUG)
tmc_report_all();
tmc_report_all(true, true, true, true);
#endif
kill(PSTR("Driver error"));
}
@ -326,16 +329,28 @@
TMC_S2VSB,
TMC_S2VSA
};
static void drv_status_print_hex(const uint32_t drv_status) {
for (int B = 24; B >= 8; B -= 8){
SERIAL_PRINT((drv_status >> (B + 4)) & 0xF, HEX);
SERIAL_PRINT((drv_status >> B) & 0xF, HEX);
SERIAL_CHAR(':');
}
SERIAL_PRINT((drv_status >> 4) & 0xF, HEX);
SERIAL_PRINT((drv_status) & 0xF, HEX);
SERIAL_EOL();
}
enum TMC_get_registers_enum : char {
TMC_AXIS_CODES,
TMC_GET_GCONF,
TMC_GET_IHOLD_IRUN,
TMC_GET_GSTAT,
TMC_GET_IOIN,
TMC_GET_TPOWERDOWN,
TMC_GET_TSTEP,
TMC_GET_TPWMTHRS,
TMC_GET_TCOOLTHRS,
TMC_GET_THIGH,
TMC_GET_CHOPCONF,
TMC_GET_COOLCONF,
TMC_GET_PWMCONF,
TMC_GET_PWM_SCALE,
TMC_GET_DRV_STATUS,
TMC_GET_DRVCONF,
TMC_GET_DRVCTRL,
TMC_GET_DRVSTATUS,
TMC_GET_SGCSCONF,
TMC_GET_SMARTEN
};
template<class TMC>
static void print_vsense(TMC &st) { serialprintPGM(st.vsense() ? PSTR("1=.18") : PSTR("0=.325")); }
@ -480,125 +495,146 @@
case TMC_S2GA: if (st.s2ga()) SERIAL_CHAR('X'); break;
case TMC_DRV_OTPW: if (st.otpw()) SERIAL_CHAR('X'); break;
case TMC_OT: if (st.ot()) SERIAL_CHAR('X'); break;
case TMC_DRV_STATUS_HEX:
case TMC_DRV_STATUS_HEX: {
const uint32_t drv_status = st.DRV_STATUS();
SERIAL_CHAR('\t');
st.printLabel();
SERIAL_ECHOPGM("\t0x");
drv_status_print_hex(st.DRV_STATUS());
SERIAL_CHAR('\t');
print_hex_long(drv_status, ':');
if (drv_status == 0xFFFFFFFF || drv_status == 0) SERIAL_ECHOPGM("\t Bad response!");
SERIAL_EOL();
break;
}
default: _tmc_parse_drv_status(st, i); break;
}
}
static void tmc_debug_loop(const TMC_debug_enum i) {
#if AXIS_IS_TMC(X)
tmc_status(stepperX, i, planner.settings.axis_steps_per_mm[X_AXIS]);
#endif
#if AXIS_IS_TMC(X2)
tmc_status(stepperX2, i, planner.settings.axis_steps_per_mm[X_AXIS]);
#endif
static void tmc_debug_loop(const TMC_debug_enum i, const bool print_x, const bool print_y, const bool print_z, const bool print_e) {
if (print_x) {
#if AXIS_IS_TMC(X)
tmc_status(stepperX, i, planner.settings.axis_steps_per_mm[X_AXIS]);
#endif
#if AXIS_IS_TMC(X2)
tmc_status(stepperX2, i, planner.settings.axis_steps_per_mm[X_AXIS]);
#endif
}
#if AXIS_IS_TMC(Y)
tmc_status(stepperY, i, planner.settings.axis_steps_per_mm[Y_AXIS]);
#endif
#if AXIS_IS_TMC(Y2)
tmc_status(stepperY2, i, planner.settings.axis_steps_per_mm[Y_AXIS]);
#endif
if (print_y) {
#if AXIS_IS_TMC(Y)
tmc_status(stepperY, i, planner.settings.axis_steps_per_mm[Y_AXIS]);
#endif
#if AXIS_IS_TMC(Y2)
tmc_status(stepperY2, i, planner.settings.axis_steps_per_mm[Y_AXIS]);
#endif
}
#if AXIS_IS_TMC(Z)
tmc_status(stepperZ, i, planner.settings.axis_steps_per_mm[Z_AXIS]);
#endif
#if AXIS_IS_TMC(Z2)
tmc_status(stepperZ2, i, planner.settings.axis_steps_per_mm[Z_AXIS]);
#endif
#if AXIS_IS_TMC(Z3)
tmc_status(stepperZ3, i, planner.settings.axis_steps_per_mm[Z_AXIS]);
#endif
if (print_z) {
#if AXIS_IS_TMC(Z)
tmc_status(stepperZ, i, planner.settings.axis_steps_per_mm[Z_AXIS]);
#endif
#if AXIS_IS_TMC(Z2)
tmc_status(stepperZ2, i, planner.settings.axis_steps_per_mm[Z_AXIS]);
#endif
#if AXIS_IS_TMC(Z3)
tmc_status(stepperZ3, i, planner.settings.axis_steps_per_mm[Z_AXIS]);
#endif
}
#if AXIS_IS_TMC(E0)
tmc_status(stepperE0, i, planner.settings.axis_steps_per_mm[E_AXIS]);
#endif
#if AXIS_IS_TMC(E1)
tmc_status(stepperE1, i, planner.settings.axis_steps_per_mm[E_AXIS
#if ENABLED(DISTINCT_E_FACTORS)
+ 1
#endif
]);
#endif
#if AXIS_IS_TMC(E2)
tmc_status(stepperE2, i, planner.settings.axis_steps_per_mm[E_AXIS
#if ENABLED(DISTINCT_E_FACTORS)
+ 2
#endif
]);
#endif
#if AXIS_IS_TMC(E3)
tmc_status(stepperE3, i, planner.settings.axis_steps_per_mm[E_AXIS
#if ENABLED(DISTINCT_E_FACTORS)
+ 3
#endif
]);
#endif
#if AXIS_IS_TMC(E4)
tmc_status(stepperE4, i, planner.settings.axis_steps_per_mm[E_AXIS
#if ENABLED(DISTINCT_E_FACTORS)
+ 4
#endif
]);
#endif
#if AXIS_IS_TMC(E5)
tmc_status(stepperE5, i, planner.settings.axis_steps_per_mm[E_AXIS
#if ENABLED(DISTINCT_E_FACTORS)
+ 5
#endif
]);
#endif
if (print_e) {
#if AXIS_IS_TMC(E0)
tmc_status(stepperE0, i, planner.settings.axis_steps_per_mm[E_AXIS]);
#endif
#if AXIS_IS_TMC(E1)
tmc_status(stepperE1, i, planner.settings.axis_steps_per_mm[E_AXIS
#if ENABLED(DISTINCT_E_FACTORS)
+ 1
#endif
]);
#endif
#if AXIS_IS_TMC(E2)
tmc_status(stepperE2, i, planner.settings.axis_steps_per_mm[E_AXIS
#if ENABLED(DISTINCT_E_FACTORS)
+ 2
#endif
]);
#endif
#if AXIS_IS_TMC(E3)
tmc_status(stepperE3, i, planner.settings.axis_steps_per_mm[E_AXIS
#if ENABLED(DISTINCT_E_FACTORS)
+ 3
#endif
]);
#endif
#if AXIS_IS_TMC(E4)
tmc_status(stepperE4, i, planner.settings.axis_steps_per_mm[E_AXIS
#if ENABLED(DISTINCT_E_FACTORS)
+ 4
#endif
]);
#endif
#if AXIS_IS_TMC(E5)
tmc_status(stepperE5, i, planner.settings.axis_steps_per_mm[E_AXIS
#if ENABLED(DISTINCT_E_FACTORS)
+ 5
#endif
]);
#endif
}
SERIAL_EOL();
}
static void drv_status_loop(const TMC_drv_status_enum i) {
#if AXIS_IS_TMC(X)
tmc_parse_drv_status(stepperX, i);
#endif
#if AXIS_IS_TMC(X2)
tmc_parse_drv_status(stepperX2, i);
#endif
static void drv_status_loop(const TMC_drv_status_enum i, const bool print_x, const bool print_y, const bool print_z, const bool print_e) {
if (print_x) {
#if AXIS_IS_TMC(X)
tmc_parse_drv_status(stepperX, i);
#endif
#if AXIS_IS_TMC(X2)
tmc_parse_drv_status(stepperX2, i);
#endif
}
#if AXIS_IS_TMC(Y)
tmc_parse_drv_status(stepperY, i);
#endif
#if AXIS_IS_TMC(Y2)
tmc_parse_drv_status(stepperY2, i);
#endif
if (print_y) {
#if AXIS_IS_TMC(Y)
tmc_parse_drv_status(stepperY, i);
#endif
#if AXIS_IS_TMC(Y2)
tmc_parse_drv_status(stepperY2, i);
#endif
}
#if AXIS_IS_TMC(Z)
tmc_parse_drv_status(stepperZ, i);
#endif
#if AXIS_IS_TMC(Z2)
tmc_parse_drv_status(stepperZ2, i);
#endif
#if AXIS_IS_TMC(Z3)
tmc_parse_drv_status(stepperZ3, i);
#endif
if (print_z) {
#if AXIS_IS_TMC(Z)
tmc_parse_drv_status(stepperZ, i);
#endif
#if AXIS_IS_TMC(Z2)
tmc_parse_drv_status(stepperZ2, i);
#endif
#if AXIS_IS_TMC(Z3)
tmc_parse_drv_status(stepperZ3, i);
#endif
}
#if AXIS_IS_TMC(E0)
tmc_parse_drv_status(stepperE0, i);
#endif
#if AXIS_IS_TMC(E1)
tmc_parse_drv_status(stepperE1, i);
#endif
#if AXIS_IS_TMC(E2)
tmc_parse_drv_status(stepperE2, i);
#endif
#if AXIS_IS_TMC(E3)
tmc_parse_drv_status(stepperE3, i);
#endif
#if AXIS_IS_TMC(E4)
tmc_parse_drv_status(stepperE4, i);
#endif
#if AXIS_IS_TMC(E5)
tmc_parse_drv_status(stepperE5, i);
#endif
if (print_e) {
#if AXIS_IS_TMC(E0)
tmc_parse_drv_status(stepperE0, i);
#endif
#if AXIS_IS_TMC(E1)
tmc_parse_drv_status(stepperE1, i);
#endif
#if AXIS_IS_TMC(E2)
tmc_parse_drv_status(stepperE2, i);
#endif
#if AXIS_IS_TMC(E3)
tmc_parse_drv_status(stepperE3, i);
#endif
#if AXIS_IS_TMC(E4)
tmc_parse_drv_status(stepperE4, i);
#endif
#if AXIS_IS_TMC(E5)
tmc_parse_drv_status(stepperE5, i);
#endif
}
SERIAL_EOL();
}
@ -607,9 +643,9 @@
* M122 report functions
*/
void tmc_report_all() {
#define TMC_REPORT(LABEL, ITEM) do{ SERIAL_ECHOPGM(LABEL); tmc_debug_loop(ITEM); }while(0)
#define DRV_REPORT(LABEL, ITEM) do{ SERIAL_ECHOPGM(LABEL); drv_status_loop(ITEM); }while(0)
void tmc_report_all(bool print_x, const bool print_y, const bool print_z, const bool print_e) {
#define TMC_REPORT(LABEL, ITEM) do{ SERIAL_ECHOPGM(LABEL); tmc_debug_loop(ITEM, print_x, print_y, print_z, print_e); }while(0)
#define DRV_REPORT(LABEL, ITEM) do{ SERIAL_ECHOPGM(LABEL); drv_status_loop(ITEM, print_x, print_y, print_z, print_e); }while(0)
TMC_REPORT("\t", TMC_CODES);
TMC_REPORT("Enabled\t", TMC_ENABLED);
TMC_REPORT("Set current", TMC_CURRENT);
@ -661,6 +697,135 @@
SERIAL_EOL();
}
#define PRINT_TMC_REGISTER(REG_CASE) case TMC_GET_##REG_CASE: print_hex_long(st.REG_CASE(), ':'); break
#if HAS_DRIVER(TMC2130)
static void tmc_get_ic_registers(TMC2130Stepper &st, const TMC_get_registers_enum i) {
switch (i) {
PRINT_TMC_REGISTER(TCOOLTHRS);
PRINT_TMC_REGISTER(THIGH);
PRINT_TMC_REGISTER(COOLCONF);
default: SERIAL_CHAR('\t'); break;
}
}
#endif
#if HAS_DRIVER(TMC2208)
static void tmc_get_ic_registers(TMC2208Stepper, const TMC_get_registers_enum) { SERIAL_CHAR('\t'); }
#endif
#if HAS_TRINAMIC
template<class TMC>
static void tmc_get_registers(TMC &st, const TMC_get_registers_enum i) {
switch (i) {
case TMC_AXIS_CODES: SERIAL_CHAR('\t'); st.printLabel(); break;
PRINT_TMC_REGISTER(GCONF);
PRINT_TMC_REGISTER(IHOLD_IRUN);
PRINT_TMC_REGISTER(GSTAT);
PRINT_TMC_REGISTER(IOIN);
PRINT_TMC_REGISTER(TPOWERDOWN);
PRINT_TMC_REGISTER(TSTEP);
PRINT_TMC_REGISTER(TPWMTHRS);
PRINT_TMC_REGISTER(CHOPCONF);
PRINT_TMC_REGISTER(PWMCONF);
PRINT_TMC_REGISTER(PWM_SCALE);
PRINT_TMC_REGISTER(DRV_STATUS);
default: tmc_get_ic_registers(st, i); break;
}
SERIAL_CHAR('\t');
}
#endif
#if HAS_DRIVER(TMC2660)
template <char AXIS_LETTER, char DRIVER_ID>
static void tmc_get_registers(TMCMarlin<TMC2660Stepper, AXIS_LETTER, DRIVER_ID> &st, const TMC_get_registers_enum i) {
switch (i) {
case TMC_AXIS_CODES: SERIAL_CHAR('\t'); st.printLabel(); break;
PRINT_TMC_REGISTER(DRVCONF);
PRINT_TMC_REGISTER(DRVCTRL);
PRINT_TMC_REGISTER(CHOPCONF);
PRINT_TMC_REGISTER(DRVSTATUS);
PRINT_TMC_REGISTER(SGCSCONF);
PRINT_TMC_REGISTER(SMARTEN);
default: SERIAL_CHAR('\t'); break;
}
SERIAL_CHAR('\t');
}
#endif
static void tmc_get_registers(TMC_get_registers_enum i, const bool print_x, const bool print_y, const bool print_z, const bool print_e) {
if (print_x) {
#if AXIS_IS_TMC(X)
tmc_get_registers(stepperX, i);
#endif
#if AXIS_IS_TMC(X2)
tmc_get_registers(stepperX2, i);
#endif
}
if (print_y) {
#if AXIS_IS_TMC(Y)
tmc_get_registers(stepperY, i);
#endif
#if AXIS_IS_TMC(Y2)
tmc_get_registers(stepperY2, i);
#endif
}
if (print_z) {
#if AXIS_IS_TMC(Z)
tmc_get_registers(stepperZ, i);
#endif
#if AXIS_IS_TMC(Z2)
tmc_get_registers(stepperZ2, i);
#endif
#if AXIS_IS_TMC(Z3)
tmc_get_registers(stepperZ3, i);
#endif
}
if (print_e) {
#if AXIS_IS_TMC(E0)
tmc_get_registers(stepperE0, i);
#endif
#if AXIS_IS_TMC(E1)
tmc_get_registers(stepperE1, i);
#endif
#if AXIS_IS_TMC(E2)
tmc_get_registers(stepperE2, i);
#endif
#if AXIS_IS_TMC(E3)
tmc_get_registers(stepperE3, i);
#endif
#if AXIS_IS_TMC(E4)
tmc_get_registers(stepperE4, i);
#endif
#if AXIS_IS_TMC(E5)
tmc_get_registers(stepperE5, i);
#endif
}
SERIAL_EOL();
}
void tmc_get_registers(bool print_x, bool print_y, bool print_z, bool print_e) {
#define _TMC_GET_REG(LABEL, ITEM) do{ SERIAL_ECHOPGM(LABEL); tmc_get_registers(ITEM, print_x, print_y, print_z, print_e); }while(0)
#define TMC_GET_REG(NAME, TABS) _TMC_GET_REG(STRINGIFY(NAME) TABS, TMC_GET_##NAME)
_TMC_GET_REG("\t", TMC_AXIS_CODES);
TMC_GET_REG(GCONF, "\t\t");
TMC_GET_REG(IHOLD_IRUN, "\t");
TMC_GET_REG(GSTAT, "\t\t");
TMC_GET_REG(IOIN, "\t\t");
TMC_GET_REG(TPOWERDOWN, "\t");
TMC_GET_REG(TSTEP, "\t\t");
TMC_GET_REG(TPWMTHRS, "\t");
TMC_GET_REG(TCOOLTHRS, "\t");
TMC_GET_REG(THIGH, "\t\t");
TMC_GET_REG(CHOPCONF, "\t");
TMC_GET_REG(COOLCONF, "\t");
TMC_GET_REG(PWMCONF, "\t");
TMC_GET_REG(PWM_SCALE, "\t");
TMC_GET_REG(DRV_STATUS, "\t");
}
#endif // TMC_DEBUG
#if USE_SENSORLESS
@ -736,4 +901,83 @@
}
#endif // TMC_HAS_SPI
template<typename TMC>
static bool test_connection(TMC &st) {
SERIAL_ECHOPGM("Testing ");
st.printLabel();
SERIAL_ECHOPGM(" connection... ");
const uint8_t test_result = st.test_connection();
if (test_result > 0) SERIAL_ECHOPGM("Error: All ");
const char *stat;
switch (test_result) {
default:
case 0: stat = PSTR("OK"); break;
case 1: stat = PSTR("HIGH"); break;
case 2: stat = PSTR("LOW"); break;
}
serialprintPGM(stat);
SERIAL_EOL();
return test_result;
}
void test_tmc_connection(const bool test_x, const bool test_y, const bool test_z, const bool test_e) {
uint8_t axis_connection = 0;
if (test_x) {
#if AXIS_IS_TMC(X)
axis_connection += test_connection(stepperX);
#endif
#if AXIS_IS_TMC(X2)
axis_connection += test_connection(stepperX2);
#endif
}
if (test_y) {
#if AXIS_IS_TMC(Y)
axis_connection += test_connection(stepperY);
#endif
#if AXIS_IS_TMC(Y2)
axis_connection += test_connection(stepperY2);
#endif
}
if (test_z) {
#if AXIS_IS_TMC(Z)
axis_connection += test_connection(stepperZ);
#endif
#if AXIS_IS_TMC(Z2)
axis_connection += test_connection(stepperZ2);
#endif
#if AXIS_IS_TMC(Z3)
axis_connection += test_connection(stepperZ3);
#endif
}
if (test_e) {
#if AXIS_IS_TMC(E0)
axis_connection += test_connection(stepperE0);
#endif
#if AXIS_IS_TMC(E1)
axis_connection += test_connection(stepperE1);
#endif
#if AXIS_IS_TMC(E2)
axis_connection += test_connection(stepperE2);
#endif
#if AXIS_IS_TMC(E3)
axis_connection += test_connection(stepperE3);
#endif
#if AXIS_IS_TMC(E4)
axis_connection += test_connection(stepperE4);
#endif
#if AXIS_IS_TMC(E5)
axis_connection += test_connection(stepperE5);
#endif
}
if (axis_connection) ui.set_status_P(PSTR("TMC CONNECTION ERROR"));
}
#endif // HAS_TRINAMIC

@ -22,6 +22,7 @@
#pragma once
#include "../inc/MarlinConfig.h"
#include "../lcd/ultralcd.h"
#if HAS_TRINAMIC
#include <TMCStepper.h>
#endif
@ -155,12 +156,14 @@ void tmc_set_sgt(TMC &st, const int8_t sgt_val) {
}
void monitor_tmc_driver();
void test_tmc_connection(const bool test_x, const bool test_y, const bool test_z, const bool test_e);
#if ENABLED(TMC_DEBUG)
#if ENABLED(MONITOR_DRIVER_STATUS)
void tmc_set_report_status(const bool status);
#endif
void tmc_report_all();
void tmc_report_all(const bool print_x, const bool print_y, const bool print_z, const bool print_e);
void tmc_get_registers(const bool print_x, const bool print_y, const bool print_z, const bool print_e);
#endif
/**

@ -22,7 +22,7 @@
#include "../../../inc/MarlinConfig.h"
#if ENABLED(TMC_DEBUG)
#if HAS_TRINAMIC
#include "../../gcode.h"
#include "../../../feature/tmc_util.h"
@ -31,14 +31,25 @@
* M122: Debug TMC drivers
*/
void GcodeSuite::M122() {
bool print_axis[XYZE] = { false, false, false, false },
print_all = true;
LOOP_XYZE(i) if (parser.seen(axis_codes[i])) { print_axis[i] = true; print_all = false; }
#if ENABLED(MONITOR_DRIVER_STATUS)
if (parser.seen('S'))
tmc_set_report_status(parser.value_bool());
if (print_all) LOOP_XYZE(i) print_axis[i] = true;
#if ENABLED(TMC_DEBUG)
#if ENABLED(MONITOR_DRIVER_STATUS)
if (parser.seen('S'))
tmc_set_report_status(parser.value_bool());
#endif
if (parser.seen('V'))
tmc_get_registers(print_axis[X_AXIS], print_axis[Y_AXIS], print_axis[Z_AXIS], print_axis[E_AXIS]);
else
tmc_report_all(print_axis[X_AXIS], print_axis[Y_AXIS], print_axis[Z_AXIS], print_axis[E_AXIS]);
#endif
tmc_report_all();
test_tmc_connection(print_axis[X_AXIS], print_axis[Y_AXIS], print_axis[Z_AXIS], print_axis[E_AXIS]);
}
#endif // TMC_DEBUG
#endif // HAS_TRINAMIC

@ -650,9 +650,7 @@ void GcodeSuite::process_parsed_command(
#endif
#if HAS_TRINAMIC
#if ENABLED(TMC_DEBUG)
case 122: M122(); break;
#endif
case 122: M122(); break;
case 906: M906(); break; // M906: Set motor current in milliamps using axis codes X, Y, Z, E
#if ENABLED(MONITOR_DRIVER_STATUS)
case 911: M911(); break; // M911: Report TMC2130 prewarn triggered flags

@ -792,9 +792,7 @@ private:
#endif
#if HAS_TRINAMIC
#if ENABLED(TMC_DEBUG)
static void M122();
#endif
static void M122();
static void M906();
#if ENABLED(MONITOR_DRIVER_STATUS)
static void M911();

@ -23,7 +23,7 @@
#include "../inc/MarlinConfig.h"
#include "../gcode/parser.h"
#if ENABLED(AUTO_BED_LEVELING_UBL) || ENABLED(M100_FREE_MEMORY_WATCHER) || ENABLED(DEBUG_GCODE_PARSER)
#if ENABLED(AUTO_BED_LEVELING_UBL) || ENABLED(M100_FREE_MEMORY_WATCHER) || ENABLED(DEBUG_GCODE_PARSER) || ENABLED(TMC_DEBUG)
#include "hex_print_routines.h"
@ -78,4 +78,13 @@
void print_hex_word(const uint16_t w) { SERIAL_ECHO(hex_word(w)); }
void print_hex_address(const void * const w) { SERIAL_ECHO(hex_address(w)); }
void print_hex_long(const uint32_t w, const char delimiter) {
SERIAL_ECHOPGM("0x");
for (int B = 24; B >= 8; B -= 8){
print_hex_byte(w >> B);
SERIAL_CHAR(delimiter);
}
print_hex_byte(w);
}
#endif // AUTO_BED_LEVELING_UBL || M100_FREE_MEMORY_WATCHER || DEBUG_GCODE_PARSER

@ -38,6 +38,7 @@ void print_hex_nybble(const uint8_t n);
void print_hex_byte(const uint8_t b);
void print_hex_word(const uint16_t w);
void print_hex_address(const void * const w);
void print_hex_long(const uint32_t w, const char delimiter);
#ifdef CPU_32_BIT
typedef uint32_t ptr_int_t;

@ -205,12 +205,14 @@
void tmc_init(TMCMarlin<TMC2130Stepper, AXIS_LETTER, DRIVER_ID> &st, const uint16_t mA, const uint16_t microsteps, const uint32_t thrs, const float spmm, const bool stealth) {
st.begin();
static constexpr int8_t timings[] = CHOPPER_TIMING; // Default 4, -2, 1
CHOPCONF_t chopconf{0};
chopconf.tbl = 1;
chopconf.toff = 3;
chopconf.toff = timings[0];
chopconf.intpol = INTERPOLATE;
chopconf.hstrt = 2;
chopconf.hend = 5;
chopconf.hend = timings[1] + 3;
chopconf.hstrt = timings[2] - 1;
st.CHOPCONF(chopconf.sr);
st.rms_current(mA, HOLD_MULTIPLIER);
@ -440,6 +442,8 @@
template<char AXIS_LETTER, char DRIVER_ID>
void tmc_init(TMCMarlin<TMC2208Stepper, AXIS_LETTER, DRIVER_ID> &st, const uint16_t mA, const uint16_t microsteps, const uint32_t thrs, const float spmm, const bool stealth) {
static constexpr int8_t timings[] = CHOPPER_TIMING; // Default 4, -2, 1
TMC2208_n::GCONF_t gconf{0};
gconf.pdn_disable = true; // Use UART
gconf.mstep_reg_select = true; // Select microsteps with UART
@ -449,10 +453,10 @@
TMC2208_n::CHOPCONF_t chopconf{0};
chopconf.tbl = 0b01; // blank_time = 24
chopconf.toff = 5;
chopconf.toff = timings[0];
chopconf.intpol = INTERPOLATE;
chopconf.hstrt = 2;
chopconf.hend = 5;
chopconf.hend = timings[1] + 3;
chopconf.hstrt = timings[2] - 1;
st.CHOPCONF(chopconf.sr);
st.rms_current(mA, HOLD_MULTIPLIER);
@ -540,13 +544,20 @@
template<char AXIS_LETTER, char DRIVER_ID>
void tmc_init(TMCMarlin<TMC2660Stepper, AXIS_LETTER, DRIVER_ID> &st, const uint16_t mA, const uint16_t microsteps, const uint32_t, const float, const bool) {
st.begin();
static constexpr int8_t timings[] = CHOPPER_TIMING; // Default 4, -2, 1
TMC2660_n::CHOPCONF_t chopconf{0};
chopconf.tbl = 1;
chopconf.toff = timings[0];
chopconf.hend = timings[1] + 3;
chopconf.hstrt = timings[2] - 1;
st.CHOPCONF(chopconf.sr);
st.rms_current(mA);
st.microsteps(microsteps);
st.blank_time(24);
st.toff(5); // Only enables the driver if used with stealthChop
st.intpol(INTERPOLATE);
//st.hysteresis_start(3);
//st.hysteresis_end(2);
st.diss2g(true); // Disable short to ground protection. Too many false readings?
}
#endif // TMC2660

Loading…
Cancel
Save