diff --git a/config/default/Configuration_adv.h b/config/default/Configuration_adv.h index b587495058..31bf4046dd 100644 --- a/config/default/Configuration_adv.h +++ b/config/default/Configuration_adv.h @@ -2464,6 +2464,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/3DFabXYZ/Migbot/Configuration_adv.h b/config/examples/3DFabXYZ/Migbot/Configuration_adv.h index a883f728f5..f1de55a320 100644 --- a/config/examples/3DFabXYZ/Migbot/Configuration_adv.h +++ b/config/examples/3DFabXYZ/Migbot/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/ADIMLab/Gantry v1/Configuration_adv.h b/config/examples/ADIMLab/Gantry v1/Configuration_adv.h index e4cf87f22b..beaaa6e1d5 100644 --- a/config/examples/ADIMLab/Gantry v1/Configuration_adv.h +++ b/config/examples/ADIMLab/Gantry v1/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/ADIMLab/Gantry v2/Configuration_adv.h b/config/examples/ADIMLab/Gantry v2/Configuration_adv.h index 493d882c6c..cb3a896319 100644 --- a/config/examples/ADIMLab/Gantry v2/Configuration_adv.h +++ b/config/examples/ADIMLab/Gantry v2/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/AlephObjects/TAZ4/Configuration_adv.h b/config/examples/AlephObjects/TAZ4/Configuration_adv.h index c241b5aa60..ab5960a9e8 100644 --- a/config/examples/AlephObjects/TAZ4/Configuration_adv.h +++ b/config/examples/AlephObjects/TAZ4/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Alfawise/U20-bltouch/Configuration_adv.h b/config/examples/Alfawise/U20-bltouch/Configuration_adv.h index 60fe2b386b..d06481a4fd 100644 --- a/config/examples/Alfawise/U20-bltouch/Configuration_adv.h +++ b/config/examples/Alfawise/U20-bltouch/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Alfawise/U20/Configuration_adv.h b/config/examples/Alfawise/U20/Configuration_adv.h index 541b653446..421545ee7e 100644 --- a/config/examples/Alfawise/U20/Configuration_adv.h +++ b/config/examples/Alfawise/U20/Configuration_adv.h @@ -2467,6 +2467,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/AliExpress/UM2pExt/Configuration_adv.h b/config/examples/AliExpress/UM2pExt/Configuration_adv.h index 8cfad3d451..1bb1322af5 100644 --- a/config/examples/AliExpress/UM2pExt/Configuration_adv.h +++ b/config/examples/AliExpress/UM2pExt/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Anet/A2/Configuration_adv.h b/config/examples/Anet/A2/Configuration_adv.h index fbc6f521a4..5ea0445af5 100644 --- a/config/examples/Anet/A2/Configuration_adv.h +++ b/config/examples/Anet/A2/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Anet/A2plus/Configuration_adv.h b/config/examples/Anet/A2plus/Configuration_adv.h index 199c9bb8a8..f8d0bd3f60 100644 --- a/config/examples/Anet/A2plus/Configuration_adv.h +++ b/config/examples/Anet/A2plus/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Anet/A6/Configuration_adv.h b/config/examples/Anet/A6/Configuration_adv.h index b7b09e02f5..a2b392321d 100644 --- a/config/examples/Anet/A6/Configuration_adv.h +++ b/config/examples/Anet/A6/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Anet/A8/Configuration_adv.h b/config/examples/Anet/A8/Configuration_adv.h index ffc8a77d7b..e7fe13f66a 100644 --- a/config/examples/Anet/A8/Configuration_adv.h +++ b/config/examples/Anet/A8/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Anet/A8plus/Configuration_adv.h b/config/examples/Anet/A8plus/Configuration_adv.h index 804f49a915..ebc1bf535d 100644 --- a/config/examples/Anet/A8plus/Configuration_adv.h +++ b/config/examples/Anet/A8plus/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Anet/E10/Configuration_adv.h b/config/examples/Anet/E10/Configuration_adv.h index a7f1216e30..e5299e8575 100644 --- a/config/examples/Anet/E10/Configuration_adv.h +++ b/config/examples/Anet/E10/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Anet/E16/Configuration_adv.h b/config/examples/Anet/E16/Configuration_adv.h index ddd7978b4d..9d8ca6415a 100644 --- a/config/examples/Anet/E16/Configuration_adv.h +++ b/config/examples/Anet/E16/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/AnyCubic/Mega Zero/Configuration_adv.h b/config/examples/AnyCubic/Mega Zero/Configuration_adv.h index 6500611b74..a509a0641d 100644 --- a/config/examples/AnyCubic/Mega Zero/Configuration_adv.h +++ b/config/examples/AnyCubic/Mega Zero/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/AnyCubic/i3/Configuration_adv.h b/config/examples/AnyCubic/i3/Configuration_adv.h index 2d2ea7bb6d..b30613bd9b 100644 --- a/config/examples/AnyCubic/i3/Configuration_adv.h +++ b/config/examples/AnyCubic/i3/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/ArmEd/Configuration_adv.h b/config/examples/ArmEd/Configuration_adv.h index 54b82b682b..ef68ac71ed 100644 --- a/config/examples/ArmEd/Configuration_adv.h +++ b/config/examples/ArmEd/Configuration_adv.h @@ -2470,6 +2470,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Artillery/Genius/Configuration_adv.h b/config/examples/Artillery/Genius/Configuration_adv.h index 3e4730b431..9e4fbbfc2f 100755 --- a/config/examples/Artillery/Genius/Configuration_adv.h +++ b/config/examples/Artillery/Genius/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Artillery/Sidewinder X1/Configuration_adv.h b/config/examples/Artillery/Sidewinder X1/Configuration_adv.h index 4732de8cde..67cf3868e4 100755 --- a/config/examples/Artillery/Sidewinder X1/Configuration_adv.h +++ b/config/examples/Artillery/Sidewinder X1/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Artillery/Sidewinder X1_0.9_degree_BMG_E3D_V6/Configuration_adv.h b/config/examples/Artillery/Sidewinder X1_0.9_degree_BMG_E3D_V6/Configuration_adv.h index d92ea0a274..70cfd5c9fa 100644 --- a/config/examples/Artillery/Sidewinder X1_0.9_degree_BMG_E3D_V6/Configuration_adv.h +++ b/config/examples/Artillery/Sidewinder X1_0.9_degree_BMG_E3D_V6/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/BIBO/TouchX/cyclops/Configuration_adv.h b/config/examples/BIBO/TouchX/cyclops/Configuration_adv.h index a75c5620a0..9e29071ecc 100644 --- a/config/examples/BIBO/TouchX/cyclops/Configuration_adv.h +++ b/config/examples/BIBO/TouchX/cyclops/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/BIBO/TouchX/default/Configuration_adv.h b/config/examples/BIBO/TouchX/default/Configuration_adv.h index c8a9a7c4d7..00090485e1 100644 --- a/config/examples/BIBO/TouchX/default/Configuration_adv.h +++ b/config/examples/BIBO/TouchX/default/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/BQ/Hephestos/Configuration_adv.h b/config/examples/BQ/Hephestos/Configuration_adv.h index c1e8e77af4..3fcf4b80f1 100644 --- a/config/examples/BQ/Hephestos/Configuration_adv.h +++ b/config/examples/BQ/Hephestos/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/BQ/Hephestos_2/Configuration_adv.h b/config/examples/BQ/Hephestos_2/Configuration_adv.h index d25ee9ded3..83e5d71e60 100644 --- a/config/examples/BQ/Hephestos_2/Configuration_adv.h +++ b/config/examples/BQ/Hephestos_2/Configuration_adv.h @@ -2474,6 +2474,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/BQ/WITBOX/Configuration_adv.h b/config/examples/BQ/WITBOX/Configuration_adv.h index bc337b7332..9f8846423c 100644 --- a/config/examples/BQ/WITBOX/Configuration_adv.h +++ b/config/examples/BQ/WITBOX/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Cartesio/Configuration_adv.h b/config/examples/Cartesio/Configuration_adv.h index a6bb0d6154..9e77ab81e9 100644 --- a/config/examples/Cartesio/Configuration_adv.h +++ b/config/examples/Cartesio/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/CR-10 V2/Configuration_adv.h b/config/examples/Creality/CR-10 V2/Configuration_adv.h index 02cf5ddd2e..e97d22e16d 100644 --- a/config/examples/Creality/CR-10 V2/Configuration_adv.h +++ b/config/examples/Creality/CR-10 V2/Configuration_adv.h @@ -2469,6 +2469,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/CR-10/Configuration_adv.h b/config/examples/Creality/CR-10/Configuration_adv.h index 085c345103..64f871a7f4 100644 --- a/config/examples/Creality/CR-10/Configuration_adv.h +++ b/config/examples/Creality/CR-10/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/CR-10S/Configuration_adv.h b/config/examples/Creality/CR-10S/Configuration_adv.h index 21f3146651..e8d669bc6c 100644 --- a/config/examples/Creality/CR-10S/Configuration_adv.h +++ b/config/examples/Creality/CR-10S/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/CR-10_5S/Configuration_adv.h b/config/examples/Creality/CR-10_5S/Configuration_adv.h index 9127fffeb0..e32137fa49 100644 --- a/config/examples/Creality/CR-10_5S/Configuration_adv.h +++ b/config/examples/Creality/CR-10_5S/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/CR-10mini/CrealityV1/Configuration_adv.h b/config/examples/Creality/CR-10mini/CrealityV1/Configuration_adv.h index eb22d5a4d2..e9848cbc1e 100644 --- a/config/examples/Creality/CR-10mini/CrealityV1/Configuration_adv.h +++ b/config/examples/Creality/CR-10mini/CrealityV1/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/CR-10mini/MEEB-3DP/Configuration_adv.h b/config/examples/Creality/CR-10mini/MEEB-3DP/Configuration_adv.h index 220ae690a2..3e17e08a8e 100644 --- a/config/examples/Creality/CR-10mini/MEEB-3DP/Configuration_adv.h +++ b/config/examples/Creality/CR-10mini/MEEB-3DP/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/CR-20 Pro/Configuration_adv.h b/config/examples/Creality/CR-20 Pro/Configuration_adv.h index 1177eb6f75..d446f0cc7d 100644 --- a/config/examples/Creality/CR-20 Pro/Configuration_adv.h +++ b/config/examples/Creality/CR-20 Pro/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/CR-20/Configuration_adv.h b/config/examples/Creality/CR-20/Configuration_adv.h index 365ec701e6..2a990f69c8 100644 --- a/config/examples/Creality/CR-20/Configuration_adv.h +++ b/config/examples/Creality/CR-20/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/CR-8/Configuration_adv.h b/config/examples/Creality/CR-8/Configuration_adv.h index d82d912c31..e5ea9ff009 100644 --- a/config/examples/Creality/CR-8/Configuration_adv.h +++ b/config/examples/Creality/CR-8/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/Ender-2/Configuration_adv.h b/config/examples/Creality/Ender-2/Configuration_adv.h index a2841f11a6..4e7f00af92 100644 --- a/config/examples/Creality/Ender-2/Configuration_adv.h +++ b/config/examples/Creality/Ender-2/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/Ender-3 Pro/Configuration_adv.h b/config/examples/Creality/Ender-3 Pro/Configuration_adv.h index c032aff84c..2cea278d6d 100644 --- a/config/examples/Creality/Ender-3 Pro/Configuration_adv.h +++ b/config/examples/Creality/Ender-3 Pro/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/Ender-3 V2/Configuration_adv.h b/config/examples/Creality/Ender-3 V2/Configuration_adv.h index 8c03bf627c..3428a77c77 100644 --- a/config/examples/Creality/Ender-3 V2/Configuration_adv.h +++ b/config/examples/Creality/Ender-3 V2/Configuration_adv.h @@ -2467,6 +2467,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/Ender-3/BigTreeTech SKR Mini E3 1.0/Configuration_adv.h b/config/examples/Creality/Ender-3/BigTreeTech SKR Mini E3 1.0/Configuration_adv.h index d8b071b545..e127ecfb58 100644 --- a/config/examples/Creality/Ender-3/BigTreeTech SKR Mini E3 1.0/Configuration_adv.h +++ b/config/examples/Creality/Ender-3/BigTreeTech SKR Mini E3 1.0/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/Ender-3/BigTreeTech SKR Mini E3 1.2/Configuration_adv.h b/config/examples/Creality/Ender-3/BigTreeTech SKR Mini E3 1.2/Configuration_adv.h index 1a2c808a1a..2818e5e109 100644 --- a/config/examples/Creality/Ender-3/BigTreeTech SKR Mini E3 1.2/Configuration_adv.h +++ b/config/examples/Creality/Ender-3/BigTreeTech SKR Mini E3 1.2/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/Ender-3/BigTreeTech SKR Mini E3 2.0/Configuration_adv.h b/config/examples/Creality/Ender-3/BigTreeTech SKR Mini E3 2.0/Configuration_adv.h index 492d9733d0..a7adfd656a 100644 --- a/config/examples/Creality/Ender-3/BigTreeTech SKR Mini E3 2.0/Configuration_adv.h +++ b/config/examples/Creality/Ender-3/BigTreeTech SKR Mini E3 2.0/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/Ender-3/CrealityV1/Configuration_adv.h b/config/examples/Creality/Ender-3/CrealityV1/Configuration_adv.h index 7663342e1f..14800af6ec 100644 --- a/config/examples/Creality/Ender-3/CrealityV1/Configuration_adv.h +++ b/config/examples/Creality/Ender-3/CrealityV1/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/Ender-3/FYSETC Cheetah 1.2/BLTouch/Configuration_adv.h b/config/examples/Creality/Ender-3/FYSETC Cheetah 1.2/BLTouch/Configuration_adv.h index 454a5b646e..cf6e667a9f 100644 --- a/config/examples/Creality/Ender-3/FYSETC Cheetah 1.2/BLTouch/Configuration_adv.h +++ b/config/examples/Creality/Ender-3/FYSETC Cheetah 1.2/BLTouch/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/Ender-3/FYSETC Cheetah 1.2/base/Configuration_adv.h b/config/examples/Creality/Ender-3/FYSETC Cheetah 1.2/base/Configuration_adv.h index 04bf4e8bd2..b92ded63fe 100644 --- a/config/examples/Creality/Ender-3/FYSETC Cheetah 1.2/base/Configuration_adv.h +++ b/config/examples/Creality/Ender-3/FYSETC Cheetah 1.2/base/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/Ender-3/FYSETC Cheetah/BLTouch/Configuration_adv.h b/config/examples/Creality/Ender-3/FYSETC Cheetah/BLTouch/Configuration_adv.h index 6862ec26a3..753cb6f14a 100644 --- a/config/examples/Creality/Ender-3/FYSETC Cheetah/BLTouch/Configuration_adv.h +++ b/config/examples/Creality/Ender-3/FYSETC Cheetah/BLTouch/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/Ender-3/FYSETC Cheetah/base/Configuration_adv.h b/config/examples/Creality/Ender-3/FYSETC Cheetah/base/Configuration_adv.h index 7fdd50d81c..b041ae174d 100644 --- a/config/examples/Creality/Ender-3/FYSETC Cheetah/base/Configuration_adv.h +++ b/config/examples/Creality/Ender-3/FYSETC Cheetah/base/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/Ender-3/MEEB-3DP/Configuration_adv.h b/config/examples/Creality/Ender-3/MEEB-3DP/Configuration_adv.h index ce38358725..66e593a2fe 100644 --- a/config/examples/Creality/Ender-3/MEEB-3DP/Configuration_adv.h +++ b/config/examples/Creality/Ender-3/MEEB-3DP/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/Ender-4/Configuration_adv.h b/config/examples/Creality/Ender-4/Configuration_adv.h index 39b733f6f5..9df51faa57 100644 --- a/config/examples/Creality/Ender-4/Configuration_adv.h +++ b/config/examples/Creality/Ender-4/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/Ender-5 Pro/Configuration_adv.h b/config/examples/Creality/Ender-5 Pro/Configuration_adv.h index 32ba4c6211..66044f841d 100644 --- a/config/examples/Creality/Ender-5 Pro/Configuration_adv.h +++ b/config/examples/Creality/Ender-5 Pro/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/Ender-5/BigTreeTech SKR Mini E3 2.0/Configuration_adv.h b/config/examples/Creality/Ender-5/BigTreeTech SKR Mini E3 2.0/Configuration_adv.h index 29ec76f8a5..b9d3ec5f9b 100644 --- a/config/examples/Creality/Ender-5/BigTreeTech SKR Mini E3 2.0/Configuration_adv.h +++ b/config/examples/Creality/Ender-5/BigTreeTech SKR Mini E3 2.0/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/Ender-5/Creality/Configuration_adv.h b/config/examples/Creality/Ender-5/Creality/Configuration_adv.h index 391657f31d..9ba51c11ad 100644 --- a/config/examples/Creality/Ender-5/Creality/Configuration_adv.h +++ b/config/examples/Creality/Ender-5/Creality/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Creality/Ender-5_Plus/Configuration_adv.h b/config/examples/Creality/Ender-5_Plus/Configuration_adv.h index 4970d6521b..1182b57b69 100644 --- a/config/examples/Creality/Ender-5_Plus/Configuration_adv.h +++ b/config/examples/Creality/Ender-5_Plus/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Dagoma/Disco Ultimate/Configuration_adv.h b/config/examples/Dagoma/Disco Ultimate/Configuration_adv.h index b8547f56a9..83bb940fd4 100644 --- a/config/examples/Dagoma/Disco Ultimate/Configuration_adv.h +++ b/config/examples/Dagoma/Disco Ultimate/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Daycom/3DP-100/Configuration_adv.h b/config/examples/Daycom/3DP-100/Configuration_adv.h index fc01d217a8..cfe5801f1f 100644 --- a/config/examples/Daycom/3DP-100/Configuration_adv.h +++ b/config/examples/Daycom/3DP-100/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/EXP3D/Imprimante multifonction/Configuration_adv.h b/config/examples/EXP3D/Imprimante multifonction/Configuration_adv.h index a62d47b0e5..cb59b00bb2 100644 --- a/config/examples/EXP3D/Imprimante multifonction/Configuration_adv.h +++ b/config/examples/EXP3D/Imprimante multifonction/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Einstart-S/Configuration_adv.h b/config/examples/Einstart-S/Configuration_adv.h index 7df06f60a1..06e39ea027 100644 --- a/config/examples/Einstart-S/Configuration_adv.h +++ b/config/examples/Einstart-S/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/FYSETC/AIO_II/Configuration_adv.h b/config/examples/FYSETC/AIO_II/Configuration_adv.h index 32dba9a409..8b609bf47d 100644 --- a/config/examples/FYSETC/AIO_II/Configuration_adv.h +++ b/config/examples/FYSETC/AIO_II/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/FYSETC/F6_13/Configuration_adv.h b/config/examples/FYSETC/F6_13/Configuration_adv.h index b41456e22a..a25c034fb2 100644 --- a/config/examples/FYSETC/F6_13/Configuration_adv.h +++ b/config/examples/FYSETC/F6_13/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/FYSETC/S6/Configuration_adv.h b/config/examples/FYSETC/S6/Configuration_adv.h index cf4053b33f..b2b04fe516 100644 --- a/config/examples/FYSETC/S6/Configuration_adv.h +++ b/config/examples/FYSETC/S6/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Felix/DUAL/Configuration_adv.h b/config/examples/Felix/DUAL/Configuration_adv.h index 0c6b5b3cee..33daa0a020 100644 --- a/config/examples/Felix/DUAL/Configuration_adv.h +++ b/config/examples/Felix/DUAL/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Felix/Single/Configuration_adv.h b/config/examples/Felix/Single/Configuration_adv.h index 7200f3d667..243991498f 100644 --- a/config/examples/Felix/Single/Configuration_adv.h +++ b/config/examples/Felix/Single/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/FlashForge/Creator 2X/Configuration_adv.h b/config/examples/FlashForge/Creator 2X/Configuration_adv.h index 005eb789bd..ebb88efcc3 100644 --- a/config/examples/FlashForge/Creator 2X/Configuration_adv.h +++ b/config/examples/FlashForge/Creator 2X/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/FlashForge/CreatorPro/Configuration_adv.h b/config/examples/FlashForge/CreatorPro/Configuration_adv.h index aea3cbeade..4095e37473 100644 --- a/config/examples/FlashForge/CreatorPro/Configuration_adv.h +++ b/config/examples/FlashForge/CreatorPro/Configuration_adv.h @@ -2465,6 +2465,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/FlyingBear/P905H/Configuration_adv.h b/config/examples/FlyingBear/P905H/Configuration_adv.h index 4aedf70210..57ad6daff4 100644 --- a/config/examples/FlyingBear/P905H/Configuration_adv.h +++ b/config/examples/FlyingBear/P905H/Configuration_adv.h @@ -2470,6 +2470,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/FolgerTech/i3-2020/Configuration_adv.h b/config/examples/FolgerTech/i3-2020/Configuration_adv.h index 07978baff0..f757aa8fe3 100644 --- a/config/examples/FolgerTech/i3-2020/Configuration_adv.h +++ b/config/examples/FolgerTech/i3-2020/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Formbot/Raptor/Configuration_adv.h b/config/examples/Formbot/Raptor/Configuration_adv.h index 8c829ff3a6..21dd9b1dae 100644 --- a/config/examples/Formbot/Raptor/Configuration_adv.h +++ b/config/examples/Formbot/Raptor/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Formbot/T_Rex_2+/Configuration_adv.h b/config/examples/Formbot/T_Rex_2+/Configuration_adv.h index b401897ffc..a343f1164e 100644 --- a/config/examples/Formbot/T_Rex_2+/Configuration_adv.h +++ b/config/examples/Formbot/T_Rex_2+/Configuration_adv.h @@ -2467,6 +2467,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Formbot/T_Rex_3/Configuration_adv.h b/config/examples/Formbot/T_Rex_3/Configuration_adv.h index 1489de8c04..4dc7766a07 100644 --- a/config/examples/Formbot/T_Rex_3/Configuration_adv.h +++ b/config/examples/Formbot/T_Rex_3/Configuration_adv.h @@ -2471,6 +2471,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Geeetech/A10/Configuration_adv.h b/config/examples/Geeetech/A10/Configuration_adv.h index 4752cabc3f..f898d26262 100644 --- a/config/examples/Geeetech/A10/Configuration_adv.h +++ b/config/examples/Geeetech/A10/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Geeetech/A10D/Configuration_adv.h b/config/examples/Geeetech/A10D/Configuration_adv.h index c1e43a5c1c..b7c2356337 100644 --- a/config/examples/Geeetech/A10D/Configuration_adv.h +++ b/config/examples/Geeetech/A10D/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Geeetech/A10M/Configuration_adv.h b/config/examples/Geeetech/A10M/Configuration_adv.h index 8ee33e04e0..1bd8255776 100644 --- a/config/examples/Geeetech/A10M/Configuration_adv.h +++ b/config/examples/Geeetech/A10M/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Geeetech/A10T/Configuration_adv.h b/config/examples/Geeetech/A10T/Configuration_adv.h index 54d29aee66..e69bf8410d 100644 --- a/config/examples/Geeetech/A10T/Configuration_adv.h +++ b/config/examples/Geeetech/A10T/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Geeetech/A20/Configuration_adv.h b/config/examples/Geeetech/A20/Configuration_adv.h index 0fc2ba8b4b..f316228952 100644 --- a/config/examples/Geeetech/A20/Configuration_adv.h +++ b/config/examples/Geeetech/A20/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Geeetech/A20M/Configuration_adv.h b/config/examples/Geeetech/A20M/Configuration_adv.h index a005f5c185..47dfa9b741 100644 --- a/config/examples/Geeetech/A20M/Configuration_adv.h +++ b/config/examples/Geeetech/A20M/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Geeetech/A20T/Configuration_adv.h b/config/examples/Geeetech/A20T/Configuration_adv.h index eef6cb4cd1..37dacac3d5 100644 --- a/config/examples/Geeetech/A20T/Configuration_adv.h +++ b/config/examples/Geeetech/A20T/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Geeetech/A30/Configuration_adv.h b/config/examples/Geeetech/A30/Configuration_adv.h index 9c5b0b2d7b..a2c29eb1b9 100644 --- a/config/examples/Geeetech/A30/Configuration_adv.h +++ b/config/examples/Geeetech/A30/Configuration_adv.h @@ -2465,6 +2465,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Geeetech/D200/Configuration_adv.h b/config/examples/Geeetech/D200/Configuration_adv.h index c7782bcc4f..457288b1ba 100644 --- a/config/examples/Geeetech/D200/Configuration_adv.h +++ b/config/examples/Geeetech/D200/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Geeetech/Duplicator5/Configuration_adv.h b/config/examples/Geeetech/Duplicator5/Configuration_adv.h index fcd6516eb7..c3259b028f 100644 --- a/config/examples/Geeetech/Duplicator5/Configuration_adv.h +++ b/config/examples/Geeetech/Duplicator5/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Geeetech/E180/Configuration_adv.h b/config/examples/Geeetech/E180/Configuration_adv.h index 0616937065..86fa9addbb 100644 --- a/config/examples/Geeetech/E180/Configuration_adv.h +++ b/config/examples/Geeetech/E180/Configuration_adv.h @@ -2465,6 +2465,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Geeetech/M201/Configuration_adv.h b/config/examples/Geeetech/M201/Configuration_adv.h index 8f1b842f88..02bb3256a7 100644 --- a/config/examples/Geeetech/M201/Configuration_adv.h +++ b/config/examples/Geeetech/M201/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Geeetech/MeCreator2/Configuration_adv.h b/config/examples/Geeetech/MeCreator2/Configuration_adv.h index 890123e10f..b027eba880 100644 --- a/config/examples/Geeetech/MeCreator2/Configuration_adv.h +++ b/config/examples/Geeetech/MeCreator2/Configuration_adv.h @@ -2465,6 +2465,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Geeetech/Me_creator/Configuration_adv.h b/config/examples/Geeetech/Me_creator/Configuration_adv.h index 7816ae3c70..85daa1b7fb 100644 --- a/config/examples/Geeetech/Me_creator/Configuration_adv.h +++ b/config/examples/Geeetech/Me_creator/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Geeetech/Me_ducer/Configuration_adv.h b/config/examples/Geeetech/Me_ducer/Configuration_adv.h index a23ee72e9e..87d07e21be 100644 --- a/config/examples/Geeetech/Me_ducer/Configuration_adv.h +++ b/config/examples/Geeetech/Me_ducer/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Geeetech/PI3A PRO/Configuration_adv.h b/config/examples/Geeetech/PI3A PRO/Configuration_adv.h index ff3a95f505..fe318699c7 100644 --- a/config/examples/Geeetech/PI3A PRO/Configuration_adv.h +++ b/config/examples/Geeetech/PI3A PRO/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Geeetech/Prusa i3 Pro C/Configuration_adv.h b/config/examples/Geeetech/Prusa i3 Pro C/Configuration_adv.h index f3009986c9..b23ffec261 100644 --- a/config/examples/Geeetech/Prusa i3 Pro C/Configuration_adv.h +++ b/config/examples/Geeetech/Prusa i3 Pro C/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Geeetech/Prusa i3 Pro W/Configuration_adv.h b/config/examples/Geeetech/Prusa i3 Pro W/Configuration_adv.h index 0af70d141c..97e3a48e27 100644 --- a/config/examples/Geeetech/Prusa i3 Pro W/Configuration_adv.h +++ b/config/examples/Geeetech/Prusa i3 Pro W/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/HMS434/Configuration_adv.h b/config/examples/HMS434/Configuration_adv.h index 5bb7f4b41a..737a4bc2c6 100644 --- a/config/examples/HMS434/Configuration_adv.h +++ b/config/examples/HMS434/Configuration_adv.h @@ -2457,6 +2457,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Infitary/i3-M508/Configuration_adv.h b/config/examples/Infitary/i3-M508/Configuration_adv.h index e7ba4c6b3b..9ec46a0f29 100644 --- a/config/examples/Infitary/i3-M508/Configuration_adv.h +++ b/config/examples/Infitary/i3-M508/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Intamsys/FunmatHT_4988/Configuration_adv.h b/config/examples/Intamsys/FunmatHT_4988/Configuration_adv.h index 1985247dd5..f761380635 100644 --- a/config/examples/Intamsys/FunmatHT_4988/Configuration_adv.h +++ b/config/examples/Intamsys/FunmatHT_4988/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/JGAurora/A1/Configuration_adv.h b/config/examples/JGAurora/A1/Configuration_adv.h index c840026bd3..f8782c94c8 100644 --- a/config/examples/JGAurora/A1/Configuration_adv.h +++ b/config/examples/JGAurora/A1/Configuration_adv.h @@ -2471,6 +2471,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/JGAurora/A5/Configuration_adv.h b/config/examples/JGAurora/A5/Configuration_adv.h index 9012ae899a..1f2e1b5cfd 100644 --- a/config/examples/JGAurora/A5/Configuration_adv.h +++ b/config/examples/JGAurora/A5/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/JGAurora/A5S/Configuration_adv.h b/config/examples/JGAurora/A5S/Configuration_adv.h index 76c2732f55..0b7a92acaf 100644 --- a/config/examples/JGAurora/A5S/Configuration_adv.h +++ b/config/examples/JGAurora/A5S/Configuration_adv.h @@ -2471,6 +2471,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/JGAurora/Magic/Configuration_adv.h b/config/examples/JGAurora/Magic/Configuration_adv.h index e4e2617b84..ed6ad0f93b 100644 --- a/config/examples/JGAurora/Magic/Configuration_adv.h +++ b/config/examples/JGAurora/Magic/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Kingroon/KP3/Configuration_adv.h b/config/examples/Kingroon/KP3/Configuration_adv.h index ccca43ade8..a8c0e980d2 100644 --- a/config/examples/Kingroon/KP3/Configuration_adv.h +++ b/config/examples/Kingroon/KP3/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/MBot/Cube/Configuration_adv.h b/config/examples/MBot/Cube/Configuration_adv.h index b27ac1efb0..1b3133a4a7 100644 --- a/config/examples/MBot/Cube/Configuration_adv.h +++ b/config/examples/MBot/Cube/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/MakerFarm/Pegasus_12/Configuration_adv.h b/config/examples/MakerFarm/Pegasus_12/Configuration_adv.h index 8543025b50..ee17e2e92d 100644 --- a/config/examples/MakerFarm/Pegasus_12/Configuration_adv.h +++ b/config/examples/MakerFarm/Pegasus_12/Configuration_adv.h @@ -2459,6 +2459,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/MakerParts/Configuration_adv.h b/config/examples/MakerParts/Configuration_adv.h index 8e5752f356..eedd7a99d1 100644 --- a/config/examples/MakerParts/Configuration_adv.h +++ b/config/examples/MakerParts/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Malyan/M150/Configuration_adv.h b/config/examples/Malyan/M150/Configuration_adv.h index 2b084eb466..8e235aad72 100644 --- a/config/examples/Malyan/M150/Configuration_adv.h +++ b/config/examples/Malyan/M150/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Malyan/M200/Configuration_adv.h b/config/examples/Malyan/M200/Configuration_adv.h index 0ca69367a3..0610d396fd 100644 --- a/config/examples/Malyan/M200/Configuration_adv.h +++ b/config/examples/Malyan/M200/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Micromake/C1/enhanced/Configuration_adv.h b/config/examples/Micromake/C1/enhanced/Configuration_adv.h index fff21945b6..edbbc4ae6c 100644 --- a/config/examples/Micromake/C1/enhanced/Configuration_adv.h +++ b/config/examples/Micromake/C1/enhanced/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Mks/Robin/Configuration_adv.h b/config/examples/Mks/Robin/Configuration_adv.h index a0f4513596..cfc74cd05a 100644 --- a/config/examples/Mks/Robin/Configuration_adv.h +++ b/config/examples/Mks/Robin/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Mks/Sbase/Configuration_adv.h b/config/examples/Mks/Sbase/Configuration_adv.h index 7a2c36acd6..32de583b4a 100644 --- a/config/examples/Mks/Sbase/Configuration_adv.h +++ b/config/examples/Mks/Sbase/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Modix/Big60/Configuration_adv.h b/config/examples/Modix/Big60/Configuration_adv.h index 7555cf8b3f..038c03617f 100644 --- a/config/examples/Modix/Big60/Configuration_adv.h +++ b/config/examples/Modix/Big60/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Ortur 4/Configuration_adv.h b/config/examples/Ortur 4/Configuration_adv.h index 0d01936810..7402b26531 100644 --- a/config/examples/Ortur 4/Configuration_adv.h +++ b/config/examples/Ortur 4/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Prusa/MK3S-BigTreeTech-BTT002/Configuration_adv.h b/config/examples/Prusa/MK3S-BigTreeTech-BTT002/Configuration_adv.h index a9b32bb402..c6d0f45cf8 100644 --- a/config/examples/Prusa/MK3S-BigTreeTech-BTT002/Configuration_adv.h +++ b/config/examples/Prusa/MK3S-BigTreeTech-BTT002/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Qidi/Qidi 1/Configuration_adv.h b/config/examples/Qidi/Qidi 1/Configuration_adv.h index 7e034af7a4..b44a0e7078 100644 --- a/config/examples/Qidi/Qidi 1/Configuration_adv.h +++ b/config/examples/Qidi/Qidi 1/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/RapideLite/RL200/Configuration_adv.h b/config/examples/RapideLite/RL200/Configuration_adv.h index 9f6415877d..6d9d6ba240 100644 --- a/config/examples/RapideLite/RL200/Configuration_adv.h +++ b/config/examples/RapideLite/RL200/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Renkforce/RF100/Configuration_adv.h b/config/examples/Renkforce/RF100/Configuration_adv.h index b50624a28a..993cc9b0bc 100644 --- a/config/examples/Renkforce/RF100/Configuration_adv.h +++ b/config/examples/Renkforce/RF100/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Renkforce/RF100XL/Configuration_adv.h b/config/examples/Renkforce/RF100XL/Configuration_adv.h index 8c8565ad33..e776b149a5 100644 --- a/config/examples/Renkforce/RF100XL/Configuration_adv.h +++ b/config/examples/Renkforce/RF100XL/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Renkforce/RF100v2/Configuration_adv.h b/config/examples/Renkforce/RF100v2/Configuration_adv.h index 5339586629..a562b68e5c 100644 --- a/config/examples/Renkforce/RF100v2/Configuration_adv.h +++ b/config/examples/Renkforce/RF100v2/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/RigidBot/Configuration_adv.h b/config/examples/RigidBot/Configuration_adv.h index 60f2fa1df7..5eb69548a5 100644 --- a/config/examples/RigidBot/Configuration_adv.h +++ b/config/examples/RigidBot/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/SCARA/MP_SCARA/Configuration_adv.h b/config/examples/SCARA/MP_SCARA/Configuration_adv.h index 74f9e47c8f..5d5dc25e15 100644 --- a/config/examples/SCARA/MP_SCARA/Configuration_adv.h +++ b/config/examples/SCARA/MP_SCARA/Configuration_adv.h @@ -2463,6 +2463,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/SCARA/Morgan/Configuration_adv.h b/config/examples/SCARA/Morgan/Configuration_adv.h index b87edc7404..f66187d3b8 100644 --- a/config/examples/SCARA/Morgan/Configuration_adv.h +++ b/config/examples/SCARA/Morgan/Configuration_adv.h @@ -2463,6 +2463,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/STM32/Black_STM32F407VET6/Configuration_adv.h b/config/examples/STM32/Black_STM32F407VET6/Configuration_adv.h index 52f2ab1a6f..26b9ad8964 100644 --- a/config/examples/STM32/Black_STM32F407VET6/Configuration_adv.h +++ b/config/examples/STM32/Black_STM32F407VET6/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Sanguinololu/Configuration_adv.h b/config/examples/Sanguinololu/Configuration_adv.h index d5f5aead8e..d83b265d47 100644 --- a/config/examples/Sanguinololu/Configuration_adv.h +++ b/config/examples/Sanguinololu/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Sovol/SV-01/Configuration_adv.h b/config/examples/Sovol/SV-01/Configuration_adv.h index e8d996af4a..e2b8654f17 100644 --- a/config/examples/Sovol/SV-01/Configuration_adv.h +++ b/config/examples/Sovol/SV-01/Configuration_adv.h @@ -2462,6 +2462,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Tevo/Michelangelo/Configuration_adv.h b/config/examples/Tevo/Michelangelo/Configuration_adv.h index 87af20e08e..7edbbfdbfb 100644 --- a/config/examples/Tevo/Michelangelo/Configuration_adv.h +++ b/config/examples/Tevo/Michelangelo/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Tevo/Nereus/Configuration_adv.h b/config/examples/Tevo/Nereus/Configuration_adv.h index 8676d89fb2..a8adaa8907 100755 --- a/config/examples/Tevo/Nereus/Configuration_adv.h +++ b/config/examples/Tevo/Nereus/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Tevo/Tarantula Pro/Configuration_adv.h b/config/examples/Tevo/Tarantula Pro/Configuration_adv.h index 944a1a70c9..84f8961ba9 100755 --- a/config/examples/Tevo/Tarantula Pro/Configuration_adv.h +++ b/config/examples/Tevo/Tarantula Pro/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Tevo/Tornado/V1 (MKS Base)/Configuration_adv.h b/config/examples/Tevo/Tornado/V1 (MKS Base)/Configuration_adv.h index 1451c3ee08..aaedae5bda 100755 --- a/config/examples/Tevo/Tornado/V1 (MKS Base)/Configuration_adv.h +++ b/config/examples/Tevo/Tornado/V1 (MKS Base)/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Tevo/Tornado/V2 (MKS GEN-L)/Configuration_adv.h b/config/examples/Tevo/Tornado/V2 (MKS GEN-L)/Configuration_adv.h index 7cf99a1da6..a760003a92 100755 --- a/config/examples/Tevo/Tornado/V2 (MKS GEN-L)/Configuration_adv.h +++ b/config/examples/Tevo/Tornado/V2 (MKS GEN-L)/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/TheBorg/Configuration_adv.h b/config/examples/TheBorg/Configuration_adv.h index 114f454b96..362fafcf29 100644 --- a/config/examples/TheBorg/Configuration_adv.h +++ b/config/examples/TheBorg/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/TinyBoy2/Configuration_adv.h b/config/examples/TinyBoy2/Configuration_adv.h index 0f126afc3c..1b733ed56c 100644 --- a/config/examples/TinyBoy2/Configuration_adv.h +++ b/config/examples/TinyBoy2/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Tronxy/X3A/Configuration_adv.h b/config/examples/Tronxy/X3A/Configuration_adv.h index d057a26fe2..17e701ee58 100644 --- a/config/examples/Tronxy/X3A/Configuration_adv.h +++ b/config/examples/Tronxy/X3A/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Tronxy/X5S-2E/Configuration_adv.h b/config/examples/Tronxy/X5S-2E/Configuration_adv.h index 697d81d570..3abc2e934c 100644 --- a/config/examples/Tronxy/X5S-2E/Configuration_adv.h +++ b/config/examples/Tronxy/X5S-2E/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Tronxy/X5SA/Configuration_adv.h b/config/examples/Tronxy/X5SA/Configuration_adv.h index 170e84dbf1..575f4d7032 100644 --- a/config/examples/Tronxy/X5SA/Configuration_adv.h +++ b/config/examples/Tronxy/X5SA/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/UltiMachine/Archim1/Configuration_adv.h b/config/examples/UltiMachine/Archim1/Configuration_adv.h index 0b532ae6f4..c6a1e8de4f 100644 --- a/config/examples/UltiMachine/Archim1/Configuration_adv.h +++ b/config/examples/UltiMachine/Archim1/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/UltiMachine/Archim2/Configuration_adv.h b/config/examples/UltiMachine/Archim2/Configuration_adv.h index b3344e22ba..e5e9d46f07 100644 --- a/config/examples/UltiMachine/Archim2/Configuration_adv.h +++ b/config/examples/UltiMachine/Archim2/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/VORONDesign/Configuration_adv.h b/config/examples/VORONDesign/Configuration_adv.h index 538a28063c..b95a645ec4 100644 --- a/config/examples/VORONDesign/Configuration_adv.h +++ b/config/examples/VORONDesign/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Velleman/K8200/Configuration_adv.h b/config/examples/Velleman/K8200/Configuration_adv.h index 99b8fa5799..d96a036114 100644 --- a/config/examples/Velleman/K8200/Configuration_adv.h +++ b/config/examples/Velleman/K8200/Configuration_adv.h @@ -2479,6 +2479,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Velleman/K8400/Dual-head/Configuration_adv.h b/config/examples/Velleman/K8400/Dual-head/Configuration_adv.h index 9541c833b5..9973d160ee 100644 --- a/config/examples/Velleman/K8400/Dual-head/Configuration_adv.h +++ b/config/examples/Velleman/K8400/Dual-head/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Velleman/K8400/Single-head/Configuration_adv.h b/config/examples/Velleman/K8400/Single-head/Configuration_adv.h index 6482c67825..67cf8d3726 100644 --- a/config/examples/Velleman/K8400/Single-head/Configuration_adv.h +++ b/config/examples/Velleman/K8400/Single-head/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/WASP/PowerWASP/Configuration_adv.h b/config/examples/WASP/PowerWASP/Configuration_adv.h index 8de322af7f..7f8f4aae31 100644 --- a/config/examples/WASP/PowerWASP/Configuration_adv.h +++ b/config/examples/WASP/PowerWASP/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Wanhao/Duplicator 4S/Configuration_adv.h b/config/examples/Wanhao/Duplicator 4S/Configuration_adv.h index 3ac0ec1e2b..6b5d078561 100644 --- a/config/examples/Wanhao/Duplicator 4S/Configuration_adv.h +++ b/config/examples/Wanhao/Duplicator 4S/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Wanhao/Duplicator 6/Configuration_adv.h b/config/examples/Wanhao/Duplicator 6/Configuration_adv.h index 82118f4fe2..83550b1efb 100644 --- a/config/examples/Wanhao/Duplicator 6/Configuration_adv.h +++ b/config/examples/Wanhao/Duplicator 6/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Wanhao/Duplicator i3 2.1/Configuration_adv.h b/config/examples/Wanhao/Duplicator i3 2.1/Configuration_adv.h index e4fcd9b3fc..6521dfbd5b 100644 --- a/config/examples/Wanhao/Duplicator i3 2.1/Configuration_adv.h +++ b/config/examples/Wanhao/Duplicator i3 2.1/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Wanhao/Duplicator i3 Mini/Configuration_adv.h b/config/examples/Wanhao/Duplicator i3 Mini/Configuration_adv.h index 6598030a16..13d745c93f 100644 --- a/config/examples/Wanhao/Duplicator i3 Mini/Configuration_adv.h +++ b/config/examples/Wanhao/Duplicator i3 Mini/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Weistek/wt150/Configuration_adv.h b/config/examples/Weistek/wt150/Configuration_adv.h index 20509576a0..36778c9795 100644 --- a/config/examples/Weistek/wt150/Configuration_adv.h +++ b/config/examples/Weistek/wt150/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/Zonestar/P802M/Configuration_adv.h b/config/examples/Zonestar/P802M/Configuration_adv.h index f681e0a5f5..8f9ed48108 100644 --- a/config/examples/Zonestar/P802M/Configuration_adv.h +++ b/config/examples/Zonestar/P802M/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/delta/Anycubic/Kossel Linear Plus/Configuration_adv.h b/config/examples/delta/Anycubic/Kossel Linear Plus/Configuration_adv.h index b91ec9001f..cc89418c63 100644 --- a/config/examples/delta/Anycubic/Kossel Linear Plus/Configuration_adv.h +++ b/config/examples/delta/Anycubic/Kossel Linear Plus/Configuration_adv.h @@ -2469,6 +2469,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/delta/Anycubic/Kossel/Configuration_adv.h b/config/examples/delta/Anycubic/Kossel/Configuration_adv.h index 8ab89e1006..4ad13d8a2f 100644 --- a/config/examples/delta/Anycubic/Kossel/Configuration_adv.h +++ b/config/examples/delta/Anycubic/Kossel/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/delta/Dreammaker/Overlord/Configuration_adv.h b/config/examples/delta/Dreammaker/Overlord/Configuration_adv.h index 361e2d6625..27d67ea74b 100644 --- a/config/examples/delta/Dreammaker/Overlord/Configuration_adv.h +++ b/config/examples/delta/Dreammaker/Overlord/Configuration_adv.h @@ -2467,6 +2467,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/delta/Dreammaker/Overlord_Pro/Configuration_adv.h b/config/examples/delta/Dreammaker/Overlord_Pro/Configuration_adv.h index 8f5e366147..a0fe624c02 100644 --- a/config/examples/delta/Dreammaker/Overlord_Pro/Configuration_adv.h +++ b/config/examples/delta/Dreammaker/Overlord_Pro/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/delta/FLSUN/QQ-S/Configuration_adv.h b/config/examples/delta/FLSUN/QQ-S/Configuration_adv.h index bae3149ac5..8d73b338bf 100644 --- a/config/examples/delta/FLSUN/QQ-S/Configuration_adv.h +++ b/config/examples/delta/FLSUN/QQ-S/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h b/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h index bba07d43f0..0c12b59ce0 100644 --- a/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h +++ b/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/delta/FLSUN/kossel/Configuration_adv.h b/config/examples/delta/FLSUN/kossel/Configuration_adv.h index aa58f2a297..0811227d42 100644 --- a/config/examples/delta/FLSUN/kossel/Configuration_adv.h +++ b/config/examples/delta/FLSUN/kossel/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h b/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h index 24c5b572cc..0b7bc9cb67 100644 --- a/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h +++ b/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/delta/Geeetech/G2/Configuration_adv.h b/config/examples/delta/Geeetech/G2/Configuration_adv.h index 88030bcf7a..ccf9b3ad41 100644 --- a/config/examples/delta/Geeetech/G2/Configuration_adv.h +++ b/config/examples/delta/Geeetech/G2/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/delta/Geeetech/G2Pro/Configuration_adv.h b/config/examples/delta/Geeetech/G2Pro/Configuration_adv.h index 2e997af5ec..072e9a3d9b 100644 --- a/config/examples/delta/Geeetech/G2Pro/Configuration_adv.h +++ b/config/examples/delta/Geeetech/G2Pro/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/delta/Geeetech/G2S/Configuration_adv.h b/config/examples/delta/Geeetech/G2S/Configuration_adv.h index 086034ec18..c8ecbcd71a 100644 --- a/config/examples/delta/Geeetech/G2S/Configuration_adv.h +++ b/config/examples/delta/Geeetech/G2S/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/delta/Geeetech/G2SPro/Configuration_adv.h b/config/examples/delta/Geeetech/G2SPro/Configuration_adv.h index 7a019c131b..bd604db3ef 100644 --- a/config/examples/delta/Geeetech/G2SPro/Configuration_adv.h +++ b/config/examples/delta/Geeetech/G2SPro/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/delta/Geeetech/Rostock 301/Configuration_adv.h b/config/examples/delta/Geeetech/Rostock 301/Configuration_adv.h index 9956ba3fa5..a6f8dd99a1 100644 --- a/config/examples/delta/Geeetech/Rostock 301/Configuration_adv.h +++ b/config/examples/delta/Geeetech/Rostock 301/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/delta/Hatchbox_Alpha/Configuration_adv.h b/config/examples/delta/Hatchbox_Alpha/Configuration_adv.h index 11ce369233..88f1a51532 100644 --- a/config/examples/delta/Hatchbox_Alpha/Configuration_adv.h +++ b/config/examples/delta/Hatchbox_Alpha/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/delta/MKS/SBASE/Configuration_adv.h b/config/examples/delta/MKS/SBASE/Configuration_adv.h index 3ea696fa1b..f8c31091af 100644 --- a/config/examples/delta/MKS/SBASE/Configuration_adv.h +++ b/config/examples/delta/MKS/SBASE/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/delta/Malyan M300/Configuration_adv.h b/config/examples/delta/Malyan M300/Configuration_adv.h index 972a5b4be2..dc44070d68 100644 --- a/config/examples/delta/Malyan M300/Configuration_adv.h +++ b/config/examples/delta/Malyan M300/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/delta/Tevo Little Monster/Configuration_adv.h b/config/examples/delta/Tevo Little Monster/Configuration_adv.h index 38b09b7bb1..dd44c88569 100644 --- a/config/examples/delta/Tevo Little Monster/Configuration_adv.h +++ b/config/examples/delta/Tevo Little Monster/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/delta/generic/Configuration_adv.h b/config/examples/delta/generic/Configuration_adv.h index 0f59693606..b3b1318181 100644 --- a/config/examples/delta/generic/Configuration_adv.h +++ b/config/examples/delta/generic/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/delta/kossel_clear/Configuration_adv.h b/config/examples/delta/kossel_clear/Configuration_adv.h index b052775f45..a47ea2f874 100644 --- a/config/examples/delta/kossel_clear/Configuration_adv.h +++ b/config/examples/delta/kossel_clear/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/delta/kossel_mini/Configuration_adv.h b/config/examples/delta/kossel_mini/Configuration_adv.h index f3535c00fb..401da1c461 100644 --- a/config/examples/delta/kossel_mini/Configuration_adv.h +++ b/config/examples/delta/kossel_mini/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/delta/kossel_xl/Configuration_adv.h b/config/examples/delta/kossel_xl/Configuration_adv.h index 1a0b0faf45..8d3d5dce8e 100644 --- a/config/examples/delta/kossel_xl/Configuration_adv.h +++ b/config/examples/delta/kossel_xl/Configuration_adv.h @@ -2468,6 +2468,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/gCreate/gMax1.5+/Configuration_adv.h b/config/examples/gCreate/gMax1.5+/Configuration_adv.h index 66c876d6c5..493cc85480 100644 --- a/config/examples/gCreate/gMax1.5+/Configuration_adv.h +++ b/config/examples/gCreate/gMax1.5+/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/makibox/Configuration_adv.h b/config/examples/makibox/Configuration_adv.h index 1cda6c53b3..b652298bf2 100644 --- a/config/examples/makibox/Configuration_adv.h +++ b/config/examples/makibox/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. * diff --git a/config/examples/tvrrug/Round2/Configuration_adv.h b/config/examples/tvrrug/Round2/Configuration_adv.h index a292c56161..093707564d 100644 --- a/config/examples/tvrrug/Round2/Configuration_adv.h +++ b/config/examples/tvrrug/Round2/Configuration_adv.h @@ -2466,6 +2466,166 @@ #define E6_HYBRID_THRESHOLD 30 #define E7_HYBRID_THRESHOLD 30 + /** + * CoolStep. Currently supported for TMC2130, TMC2209, TMC5130 and TMC5160 only. + * This mode allows for cooler steppers and energy savings. + * The driver will switch to coolStep when stepper speed is over COOLSTEP_THRESHOLD mm/s. + * + * If SG_RESULT goes below COOLSTEP_LOWER_LOAD_THRESHOLD * 32 stepper current will be increased. + * Set to 0 to disable CoolStep. + * + * If SG_RESULT goes above (COOLSTEP_LOWER_LOAD_THRESHOLD + COOLSTEP_UPPER_LOAD_THRESHOLD + 1) * 32 + * stepper current will be decreased. + * + * SEUP sets the increase step width. Value range is 0..3 and computed as 2^SEUP. + * SEDN sets the decrease delay. Value range is 0..3, 0 being the slowest. + * SEIMIN sets the lower current limit. 0: 1/2 of IRUN, 1:1/4 of IRUN + */ + + #if AXIS_HAS_COOLSTEP(X) + #define X_COOLSTEP_SPEED_THRESHOLD 5 + #define X_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X_COOLSTEP_SEUP 0 + #define X_COOLSTEP_SEDN 0 + #define X_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(X2) + #define X2_COOLSTEP_SPEED_THRESHOLD 5 + #define X2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define X2_COOLSTEP_SEUP 0 + #define X2_COOLSTEP_SEDN 0 + #define X2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y) + #define Y_COOLSTEP_SPEED_THRESHOLD 5 + #define Y_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y_COOLSTEP_SEUP 0 + #define Y_COOLSTEP_SEDN 0 + #define Y_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Y2) + #define Y2_COOLSTEP_SPEED_THRESHOLD 5 + #define Y2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Y2_COOLSTEP_SEUP 0 + #define Y2_COOLSTEP_SEDN 0 + #define Y2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z) + #define Z_COOLSTEP_SPEED_THRESHOLD 5 + #define Z_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z_COOLSTEP_SEUP 0 + #define Z_COOLSTEP_SEDN 0 + #define Z_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z2) + #define Z2_COOLSTEP_SPEED_THRESHOLD 5 + #define Z2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z2_COOLSTEP_SEUP 0 + #define Z2_COOLSTEP_SEDN 0 + #define Z2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z3) + #define Z3_COOLSTEP_SPEED_THRESHOLD 5 + #define Z3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z3_COOLSTEP_SEUP 0 + #define Z3_COOLSTEP_SEDN 0 + #define Z3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(Z4) + #define Z4_COOLSTEP_SPEED_THRESHOLD 5 + #define Z4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define Z4_COOLSTEP_SEUP 0 + #define Z4_COOLSTEP_SEDN 0 + #define Z4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E0) + #define E0_COOLSTEP_SPEED_THRESHOLD 5 + #define E0_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E0_COOLSTEP_SEUP 0 + #define E0_COOLSTEP_SEDN 0 + #define E0_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E1) + #define E1_COOLSTEP_SPEED_THRESHOLD 5 + #define E1_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E1_COOLSTEP_SEUP 0 + #define E1_COOLSTEP_SEDN 0 + #define E1_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E2) + #define E2_COOLSTEP_SPEED_THRESHOLD 5 + #define E2_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E2_COOLSTEP_SEUP 0 + #define E2_COOLSTEP_SEDN 0 + #define E2_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E3) + #define E3_COOLSTEP_SPEED_THRESHOLD 5 + #define E3_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E3_COOLSTEP_SEUP 0 + #define E3_COOLSTEP_SEDN 0 + #define E3_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E4) + #define E4_COOLSTEP_SPEED_THRESHOLD 5 + #define E4_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E4_COOLSTEP_SEUP 0 + #define E4_COOLSTEP_SEDN 0 + #define E4_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E5) + #define E5_COOLSTEP_SPEED_THRESHOLD 5 + #define E5_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E5_COOLSTEP_SEUP 0 + #define E5_COOLSTEP_SEDN 0 + #define E5_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E6) + #define E6_COOLSTEP_SPEED_THRESHOLD 5 + #define E6_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E6_COOLSTEP_SEUP 0 + #define E6_COOLSTEP_SEDN 0 + #define E6_COOLSTEP_SEIMIN 0 + #endif + + #if AXIS_HAS_COOLSTEP(E7) + #define E7_COOLSTEP_SPEED_THRESHOLD 5 + #define E7_COOLSTEP_LOWER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_UPPER_LOAD_THRESHOLD 0 + #define E7_COOLSTEP_SEUP 0 + #define E7_COOLSTEP_SEDN 0 + #define E7_COOLSTEP_SEIMIN 0 + #endif + /** * Use StallGuard2 to home / probe X, Y, Z. *