Browse Source

CoreXY sensorless homing (#17972)

vanilla_fb_2.0.x
Scott Lahteine 4 years ago
committed by GitHub
parent
commit
6ae7a40f99
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 9
      Marlin/src/inc/Conditionals_post.h
  2. 27
      Marlin/src/module/endstops.cpp
  3. 5
      buildroot/share/tests/teensy35-tests

9
Marlin/src/inc/Conditionals_post.h

@ -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

27
Marlin/src/module/endstops.cpp

@ -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;
} }

5
buildroot/share/tests/teensy35-tests

@ -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

Loading…
Cancel
Save