CoreXY sensorless homing (#17972)
This commit is contained in:
parent
1d654b559d
commit
6ae7a40f99
3 changed files with 35 additions and 6 deletions
|
@ -1587,6 +1587,15 @@
|
||||||
#if _HAS_STOP(Z,MAX)
|
#if _HAS_STOP(Z,MAX)
|
||||||
#define HAS_Z_MAX 1
|
#define HAS_Z_MAX 1
|
||||||
#endif
|
#endif
|
||||||
|
#if _HAS_STOP(X,STOP)
|
||||||
|
#define HAS_X_STOP 1
|
||||||
|
#endif
|
||||||
|
#if _HAS_STOP(Y,STOP)
|
||||||
|
#define HAS_Y_STOP 1
|
||||||
|
#endif
|
||||||
|
#if _HAS_STOP(Z,STOP)
|
||||||
|
#define HAS_Z_STOP 1
|
||||||
|
#endif
|
||||||
#if PIN_EXISTS(X2_MIN)
|
#if PIN_EXISTS(X2_MIN)
|
||||||
#define HAS_X2_MIN 1
|
#define HAS_X2_MIN 1
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -742,7 +742,8 @@ void Endstops::update() {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Now, we must signal, after validation, if an endstop limit is pressed or not
|
// Signal, after validation, if an endstop limit is pressed or not
|
||||||
|
|
||||||
if (stepper.axis_is_moving(X_AXIS)) {
|
if (stepper.axis_is_moving(X_AXIS)) {
|
||||||
if (stepper.motor_direction(X_AXIS_HEAD)) { // -direction
|
if (stepper.motor_direction(X_AXIS_HEAD)) { // -direction
|
||||||
#if HAS_X_MIN || (X_SPI_SENSORLESS && X_HOME_DIR < 0)
|
#if HAS_X_MIN || (X_SPI_SENSORLESS && X_HOME_DIR < 0)
|
||||||
|
@ -804,19 +805,37 @@ void Endstops::update() {
|
||||||
bool Endstops::tmc_spi_homing_check() {
|
bool Endstops::tmc_spi_homing_check() {
|
||||||
bool hit = false;
|
bool hit = false;
|
||||||
#if X_SPI_SENSORLESS
|
#if X_SPI_SENSORLESS
|
||||||
if (tmc_spi_homing.x && stepperX.test_stall_status()) {
|
if (tmc_spi_homing.x && (stepperX.test_stall_status()
|
||||||
|
#if CORE_IS_XY && Y_SPI_SENSORLESS
|
||||||
|
|| stepperY.test_stall_status()
|
||||||
|
#elif CORE_IS_XZ && Z_SPI_SENSORLESS
|
||||||
|
|| stepperZ.test_stall_status()
|
||||||
|
#endif
|
||||||
|
)) {
|
||||||
SBI(live_state, X_STOP);
|
SBI(live_state, X_STOP);
|
||||||
hit = true;
|
hit = true;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#if Y_SPI_SENSORLESS
|
#if Y_SPI_SENSORLESS
|
||||||
if (tmc_spi_homing.y && stepperY.test_stall_status()) {
|
if (tmc_spi_homing.y && (stepperY.test_stall_status()
|
||||||
|
#if CORE_IS_XY && X_SPI_SENSORLESS
|
||||||
|
|| stepperX.test_stall_status()
|
||||||
|
#elif CORE_IS_YZ && Z_SPI_SENSORLESS
|
||||||
|
|| stepperZ.test_stall_status()
|
||||||
|
#endif
|
||||||
|
)) {
|
||||||
SBI(live_state, Y_STOP);
|
SBI(live_state, Y_STOP);
|
||||||
hit = true;
|
hit = true;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#if Z_SPI_SENSORLESS
|
#if Z_SPI_SENSORLESS
|
||||||
if (tmc_spi_homing.z && stepperZ.test_stall_status()) {
|
if (tmc_spi_homing.z && (stepperZ.test_stall_status()
|
||||||
|
#if CORE_IS_XZ && X_SPI_SENSORLESS
|
||||||
|
|| stepperX.test_stall_status()
|
||||||
|
#elif CORE_IS_YZ && Y_SPI_SENSORLESS
|
||||||
|
|| stepperY.test_stall_status()
|
||||||
|
#endif
|
||||||
|
)) {
|
||||||
SBI(live_state, Z_STOP);
|
SBI(live_state, Z_STOP);
|
||||||
hit = true;
|
hit = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,13 +83,14 @@ exec_test $1 $2 "Mixing Extruder"
|
||||||
# opt_set NUM_SERVOS 1
|
# opt_set NUM_SERVOS 1
|
||||||
# opt_enable SWITCHING_EXTRUDER ULTIMAKERCONTROLLER
|
# opt_enable SWITCHING_EXTRUDER ULTIMAKERCONTROLLER
|
||||||
# exec_test $1 $2 "SWITCHING_EXTRUDER"
|
# exec_test $1 $2 "SWITCHING_EXTRUDER"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Enable COREXY
|
# Enable COREXY
|
||||||
#
|
#
|
||||||
restore_configs
|
restore_configs
|
||||||
opt_set MOTHERBOARD BOARD_TEENSY35_36
|
opt_set MOTHERBOARD BOARD_TEENSY35_36
|
||||||
opt_enable COREXY
|
opt_enable COREXY
|
||||||
exec_test $1 $2 "COREXY"
|
exec_test $1 $2 "Teensy 3.5/3.6 COREXY"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Enable COREXZ
|
# Enable COREXZ
|
||||||
|
@ -97,7 +98,7 @@ exec_test $1 $2 "COREXY"
|
||||||
restore_configs
|
restore_configs
|
||||||
opt_set MOTHERBOARD BOARD_TEENSY35_36
|
opt_set MOTHERBOARD BOARD_TEENSY35_36
|
||||||
opt_enable COREXZ
|
opt_enable COREXZ
|
||||||
exec_test $1 $2 "COREXZ"
|
exec_test $1 $2 "Teensy 3.5/3.6 COREXZ"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Enable Dual Z with Dual Z endstops
|
# Enable Dual Z with Dual Z endstops
|
||||||
|
|
Reference in a new issue