Add TMC2130 sensorless probing
This commit is contained in:
committed by
Scott Lahteine
parent
7d5c336c56
commit
3286325044
@ -528,7 +528,7 @@
|
||||
/**
|
||||
* Set flags for enabled probes
|
||||
*/
|
||||
#define HAS_BED_PROBE (ENABLED(FIX_MOUNTED_PROBE) || ENABLED(Z_PROBE_ALLEN_KEY) || HAS_Z_SERVO_PROBE || ENABLED(Z_PROBE_SLED) || ENABLED(SOLENOID_PROBE))
|
||||
#define HAS_BED_PROBE (ENABLED(FIX_MOUNTED_PROBE) || ENABLED(Z_PROBE_ALLEN_KEY) || HAS_Z_SERVO_PROBE || ENABLED(Z_PROBE_SLED) || ENABLED(SOLENOID_PROBE) || ENABLED(SENSORLESS_PROBING))
|
||||
#define PROBE_SELECTED (HAS_BED_PROBE || ENABLED(PROBE_MANUALLY) || ENABLED(MESH_BED_LEVELING))
|
||||
|
||||
#if !HAS_BED_PROBE
|
||||
|
@ -869,14 +869,15 @@
|
||||
#define AXIS_HAS_STEALTHCHOP(ST) ( AXIS_DRIVER_TYPE(ST, TMC2130) || AXIS_DRIVER_TYPE(ST, TMC2208) )
|
||||
#define AXIS_HAS_STALLGUARD(ST) AXIS_DRIVER_TYPE(ST, TMC2130)
|
||||
|
||||
#if ENABLED(SENSORLESS_HOMING)
|
||||
#define USE_SENSORLESS (ENABLED(SENSORLESS_HOMING) || ENABLED(SENSORLESS_PROBING))
|
||||
#if USE_SENSORLESS
|
||||
// Disable Z axis sensorless homing if a probe is used to home the Z axis
|
||||
#if HOMING_Z_WITH_PROBE
|
||||
#undef Z_HOMING_SENSITIVITY
|
||||
#undef Z_STALL_SENSITIVITY
|
||||
#endif
|
||||
#define X_SENSORLESS (AXIS_HAS_STALLGUARD(X) && defined(X_HOMING_SENSITIVITY))
|
||||
#define Y_SENSORLESS (AXIS_HAS_STALLGUARD(Y) && defined(Y_HOMING_SENSITIVITY))
|
||||
#define Z_SENSORLESS (AXIS_HAS_STALLGUARD(Z) && defined(Z_HOMING_SENSITIVITY))
|
||||
#define X_SENSORLESS (AXIS_HAS_STALLGUARD(X) && defined(X_STALL_SENSITIVITY))
|
||||
#define Y_SENSORLESS (AXIS_HAS_STALLGUARD(Y) && defined(Y_STALL_SENSITIVITY))
|
||||
#define Z_SENSORLESS (AXIS_HAS_STALLGUARD(Z) && defined(Z_STALL_SENSITIVITY))
|
||||
#endif
|
||||
|
||||
// Endstops and bed probe
|
||||
|
@ -895,7 +895,13 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,
|
||||
/**
|
||||
* Require pin options and pins to be defined
|
||||
*/
|
||||
#if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
|
||||
#if ENABLED(SENSORLESS_PROBING)
|
||||
#if ENABLED(DELTA) && (!AXIS_DRIVER_TYPE_X(TMC2130) || !AXIS_DRIVER_TYPE_Y(TMC2130) || !AXIS_DRIVER_TYPE_Z(TMC2130))
|
||||
#error "SENSORLESS_PROBING requires TMC2130 drivers on X, Y, and Z."
|
||||
#elif !AXIS_DRIVER_TYPE_Z(TMC2130)
|
||||
#error "SENSORLESS_PROBING requires a TMC2130 driver on Z."
|
||||
#endif
|
||||
#elif ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
|
||||
#if ENABLED(Z_MIN_PROBE_ENDSTOP)
|
||||
#error "Enable only one option: Z_MIN_PROBE_ENDSTOP or Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN."
|
||||
#elif DISABLED(USE_ZMIN_PLUG)
|
||||
@ -1746,19 +1752,18 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,
|
||||
#error "CoreYZ requires both Y and Z to use sensorless homing if either does."
|
||||
#endif
|
||||
|
||||
// Other TMC feature requirements
|
||||
#if ENABLED(HYBRID_THRESHOLD) && DISABLED(STEALTHCHOP)
|
||||
#error "Enable STEALTHCHOP to use HYBRID_THRESHOLD."
|
||||
#endif
|
||||
#if ENABLED(TMC_Z_CALIBRATION) && !AXIS_IS_TMC(Z) && !AXIS_IS_TMC(Z2) && !AXIS_IS_TMC(Z3)
|
||||
#elif ENABLED(TMC_Z_CALIBRATION) && !AXIS_IS_TMC(Z) && !AXIS_IS_TMC(Z2) && !AXIS_IS_TMC(Z3)
|
||||
#error "TMC_Z_CALIBRATION requires at least one TMC driver on Z axis"
|
||||
#endif
|
||||
|
||||
#if ENABLED(SENSORLESS_HOMING) && !HAS_STALLGUARD
|
||||
#error "SENSORLESS_HOMING requires TMC2130 or TMC2660 stepper drivers."
|
||||
#endif
|
||||
#if ENABLED(STEALTHCHOP) && !HAS_STEALTHCHOP
|
||||
#elif ENABLED(SENSORLESS_HOMING) && !HAS_STALLGUARD
|
||||
#error "SENSORLESS_HOMING requires TMC2130 stepper drivers."
|
||||
#elif ENABLED(SENSORLESS_PROBING) && !HAS_STALLGUARD
|
||||
#error "SENSORLESS_PROBING requires TMC2130 stepper drivers."
|
||||
#elif ENABLED(STEALTHCHOP) && !HAS_STEALTHCHOP
|
||||
#error "STEALTHCHOP requires TMC2130 or TMC2208 stepper drivers."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Digipot requirement
|
||||
|
Reference in New Issue
Block a user