|
|
@ -2585,17 +2585,18 @@ void MarlinSettings::reset() { |
|
|
|
#if HAS_TRINAMIC |
|
|
|
inline void say_M906(const bool forReplay) { CONFIG_ECHO_START(); SERIAL_ECHOPGM(" M906"); } |
|
|
|
#if HAS_STEALTHCHOP |
|
|
|
void say_M569(const char * const etc=nullptr) { |
|
|
|
void say_M569(const bool forReplay, const char * const etc=nullptr, const bool newLine = false) { |
|
|
|
CONFIG_ECHO_START(); |
|
|
|
SERIAL_ECHOPGM(" M569 S1"); |
|
|
|
if (etc) { |
|
|
|
SERIAL_CHAR(' '); |
|
|
|
serialprintPGM(etc); |
|
|
|
SERIAL_EOL(); |
|
|
|
} |
|
|
|
if (newLine) SERIAL_EOL(); |
|
|
|
} |
|
|
|
#endif |
|
|
|
#if ENABLED(HYBRID_THRESHOLD) |
|
|
|
inline void say_M913() { SERIAL_ECHOPGM(" M913"); } |
|
|
|
inline void say_M913(const bool forReplay) { CONFIG_ECHO_START(); SERIAL_ECHOPGM(" M913"); } |
|
|
|
#endif |
|
|
|
#if USE_SENSORLESS |
|
|
|
inline void say_M914() { SERIAL_ECHOPGM(" M914"); } |
|
|
@ -3168,9 +3169,8 @@ void MarlinSettings::reset() { |
|
|
|
*/ |
|
|
|
#if ENABLED(HYBRID_THRESHOLD) |
|
|
|
CONFIG_ECHO_HEADING("Hybrid Threshold:"); |
|
|
|
CONFIG_ECHO_START(); |
|
|
|
#if AXIS_HAS_STEALTHCHOP(X) || AXIS_HAS_STEALTHCHOP(Y) || AXIS_HAS_STEALTHCHOP(Z) |
|
|
|
say_M913(); |
|
|
|
say_M913(forReplay); |
|
|
|
#endif |
|
|
|
#if AXIS_HAS_STEALTHCHOP(X) |
|
|
|
SERIAL_ECHOPAIR(" X", stepperX.get_pwm_thrs()); |
|
|
@ -3186,7 +3186,7 @@ void MarlinSettings::reset() { |
|
|
|
#endif |
|
|
|
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(X2) || AXIS_HAS_STEALTHCHOP(Y2) || AXIS_HAS_STEALTHCHOP(Z2) |
|
|
|
say_M913(); |
|
|
|
say_M913(forReplay); |
|
|
|
SERIAL_ECHOPGM(" I1"); |
|
|
|
#endif |
|
|
|
#if AXIS_HAS_STEALTHCHOP(X2) |
|
|
@ -3203,32 +3203,32 @@ void MarlinSettings::reset() { |
|
|
|
#endif |
|
|
|
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(Z3) |
|
|
|
say_M913(); |
|
|
|
say_M913(forReplay); |
|
|
|
SERIAL_ECHOLNPAIR(" I2 Z", stepperZ3.get_pwm_thrs()); |
|
|
|
#endif |
|
|
|
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(E0) |
|
|
|
say_M913(); |
|
|
|
say_M913(forReplay); |
|
|
|
SERIAL_ECHOLNPAIR(" T0 E", stepperE0.get_pwm_thrs()); |
|
|
|
#endif |
|
|
|
#if AXIS_HAS_STEALTHCHOP(E1) |
|
|
|
say_M913(); |
|
|
|
say_M913(forReplay); |
|
|
|
SERIAL_ECHOLNPAIR(" T1 E", stepperE1.get_pwm_thrs()); |
|
|
|
#endif |
|
|
|
#if AXIS_HAS_STEALTHCHOP(E2) |
|
|
|
say_M913(); |
|
|
|
say_M913(forReplay); |
|
|
|
SERIAL_ECHOLNPAIR(" T2 E", stepperE2.get_pwm_thrs()); |
|
|
|
#endif |
|
|
|
#if AXIS_HAS_STEALTHCHOP(E3) |
|
|
|
say_M913(); |
|
|
|
say_M913(forReplay); |
|
|
|
SERIAL_ECHOLNPAIR(" T3 E", stepperE3.get_pwm_thrs()); |
|
|
|
#endif |
|
|
|
#if AXIS_HAS_STEALTHCHOP(E4) |
|
|
|
say_M913(); |
|
|
|
say_M913(forReplay); |
|
|
|
SERIAL_ECHOLNPAIR(" T4 E", stepperE4.get_pwm_thrs()); |
|
|
|
#endif |
|
|
|
#if AXIS_HAS_STEALTHCHOP(E5) |
|
|
|
say_M913(); |
|
|
|
say_M913(forReplay); |
|
|
|
SERIAL_ECHOLNPAIR(" T5 E", stepperE5.get_pwm_thrs()); |
|
|
|
#endif |
|
|
|
SERIAL_EOL(); |
|
|
@ -3239,8 +3239,8 @@ void MarlinSettings::reset() { |
|
|
|
*/ |
|
|
|
#if USE_SENSORLESS |
|
|
|
CONFIG_ECHO_HEADING("StallGuard threshold:"); |
|
|
|
CONFIG_ECHO_START(); |
|
|
|
#if X_SENSORLESS || Y_SENSORLESS || Z_SENSORLESS |
|
|
|
CONFIG_ECHO_START(); |
|
|
|
say_M914(); |
|
|
|
#if X_SENSORLESS |
|
|
|
SERIAL_ECHOPAIR(" X", stepperX.homing_threshold()); |
|
|
@ -3259,6 +3259,7 @@ void MarlinSettings::reset() { |
|
|
|
#define HAS_Z2_SENSORLESS (defined(Z_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(Z2)) |
|
|
|
#define HAS_Z3_SENSORLESS (defined(Z_STALL_SENSITIVITY) && AXIS_HAS_STALLGUARD(Z3)) |
|
|
|
#if HAS_X2_SENSORLESS || HAS_Y2_SENSORLESS || HAS_Z2_SENSORLESS |
|
|
|
CONFIG_ECHO_START(); |
|
|
|
say_M914(); |
|
|
|
SERIAL_ECHOPGM(" I1"); |
|
|
|
#if HAS_X2_SENSORLESS |
|
|
@ -3274,6 +3275,7 @@ void MarlinSettings::reset() { |
|
|
|
#endif |
|
|
|
|
|
|
|
#if HAS_Z3_SENSORLESS |
|
|
|
CONFIG_ECHO_START(); |
|
|
|
say_M914(); |
|
|
|
SERIAL_ECHOLNPAIR(" I2 Z", stepperZ3.homing_threshold()); |
|
|
|
#endif |
|
|
@ -3285,7 +3287,6 @@ void MarlinSettings::reset() { |
|
|
|
*/ |
|
|
|
#if HAS_STEALTHCHOP |
|
|
|
CONFIG_ECHO_HEADING("Driver stepping mode:"); |
|
|
|
CONFIG_ECHO_START(); |
|
|
|
#if AXIS_HAS_STEALTHCHOP(X) |
|
|
|
const bool chop_x = stepperX.get_stealthChop_status(); |
|
|
|
#else |
|
|
@ -3302,11 +3303,13 @@ void MarlinSettings::reset() { |
|
|
|
constexpr bool chop_z = false; |
|
|
|
#endif |
|
|
|
|
|
|
|
if (chop_x || chop_y || chop_z) say_M569(); |
|
|
|
if (chop_x) SERIAL_ECHOPGM(" X"); |
|
|
|
if (chop_y) SERIAL_ECHOPGM(" Y"); |
|
|
|
if (chop_z) SERIAL_ECHOPGM(" Z"); |
|
|
|
if (chop_x || chop_y || chop_z) SERIAL_EOL(); |
|
|
|
if (chop_x || chop_y || chop_z) { |
|
|
|
say_M569(forReplay); |
|
|
|
if (chop_x) SERIAL_ECHOPGM(" X"); |
|
|
|
if (chop_y) SERIAL_ECHOPGM(" Y"); |
|
|
|
if (chop_z) SERIAL_ECHOPGM(" Z"); |
|
|
|
SERIAL_EOL(); |
|
|
|
} |
|
|
|
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(X2) |
|
|
|
const bool chop_x2 = stepperX2.get_stealthChop_status(); |
|
|
@ -3324,33 +3327,35 @@ void MarlinSettings::reset() { |
|
|
|
constexpr bool chop_z2 = false; |
|
|
|
#endif |
|
|
|
|
|
|
|
if (chop_x2 || chop_y2 || chop_z2) say_M569(PSTR("I1")); |
|
|
|
if (chop_x2) SERIAL_ECHOPGM(" X"); |
|
|
|
if (chop_y2) SERIAL_ECHOPGM(" Y"); |
|
|
|
if (chop_z2) SERIAL_ECHOPGM(" Z"); |
|
|
|
if (chop_x2 || chop_y2 || chop_z2) SERIAL_EOL(); |
|
|
|
if (chop_x2 || chop_y2 || chop_z2) { |
|
|
|
say_M569(forReplay, PSTR("I1")); |
|
|
|
if (chop_x2) SERIAL_ECHOPGM(" X"); |
|
|
|
if (chop_y2) SERIAL_ECHOPGM(" Y"); |
|
|
|
if (chop_z2) SERIAL_ECHOPGM(" Z"); |
|
|
|
SERIAL_EOL(); |
|
|
|
} |
|
|
|
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(Z3) |
|
|
|
if (stepperZ3.get_stealthChop_status()) { say_M569(PSTR("I2 Z")); } |
|
|
|
if (stepperZ3.get_stealthChop_status()) { say_M569(forReplay, PSTR("I2 Z"), true); } |
|
|
|
#endif |
|
|
|
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(E0) |
|
|
|
if (stepperE0.get_stealthChop_status()) { say_M569(PSTR("T0 E")); } |
|
|
|
if (stepperE0.get_stealthChop_status()) { say_M569(forReplay, PSTR("T0 E"), true); } |
|
|
|
#endif |
|
|
|
#if AXIS_HAS_STEALTHCHOP(E1) |
|
|
|
if (stepperE1.get_stealthChop_status()) { say_M569(PSTR("T1 E")); } |
|
|
|
if (stepperE1.get_stealthChop_status()) { say_M569(forReplay, PSTR("T1 E"), true); } |
|
|
|
#endif |
|
|
|
#if AXIS_HAS_STEALTHCHOP(E2) |
|
|
|
if (stepperE2.get_stealthChop_status()) { say_M569(PSTR("T2 E")); } |
|
|
|
if (stepperE2.get_stealthChop_status()) { say_M569(forReplay, PSTR("T2 E"), true); } |
|
|
|
#endif |
|
|
|
#if AXIS_HAS_STEALTHCHOP(E3) |
|
|
|
if (stepperE3.get_stealthChop_status()) { say_M569(PSTR("T3 E")); } |
|
|
|
if (stepperE3.get_stealthChop_status()) { say_M569(forReplay, PSTR("T3 E"), true); } |
|
|
|
#endif |
|
|
|
#if AXIS_HAS_STEALTHCHOP(E4) |
|
|
|
if (stepperE4.get_stealthChop_status()) { say_M569(PSTR("T4 E")); } |
|
|
|
if (stepperE4.get_stealthChop_status()) { say_M569(forReplay, PSTR("T4 E"), true); } |
|
|
|
#endif |
|
|
|
#if AXIS_HAS_STEALTHCHOP(E5) |
|
|
|
if (stepperE5.get_stealthChop_status()) { say_M569(PSTR("T5 E")); } |
|
|
|
if (stepperE5.get_stealthChop_status()) { say_M569(forReplay, PSTR("T5 E"), true); } |
|
|
|
#endif |
|
|
|
|
|
|
|
#endif // HAS_STEALTHCHOP
|
|
|
|