From 2606efe3d568de78743b6e4defa9480dd6939a6a Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sun, 2 Jan 2022 02:32:44 -0600 Subject: [PATCH] attempt simplifications --- Marlin/Configuration.h | 10 +- Marlin/src/HAL/AVR/endstop_interrupts.h | 225 ++---- Marlin/src/HAL/DUE/endstop_interrupts.h | 24 +- Marlin/src/HAL/ESP32/endstop_interrupts.h | 24 +- Marlin/src/HAL/LPC1768/endstop_interrupts.h | 58 +- Marlin/src/HAL/LPC1768/inc/SanityCheck.h | 4 +- Marlin/src/HAL/SAMD51/endstop_interrupts.h | 97 +-- Marlin/src/HAL/STM32/endstop_interrupts.h | 24 +- Marlin/src/HAL/STM32F1/endstop_interrupts.h | 24 +- .../src/HAL/TEENSY31_32/endstop_interrupts.h | 24 +- .../src/HAL/TEENSY35_36/endstop_interrupts.h | 24 +- .../src/HAL/TEENSY40_41/endstop_interrupts.h | 24 +- Marlin/src/gcode/calibrate/G28.cpp | 2 +- Marlin/src/gcode/config/M43.cpp | 35 +- Marlin/src/inc/Conditionals_LCD.h | 72 +- Marlin/src/inc/Conditionals_adv.h | 1 - Marlin/src/inc/Conditionals_post.h | 168 +++-- Marlin/src/inc/SanityCheck.h | 108 +-- Marlin/src/inc/Warnings.cpp | 2 +- .../generic/endstop_state_screen.cpp | 12 +- Marlin/src/lcd/menu/menu_probe_offset.cpp | 4 +- Marlin/src/module/endstops.cpp | 653 +++++++----------- Marlin/src/module/endstops.h | 47 +- Marlin/src/module/motion.cpp | 32 +- Marlin/src/module/probe.h | 6 +- Marlin/src/pins/mega/pins_OVERLORD.h | 2 +- Marlin/src/pins/pins_postprocess.h | 107 --- Marlin/src/pins/rambo/pins_RAMBO_THINKERV2.h | 12 +- Marlin/src/pins/ramps/pins_BQ_ZUM_MEGA_3D.h | 13 +- Marlin/src/pins/samd/pins_RAMPS_144.h | 2 +- .../PeripheralPins.c | 2 +- buildroot/tests/DUE | 2 +- buildroot/tests/FYSETC_F6 | 4 +- buildroot/tests/LPC1769 | 4 +- buildroot/tests/STM32F103RET6_creality | 4 +- buildroot/tests/STM32F103RE_btt_USB | 5 +- buildroot/tests/mega1280 | 2 +- buildroot/tests/rambo | 9 +- buildroot/tests/teensy35 | 4 +- buildroot/tests/teensy41 | 4 +- 40 files changed, 742 insertions(+), 1138 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 236c6a8a54612..5df0a117a2dc1 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -1025,20 +1025,12 @@ // See https://marlinfw.org/docs/configuration/probes.html // -/** - * Enable this option for a probe connected to the Z-MIN pin. - * The probe replaces the Z-MIN endstop and is used for Z homing. - * (Automatically enables USE_PROBE_FOR_Z_HOMING.) - */ -#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN - // Force the use of the probe for Z-axis homing //#define USE_PROBE_FOR_Z_HOMING /** * Z_MIN_PROBE_PIN * - * Define this pin if the probe is not connected to Z_MIN_PIN. * If not defined the default pin for the selected MOTHERBOARD * will be used. Most of the time the default is what you want. * @@ -1050,7 +1042,7 @@ * - normally-closed switches to GND and D32. * - normally-open switches to 5V and D32. */ -//#define Z_MIN_PROBE_PIN 32 // Pin 32 is the RAMPS default +//#define Z_MIN_PROBE_PIN Z_MIN_PIN // Override the default pin, if needed /** * Probe Type diff --git a/Marlin/src/HAL/AVR/endstop_interrupts.h b/Marlin/src/HAL/AVR/endstop_interrupts.h index 50f29c3356ce5..d9535cc136b3c 100644 --- a/Marlin/src/HAL/AVR/endstop_interrupts.h +++ b/Marlin/src/HAL/AVR/endstop_interrupts.h @@ -120,186 +120,83 @@ void pciSetup(const int8_t pin) { void setup_endstop_interrupts() { #define _ATTACH(P) attachInterrupt(digitalPinToInterrupt(P), endstop_ISR, CHANGE) - #if HAS_X_MAX - #if (digitalPinToInterrupt(X_MAX_PIN) != NOT_AN_INTERRUPT) - _ATTACH(X_MAX_PIN); - #else - static_assert(digitalPinHasPCICR(X_MAX_PIN), "X_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."); - pciSetup(X_MAX_PIN); - #endif - #endif - #if HAS_X_MIN - #if (digitalPinToInterrupt(X_MIN_PIN) != NOT_AN_INTERRUPT) - _ATTACH(X_MIN_PIN); - #else - static_assert(digitalPinHasPCICR(X_MIN_PIN), "X_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."); - pciSetup(X_MIN_PIN); - #endif - #endif - #if HAS_Y_MAX - #if (digitalPinToInterrupt(Y_MAX_PIN) != NOT_AN_INTERRUPT) - _ATTACH(Y_MAX_PIN); - #else - static_assert(digitalPinHasPCICR(Y_MAX_PIN), "Y_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."); - pciSetup(Y_MAX_PIN); - #endif - #endif - #if HAS_Y_MIN - #if (digitalPinToInterrupt(Y_MIN_PIN) != NOT_AN_INTERRUPT) - _ATTACH(Y_MIN_PIN); - #else - static_assert(digitalPinHasPCICR(Y_MIN_PIN), "Y_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."); - pciSetup(Y_MIN_PIN); - #endif - #endif - #if HAS_Z_MAX - #if (digitalPinToInterrupt(Z_MAX_PIN) != NOT_AN_INTERRUPT) - _ATTACH(Z_MAX_PIN); - #else - static_assert(digitalPinHasPCICR(Z_MAX_PIN), "Z_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."); - pciSetup(Z_MAX_PIN); - #endif - #endif - #if HAS_Z_MIN - #if (digitalPinToInterrupt(Z_MIN_PIN) != NOT_AN_INTERRUPT) - _ATTACH(Z_MIN_PIN); - #else - static_assert(digitalPinHasPCICR(Z_MIN_PIN), "Z_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."); - pciSetup(Z_MIN_PIN); - #endif - #endif - #if HAS_I_MAX - #if (digitalPinToInterrupt(I_MAX_PIN) != NOT_AN_INTERRUPT) - _ATTACH(I_MAX_PIN); - #else - static_assert(digitalPinHasPCICR(I_MAX_PIN), "I_MAX_PIN is not interrupt-capable"); - pciSetup(I_MAX_PIN); - #endif - #elif HAS_I_MIN - #if (digitalPinToInterrupt(I_MIN_PIN) != NOT_AN_INTERRUPT) - _ATTACH(I_MIN_PIN); - #else - static_assert(digitalPinHasPCICR(I_MIN_PIN), "I_MIN_PIN is not interrupt-capable"); - pciSetup(I_MIN_PIN); - #endif - #endif - #if HAS_J_MAX - #if (digitalPinToInterrupt(J_MAX_PIN) != NOT_AN_INTERRUPT) - _ATTACH(J_MAX_PIN); - #else - static_assert(digitalPinHasPCICR(J_MAX_PIN), "J_MAX_PIN is not interrupt-capable"); - pciSetup(J_MAX_PIN); - #endif - #elif HAS_J_MIN - #if (digitalPinToInterrupt(J_MIN_PIN) != NOT_AN_INTERRUPT) - _ATTACH(J_MIN_PIN); - #else - static_assert(digitalPinHasPCICR(J_MIN_PIN), "J_MIN_PIN is not interrupt-capable"); - pciSetup(J_MIN_PIN); - #endif - #endif - #if HAS_K_MAX - #if (digitalPinToInterrupt(K_MAX_PIN) != NOT_AN_INTERRUPT) - _ATTACH(K_MAX_PIN); - #else - static_assert(digitalPinHasPCICR(K_MAX_PIN), "K_MAX_PIN is not interrupt-capable"); - pciSetup(K_MAX_PIN); - #endif - #elif HAS_K_MIN - #if (digitalPinToInterrupt(K_MIN_PIN) != NOT_AN_INTERRUPT) - _ATTACH(K_MIN_PIN); - #else - static_assert(digitalPinHasPCICR(K_MIN_PIN), "K_MIN_PIN is not interrupt-capable"); - pciSetup(K_MIN_PIN); - #endif + #define TRY_TO_ATTACH(P) do{ \ + if (digitalPinToInterrupt(P) != NOT_AN_INTERRUPT) \ + _ATTACH(P); \ + else { \ + static_assert(digitalPinHasPCICR(P), #P " is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."); \ + pciSetup(P); \ + } }while(0) + + #if X_HOME_TO_MAX + TRY_TO_ATTACH(X_MAX_PIN); + #elif X_HOME_TO_MIN + TRY_TO_ATTACH(X_MIN_PIN); #endif + #if HAS_X2_MAX - #if (digitalPinToInterrupt(X2_MAX_PIN) != NOT_AN_INTERRUPT) - _ATTACH(X2_MAX_PIN); - #else - static_assert(digitalPinHasPCICR(X2_MAX_PIN), "X2_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."); - pciSetup(X2_MAX_PIN); - #endif + TRY_TO_ATTACH(X2_MAX_PIN); #endif #if HAS_X2_MIN - #if (digitalPinToInterrupt(X2_MIN_PIN) != NOT_AN_INTERRUPT) - _ATTACH(X2_MIN_PIN); - #else - static_assert(digitalPinHasPCICR(X2_MIN_PIN), "X2_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."); - pciSetup(X2_MIN_PIN); - #endif + TRY_TO_ATTACH(X2_MIN_PIN); #endif + + #if Y_HOME_TO_MAX + TRY_TO_ATTACH(Y_MAX_PIN); + #elif Y_HOME_TO_MIN + TRY_TO_ATTACH(Y_MIN_PIN); + #endif + #if HAS_Y2_MAX - #if (digitalPinToInterrupt(Y2_MAX_PIN) != NOT_AN_INTERRUPT) - _ATTACH(Y2_MAX_PIN); - #else - static_assert(digitalPinHasPCICR(Y2_MAX_PIN), "Y2_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."); - pciSetup(Y2_MAX_PIN); - #endif + TRY_TO_ATTACH(Y2_MAX_PIN); + #elif HAS_Y2_MIN + TRY_TO_ATTACH(Y2_MIN_PIN); #endif - #if HAS_Y2_MIN - #if (digitalPinToInterrupt(Y2_MIN_PIN) != NOT_AN_INTERRUPT) - _ATTACH(Y2_MIN_PIN); - #else - static_assert(digitalPinHasPCICR(Y2_MIN_PIN), "Y2_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."); - pciSetup(Y2_MIN_PIN); - #endif + + #if Z_HOME_TO_MAX + TRY_TO_ATTACH(Z_MAX_PIN); + #elif Z_HOME_TO_MIN + TRY_TO_ATTACH(Z_MIN_PIN); #endif + #if HAS_Z2_MAX - #if (digitalPinToInterrupt(Z2_MAX_PIN) != NOT_AN_INTERRUPT) - _ATTACH(Z2_MAX_PIN); - #else - static_assert(digitalPinHasPCICR(Z2_MAX_PIN), "Z2_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."); - pciSetup(Z2_MAX_PIN); - #endif - #endif - #if HAS_Z2_MIN - #if (digitalPinToInterrupt(Z2_MIN_PIN) != NOT_AN_INTERRUPT) - _ATTACH(Z2_MIN_PIN); - #else - static_assert(digitalPinHasPCICR(Z2_MIN_PIN), "Z2_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."); - pciSetup(Z2_MIN_PIN); - #endif + TRY_TO_ATTACH(Z2_MAX_PIN); + #elif HAS_Z2_MIN + TRY_TO_ATTACH(Z2_MIN_PIN); #endif + #if HAS_Z3_MAX - #if (digitalPinToInterrupt(Z3_MAX_PIN) != NOT_AN_INTERRUPT) - _ATTACH(Z3_MAX_PIN); - #else - static_assert(digitalPinHasPCICR(Z3_MAX_PIN), "Z3_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."); - pciSetup(Z3_MAX_PIN); - #endif - #endif - #if HAS_Z3_MIN - #if (digitalPinToInterrupt(Z3_MIN_PIN) != NOT_AN_INTERRUPT) - _ATTACH(Z3_MIN_PIN); - #else - static_assert(digitalPinHasPCICR(Z3_MIN_PIN), "Z3_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."); - pciSetup(Z3_MIN_PIN); - #endif + TRY_TO_ATTACH(Z3_MAX_PIN); + #elif HAS_Z3_MIN + TRY_TO_ATTACH(Z3_MIN_PIN); #endif + #if HAS_Z4_MAX - #if (digitalPinToInterrupt(Z4_MAX_PIN) != NOT_AN_INTERRUPT) - _ATTACH(Z4_MAX_PIN); - #else - static_assert(digitalPinHasPCICR(Z4_MAX_PIN), "Z4_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."); - pciSetup(Z4_MAX_PIN); - #endif + TRY_TO_ATTACH(Z4_MAX_PIN); + #elif HAS_Z4_MIN + TRY_TO_ATTACH(Z4_MIN_PIN); #endif - #if HAS_Z4_MIN - #if (digitalPinToInterrupt(Z4_MIN_PIN) != NOT_AN_INTERRUPT) - _ATTACH(Z4_MIN_PIN); - #else - static_assert(digitalPinHasPCICR(Z4_MIN_PIN), "Z4_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."); - pciSetup(Z4_MIN_PIN); - #endif + + #if I_HOME_TO_MAX + TRY_TO_ATTACH(I_MAX_PIN); + #elif I_HOME_TO_MIN + TRY_TO_ATTACH(I_MIN_PIN); + #endif + + #if J_HOME_TO_MAX + TRY_TO_ATTACH(J_MAX_PIN); + #elif J_HOME_TO_MIN + TRY_TO_ATTACH(J_MIN_PIN); #endif + + #if K_HOME_TO_MAX + TRY_TO_ATTACH(K_MAX_PIN); + #elif K_HOME_TO_MIN + TRY_TO_ATTACH(K_MIN_PIN); + #endif + #if HAS_Z_MIN_PROBE_PIN - #if (digitalPinToInterrupt(Z_MIN_PROBE_PIN) != NOT_AN_INTERRUPT) - _ATTACH(Z_MIN_PROBE_PIN); - #else - static_assert(digitalPinHasPCICR(Z_MIN_PROBE_PIN), "Z_MIN_PROBE_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."); - pciSetup(Z_MIN_PROBE_PIN); - #endif + TRY_TO_ATTACH(Z_MIN_PROBE_PIN); #endif // If we arrive here without raising an assertion, each pin has either an EXT-interrupt or a PCI. } diff --git a/Marlin/src/HAL/DUE/endstop_interrupts.h b/Marlin/src/HAL/DUE/endstop_interrupts.h index 9c7e2104882ed..27db4aaddec61 100644 --- a/Marlin/src/HAL/DUE/endstop_interrupts.h +++ b/Marlin/src/HAL/DUE/endstop_interrupts.h @@ -47,27 +47,27 @@ void endstop_ISR() { endstops.update(); } void setup_endstop_interrupts() { #define _ATTACH(P) attachInterrupt(digitalPinToInterrupt(P), endstop_ISR, CHANGE) - TERN_(HAS_X_MAX, _ATTACH(X_MAX_PIN)); - TERN_(HAS_X_MIN, _ATTACH(X_MIN_PIN)); - TERN_(HAS_Y_MAX, _ATTACH(Y_MAX_PIN)); - TERN_(HAS_Y_MIN, _ATTACH(Y_MIN_PIN)); - TERN_(HAS_Z_MAX, _ATTACH(Z_MAX_PIN)); - TERN_(HAS_Z_MIN, _ATTACH(Z_MIN_PIN)); + TERN_(X_HOME_TO_MAX, _ATTACH(X_MAX_PIN)); + TERN_(X_HOME_TO_MIN, _ATTACH(X_MIN_PIN)); TERN_(HAS_X2_MAX, _ATTACH(X2_MAX_PIN)); TERN_(HAS_X2_MIN, _ATTACH(X2_MIN_PIN)); + TERN_(Y_HOME_TO_MAX, _ATTACH(Y_MAX_PIN)); + TERN_(Y_HOME_TO_MIN, _ATTACH(Y_MIN_PIN)); TERN_(HAS_Y2_MAX, _ATTACH(Y2_MAX_PIN)); TERN_(HAS_Y2_MIN, _ATTACH(Y2_MIN_PIN)); + TERN_(Z_HOME_TO_MAX, _ATTACH(Z_MAX_PIN)); + TERN_(Z_HOME_TO_MIN, _ATTACH(Z_MIN_PIN)); TERN_(HAS_Z2_MAX, _ATTACH(Z2_MAX_PIN)); TERN_(HAS_Z2_MIN, _ATTACH(Z2_MIN_PIN)); TERN_(HAS_Z3_MAX, _ATTACH(Z3_MAX_PIN)); TERN_(HAS_Z3_MIN, _ATTACH(Z3_MIN_PIN)); TERN_(HAS_Z4_MAX, _ATTACH(Z4_MAX_PIN)); TERN_(HAS_Z4_MIN, _ATTACH(Z4_MIN_PIN)); + TERN_(I_HOME_TO_MAX, _ATTACH(I_MAX_PIN)); + TERN_(I_HOME_TO_MIN, _ATTACH(I_MIN_PIN)); + TERN_(J_HOME_TO_MAX, _ATTACH(J_MAX_PIN)); + TERN_(J_HOME_TO_MIN, _ATTACH(J_MIN_PIN)); + TERN_(K_HOME_TO_MAX, _ATTACH(K_MAX_PIN)); + TERN_(K_HOME_TO_MIN, _ATTACH(K_MIN_PIN)); TERN_(HAS_Z_MIN_PROBE_PIN, _ATTACH(Z_MIN_PROBE_PIN)); - TERN_(HAS_I_MAX, _ATTACH(I_MAX_PIN)); - TERN_(HAS_I_MIN, _ATTACH(I_MIN_PIN)); - TERN_(HAS_J_MAX, _ATTACH(J_MAX_PIN)); - TERN_(HAS_J_MIN, _ATTACH(J_MIN_PIN)); - TERN_(HAS_K_MAX, _ATTACH(K_MAX_PIN)); - TERN_(HAS_K_MIN, _ATTACH(K_MIN_PIN)); } diff --git a/Marlin/src/HAL/ESP32/endstop_interrupts.h b/Marlin/src/HAL/ESP32/endstop_interrupts.h index 4725df921b1ad..dc79cb0c31625 100644 --- a/Marlin/src/HAL/ESP32/endstop_interrupts.h +++ b/Marlin/src/HAL/ESP32/endstop_interrupts.h @@ -42,12 +42,12 @@ void ICACHE_RAM_ATTR endstop_ISR() { endstops.update(); } void setup_endstop_interrupts() { #define _ATTACH(P) attachInterrupt(digitalPinToInterrupt(P), endstop_ISR, CHANGE) - TERN_(HAS_X_MAX, _ATTACH(X_MAX_PIN)); - TERN_(HAS_X_MIN, _ATTACH(X_MIN_PIN)); - TERN_(HAS_Y_MAX, _ATTACH(Y_MAX_PIN)); - TERN_(HAS_Y_MIN, _ATTACH(Y_MIN_PIN)); - TERN_(HAS_Z_MAX, _ATTACH(Z_MAX_PIN)); - TERN_(HAS_Z_MIN, _ATTACH(Z_MIN_PIN)); + TERN_(X_HOME_TO_MAX, _ATTACH(X_MAX_PIN)); + TERN_(X_HOME_TO_MIN, _ATTACH(X_MIN_PIN)); + TERN_(Y_HOME_TO_MAX, _ATTACH(Y_MAX_PIN)); + TERN_(Y_HOME_TO_MIN, _ATTACH(Y_MIN_PIN)); + TERN_(Z_HOME_TO_MAX, _ATTACH(Z_MAX_PIN)); + TERN_(Z_HOME_TO_MIN, _ATTACH(Z_MIN_PIN)); TERN_(HAS_X2_MAX, _ATTACH(X2_MAX_PIN)); TERN_(HAS_X2_MIN, _ATTACH(X2_MIN_PIN)); TERN_(HAS_Y2_MAX, _ATTACH(Y2_MAX_PIN)); @@ -58,11 +58,11 @@ void setup_endstop_interrupts() { TERN_(HAS_Z3_MIN, _ATTACH(Z3_MIN_PIN)); TERN_(HAS_Z4_MAX, _ATTACH(Z4_MAX_PIN)); TERN_(HAS_Z4_MIN, _ATTACH(Z4_MIN_PIN)); + TERN_(I_HOME_TO_MAX, _ATTACH(I_MAX_PIN)); + TERN_(I_HOME_TO_MIN, _ATTACH(I_MIN_PIN)); + TERN_(J_HOME_TO_MAX, _ATTACH(J_MAX_PIN)); + TERN_(J_HOME_TO_MIN, _ATTACH(J_MIN_PIN)); + TERN_(K_HOME_TO_MAX, _ATTACH(K_MAX_PIN)); + TERN_(K_HOME_TO_MIN, _ATTACH(K_MIN_PIN)); TERN_(HAS_Z_MIN_PROBE_PIN, _ATTACH(Z_MIN_PROBE_PIN)); - TERN_(HAS_I_MAX, _ATTACH(I_MAX_PIN)); - TERN_(HAS_I_MIN, _ATTACH(I_MIN_PIN)); - TERN_(HAS_J_MAX, _ATTACH(J_MAX_PIN)); - TERN_(HAS_J_MIN, _ATTACH(J_MIN_PIN)); - TERN_(HAS_K_MAX, _ATTACH(K_MAX_PIN)); - TERN_(HAS_K_MIN, _ATTACH(K_MIN_PIN)); } diff --git a/Marlin/src/HAL/LPC1768/endstop_interrupts.h b/Marlin/src/HAL/LPC1768/endstop_interrupts.h index 23bd0cc982b29..ef99f8dc778db 100644 --- a/Marlin/src/HAL/LPC1768/endstop_interrupts.h +++ b/Marlin/src/HAL/LPC1768/endstop_interrupts.h @@ -44,37 +44,56 @@ void setup_endstop_interrupts() { #define _ATTACH(P) attachInterrupt(digitalPinToInterrupt(P), endstop_ISR, CHANGE) #define LPC1768_PIN_INTERRUPT_M(pin) ((pin >> 0x5 & 0x7) == 0 || (pin >> 0x5 & 0x7) == 2) - #if HAS_X_MAX + #if X_HOME_TO_MAX #if !LPC1768_PIN_INTERRUPT_M(X_MAX_PIN) #error "X_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue." #endif _ATTACH(X_MAX_PIN); - #endif - #if HAS_X_MIN + #elif X_HOME_TO_MIN #if !LPC1768_PIN_INTERRUPT_M(X_MIN_PIN) #error "X_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue." #endif _ATTACH(X_MIN_PIN); #endif - #if HAS_Y_MAX + #if HAS_X2_MAX + #if !LPC1768_PIN_INTERRUPT_M(X2_MAX_PIN) + #error "X2_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue." + #endif + _ATTACH(X2_MAX_PIN); + #elif HAS_X2_MIN + #if !LPC1768_PIN_INTERRUPT_M(X2_MIN_PIN) + #error "X2_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue." + #endif + _ATTACH(X2_MIN_PIN); + #endif + #if Y_HOME_TO_MAX #if !LPC1768_PIN_INTERRUPT_M(Y_MAX_PIN) #error "Y_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue." #endif _ATTACH(Y_MAX_PIN); - #endif - #if HAS_Y_MIN + #elif Y_HOME_TO_MIN #if !LPC1768_PIN_INTERRUPT_M(Y_MIN_PIN) #error "Y_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue." #endif _ATTACH(Y_MIN_PIN); #endif - #if HAS_Z_MAX + #if HAS_Y2_MAX + #if !LPC1768_PIN_INTERRUPT_M(Y2_MAX_PIN) + #error "Y2_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue." + #endif + _ATTACH(Y2_MAX_PIN); + #elif HAS_Y2_MIN + #if !LPC1768_PIN_INTERRUPT_M(Y2_MIN_PIN) + #error "Y2_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue." + #endif + _ATTACH(Y2_MIN_PIN); + #endif + #if Z_HOME_TO_MAX #if !LPC1768_PIN_INTERRUPT_M(Z_MAX_PIN) #error "Z_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue." #endif _ATTACH(Z_MAX_PIN); - #endif - #if HAS_Z_MIN + #elif Z_HOME_TO_MIN #if !LPC1768_PIN_INTERRUPT_M(Z_MIN_PIN) #error "Z_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue." #endif @@ -85,8 +104,7 @@ void setup_endstop_interrupts() { #error "Z2_MAX_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue." #endif _ATTACH(Z2_MAX_PIN); - #endif - #if HAS_Z2_MIN + #elif HAS_Z2_MIN #if !LPC1768_PIN_INTERRUPT_M(Z2_MIN_PIN) #error "Z2_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue." #endif @@ -97,8 +115,7 @@ void setup_endstop_interrupts() { #error "Z3_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue." #endif _ATTACH(Z3_MAX_PIN); - #endif - #if HAS_Z3_MIN + #elif HAS_Z3_MIN #if !LPC1768_PIN_INTERRUPT_M(Z3_MIN_PIN) #error "Z3_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue." #endif @@ -109,8 +126,7 @@ void setup_endstop_interrupts() { #error "Z4_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue." #endif _ATTACH(Z4_MAX_PIN); - #endif - #if HAS_Z4_MIN + #elif HAS_Z4_MIN #if !LPC1768_PIN_INTERRUPT_M(Z4_MIN_PIN) #error "Z4_MIN_PIN is not INTERRUPT-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue." #endif @@ -122,34 +138,34 @@ void setup_endstop_interrupts() { #endif _ATTACH(Z_MIN_PROBE_PIN); #endif - #if HAS_I_MAX + #if I_HOME_TO_MAX #if !LPC1768_PIN_INTERRUPT_M(I_MAX_PIN) #error "I_MAX_PIN is not INTERRUPT-capable." #endif _ATTACH(I_MAX_PIN); - #elif HAS_I_MIN + #elif I_HOME_TO_MIN #if !LPC1768_PIN_INTERRUPT_M(I_MIN_PIN) #error "I_MIN_PIN is not INTERRUPT-capable." #endif _ATTACH(I_MIN_PIN); #endif - #if HAS_J_MAX + #if J_HOME_TO_MAX #if !LPC1768_PIN_INTERRUPT_M(J_MAX_PIN) #error "J_MAX_PIN is not INTERRUPT-capable." #endif _ATTACH(J_MAX_PIN); - #elif HAS_J_MIN + #elif J_HOME_TO_MIN #if !LPC1768_PIN_INTERRUPT_M(J_MIN_PIN) #error "J_MIN_PIN is not INTERRUPT-capable." #endif _ATTACH(J_MIN_PIN); #endif - #if HAS_K_MAX + #if K_HOME_TO_MAX #if !LPC1768_PIN_INTERRUPT_M(K_MAX_PIN) #error "K_MAX_PIN is not INTERRUPT-capable." #endif _ATTACH(K_MAX_PIN); - #elif HAS_K_MIN + #elif K_HOME_TO_MIN #if !LPC1768_PIN_INTERRUPT_M(K_MIN_PIN) #error "K_MIN_PIN is not INTERRUPT-capable." #endif diff --git a/Marlin/src/HAL/LPC1768/inc/SanityCheck.h b/Marlin/src/HAL/LPC1768/inc/SanityCheck.h index 3ea054589ec35..ee61726de6f17 100644 --- a/Marlin/src/HAL/LPC1768/inc/SanityCheck.h +++ b/Marlin/src/HAL/LPC1768/inc/SanityCheck.h @@ -146,7 +146,7 @@ static_assert(DISABLED(BAUD_RATE_GCODE), "BAUD_RATE_GCODE is not yet supported o #error "Serial port pins (2) conflict with other pins!" #elif Y_HOME_TO_MIN && IS_TX2(Y_STOP_PIN) #error "Serial port pins (2) conflict with Y endstop pin!" - #elif USES_Z_MIN_PROBE_PIN && IS_TX2(Z_MIN_PROBE_PIN) + #elif PIN_EXISTS(Z_MIN_PROBE) && IS_TX2(Z_MIN_PROBE_PIN) #error "Serial port pins (2) conflict with probe pin!" #elif ANY_TX(2, X_ENABLE_PIN, Y_ENABLE_PIN) || ANY_RX(2, X_DIR_PIN, Y_DIR_PIN) #error "Serial port pins (2) conflict with X/Y stepper pins!" @@ -237,7 +237,7 @@ static_assert(DISABLED(BAUD_RATE_GCODE), "BAUD_RATE_GCODE is not yet supported o #define PIN_IS_SCL2(P) (P##_PIN == P0_11) #if PIN_IS_SDA2(Y_STOP) #error "i2c SDA2 overlaps with Y endstop pin!" - #elif USES_Z_MIN_PROBE_PIN && PIN_IS_SDA2(Z_MIN_PROBE) + #elif PIN_IS_SDA2(Z_MIN_PROBE) #error "i2c SDA2 overlaps with Z probe pin!" #elif PIN_IS_SDA2(X_ENABLE) || PIN_IS_SDA2(Y_ENABLE) #error "i2c SDA2 overlaps with X/Y ENABLE pin!" diff --git a/Marlin/src/HAL/SAMD51/endstop_interrupts.h b/Marlin/src/HAL/SAMD51/endstop_interrupts.h index 61a06c0d4b426..940372de7ec7a 100644 --- a/Marlin/src/HAL/SAMD51/endstop_interrupts.h +++ b/Marlin/src/HAL/SAMD51/endstop_interrupts.h @@ -48,18 +48,18 @@ #include "../../module/endstops.h" #define MATCH_EILINE(P1,P2) (P1 != P2 && PIN_TO_EILINE(P1) == PIN_TO_EILINE(P2)) -#define MATCH_X_MAX_EILINE(P) TERN0(HAS_X_MAX, DEFER4(MATCH_EILINE)(P, X_MAX_PIN)) -#define MATCH_X_MIN_EILINE(P) TERN0(HAS_X_MIN, DEFER4(MATCH_EILINE)(P, X_MIN_PIN)) -#define MATCH_Y_MAX_EILINE(P) TERN0(HAS_Y_MAX, DEFER4(MATCH_EILINE)(P, Y_MAX_PIN)) -#define MATCH_Y_MIN_EILINE(P) TERN0(HAS_Y_MIN, DEFER4(MATCH_EILINE)(P, Y_MIN_PIN)) -#define MATCH_Z_MAX_EILINE(P) TERN0(HAS_Z_MAX, DEFER4(MATCH_EILINE)(P, Z_MAX_PIN)) -#define MATCH_Z_MIN_EILINE(P) TERN0(HAS_Z_MIN, DEFER4(MATCH_EILINE)(P, Z_MIN_PIN)) -#define MATCH_I_MAX_EILINE(P) TERN0(HAS_I_MAX, DEFER4(MATCH_EILINE)(P, I_MAX_PIN)) -#define MATCH_I_MIN_EILINE(P) TERN0(HAS_I_MIN, DEFER4(MATCH_EILINE)(P, I_MIN_PIN)) -#define MATCH_J_MAX_EILINE(P) TERN0(HAS_J_MAX, DEFER4(MATCH_EILINE)(P, J_MAX_PIN)) -#define MATCH_J_MIN_EILINE(P) TERN0(HAS_J_MIN, DEFER4(MATCH_EILINE)(P, J_MIN_PIN)) -#define MATCH_K_MAX_EILINE(P) TERN0(HAS_K_MAX, DEFER4(MATCH_EILINE)(P, K_MAX_PIN)) -#define MATCH_K_MIN_EILINE(P) TERN0(HAS_K_MIN, DEFER4(MATCH_EILINE)(P, K_MIN_PIN)) +#define MATCH_X_MAX_EILINE(P) TERN0(X_HOME_TO_MAX, DEFER4(MATCH_EILINE)(P, X_MAX_PIN)) +#define MATCH_X_MIN_EILINE(P) TERN0(X_HOME_TO_MIN, DEFER4(MATCH_EILINE)(P, X_MIN_PIN)) +#define MATCH_Y_MAX_EILINE(P) TERN0(Y_HOME_TO_MAX, DEFER4(MATCH_EILINE)(P, Y_MAX_PIN)) +#define MATCH_Y_MIN_EILINE(P) TERN0(Y_HOME_TO_MIN, DEFER4(MATCH_EILINE)(P, Y_MIN_PIN)) +#define MATCH_Z_MAX_EILINE(P) TERN0(Z_HOME_TO_MAX, DEFER4(MATCH_EILINE)(P, Z_MAX_PIN)) +#define MATCH_Z_MIN_EILINE(P) TERN0(Z_HOME_TO_MIN, DEFER4(MATCH_EILINE)(P, Z_MIN_PIN)) +#define MATCH_I_MAX_EILINE(P) TERN0(I_HOME_TO_MAX, DEFER4(MATCH_EILINE)(P, I_MAX_PIN)) +#define MATCH_I_MIN_EILINE(P) TERN0(I_HOME_TO_MIN, DEFER4(MATCH_EILINE)(P, I_MIN_PIN)) +#define MATCH_J_MAX_EILINE(P) TERN0(J_HOME_TO_MAX, DEFER4(MATCH_EILINE)(P, J_MAX_PIN)) +#define MATCH_J_MIN_EILINE(P) TERN0(J_HOME_TO_MIN, DEFER4(MATCH_EILINE)(P, J_MIN_PIN)) +#define MATCH_K_MAX_EILINE(P) TERN0(K_HOME_TO_MAX, DEFER4(MATCH_EILINE)(P, K_MAX_PIN)) +#define MATCH_K_MIN_EILINE(P) TERN0(K_HOME_TO_MIN, DEFER4(MATCH_EILINE)(P, K_MIN_PIN)) #define MATCH_Z2_MAX_EILINE(P) TERN0(HAS_Z2_MAX, DEFER4(MATCH_EILINE)(P, Z2_MAX_PIN)) #define MATCH_Z2_MIN_EILINE(P) TERN0(HAS_Z2_MIN, DEFER4(MATCH_EILINE)(P, Z2_MIN_PIN)) #define MATCH_Z3_MAX_EILINE(P) TERN0(HAS_Z3_MAX, DEFER4(MATCH_EILINE)(P, Z3_MAX_PIN)) @@ -85,37 +85,56 @@ void endstop_ISR() { endstops.update(); } void setup_endstop_interrupts() { #define _ATTACH(P) attachInterrupt(P, endstop_ISR, CHANGE) - #if HAS_X_MAX + #if X_HOME_TO_MAX #if !AVAILABLE_EILINE(X_MAX_PIN) #error "X_MAX_PIN has no EXTINT line available." #endif _ATTACH(X_MAX_PIN); - #endif - #if HAS_X_MIN + #elif X_HOME_TO_MIN #if !AVAILABLE_EILINE(X_MIN_PIN) #error "X_MIN_PIN has no EXTINT line available." #endif _ATTACH(X_MIN_PIN); #endif - #if HAS_Y_MAX + #if HAS_X2_MAX + #if !AVAILABLE_EILINE(X2_MAX_PIN) + #error "X2_MAX_PIN has no EXTINT line available." + #endif + _ATTACH(X2_MAX_PIN); + #elif HAS_X2_MIN + #if !AVAILABLE_EILINE(X2_MIN_PIN) + #error "X2_MIN_PIN has no EXTINT line available." + #endif + _ATTACH(X2_MIN_PIN); + #endif + #if Y_HOME_TO_MAX #if !AVAILABLE_EILINE(Y_MAX_PIN) #error "Y_MAX_PIN has no EXTINT line available." #endif _ATTACH(Y_MAX_PIN); - #endif - #if HAS_Y_MIN + #elif Y_HOME_TO_MIN #if !AVAILABLE_EILINE(Y_MIN_PIN) #error "Y_MIN_PIN has no EXTINT line available." #endif _ATTACH(Y_MIN_PIN); #endif - #if HAS_Z_MAX + #if HAS_Y2_MAX + #if !AVAILABLE_EILINE(Y2_MAX_PIN) + #error "Y2_MAX_PIN has no EXTINT line available." + #endif + _ATTACH(Y2_MAX_PIN); + #elif HAS_Y2_MIN + #if !AVAILABLE_EILINE(Y2_MIN_PIN) + #error "Y2_MIN_PIN has no EXTINT line available." + #endif + _ATTACH(Y2_MIN_PIN); + #endif + #if Z_HOME_TO_MAX #if !AVAILABLE_EILINE(Z_MAX_PIN) #error "Z_MAX_PIN has no EXTINT line available." #endif _ATTACH(Z_MAX_PIN); - #endif - #if HAS_Z_MIN + #elif Z_HOME_TO_MIN #if !AVAILABLE_EILINE(Z_MIN_PIN) #error "Z_MIN_PIN has no EXTINT line available." #endif @@ -126,8 +145,7 @@ void setup_endstop_interrupts() { #error "Z2_MAX_PIN has no EXTINT line available." #endif _ATTACH(Z2_MAX_PIN); - #endif - #if HAS_Z2_MIN + #elif HAS_Z2_MIN #if !AVAILABLE_EILINE(Z2_MIN_PIN) #error "Z2_MIN_PIN has no EXTINT line available." #endif @@ -138,8 +156,7 @@ void setup_endstop_interrupts() { #error "Z3_MAX_PIN has no EXTINT line available." #endif _ATTACH(Z3_MAX_PIN); - #endif - #if HAS_Z3_MIN + #elif HAS_Z3_MIN #if !AVAILABLE_EILINE(Z3_MIN_PIN) #error "Z3_MIN_PIN has no EXTINT line available." #endif @@ -150,53 +167,49 @@ void setup_endstop_interrupts() { #error "Z4_MAX_PIN has no EXTINT line available." #endif _ATTACH(Z4_MAX_PIN); - #endif - #if HAS_Z4_MIN + #elif HAS_Z4_MIN #if !AVAILABLE_EILINE(Z4_MIN_PIN) #error "Z4_MIN_PIN has no EXTINT line available." #endif _ATTACH(Z4_MIN_PIN); #endif - #if HAS_Z_MIN_PROBE_PIN - #if !AVAILABLE_EILINE(Z_MIN_PROBE_PIN) - #error "Z_MIN_PROBE_PIN has no EXTINT line available." - #endif - _ATTACH(Z_MIN_PROBE_PIN); - #endif - #if HAS_I_MAX + #if I_HOME_TO_MAX #if !AVAILABLE_EILINE(I_MAX_PIN) #error "I_MAX_PIN has no EXTINT line available." #endif attachInterrupt(I_MAX_PIN, endstop_ISR, CHANGE); - #endif - #if HAS_I_MIN + #elif I_HOME_TO_MIN #if !AVAILABLE_EILINE(I_MIN_PIN) #error "I_MIN_PIN has no EXTINT line available." #endif attachInterrupt(I_MIN_PIN, endstop_ISR, CHANGE); #endif - #if HAS_J_MAX + #if J_HOME_TO_MAX #if !AVAILABLE_EILINE(J_MAX_PIN) #error "J_MAX_PIN has no EXTINT line available." #endif attachInterrupt(J_MAX_PIN, endstop_ISR, CHANGE); - #endif - #if HAS_J_MIN + #elif J_HOME_TO_MIN #if !AVAILABLE_EILINE(J_MIN_PIN) #error "J_MIN_PIN has no EXTINT line available." #endif attachInterrupt(J_MIN_PIN, endstop_ISR, CHANGE); #endif - #if HAS_K_MAX + #if K_HOME_TO_MAX #if !AVAILABLE_EILINE(K_MAX_PIN) #error "K_MAX_PIN has no EXTINT line available." #endif attachInterrupt(K_MAX_PIN, endstop_ISR, CHANGE); - #endif - #if HAS_K_MIN + #elif K_HOME_TO_MIN #if !AVAILABLE_EILINE(K_MIN_PIN) #error "K_MIN_PIN has no EXTINT line available." #endif attachInterrupt(K_MIN_PIN, endstop_ISR, CHANGE); #endif + #if HAS_Z_MIN_PROBE_PIN + #if !AVAILABLE_EILINE(Z_MIN_PROBE_PIN) + #error "Z_MIN_PROBE_PIN has no EXTINT line available." + #endif + _ATTACH(Z_MIN_PROBE_PIN); + #endif } diff --git a/Marlin/src/HAL/STM32/endstop_interrupts.h b/Marlin/src/HAL/STM32/endstop_interrupts.h index 90870881fe665..4a84dc996cfac 100644 --- a/Marlin/src/HAL/STM32/endstop_interrupts.h +++ b/Marlin/src/HAL/STM32/endstop_interrupts.h @@ -29,27 +29,27 @@ void endstop_ISR() { endstops.update(); } void setup_endstop_interrupts() { #define _ATTACH(P) attachInterrupt(P, endstop_ISR, CHANGE) - TERN_(HAS_X_MAX, _ATTACH(X_MAX_PIN)); - TERN_(HAS_X_MIN, _ATTACH(X_MIN_PIN)); - TERN_(HAS_Y_MAX, _ATTACH(Y_MAX_PIN)); - TERN_(HAS_Y_MIN, _ATTACH(Y_MIN_PIN)); - TERN_(HAS_Z_MAX, _ATTACH(Z_MAX_PIN)); - TERN_(HAS_Z_MIN, _ATTACH(Z_MIN_PIN)); + TERN_(X_HOME_TO_MAX, _ATTACH(X_MAX_PIN)); + TERN_(X_HOME_TO_MIN, _ATTACH(X_MIN_PIN)); TERN_(HAS_X2_MAX, _ATTACH(X2_MAX_PIN)); TERN_(HAS_X2_MIN, _ATTACH(X2_MIN_PIN)); + TERN_(Y_HOME_TO_MAX, _ATTACH(Y_MAX_PIN)); + TERN_(Y_HOME_TO_MIN, _ATTACH(Y_MIN_PIN)); TERN_(HAS_Y2_MAX, _ATTACH(Y2_MAX_PIN)); TERN_(HAS_Y2_MIN, _ATTACH(Y2_MIN_PIN)); + TERN_(Z_HOME_TO_MAX, _ATTACH(Z_MAX_PIN)); + TERN_(Z_HOME_TO_MIN, _ATTACH(Z_MIN_PIN)); TERN_(HAS_Z2_MAX, _ATTACH(Z2_MAX_PIN)); TERN_(HAS_Z2_MIN, _ATTACH(Z2_MIN_PIN)); TERN_(HAS_Z3_MAX, _ATTACH(Z3_MAX_PIN)); TERN_(HAS_Z3_MIN, _ATTACH(Z3_MIN_PIN)); TERN_(HAS_Z4_MAX, _ATTACH(Z4_MAX_PIN)); TERN_(HAS_Z4_MIN, _ATTACH(Z4_MIN_PIN)); + TERN_(I_HOME_TO_MAX, _ATTACH(I_MAX_PIN)); + TERN_(I_HOME_TO_MIN, _ATTACH(I_MIN_PIN)); + TERN_(J_HOME_TO_MAX, _ATTACH(J_MAX_PIN)); + TERN_(J_HOME_TO_MIN, _ATTACH(J_MIN_PIN)); + TERN_(K_HOME_TO_MAX, _ATTACH(K_MAX_PIN)); + TERN_(K_HOME_TO_MIN, _ATTACH(K_MIN_PIN)); TERN_(HAS_Z_MIN_PROBE_PIN, _ATTACH(Z_MIN_PROBE_PIN)); - TERN_(HAS_I_MAX, _ATTACH(I_MAX_PIN)); - TERN_(HAS_I_MIN, _ATTACH(I_MIN_PIN)); - TERN_(HAS_J_MAX, _ATTACH(J_MAX_PIN)); - TERN_(HAS_J_MIN, _ATTACH(J_MIN_PIN)); - TERN_(HAS_K_MAX, _ATTACH(K_MAX_PIN)); - TERN_(HAS_K_MIN, _ATTACH(K_MIN_PIN)); } diff --git a/Marlin/src/HAL/STM32F1/endstop_interrupts.h b/Marlin/src/HAL/STM32F1/endstop_interrupts.h index 4d7edb9496c12..0cae05ce02c89 100644 --- a/Marlin/src/HAL/STM32F1/endstop_interrupts.h +++ b/Marlin/src/HAL/STM32F1/endstop_interrupts.h @@ -54,12 +54,12 @@ void endstop_ISR() { endstops.update(); } void setup_endstop_interrupts() { #define _ATTACH(P) attachInterrupt(P, endstop_ISR, CHANGE) - TERN_(HAS_X_MAX, _ATTACH(X_MAX_PIN)); - TERN_(HAS_X_MIN, _ATTACH(X_MIN_PIN)); - TERN_(HAS_Y_MAX, _ATTACH(Y_MAX_PIN)); - TERN_(HAS_Y_MIN, _ATTACH(Y_MIN_PIN)); - TERN_(HAS_Z_MAX, _ATTACH(Z_MAX_PIN)); - TERN_(HAS_Z_MIN, _ATTACH(Z_MIN_PIN)); + TERN_(X_HOME_TO_MAX, _ATTACH(X_MAX_PIN)); + TERN_(X_HOME_TO_MIN, _ATTACH(X_MIN_PIN)); + TERN_(Y_HOME_TO_MAX, _ATTACH(Y_MAX_PIN)); + TERN_(Y_HOME_TO_MIN, _ATTACH(Y_MIN_PIN)); + TERN_(Z_HOME_TO_MAX, _ATTACH(Z_MAX_PIN)); + TERN_(Z_HOME_TO_MIN, _ATTACH(Z_MIN_PIN)); TERN_(HAS_X2_MAX, _ATTACH(X2_MAX_PIN)); TERN_(HAS_X2_MIN, _ATTACH(X2_MIN_PIN)); TERN_(HAS_Y2_MAX, _ATTACH(Y2_MAX_PIN)); @@ -70,11 +70,11 @@ void setup_endstop_interrupts() { TERN_(HAS_Z3_MIN, _ATTACH(Z3_MIN_PIN)); TERN_(HAS_Z4_MAX, _ATTACH(Z4_MAX_PIN)); TERN_(HAS_Z4_MIN, _ATTACH(Z4_MIN_PIN)); + TERN_(I_HOME_TO_MAX, _ATTACH(I_MAX_PIN)); + TERN_(I_HOME_TO_MIN, _ATTACH(I_MIN_PIN)); + TERN_(J_HOME_TO_MAX, _ATTACH(J_MAX_PIN)); + TERN_(J_HOME_TO_MIN, _ATTACH(J_MIN_PIN)); + TERN_(K_HOME_TO_MAX, _ATTACH(K_MAX_PIN)); + TERN_(K_HOME_TO_MIN, _ATTACH(K_MIN_PIN)); TERN_(HAS_Z_MIN_PROBE_PIN, _ATTACH(Z_MIN_PROBE_PIN)); - TERN_(HAS_I_MAX, _ATTACH(I_MAX_PIN)); - TERN_(HAS_I_MIN, _ATTACH(I_MIN_PIN)); - TERN_(HAS_J_MAX, _ATTACH(J_MAX_PIN)); - TERN_(HAS_J_MIN, _ATTACH(J_MIN_PIN)); - TERN_(HAS_K_MAX, _ATTACH(K_MAX_PIN)); - TERN_(HAS_K_MIN, _ATTACH(K_MIN_PIN)); } diff --git a/Marlin/src/HAL/TEENSY31_32/endstop_interrupts.h b/Marlin/src/HAL/TEENSY31_32/endstop_interrupts.h index 9c7e2104882ed..27db4aaddec61 100644 --- a/Marlin/src/HAL/TEENSY31_32/endstop_interrupts.h +++ b/Marlin/src/HAL/TEENSY31_32/endstop_interrupts.h @@ -47,27 +47,27 @@ void endstop_ISR() { endstops.update(); } void setup_endstop_interrupts() { #define _ATTACH(P) attachInterrupt(digitalPinToInterrupt(P), endstop_ISR, CHANGE) - TERN_(HAS_X_MAX, _ATTACH(X_MAX_PIN)); - TERN_(HAS_X_MIN, _ATTACH(X_MIN_PIN)); - TERN_(HAS_Y_MAX, _ATTACH(Y_MAX_PIN)); - TERN_(HAS_Y_MIN, _ATTACH(Y_MIN_PIN)); - TERN_(HAS_Z_MAX, _ATTACH(Z_MAX_PIN)); - TERN_(HAS_Z_MIN, _ATTACH(Z_MIN_PIN)); + TERN_(X_HOME_TO_MAX, _ATTACH(X_MAX_PIN)); + TERN_(X_HOME_TO_MIN, _ATTACH(X_MIN_PIN)); TERN_(HAS_X2_MAX, _ATTACH(X2_MAX_PIN)); TERN_(HAS_X2_MIN, _ATTACH(X2_MIN_PIN)); + TERN_(Y_HOME_TO_MAX, _ATTACH(Y_MAX_PIN)); + TERN_(Y_HOME_TO_MIN, _ATTACH(Y_MIN_PIN)); TERN_(HAS_Y2_MAX, _ATTACH(Y2_MAX_PIN)); TERN_(HAS_Y2_MIN, _ATTACH(Y2_MIN_PIN)); + TERN_(Z_HOME_TO_MAX, _ATTACH(Z_MAX_PIN)); + TERN_(Z_HOME_TO_MIN, _ATTACH(Z_MIN_PIN)); TERN_(HAS_Z2_MAX, _ATTACH(Z2_MAX_PIN)); TERN_(HAS_Z2_MIN, _ATTACH(Z2_MIN_PIN)); TERN_(HAS_Z3_MAX, _ATTACH(Z3_MAX_PIN)); TERN_(HAS_Z3_MIN, _ATTACH(Z3_MIN_PIN)); TERN_(HAS_Z4_MAX, _ATTACH(Z4_MAX_PIN)); TERN_(HAS_Z4_MIN, _ATTACH(Z4_MIN_PIN)); + TERN_(I_HOME_TO_MAX, _ATTACH(I_MAX_PIN)); + TERN_(I_HOME_TO_MIN, _ATTACH(I_MIN_PIN)); + TERN_(J_HOME_TO_MAX, _ATTACH(J_MAX_PIN)); + TERN_(J_HOME_TO_MIN, _ATTACH(J_MIN_PIN)); + TERN_(K_HOME_TO_MAX, _ATTACH(K_MAX_PIN)); + TERN_(K_HOME_TO_MIN, _ATTACH(K_MIN_PIN)); TERN_(HAS_Z_MIN_PROBE_PIN, _ATTACH(Z_MIN_PROBE_PIN)); - TERN_(HAS_I_MAX, _ATTACH(I_MAX_PIN)); - TERN_(HAS_I_MIN, _ATTACH(I_MIN_PIN)); - TERN_(HAS_J_MAX, _ATTACH(J_MAX_PIN)); - TERN_(HAS_J_MIN, _ATTACH(J_MIN_PIN)); - TERN_(HAS_K_MAX, _ATTACH(K_MAX_PIN)); - TERN_(HAS_K_MIN, _ATTACH(K_MIN_PIN)); } diff --git a/Marlin/src/HAL/TEENSY35_36/endstop_interrupts.h b/Marlin/src/HAL/TEENSY35_36/endstop_interrupts.h index a300248885357..70ee7a20d9022 100644 --- a/Marlin/src/HAL/TEENSY35_36/endstop_interrupts.h +++ b/Marlin/src/HAL/TEENSY35_36/endstop_interrupts.h @@ -46,27 +46,27 @@ void endstop_ISR() { endstops.update(); } */ void setup_endstop_interrupts() { #define _ATTACH(P) attachInterrupt(digitalPinToInterrupt(P), endstop_ISR, CHANGE) - TERN_(HAS_X_MAX, _ATTACH(X_MAX_PIN)); - TERN_(HAS_X_MIN, _ATTACH(X_MIN_PIN)); - TERN_(HAS_Y_MAX, _ATTACH(Y_MAX_PIN)); - TERN_(HAS_Y_MIN, _ATTACH(Y_MIN_PIN)); - TERN_(HAS_Z_MAX, _ATTACH(Z_MAX_PIN)); - TERN_(HAS_Z_MIN, _ATTACH(Z_MIN_PIN)); + TERN_(X_HOME_TO_MAX, _ATTACH(X_MAX_PIN)); + TERN_(X_HOME_TO_MIN, _ATTACH(X_MIN_PIN)); TERN_(HAS_X2_MAX, _ATTACH(X2_MAX_PIN)); TERN_(HAS_X2_MIN, _ATTACH(X2_MIN_PIN)); + TERN_(Y_HOME_TO_MAX, _ATTACH(Y_MAX_PIN)); + TERN_(Y_HOME_TO_MIN, _ATTACH(Y_MIN_PIN)); TERN_(HAS_Y2_MAX, _ATTACH(Y2_MAX_PIN)); TERN_(HAS_Y2_MIN, _ATTACH(Y2_MIN_PIN)); + TERN_(Z_HOME_TO_MAX, _ATTACH(Z_MAX_PIN)); + TERN_(Z_HOME_TO_MIN, _ATTACH(Z_MIN_PIN)); TERN_(HAS_Z2_MAX, _ATTACH(Z2_MAX_PIN)); TERN_(HAS_Z2_MIN, _ATTACH(Z2_MIN_PIN)); TERN_(HAS_Z3_MAX, _ATTACH(Z3_MAX_PIN)); TERN_(HAS_Z3_MIN, _ATTACH(Z3_MIN_PIN)); TERN_(HAS_Z4_MAX, _ATTACH(Z4_MAX_PIN)); TERN_(HAS_Z4_MIN, _ATTACH(Z4_MIN_PIN)); + TERN_(I_HOME_TO_MAX, _ATTACH(I_MAX_PIN)); + TERN_(I_HOME_TO_MIN, _ATTACH(I_MIN_PIN)); + TERN_(J_HOME_TO_MAX, _ATTACH(J_MAX_PIN)); + TERN_(J_HOME_TO_MIN, _ATTACH(J_MIN_PIN)); + TERN_(K_HOME_TO_MAX, _ATTACH(K_MAX_PIN)); + TERN_(K_HOME_TO_MIN, _ATTACH(K_MIN_PIN)); TERN_(HAS_Z_MIN_PROBE_PIN, _ATTACH(Z_MIN_PROBE_PIN)); - TERN_(HAS_I_MAX, _ATTACH(I_MAX_PIN)); - TERN_(HAS_I_MIN, _ATTACH(I_MIN_PIN)); - TERN_(HAS_J_MAX, _ATTACH(J_MAX_PIN)); - TERN_(HAS_J_MIN, _ATTACH(J_MIN_PIN)); - TERN_(HAS_K_MAX, _ATTACH(K_MAX_PIN)); - TERN_(HAS_K_MIN, _ATTACH(K_MIN_PIN)); } diff --git a/Marlin/src/HAL/TEENSY40_41/endstop_interrupts.h b/Marlin/src/HAL/TEENSY40_41/endstop_interrupts.h index 4c3ddec9f1f1f..8e579ab150d39 100644 --- a/Marlin/src/HAL/TEENSY40_41/endstop_interrupts.h +++ b/Marlin/src/HAL/TEENSY40_41/endstop_interrupts.h @@ -46,27 +46,27 @@ void endstop_ISR() { endstops.update(); } */ void setup_endstop_interrupts() { #define _ATTACH(P) attachInterrupt(digitalPinToInterrupt(P), endstop_ISR, CHANGE) - TERN_(HAS_X_MAX, _ATTACH(X_MAX_PIN)); - TERN_(HAS_X_MIN, _ATTACH(X_MIN_PIN)); - TERN_(HAS_Y_MAX, _ATTACH(Y_MAX_PIN)); - TERN_(HAS_Y_MIN, _ATTACH(Y_MIN_PIN)); - TERN_(HAS_Z_MAX, _ATTACH(Z_MAX_PIN)); - TERN_(HAS_Z_MIN, _ATTACH(Z_MIN_PIN)); + TERN_(X_HOME_TO_MAX, _ATTACH(X_MAX_PIN)); + TERN_(X_HOME_TO_MIN, _ATTACH(X_MIN_PIN)); TERN_(HAS_X2_MAX, _ATTACH(X2_MAX_PIN)); TERN_(HAS_X2_MIN, _ATTACH(X2_MIN_PIN)); + TERN_(Y_HOME_TO_MAX, _ATTACH(Y_MAX_PIN)); + TERN_(Y_HOME_TO_MIN, _ATTACH(Y_MIN_PIN)); TERN_(HAS_Y2_MAX, _ATTACH(Y2_MAX_PIN)); TERN_(HAS_Y2_MIN, _ATTACH(Y2_MIN_PIN)); + TERN_(Z_HOME_TO_MAX, _ATTACH(Z_MAX_PIN)); + TERN_(Z_HOME_TO_MIN, _ATTACH(Z_MIN_PIN)); TERN_(HAS_Z2_MAX, _ATTACH(Z2_MAX_PIN)); TERN_(HAS_Z2_MIN, _ATTACH(Z2_MIN_PIN)); TERN_(HAS_Z3_MAX, _ATTACH(Z3_MAX_PIN)); TERN_(HAS_Z3_MIN, _ATTACH(Z3_MIN_PIN)); TERN_(HAS_Z4_MAX, _ATTACH(Z4_MAX_PIN)); TERN_(HAS_Z4_MIN, _ATTACH(Z4_MIN_PIN)); + TERN_(I_HOME_TO_MAX, _ATTACH(I_MAX_PIN)); + TERN_(I_HOME_TO_MIN, _ATTACH(I_MIN_PIN)); + TERN_(J_HOME_TO_MAX, _ATTACH(J_MAX_PIN)); + TERN_(J_HOME_TO_MIN, _ATTACH(J_MIN_PIN)); + TERN_(K_HOME_TO_MAX, _ATTACH(K_MAX_PIN)); + TERN_(K_HOME_TO_MIN, _ATTACH(K_MIN_PIN)); TERN_(HAS_Z_MIN_PROBE_PIN, _ATTACH(Z_MIN_PROBE_PIN)); - TERN_(HAS_I_MAX, _ATTACH(I_MAX_PIN)); - TERN_(HAS_I_MIN, _ATTACH(I_MIN_PIN)); - TERN_(HAS_J_MAX, _ATTACH(J_MAX_PIN)); - TERN_(HAS_J_MIN, _ATTACH(J_MIN_PIN)); - TERN_(HAS_K_MAX, _ATTACH(K_MAX_PIN)); - TERN_(HAS_K_MIN, _ATTACH(K_MIN_PIN)); } diff --git a/Marlin/src/gcode/calibrate/G28.cpp b/Marlin/src/gcode/calibrate/G28.cpp index 421220e4106ab..2528b40a5603d 100644 --- a/Marlin/src/gcode/calibrate/G28.cpp +++ b/Marlin/src/gcode/calibrate/G28.cpp @@ -139,7 +139,7 @@ destination.set(okay_homing_xy, current_position.z); - TERN_(HOMING_Z_WITH_PROBE, destination -= probe.offset_xy); + TERN_(USE_PROBE_FOR_Z_HOMING, destination -= probe.offset_xy); if (position_is_reachable(destination)) { diff --git a/Marlin/src/gcode/config/M43.cpp b/Marlin/src/gcode/config/M43.cpp index 097aa142f03f2..13911f313f797 100644 --- a/Marlin/src/gcode/config/M43.cpp +++ b/Marlin/src/gcode/config/M43.cpp @@ -138,28 +138,15 @@ inline void servo_probe_test() { bool deploy_state = false, stow_state; - #if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) + constexpr bool probe_inverting = Z_MIN_PROBE_ENDSTOP_INVERTING; - #define PROBE_TEST_PIN Z_MIN_PIN - constexpr bool probe_inverting = Z_MIN_ENDSTOP_INVERTING; - - SERIAL_ECHOLNPGM(". Probe Z_MIN_PIN: ", PROBE_TEST_PIN); - SERIAL_ECHOPGM(". Z_MIN_ENDSTOP_INVERTING: "); - - #else - - #define PROBE_TEST_PIN Z_MIN_PROBE_PIN - constexpr bool probe_inverting = Z_MIN_PROBE_ENDSTOP_INVERTING; - - SERIAL_ECHOLNPGM(". Probe Z_MIN_PROBE_PIN: ", PROBE_TEST_PIN); - SERIAL_ECHOPGM( ". Z_MIN_PROBE_ENDSTOP_INVERTING: "); - - #endif + SERIAL_ECHOLNPGM(". Probe Z_MIN_PROBE_PIN: ", Z_MIN_PROBE_PIN); + SERIAL_ECHOPGM( ". Z_MIN_PROBE_ENDSTOP_INVERTING: "); serialprint_truefalse(probe_inverting); SERIAL_EOL(); - SET_INPUT_PULLUP(PROBE_TEST_PIN); + SET_INPUT_PULLUP(Z_MIN_PROBE_PIN); // First, check for a probe that recognizes an advanced BLTouch sequence. // In addition to STOW and DEPLOY, it uses SW MODE (and RESET in the beginning) @@ -173,11 +160,11 @@ inline void servo_probe_test() { SERIAL_ECHOLNPGM(". Check for BLTOUCH"); bltouch._reset(); bltouch._stow(); - if (probe_inverting == READ(PROBE_TEST_PIN)) { + if (probe_inverting == READ(Z_MIN_PROBE_PIN)) { bltouch._set_SW_mode(); - if (probe_inverting != READ(PROBE_TEST_PIN)) { + if (probe_inverting != READ(Z_MIN_PROBE_PIN)) { bltouch._deploy(); - if (probe_inverting == READ(PROBE_TEST_PIN)) { + if (probe_inverting == READ(Z_MIN_PROBE_PIN)) { bltouch._stow(); SERIAL_ECHOLNPGM("= BLTouch Classic 1.2, 1.3, Smart 1.0, 2.0, 2.2, 3.0, 3.1 detected."); // Check for a 3.1 by letting the user trigger it, later @@ -200,10 +187,10 @@ inline void servo_probe_test() { do { MOVE_SERVO(probe_index, servo_angles[Z_PROBE_SERVO_NR][0]); // Deploy safe_delay(500); - deploy_state = READ(PROBE_TEST_PIN); + deploy_state = READ(Z_MIN_PROBE_PIN); MOVE_SERVO(probe_index, servo_angles[Z_PROBE_SERVO_NR][1]); // Stow safe_delay(500); - stow_state = READ(PROBE_TEST_PIN); + stow_state = READ(Z_MIN_PROBE_PIN); } while (++i < 4); if (probe_inverting != deploy_state) SERIAL_ECHOLNPGM("WARNING: INVERTING setting probably backwards."); @@ -237,8 +224,8 @@ inline void servo_probe_test() { if (0 == j % (500 * 1)) gcode.reset_stepper_timeout(); // Keep steppers powered - if (deploy_state != READ(PROBE_TEST_PIN)) { // probe triggered - for (probe_counter = 0; probe_counter < 15 && deploy_state != READ(PROBE_TEST_PIN); ++probe_counter) safe_delay(2); + if (deploy_state != READ(Z_MIN_PROBE_PIN)) { // probe triggered + for (probe_counter = 0; probe_counter < 15 && deploy_state != READ(Z_MIN_PROBE_PIN); ++probe_counter) safe_delay(2); SERIAL_ECHOPGM(". Pulse width"); if (probe_counter == 15) diff --git a/Marlin/src/inc/Conditionals_LCD.h b/Marlin/src/inc/Conditionals_LCD.h index 53c1bb302a9c9..37882602bc904 100644 --- a/Marlin/src/inc/Conditionals_LCD.h +++ b/Marlin/src/inc/Conditionals_LCD.h @@ -36,6 +36,12 @@ #define FYSETC_MINI_12864_2_1 #endif +// *** CI Compatibility with old configs *** +#if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) + #undef Z_MIN_PROBE_PIN + #define Z_MIN_PROBE_PIN Z_MIN_PIN +#endif + /** * General Flags that may be set below by specific LCDs * @@ -807,12 +813,6 @@ #if Z_MIN_PROBE_ENDSTOP_INVERTING #error "BLTOUCH requires Z_MIN_PROBE_ENDSTOP_INVERTING set to false. Please update your Configuration.h file." #endif - - #if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) - #if Z_MIN_ENDSTOP_INVERTING - #error "BLTOUCH requires Z_MIN_ENDSTOP_INVERTING set to false. Please update your Configuration.h file." - #endif - #endif #endif /** @@ -940,30 +940,40 @@ #elif X2_HOME_DIR < 0 #define X2_HOME_TO_MIN 1 #endif -#if Y_HOME_DIR > 0 - #define Y_HOME_TO_MAX 1 -#elif Y_HOME_DIR < 0 - #define Y_HOME_TO_MIN 1 +#if HAS_Y_AXIS + #if Y_HOME_DIR > 0 + #define Y_HOME_TO_MAX 1 + #elif Y_HOME_DIR < 0 + #define Y_HOME_TO_MIN 1 + #endif #endif -#if Z_HOME_DIR > 0 - #define Z_HOME_TO_MAX 1 -#elif Z_HOME_DIR < 0 - #define Z_HOME_TO_MIN 1 +#if HAS_Z_AXIS + #if Z_HOME_DIR > 0 + #define Z_HOME_TO_MAX 1 + #elif Z_HOME_DIR < 0 + #define Z_HOME_TO_MIN 1 + #endif #endif -#if I_HOME_DIR > 0 - #define I_HOME_TO_MAX 1 -#elif I_HOME_DIR < 0 - #define I_HOME_TO_MIN 1 +#if HAS_I_AXIS + #if I_HOME_DIR > 0 + #define I_HOME_TO_MAX 1 + #elif I_HOME_DIR < 0 + #define I_HOME_TO_MIN 1 + #endif #endif -#if J_HOME_DIR > 0 - #define J_HOME_TO_MAX 1 -#elif J_HOME_DIR < 0 - #define J_HOME_TO_MIN 1 +#if HAS_J_AXIS + #if J_HOME_DIR > 0 + #define J_HOME_TO_MAX 1 + #elif J_HOME_DIR < 0 + #define J_HOME_TO_MIN 1 + #endif #endif -#if K_HOME_DIR > 0 - #define K_HOME_TO_MAX 1 -#elif K_HOME_DIR < 0 - #define K_HOME_TO_MIN 1 +#if HAS_K_AXIS + #if K_HOME_DIR > 0 + #define K_HOME_TO_MAX 1 + #elif K_HOME_DIR < 0 + #define K_HOME_TO_MIN 1 + #endif #endif /** @@ -976,12 +986,6 @@ #if BOTH(DELTA, SENSORLESS_PROBING) #define HAS_DELTA_SENSORLESS_PROBING 1 #endif - #if NONE(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN, HAS_DELTA_SENSORLESS_PROBING) - #define USES_Z_MIN_PROBE_PIN 1 - #endif - #if Z_HOME_TO_MIN && TERN1(USES_Z_MIN_PROBE_PIN, ENABLED(USE_PROBE_FOR_Z_HOMING)) - #define HOMING_Z_WITH_PROBE 1 - #endif #ifndef Z_PROBE_LOW_POINT #define Z_PROBE_LOW_POINT -5 #endif @@ -995,10 +999,6 @@ #define TOTAL_PROBING MULTIPLE_PROBING #endif #endif -#else - // Clear probe pin settings when no probe is selected - #undef Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN - #undef USE_PROBE_FOR_Z_HOMING #endif #if Z_HOME_TO_MAX diff --git a/Marlin/src/inc/Conditionals_adv.h b/Marlin/src/inc/Conditionals_adv.h index 2db80f9955adc..ce243f9cd473b 100644 --- a/Marlin/src/inc/Conditionals_adv.h +++ b/Marlin/src/inc/Conditionals_adv.h @@ -927,7 +927,6 @@ #undef Z_PROBE_SLED #undef Z_SAFE_HOMING #undef HOME_Z_FIRST - #undef HOMING_Z_WITH_PROBE #undef ENABLE_LEVELING_FADE_HEIGHT #undef NUM_Z_STEPPER_DRIVERS #undef CNC_WORKSPACE_PLANES diff --git a/Marlin/src/inc/Conditionals_post.h b/Marlin/src/inc/Conditionals_post.h index 08130d31b7a1d..8b73ab145b7dc 100644 --- a/Marlin/src/inc/Conditionals_post.h +++ b/Marlin/src/inc/Conditionals_post.h @@ -1104,7 +1104,7 @@ #define Z2_MIN_ENDSTOP_INVERTING false #endif #endif - #ifndef Z2_MIN_PIN + #if !defined(Z2_MIN_PIN) && !defined(Z2_STOP_PIN) #if Z2_USE_ENDSTOP == _XMIN_ #define Z2_MIN_PIN X_MIN_PIN #elif Z2_USE_ENDSTOP == _XMAX_ @@ -1422,40 +1422,40 @@ * Set ENDSTOPPULLUPS for active endstop switches */ #if ENABLED(ENDSTOPPULLUPS) - #if ENABLED(USE_XMAX_PLUG) + #if X_HOME_TO_MAX #define ENDSTOPPULLUP_XMAX #endif - #if ENABLED(USE_YMAX_PLUG) + #if Y_HOME_TO_MAX #define ENDSTOPPULLUP_YMAX #endif - #if ENABLED(USE_ZMAX_PLUG) + #if Z_HOME_TO_MAX #define ENDSTOPPULLUP_ZMAX #endif - #if ENABLED(USE_IMAX_PLUG) + #if I_HOME_TO_MAX #define ENDSTOPPULLUP_IMAX #endif - #if ENABLED(USE_JMAX_PLUG) + #if J_HOME_TO_MAX #define ENDSTOPPULLUP_JMAX #endif - #if ENABLED(USE_KMAX_PLUG) + #if K_HOME_TO_MAX #define ENDSTOPPULLUP_KMAX #endif - #if ENABLED(USE_XMIN_PLUG) + #if X_HOME_TO_MIN #define ENDSTOPPULLUP_XMIN #endif - #if ENABLED(USE_YMIN_PLUG) + #if Y_HOME_TO_MIN #define ENDSTOPPULLUP_YMIN #endif - #if ENABLED(USE_ZMIN_PLUG) + #if Z_HOME_TO_MIN #define ENDSTOPPULLUP_ZMIN #endif - #if ENABLED(USE_IMIN_PLUG) + #if I_HOME_TO_MIN #define ENDSTOPPULLUP_IMIN #endif - #if ENABLED(USE_JMIN_PLUG) + #if J_HOME_TO_MIN #define ENDSTOPPULLUP_JMIN #endif - #if ENABLED(USE_KMIN_PLUG) + #if K_HOME_TO_MIN #define ENDSTOPPULLUP_KMIN #endif #endif @@ -1464,24 +1464,42 @@ * Set ENDSTOPPULLDOWNS for active endstop switches */ #if ENABLED(ENDSTOPPULLDOWNS) - #if ENABLED(USE_XMAX_PLUG) + #if X_HOME_TO_MAX #define ENDSTOPPULLDOWN_XMAX #endif - #if ENABLED(USE_YMAX_PLUG) + #if Y_HOME_TO_MAX #define ENDSTOPPULLDOWN_YMAX #endif - #if ENABLED(USE_ZMAX_PLUG) + #if Z_HOME_TO_MAX #define ENDSTOPPULLDOWN_ZMAX #endif - #if ENABLED(USE_XMIN_PLUG) + #if I_HOME_TO_MAX + #define ENDSTOPPULLDOWN_IMAX + #endif + #if J_HOME_TO_MAX + #define ENDSTOPPULLDOWN_JMAX + #endif + #if K_HOME_TO_MAX + #define ENDSTOPPULLDOWN_KMAX + #endif + #if X_HOME_TO_MIN #define ENDSTOPPULLDOWN_XMIN #endif - #if ENABLED(USE_YMIN_PLUG) + #if Y_HOME_TO_MIN #define ENDSTOPPULLDOWN_YMIN #endif - #if ENABLED(USE_ZMIN_PLUG) + #if Z_HOME_TO_MIN #define ENDSTOPPULLDOWN_ZMIN #endif + #if I_HOME_TO_MIN + #define ENDSTOPPULLDOWN_IMIN + #endif + #if J_HOME_TO_MIN + #define ENDSTOPPULLDOWN_JMIN + #endif + #if K_HOME_TO_MIN + #define ENDSTOPPULLDOWN_KMIN + #endif #endif /** @@ -1843,6 +1861,16 @@ #endif #endif +#if !HAS_BED_PROBE + #undef Z_MIN_PROBE_PIN + #undef USE_PROBE_FOR_Z_HOMING +#elif PIN_EXISTS(Z_MIN_PROBE) + #define HAS_Z_MIN_PROBE_PIN 1 +#endif +#if Z_HOME_TO_MAX + #undef USE_PROBE_FOR_Z_HOMING +#endif + // // Trinamic Stepper Drivers // @@ -1855,7 +1883,7 @@ #define USE_SENSORLESS 1 #endif // Disable Z axis sensorless homing if a probe is used to home the Z axis - #if HOMING_Z_WITH_PROBE + #if USE_PROBE_FOR_Z_HOMING #undef Z_STALL_SENSITIVITY #undef Z2_STALL_SENSITIVITY #undef Z3_STALL_SENSITIVITY @@ -2304,7 +2332,7 @@ // // Is an endstop plug used for extra Z endstops or the probe? -#define IS_PROBE_PIN(A,M) (USES_Z_MIN_PROBE_PIN && Z_MIN_PROBE_PIN == A##_##M##_PIN) +#define IS_PROBE_PIN(A,M) (HAS_Z_MIN_PROBE_PIN && Z_MIN_PROBE_PIN == A##_##M##_PIN) #define IS_X2_ENDSTOP(A,M) (ENABLED(X_DUAL_ENDSTOPS) && X2_USE_ENDSTOP == _##A##M##_) #define IS_Y2_ENDSTOP(A,M) (ENABLED(Y_DUAL_ENDSTOPS) && Y2_USE_ENDSTOP == _##A##M##_) #define IS_Z2_ENDSTOP(A,M) (ENABLED(Z_MULTI_ENDSTOPS) && Z2_USE_ENDSTOP == _##A##M##_) @@ -2312,75 +2340,73 @@ #define IS_Z4_ENDSTOP(A,M) (ENABLED(Z_MULTI_ENDSTOPS) && NUM_Z_STEPPER_DRIVERS >= 4 && Z4_USE_ENDSTOP == _##A##M##_) #define _HAS_STOP(A,M) (PIN_EXISTS(A##_##M) && !IS_PROBE_PIN(A,M) && !IS_X2_ENDSTOP(A,M) && !IS_Y2_ENDSTOP(A,M) && !IS_Z2_ENDSTOP(A,M) && !IS_Z3_ENDSTOP(A,M) && !IS_Z4_ENDSTOP(A,M)) -#if _HAS_STOP(X,MIN) +#if _HAS_STOP(X,MIN) && X_HOME_TO_MIN #define HAS_X_MIN 1 -#endif -#if _HAS_STOP(X,MAX) +#elif _HAS_STOP(X,MAX) && X_HOME_TO_MAX #define HAS_X_MAX 1 #endif -#if _HAS_STOP(Y,MIN) - #define HAS_Y_MIN 1 -#endif -#if _HAS_STOP(Y,MAX) - #define HAS_Y_MAX 1 -#endif -#if _HAS_STOP(Z,MIN) - #define HAS_Z_MIN 1 +#if HAS_Y_AXIS + #if _HAS_STOP(Y,MIN) && Y_HOME_TO_MIN + #define HAS_Y_MIN 1 + #elif _HAS_STOP(Y,MAX) && Y_HOME_TO_MAX + #define HAS_Y_MAX 1 + #endif #endif -#if _HAS_STOP(Z,MAX) - #define HAS_Z_MAX 1 +#if HAS_Z_AXIS + #if _HAS_STOP(Z,MIN) && Z_HOME_TO_MIN && Z_MIN_PROBE_PIN != Z_MIN_PIN + #define HAS_Z_MIN 1 + #elif _HAS_STOP(Z,MAX) && Z_HOME_TO_MAX + #define HAS_Z_MAX 1 + #endif #endif -#if _HAS_STOP(I,MIN) +#if _HAS_STOP(I,MIN) && I_HOME_TO_MIN #define HAS_I_MIN 1 -#endif -#if _HAS_STOP(I,MAX) +#elif _HAS_STOP(I,MAX) && I_HOME_TO_MAX #define HAS_I_MAX 1 #endif -#if _HAS_STOP(J,MIN) +#if _HAS_STOP(J,MIN) && J_HOME_TO_MIN #define HAS_J_MIN 1 -#endif -#if _HAS_STOP(J,MAX) +#elif _HAS_STOP(J,MAX) && J_HOME_TO_MAX #define HAS_J_MAX 1 #endif -#if _HAS_STOP(K,MIN) +#if _HAS_STOP(K,MIN) && K_HOME_TO_MIN #define HAS_K_MIN 1 -#endif -#if _HAS_STOP(K,MAX) +#elif _HAS_STOP(K,MAX) && K_HOME_TO_MAX #define HAS_K_MAX 1 #endif -#if PIN_EXISTS(X2_MIN) +#if PIN_EXISTS(X2_MIN) && BOTH(X_DUAL_ENDSTOPS, X_HOME_TO_MIN) #define HAS_X2_MIN 1 #endif -#if PIN_EXISTS(X2_MAX) +#if PIN_EXISTS(X2_MAX) && (ENABLED(DUAL_X_CARRIAGE) || BOTH(X_DUAL_ENDSTOPS, X_HOME_TO_MAX)) #define HAS_X2_MAX 1 #endif -#if PIN_EXISTS(Y2_MIN) - #define HAS_Y2_MIN 1 -#endif -#if PIN_EXISTS(Y2_MAX) - #define HAS_Y2_MAX 1 -#endif -#if PIN_EXISTS(Z2_MIN) - #define HAS_Z2_MIN 1 -#endif -#if PIN_EXISTS(Z2_MAX) - #define HAS_Z2_MAX 1 -#endif -#if PIN_EXISTS(Z3_MIN) - #define HAS_Z3_MIN 1 -#endif -#if PIN_EXISTS(Z3_MAX) - #define HAS_Z3_MAX 1 -#endif -#if PIN_EXISTS(Z4_MIN) - #define HAS_Z4_MIN 1 -#endif -#if PIN_EXISTS(Z4_MAX) - #define HAS_Z4_MAX 1 +#if ENABLED(Y_DUAL_ENDSTOPS) + #if PIN_EXISTS(Y2_MIN) && Y_HOME_TO_MIN + #define HAS_Y2_MIN 1 + #elif PIN_EXISTS(Y2_MAX) && Y_HOME_TO_MAX + #define HAS_Y2_MAX 1 + #endif #endif - -#if HAS_BED_PROBE && PIN_EXISTS(Z_MIN_PROBE) - #define HAS_Z_MIN_PROBE_PIN 1 +#if ENABLED(Z_MULTI_ENDSTOPS) + #if PIN_EXISTS(Z2_MIN) && Z_HOME_TO_MIN + #define HAS_Z2_MIN 1 + #elif PIN_EXISTS(Z2_MAX) && Z_HOME_TO_MAX + #define HAS_Z2_MAX 1 + #endif + #if NUM_Z_STEPPER_DRIVERS >= 3 + #if PIN_EXISTS(Z3_MIN) && Z_HOME_TO_MIN + #define HAS_Z3_MIN 1 + #elif PIN_EXISTS(Z3_MAX) && Z_HOME_TO_MAX + #define HAS_Z3_MAX 1 + #endif + #endif + #if NUM_Z_STEPPER_DRIVERS >= 4 + #if PIN_EXISTS(Z4_MIN) && Z_HOME_TO_MIN + #define HAS_Z4_MIN 1 + #elif PIN_EXISTS(Z4_MAX) && Z_HOME_TO_MAX + #define HAS_Z4_MAX 1 + #endif + #endif #endif #undef _HAS_STOP diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index f884046a96d50..4def5fe4cae96 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -122,7 +122,7 @@ #elif defined(ENDSTOPPULLUP_FIL_RUNOUT) #error "ENDSTOPPULLUP_FIL_RUNOUT is now FIL_RUNOUT_PULLUP." #elif defined(DISABLE_MAX_ENDSTOPS) || defined(DISABLE_MIN_ENDSTOPS) - #error "DISABLE_MAX_ENDSTOPS and DISABLE_MIN_ENDSTOPS deprecated. Use individual USE_*_PLUG options instead." + #error "DISABLE_MAX_ENDSTOPS and DISABLE_MIN_ENDSTOPS deprecated." #elif defined(LANGUAGE_INCLUDE) #error "LANGUAGE_INCLUDE has been replaced by LCD_LANGUAGE." #elif defined(EXTRUDER_OFFSET_X) || defined(EXTRUDER_OFFSET_Y) @@ -1469,9 +1469,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS * Delta requirements */ #if ENABLED(DELTA) - #if NONE(USE_XMAX_PLUG, USE_YMAX_PLUG, USE_ZMAX_PLUG) - #error "You probably want to use Max Endstops for DELTA!" - #elif ENABLED(ENABLE_LEVELING_FADE_HEIGHT) && DISABLED(AUTO_BED_LEVELING_BILINEAR) && !UBL_SEGMENTED + #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT) && DISABLED(AUTO_BED_LEVELING_BILINEAR) && !UBL_SEGMENTED #error "ENABLE_LEVELING_FADE_HEIGHT on DELTA requires AUTO_BED_LEVELING_BILINEAR or AUTO_BED_LEVELING_UBL." #elif ENABLED(DELTA_AUTO_CALIBRATION) && !(HAS_BED_PROBE || HAS_LCD_MENU) #error "DELTA_AUTO_CALIBRATION requires a probe or LCD Controller." @@ -1564,7 +1562,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS #else #define _IS_5V_TOLERANT(P) 1 // Assume 5V tolerance #endif - #if USES_Z_MIN_PROBE_PIN && !_IS_5V_TOLERANT(Z_MIN_PROBE_PIN) + #if PIN_EXISTS(Z_MIN_PROBE) && !_IS_5V_TOLERANT(Z_MIN_PROBE_PIN) #error "BLTOUCH_SET_5V_MODE is not compatible with the Z_MIN_PROBE_PIN." #elif !_IS_5V_TOLERANT(Z_MIN_PIN) #error "BLTOUCH_SET_5V_MODE is not compatible with the Z_MIN_PIN." @@ -1572,10 +1570,8 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS #undef _IS_5V_TOLERANT #undef _5V #elif NONE(ONBOARD_ENDSTOPPULLUPS, ENDSTOPPULLUPS, ENDSTOPPULLUP_ZMIN, ENDSTOPPULLUP_ZMIN_PROBE) - #if USES_Z_MIN_PROBE_PIN + #if PIN_EXISTS(Z_MIN_PROBE) #error "BLTOUCH on Z_MIN_PROBE_PIN requires ENDSTOPPULLUP_ZMIN_PROBE, ENDSTOPPULLUPS, or BLTOUCH_SET_5V_MODE." - #else - #error "BLTOUCH on Z_MIN_PIN requires ENDSTOPPULLUP_ZMIN, ENDSTOPPULLUPS, or BLTOUCH_SET_5V_MODE." #endif #endif @@ -1634,16 +1630,6 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS #elif !AXIS_HAS_STALLGUARD(Z) #error "SENSORLESS_PROBING requires a TMC2130/2160/2209/5130/5160 driver on Z." #endif - #elif ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) - #if DISABLED(USE_ZMIN_PLUG) - #error "Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN requires USE_ZMIN_PLUG to be enabled." - #elif !HAS_Z_MIN - #error "Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN requires the Z_MIN_PIN to be defined." - #elif Z_MIN_PROBE_ENDSTOP_INVERTING != Z_MIN_ENDSTOP_INVERTING - #error "Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN requires Z_MIN_ENDSTOP_INVERTING to match Z_MIN_PROBE_ENDSTOP_INVERTING." - #endif - #elif !HAS_Z_MIN_PROBE_PIN - #error "Z_MIN_PROBE_PIN must be defined if Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN is not enabled." #endif /** @@ -1962,14 +1948,6 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS #endif #endif -/** - * Allen Key - * Deploying the Allen Key probe uses big moves in z direction. Too dangerous for an unhomed z-axis. - */ -#if ALL(Z_HOME_TO_MIN, Z_PROBE_ALLEN_KEY, Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) - #error "You can't home to a Z min endstop with a Z_PROBE_ALLEN_KEY." -#endif - /** * Dual X Carriage requirements */ @@ -1980,8 +1958,8 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS #error "DUAL_X_CARRIAGE cannot be used with COREXY, COREYX, COREXZ, COREZX, MARKFORGED_YX, or MARKFORGED_XY." #elif !GOOD_AXIS_PINS(X2) #error "DUAL_X_CARRIAGE requires X2 stepper pins to be defined." - #elif !HAS_X_MAX - #error "DUAL_X_CARRIAGE requires USE_XMAX_PLUG and an X Max Endstop." + #elif !PIN_EXISTS(Z_MAX) + #error "DUAL_X_CARRIAGE requires X_MAX_PIN." #elif !defined(X2_HOME_POS) || !defined(X2_MIN_POS) || !defined(X2_MAX_POS) #error "DUAL_X_CARRIAGE requires X2_HOME_POS, X2_MIN_POS, and X2_MAX_POS." #elif X_HOME_TO_MAX || X2_HOME_TO_MIN @@ -2395,74 +2373,16 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS /** * Endstop Tests */ - -#define _PLUG_UNUSED_TEST(A,P) (DISABLED(USE_##P##MIN_PLUG, USE_##P##MAX_PLUG) \ - && !(ENABLED(A##_DUAL_ENDSTOPS) && WITHIN(A##2_USE_ENDSTOP, _##P##MAX_, _##P##MIN_)) \ - && !(ENABLED(A##_MULTI_ENDSTOPS) && WITHIN(A##2_USE_ENDSTOP, _##P##MAX_, _##P##MIN_)) ) -#define _AXIS_PLUG_UNUSED_TEST(A) (1 LINEAR_AXIS_GANG(&& _PLUG_UNUSED_TEST(A,X), && _PLUG_UNUSED_TEST(A,Y), && _PLUG_UNUSED_TEST(A,Z), && _PLUG_UNUSED_TEST(A,I), && _PLUG_UNUSED_TEST(A,J), && _PLUG_UNUSED_TEST(A,K) ) ) - -// A machine with endstops must have a minimum of 3 -#if HAS_ENDSTOPS - #if _AXIS_PLUG_UNUSED_TEST(X) - #error "You must enable USE_XMIN_PLUG or USE_XMAX_PLUG." - #endif - #if _AXIS_PLUG_UNUSED_TEST(Y) - #error "You must enable USE_YMIN_PLUG or USE_YMAX_PLUG." - #endif - #if _AXIS_PLUG_UNUSED_TEST(Z) - #error "You must enable USE_ZMIN_PLUG or USE_ZMAX_PLUG." - #endif - #if HAS_I_AXIS && _AXIS_PLUG_UNUSED_TEST(I) - #error "You must enable USE_IMIN_PLUG or USE_IMAX_PLUG." - #endif - #if HAS_J_AXIS && _AXIS_PLUG_UNUSED_TEST(J) - #error "You must enable USE_JMIN_PLUG or USE_JMAX_PLUG." - #endif - #if HAS_K_AXIS && _AXIS_PLUG_UNUSED_TEST(K) - #error "You must enable USE_KMIN_PLUG or USE_KMAX_PLUG." - #endif - - // Delta and Cartesian use 3 homing endstops - #if NONE(IS_SCARA, SPI_ENDSTOPS) - #if X_HOME_TO_MIN && DISABLED(USE_XMIN_PLUG) - #error "Enable USE_XMIN_PLUG when homing X to MIN." - #elif X_HOME_TO_MAX && DISABLED(USE_XMAX_PLUG) - #error "Enable USE_XMAX_PLUG when homing X to MAX." - #elif Y_HOME_TO_MIN && DISABLED(USE_YMIN_PLUG) - #error "Enable USE_YMIN_PLUG when homing Y to MIN." - #elif Y_HOME_TO_MAX && DISABLED(USE_YMAX_PLUG) - #error "Enable USE_YMAX_PLUG when homing Y to MAX." - #elif HAS_I_AXIS && I_HOME_TO_MIN && DISABLED(USE_IMIN_PLUG) - #error "Enable USE_IMIN_PLUG when homing I to MIN." - #elif HAS_I_AXIS && I_HOME_TO_MAX && DISABLED(USE_IMAX_PLUG) - #error "Enable USE_IMAX_PLUG when homing I to MAX." - #elif HAS_J_AXIS && J_HOME_TO_MIN && DISABLED(USE_JMIN_PLUG) - #error "Enable USE_JMIN_PLUG when homing J to MIN." - #elif HAS_J_AXIS && J_HOME_TO_MAX && DISABLED(USE_JMAX_PLUG) - #error "Enable USE_JMAX_PLUG when homing J to MAX." - #elif HAS_K_AXIS && K_HOME_TO_MIN && DISABLED(USE_KMIN_PLUG) - #error "Enable USE_KMIN_PLUG when homing K to MIN." - #elif HAS_K_AXIS && K_HOME_TO_MAX && DISABLED(USE_KMAX_PLUG) - #error "Enable USE_KMAX_PLUG when homing K to MAX." - #endif - #endif - - // Z homing direction and plug usage flags - #if Z_HOME_TO_MIN && NONE(USE_ZMIN_PLUG, HOMING_Z_WITH_PROBE) - #error "Enable USE_ZMIN_PLUG when homing Z to MIN." - #elif Z_HOME_TO_MAX && ENABLED(USE_PROBE_FOR_Z_HOMING) +#if ENABLED(USE_PROBE_FOR_Z_HOMING) + #if Z_HOME_TO_MAX #error "Z_HOME_DIR must be -1 when homing Z with the probe." - #elif BOTH(HOMING_Z_WITH_PROBE, Z_MULTI_ENDSTOPS) + #elif ENABLED(Z_MULTI_ENDSTOPS) #error "Z_MULTI_ENDSTOPS is incompatible with USE_PROBE_FOR_Z_HOMING." - #elif Z_HOME_TO_MAX && DISABLED(USE_ZMAX_PLUG) - #error "Enable USE_ZMAX_PLUG when homing Z to MAX." + #elif ENABLED(HOME_Z_FIRST) + #error "HOME_Z_FIRST can't be used when homing Z with a probe." #endif #endif -#if BOTH(HOME_Z_FIRST, USE_PROBE_FOR_Z_HOMING) - #error "HOME_Z_FIRST can't be used when homing Z with a probe." -#endif - // Dual/multiple endstops requirements #if ENABLED(X_DUAL_ENDSTOPS) #if ENABLED(DELTA) @@ -3221,8 +3141,6 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS #if ENABLED(SENSORLESS_PROBING) #if ENABLED(DELTA) && !(X_SENSORLESS && Y_SENSORLESS && Z_SENSORLESS) #error "SENSORLESS_PROBING for DELTA requires TMC stepper drivers with StallGuard on X, Y, and Z axes." - #elif ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) - #error "SENSORLESS_PROBING cannot be used with Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN." #elif ENABLED(USE_PROBE_FOR_Z_HOMING) #error "SENSORLESS_PROBING cannot be used with USE_PROBE_FOR_Z_HOMING." #elif !Z_SENSORLESS @@ -3233,9 +3151,9 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS // Sensorless homing is required for both combined steppers in an H-bot #if CORE_IS_XY && X_SENSORLESS != Y_SENSORLESS #error "CoreXY requires both X and Y to use sensorless homing if either one does." -#elif CORE_IS_XZ && X_SENSORLESS != Z_SENSORLESS && !HOMING_Z_WITH_PROBE +#elif CORE_IS_XZ && X_SENSORLESS != Z_SENSORLESS && !USE_PROBE_FOR_Z_HOMING #error "CoreXZ requires both X and Z to use sensorless homing if either one does." -#elif CORE_IS_YZ && Y_SENSORLESS != Z_SENSORLESS && !HOMING_Z_WITH_PROBE +#elif CORE_IS_YZ && Y_SENSORLESS != Z_SENSORLESS && !USE_PROBE_FOR_Z_HOMING #error "CoreYZ requires both Y and Z to use sensorless homing if either one does." #elif EITHER(MARKFORGED_XY, MARKFORGED_YX) && X_SENSORLESS != Y_SENSORLESS #error "MARKFORGED requires both X and Y to use sensorless homing if either one does." diff --git a/Marlin/src/inc/Warnings.cpp b/Marlin/src/inc/Warnings.cpp index c2fe42ae82e2c..ba579e0f55c91 100644 --- a/Marlin/src/inc/Warnings.cpp +++ b/Marlin/src/inc/Warnings.cpp @@ -537,7 +537,7 @@ #warning "Creality 4.2.2 boards may have A4988 or TMC2208_STANDALONE drivers. Check your board and make sure to select the correct DRIVER_TYPE!" #endif -#if HOMING_Z_WITH_PROBE && IS_CARTESIAN && DISABLED(Z_SAFE_HOMING) +#if USE_PROBE_FOR_Z_HOMING && IS_CARTESIAN && DISABLED(Z_SAFE_HOMING) #error "Z_SAFE_HOMING is recommended when homing with a probe. Enable Z_SAFE_HOMING or comment out this line to continue." #endif diff --git a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/endstop_state_screen.cpp b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/endstop_state_screen.cpp index c7042e760e487..c7a1425c4ee1a 100644 --- a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/endstop_state_screen.cpp +++ b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/endstop_state_screen.cpp @@ -60,32 +60,32 @@ void EndstopStatesScreen::onRedraw(draw_mode_t) { ) .text(BTN_POS(1,1), BTN_SIZE(6,1), GET_TEXT_F(MSG_LCD_ENDSTOPS)) .font(font_tiny); - #if HAS_X_MAX + #if X_HOME_TO_MAX PIN_ENABLED (1, 2, PSTR(STR_X_MAX), X_MAX, X_MAX_ENDSTOP_INVERTING) #else PIN_DISABLED(1, 2, PSTR(STR_X_MAX), X_MAX) #endif - #if HAS_Y_MAX + #if Y_HOME_TO_MAX PIN_ENABLED (3, 2, PSTR(STR_Y_MAX), Y_MAX, Y_MAX_ENDSTOP_INVERTING) #else PIN_DISABLED(3, 2, PSTR(STR_Y_MAX), Y_MAX) #endif - #if HAS_Z_MAX + #if Z_HOME_TO_MAX PIN_ENABLED (5, 2, PSTR(STR_Z_MAX), Z_MAX, Z_MAX_ENDSTOP_INVERTING) #else PIN_DISABLED(5, 2, PSTR(STR_Z_MAX), Z_MAX) #endif - #if HAS_X_MIN + #if X_HOME_TO_MIN PIN_ENABLED (1, 3, PSTR(STR_X_MIN), X_MIN, X_MIN_ENDSTOP_INVERTING) #else PIN_DISABLED(1, 3, PSTR(STR_X_MIN), X_MIN) #endif - #if HAS_Y_MIN + #if Y_HOME_TO_MIN PIN_ENABLED (3, 3, PSTR(STR_Y_MIN), Y_MIN, Y_MIN_ENDSTOP_INVERTING) #else PIN_DISABLED(3, 3, PSTR(STR_Y_MIN), Y_MIN) #endif - #if HAS_Z_MIN + #if Z_HOME_TO_MIN PIN_ENABLED (5, 3, PSTR(STR_Z_MIN), Z_MIN, Z_MIN_ENDSTOP_INVERTING) #else PIN_DISABLED(5, 3, PSTR(STR_Z_MIN), Z_MIN) diff --git a/Marlin/src/lcd/menu/menu_probe_offset.cpp b/Marlin/src/lcd/menu/menu_probe_offset.cpp index add7395533801..05d87d6659c82 100644 --- a/Marlin/src/lcd/menu/menu_probe_offset.cpp +++ b/Marlin/src/lcd/menu/menu_probe_offset.cpp @@ -102,7 +102,7 @@ void probe_offset_wizard_menu() { ACTION_ITEM(MSG_BUTTON_CANCEL, []{ set_offset_and_go_back(z_offset_backup); // If wizard-homing was done by probe with PROBE_OFFSET_WIZARD_START_Z - #if HOMING_Z_WITH_PROBE && defined(PROBE_OFFSET_WIZARD_START_Z) + #if USE_PROBE_FOR_Z_HOMING && defined(PROBE_OFFSET_WIZARD_START_Z) set_axis_never_homed(Z_AXIS); // On cancel the Z position needs correction queue.inject(F("G28Z")); #else // Otherwise do a Z clearance move like after Homing @@ -114,7 +114,7 @@ void probe_offset_wizard_menu() { } void prepare_for_probe_offset_wizard() { - #if defined(PROBE_OFFSET_WIZARD_XY_POS) || !HOMING_Z_WITH_PROBE + #if defined(PROBE_OFFSET_WIZARD_XY_POS) || !USE_PROBE_FOR_Z_HOMING if (ui.should_draw()) MenuItem_static::draw(1, GET_TEXT(MSG_PROBE_WIZARD_PROBING)); if (ui.wait_for_move) return; diff --git a/Marlin/src/module/endstops.cpp b/Marlin/src/module/endstops.cpp index 50ee33b3c06a1..482e93886ac2b 100644 --- a/Marlin/src/module/endstops.cpp +++ b/Marlin/src/module/endstops.cpp @@ -99,7 +99,7 @@ Endstops::endstop_mask_t Endstops::live_state = 0; void Endstops::init() { - #if HAS_X_MIN + #if X_HOME_TO_MIN #if ENABLED(ENDSTOPPULLUP_XMIN) SET_INPUT_PULLUP(X_MIN_PIN); #elif ENABLED(ENDSTOPPULLDOWN_XMIN) @@ -107,19 +107,35 @@ void Endstops::init() { #else SET_INPUT(X_MIN_PIN); #endif - #endif - - #if HAS_X2_MIN - #if ENABLED(ENDSTOPPULLUP_XMIN) - SET_INPUT_PULLUP(X2_MIN_PIN); - #elif ENABLED(ENDSTOPPULLDOWN_XMIN) - SET_INPUT_PULLDOWN(X2_MIN_PIN); + #if HAS_X2_MIN + #if ENABLED(ENDSTOPPULLUP_XMIN) + SET_INPUT_PULLUP(X2_MIN_PIN); + #elif ENABLED(ENDSTOPPULLDOWN_XMIN) + SET_INPUT_PULLDOWN(X2_MIN_PIN); + #else + SET_INPUT(X2_MIN_PIN); + #endif + #endif + #elif X_HOME_TO_MAX + #if ENABLED(ENDSTOPPULLUP_XMAX) + SET_INPUT_PULLUP(X_MAX_PIN); + #elif ENABLED(ENDSTOPPULLDOWN_XMAX) + SET_INPUT_PULLDOWN(X_MAX_PIN); #else - SET_INPUT(X2_MIN_PIN); + SET_INPUT(X_MAX_PIN); + #endif + #if HAS_X2_MAX + #if ENABLED(ENDSTOPPULLUP_XMAX) + SET_INPUT_PULLUP(X2_MAX_PIN); + #elif ENABLED(ENDSTOPPULLDOWN_XMAX) + SET_INPUT_PULLDOWN(X2_MAX_PIN); + #else + SET_INPUT(X2_MAX_PIN); + #endif #endif #endif - #if HAS_Y_MIN + #if Y_HOME_TO_MIN #if ENABLED(ENDSTOPPULLUP_YMIN) SET_INPUT_PULLUP(Y_MIN_PIN); #elif ENABLED(ENDSTOPPULLDOWN_YMIN) @@ -127,19 +143,35 @@ void Endstops::init() { #else SET_INPUT(Y_MIN_PIN); #endif - #endif - - #if HAS_Y2_MIN - #if ENABLED(ENDSTOPPULLUP_YMIN) - SET_INPUT_PULLUP(Y2_MIN_PIN); - #elif ENABLED(ENDSTOPPULLDOWN_YMIN) - SET_INPUT_PULLDOWN(Y2_MIN_PIN); + #if HAS_Y2_MIN + #if ENABLED(ENDSTOPPULLUP_YMIN) + SET_INPUT_PULLUP(Y2_MIN_PIN); + #elif ENABLED(ENDSTOPPULLDOWN_YMIN) + SET_INPUT_PULLDOWN(Y2_MIN_PIN); + #else + SET_INPUT(Y2_MIN_PIN); + #endif + #endif + #elif Y_HOME_TO_MAX + #if ENABLED(ENDSTOPPULLUP_YMAX) + SET_INPUT_PULLUP(Y_MAX_PIN); + #elif ENABLED(ENDSTOPPULLDOWN_YMAX) + SET_INPUT_PULLDOWN(Y_MAX_PIN); #else - SET_INPUT(Y2_MIN_PIN); + SET_INPUT(Y_MAX_PIN); + #endif + #if HAS_Y2_MAX + #if ENABLED(ENDSTOPPULLUP_YMAX) + SET_INPUT_PULLUP(Y2_MAX_PIN); + #elif ENABLED(ENDSTOPPULLDOWN_YMAX) + SET_INPUT_PULLDOWN(Y2_MAX_PIN); + #else + SET_INPUT(Y2_MAX_PIN); + #endif #endif #endif - #if HAS_Z_MIN + #if Z_HOME_TO_MIN #if ENABLED(ENDSTOPPULLUP_ZMIN) SET_INPUT_PULLUP(Z_MIN_PIN); #elif ENABLED(ENDSTOPPULLDOWN_ZMIN) @@ -147,79 +179,34 @@ void Endstops::init() { #else SET_INPUT(Z_MIN_PIN); #endif - #endif - - #if HAS_Z2_MIN - #if ENABLED(ENDSTOPPULLUP_ZMIN) - SET_INPUT_PULLUP(Z2_MIN_PIN); - #elif ENABLED(ENDSTOPPULLDOWN_ZMIN) - SET_INPUT_PULLDOWN(Z2_MIN_PIN); - #else - SET_INPUT(Z2_MIN_PIN); - #endif - #endif - - #if HAS_Z3_MIN - #if ENABLED(ENDSTOPPULLUP_ZMIN) - SET_INPUT_PULLUP(Z3_MIN_PIN); - #elif ENABLED(ENDSTOPPULLDOWN_ZMIN) - SET_INPUT_PULLDOWN(Z3_MIN_PIN); - #else - SET_INPUT(Z3_MIN_PIN); - #endif - #endif - - #if HAS_Z4_MIN - #if ENABLED(ENDSTOPPULLUP_ZMIN) - SET_INPUT_PULLUP(Z4_MIN_PIN); - #elif ENABLED(ENDSTOPPULLDOWN_ZMIN) - SET_INPUT_PULLDOWN(Z4_MIN_PIN); - #else - SET_INPUT(Z4_MIN_PIN); - #endif - #endif - - #if HAS_X_MAX - #if ENABLED(ENDSTOPPULLUP_XMAX) - SET_INPUT_PULLUP(X_MAX_PIN); - #elif ENABLED(ENDSTOPPULLDOWN_XMAX) - SET_INPUT_PULLDOWN(X_MAX_PIN); - #else - SET_INPUT(X_MAX_PIN); - #endif - #endif - - #if HAS_X2_MAX - #if ENABLED(ENDSTOPPULLUP_XMAX) - SET_INPUT_PULLUP(X2_MAX_PIN); - #elif ENABLED(ENDSTOPPULLDOWN_XMAX) - SET_INPUT_PULLDOWN(X2_MAX_PIN); - #else - SET_INPUT(X2_MAX_PIN); + #if HAS_Z2_MIN + #if ENABLED(ENDSTOPPULLUP_ZMIN) + SET_INPUT_PULLUP(Z2_MIN_PIN); + #elif ENABLED(ENDSTOPPULLDOWN_ZMIN) + SET_INPUT_PULLDOWN(Z2_MIN_PIN); + #else + SET_INPUT(Z2_MIN_PIN); + #endif #endif - #endif - - #if HAS_Y_MAX - #if ENABLED(ENDSTOPPULLUP_YMAX) - SET_INPUT_PULLUP(Y_MAX_PIN); - #elif ENABLED(ENDSTOPPULLDOWN_YMAX) - SET_INPUT_PULLDOWN(Y_MAX_PIN); - #else - SET_INPUT(Y_MAX_PIN); + #if HAS_Z3_MIN + #if ENABLED(ENDSTOPPULLUP_ZMIN) + SET_INPUT_PULLUP(Z3_MIN_PIN); + #elif ENABLED(ENDSTOPPULLDOWN_ZMIN) + SET_INPUT_PULLDOWN(Z3_MIN_PIN); + #else + SET_INPUT(Z3_MIN_PIN); + #endif #endif - #endif - - #if HAS_Y2_MAX - #if ENABLED(ENDSTOPPULLUP_YMAX) - SET_INPUT_PULLUP(Y2_MAX_PIN); - #elif ENABLED(ENDSTOPPULLDOWN_YMAX) - SET_INPUT_PULLDOWN(Y2_MAX_PIN); - #else - SET_INPUT(Y2_MAX_PIN); + #if HAS_Z4_MIN + #if ENABLED(ENDSTOPPULLUP_ZMIN) + SET_INPUT_PULLUP(Z4_MIN_PIN); + #elif ENABLED(ENDSTOPPULLDOWN_ZMIN) + SET_INPUT_PULLDOWN(Z4_MIN_PIN); + #else + SET_INPUT(Z4_MIN_PIN); + #endif #endif - #endif - - #if HAS_Z_MAX + #elif Z_HOME_TO_MAX #if ENABLED(ENDSTOPPULLUP_ZMAX) SET_INPUT_PULLUP(Z_MAX_PIN); #elif ENABLED(ENDSTOPPULLDOWN_ZMAX) @@ -227,39 +214,36 @@ void Endstops::init() { #else SET_INPUT(Z_MAX_PIN); #endif - #endif - - #if HAS_Z2_MAX - #if ENABLED(ENDSTOPPULLUP_ZMAX) - SET_INPUT_PULLUP(Z2_MAX_PIN); - #elif ENABLED(ENDSTOPPULLDOWN_ZMAX) - SET_INPUT_PULLDOWN(Z2_MAX_PIN); - #else - SET_INPUT(Z2_MAX_PIN); + #if HAS_Z2_MAX + #if ENABLED(ENDSTOPPULLUP_ZMAX) + SET_INPUT_PULLUP(Z2_MAX_PIN); + #elif ENABLED(ENDSTOPPULLDOWN_ZMAX) + SET_INPUT_PULLDOWN(Z2_MAX_PIN); + #else + SET_INPUT(Z2_MAX_PIN); + #endif #endif - #endif - - #if HAS_Z3_MAX - #if ENABLED(ENDSTOPPULLUP_ZMAX) - SET_INPUT_PULLUP(Z3_MAX_PIN); - #elif ENABLED(ENDSTOPPULLDOWN_ZMAX) - SET_INPUT_PULLDOWN(Z3_MAX_PIN); - #else - SET_INPUT(Z3_MAX_PIN); + #if HAS_Z3_MAX + #if ENABLED(ENDSTOPPULLUP_ZMAX) + SET_INPUT_PULLUP(Z3_MAX_PIN); + #elif ENABLED(ENDSTOPPULLDOWN_ZMAX) + SET_INPUT_PULLDOWN(Z3_MAX_PIN); + #else + SET_INPUT(Z3_MAX_PIN); + #endif #endif - #endif - - #if HAS_Z4_MAX - #if ENABLED(ENDSTOPPULLUP_ZMAX) - SET_INPUT_PULLUP(Z4_MAX_PIN); - #elif ENABLED(ENDSTOPPULLDOWN_ZMAX) - SET_INPUT_PULLDOWN(Z4_MAX_PIN); - #else - SET_INPUT(Z4_MAX_PIN); + #if HAS_Z4_MAX + #if ENABLED(ENDSTOPPULLUP_ZMAX) + SET_INPUT_PULLUP(Z4_MAX_PIN); + #elif ENABLED(ENDSTOPPULLDOWN_ZMAX) + SET_INPUT_PULLDOWN(Z4_MAX_PIN); + #else + SET_INPUT(Z4_MAX_PIN); + #endif #endif #endif - #if HAS_I_MIN + #if I_HOME_TO_MIN #if ENABLED(ENDSTOPPULLUP_IMIN) SET_INPUT_PULLUP(I_MIN_PIN); #elif ENABLED(ENDSTOPPULLDOWN_IMIN) @@ -267,9 +251,7 @@ void Endstops::init() { #else SET_INPUT(I_MIN_PIN); #endif - #endif - - #if HAS_I_MAX + #elif I_HOME_TO_MAX #if ENABLED(ENDSTOPPULLUP_IMAX) SET_INPUT_PULLUP(I_MAX_PIN); #elif ENABLED(ENDSTOPPULLDOWN_IMAX) @@ -279,7 +261,7 @@ void Endstops::init() { #endif #endif - #if HAS_J_MIN + #if J_HOME_TO_MIN #if ENABLED(ENDSTOPPULLUP_JMIN) SET_INPUT_PULLUP(J_MIN_PIN); #elif ENABLED(ENDSTOPPULLDOWN_IMIN) @@ -287,9 +269,7 @@ void Endstops::init() { #else SET_INPUT(J_MIN_PIN); #endif - #endif - - #if HAS_J_MAX + #elif J_HOME_TO_MAX #if ENABLED(ENDSTOPPULLUP_JMAX) SET_INPUT_PULLUP(J_MAX_PIN); #elif ENABLED(ENDSTOPPULLDOWN_JMAX) @@ -299,7 +279,7 @@ void Endstops::init() { #endif #endif - #if HAS_K_MIN + #if K_HOME_TO_MIN #if ENABLED(ENDSTOPPULLUP_KMIN) SET_INPUT_PULLUP(K_MIN_PIN); #elif ENABLED(ENDSTOPPULLDOWN_KMIN) @@ -307,9 +287,7 @@ void Endstops::init() { #else SET_INPUT(K_MIN_PIN); #endif - #endif - - #if HAS_K_MAX + #elif K_HOME_TO_MAX #if ENABLED(ENDSTOPPULLUP_KMAX) SET_INPUT_PULLUP(K_MAX_PIN); #elif ENABLED(ENDSTOPPULLDOWN_KMIN) @@ -329,7 +307,7 @@ void Endstops::init() { #endif #endif - #if USES_Z_MIN_PROBE_PIN + #if PIN_EXISTS(Z_MIN_PROBE) #if ENABLED(ENDSTOPPULLUP_ZMIN_PROBE) SET_INPUT_PULLUP(Z_MIN_PROBE_PIN); #elif ENABLED(ENDSTOPPULLDOWN_ZMIN_PROBE) @@ -435,7 +413,7 @@ void Endstops::event_handler() { SERIAL_ECHOPGM(" " STRINGIFY(A) ":", planner.triggered_position_mm(_AXIS(A))); _SET_STOP_CHAR(A,C); }while(0) #define _ENDSTOP_HIT_TEST(A,C) \ - if (TERN0(HAS_##A##_MIN, TEST(hit_state, A##_MIN)) || TERN0(HAS_##A##_MAX, TEST(hit_state, A##_MAX))) \ + if (TERN0(A##_HOME_TO_MIN, TEST(hit_state, A##_MIN)) || TERN0(A##_HOME_TO_MAX, TEST(hit_state, A##_MAX))) \ _ENDSTOP_HIT_ECHO(A,C) #define ENDSTOP_HIT_TEST_X() _ENDSTOP_HIT_TEST(X,'X') @@ -456,7 +434,7 @@ void Endstops::event_handler() { _ENDSTOP_HIT_TEST(K,'K') ); - #if USES_Z_MIN_PROBE_PIN + #if PIN_EXISTS(Z_MIN_PROBE) #define P_AXIS Z_AXIS if (TEST(hit_state, Z_MIN_PROBE)) _ENDSTOP_HIT_ECHO(P, 'P'); #endif @@ -498,76 +476,69 @@ void _O2 Endstops::report_states() { TERN_(BLTOUCH, bltouch._set_SW_mode()); SERIAL_ECHOLNPGM(STR_M119_REPORT); #define ES_REPORT(S) print_es_state(READ(S##_PIN) != S##_ENDSTOP_INVERTING, F(STR_##S)) - #if HAS_X_MIN + #if X_HOME_TO_MIN ES_REPORT(X_MIN); #endif #if HAS_X2_MIN ES_REPORT(X2_MIN); #endif - #if HAS_X_MAX + #if X_HOME_TO_MAX ES_REPORT(X_MAX); #endif #if HAS_X2_MAX ES_REPORT(X2_MAX); #endif - #if HAS_Y_MIN + #if Y_HOME_TO_MIN ES_REPORT(Y_MIN); #endif #if HAS_Y2_MIN ES_REPORT(Y2_MIN); #endif - #if HAS_Y_MAX + #if Y_HOME_TO_MAX ES_REPORT(Y_MAX); #endif #if HAS_Y2_MAX ES_REPORT(Y2_MAX); #endif - #if HAS_Z_MIN + #if Z_HOME_TO_MIN ES_REPORT(Z_MIN); + #elif Z_HOME_TO_MAX + ES_REPORT(Z_MAX); #endif #if HAS_Z2_MIN ES_REPORT(Z2_MIN); + #elif HAS_Z2_MAX + ES_REPORT(Z2_MAX); #endif #if HAS_Z3_MIN ES_REPORT(Z3_MIN); + #elif HAS_Z3_MAX + ES_REPORT(Z3_MAX); #endif #if HAS_Z4_MIN ES_REPORT(Z4_MIN); - #endif - #if HAS_Z_MAX - ES_REPORT(Z_MAX); - #endif - #if HAS_Z2_MAX - ES_REPORT(Z2_MAX); - #endif - #if HAS_Z3_MAX - ES_REPORT(Z3_MAX); - #endif - #if HAS_Z4_MAX + #elif HAS_Z4_MAX ES_REPORT(Z4_MAX); #endif - #if HAS_I_MIN + #if I_HOME_TO_MIN ES_REPORT(I_MIN); - #endif - #if HAS_I_MAX + #elif I_HOME_TO_MAX ES_REPORT(I_MAX); #endif - #if HAS_J_MIN + #if J_HOME_TO_MIN ES_REPORT(J_MIN); - #endif - #if HAS_J_MAX + #elif J_HOME_TO_MAX ES_REPORT(J_MAX); #endif - #if HAS_K_MIN + #if K_HOME_TO_MIN ES_REPORT(K_MIN); - #endif - #if HAS_K_MAX + #elif K_HOME_TO_MAX ES_REPORT(K_MAX); #endif #if ENABLED(PROBE_ACTIVATION_SWITCH) print_es_state(probe_switch_activated(), F(STR_PROBE_EN)); #endif - #if USES_Z_MIN_PROBE_PIN + #if PIN_EXISTS(Z_MIN_PROBE) print_es_state(PROBE_TRIGGERED(), F(STR_Z_PROBE)); #endif #if MULTI_FILAMENT_SENSOR @@ -615,12 +586,11 @@ void Endstops::update() { #endif #define UPDATE_ENDSTOP_BIT(AXIS, MINMAX) SET_BIT_TO(live_state, _ENDSTOP(AXIS, MINMAX), (READ(_ENDSTOP_PIN(AXIS, MINMAX)) != _ENDSTOP_INVERTING(AXIS, MINMAX))) - #define COPY_LIVE_STATE(SRC_BIT, DST_BIT) SET_BIT_TO(live_state, DST_BIT, TEST(live_state, SRC_BIT)) #if ENABLED(G38_PROBE_TARGET) && NONE(CORE_IS_XY, CORE_IS_XZ, MARKFORGED_XY, MARKFORGED_XY) #define HAS_G38_PROBE 1 // For G38 moves check the probe's pin for ALL movement - if (G38_move) UPDATE_ENDSTOP_BIT(Z, TERN(USES_Z_MIN_PROBE_PIN, MIN_PROBE, MIN)); + if (G38_move) UPDATE_ENDSTOP_BIT(Z, MIN_PROBE); #endif // With Dual X, endstops are only checked in the homing direction for the active extruder @@ -651,70 +621,42 @@ void Endstops::update() { /** * Check and update endstops */ - #if HAS_X_MIN && !X_SPI_SENSORLESS + #if X_HOME_TO_MIN && !X_SPI_SENSORLESS UPDATE_ENDSTOP_BIT(X, MIN); #if ENABLED(X_DUAL_ENDSTOPS) - #if HAS_X2_MIN - UPDATE_ENDSTOP_BIT(X2, MIN); - #else - COPY_LIVE_STATE(X_MIN, X2_MIN); - #endif + UPDATE_ENDSTOP_BIT(X2, MIN); #endif #endif - #if HAS_X_MAX && !X_SPI_SENSORLESS + #if X_HOME_TO_MAX && !X_SPI_SENSORLESS UPDATE_ENDSTOP_BIT(X, MAX); #if ENABLED(X_DUAL_ENDSTOPS) - #if HAS_X2_MAX - UPDATE_ENDSTOP_BIT(X2, MAX); - #else - COPY_LIVE_STATE(X_MAX, X2_MAX); - #endif + UPDATE_ENDSTOP_BIT(X2, MAX); #endif #endif - #if HAS_Y_MIN && !Y_SPI_SENSORLESS + #if Y_HOME_TO_MIN && !Y_SPI_SENSORLESS UPDATE_ENDSTOP_BIT(Y, MIN); #if ENABLED(Y_DUAL_ENDSTOPS) - #if HAS_Y2_MIN - UPDATE_ENDSTOP_BIT(Y2, MIN); - #else - COPY_LIVE_STATE(Y_MIN, Y2_MIN); - #endif + UPDATE_ENDSTOP_BIT(Y2, MIN); #endif #endif - #if HAS_Y_MAX && !Y_SPI_SENSORLESS + #if Y_HOME_TO_MAX && !Y_SPI_SENSORLESS UPDATE_ENDSTOP_BIT(Y, MAX); #if ENABLED(Y_DUAL_ENDSTOPS) - #if HAS_Y2_MAX - UPDATE_ENDSTOP_BIT(Y2, MAX); - #else - COPY_LIVE_STATE(Y_MAX, Y2_MAX); - #endif + UPDATE_ENDSTOP_BIT(Y2, MAX); #endif #endif - #if HAS_Z_MIN && NONE(Z_SPI_SENSORLESS, Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) + #if Z_HOME_TO_MIN && DISABLED(Z_SPI_SENSORLESS) && Z_MIN_PROBE_PIN != Z_MIN_PIN UPDATE_ENDSTOP_BIT(Z, MIN); #if ENABLED(Z_MULTI_ENDSTOPS) - #if HAS_Z2_MIN - UPDATE_ENDSTOP_BIT(Z2, MIN); - #else - COPY_LIVE_STATE(Z_MIN, Z2_MIN); - #endif + UPDATE_ENDSTOP_BIT(Z2, MIN); #if NUM_Z_STEPPER_DRIVERS >= 3 - #if HAS_Z3_MIN - UPDATE_ENDSTOP_BIT(Z3, MIN); - #else - COPY_LIVE_STATE(Z_MIN, Z3_MIN); - #endif - #endif - #if NUM_Z_STEPPER_DRIVERS >= 4 - #if HAS_Z4_MIN + UPDATE_ENDSTOP_BIT(Z3, MIN); + #if NUM_Z_STEPPER_DRIVERS >= 4 UPDATE_ENDSTOP_BIT(Z4, MIN); - #else - COPY_LIVE_STATE(Z_MIN, Z4_MIN); #endif #endif #endif @@ -723,113 +665,62 @@ void Endstops::update() { #if HAS_BED_PROBE // When closing the gap check the enabled probe if (probe_switch_activated()) - UPDATE_ENDSTOP_BIT(Z, TERN(USES_Z_MIN_PROBE_PIN, MIN_PROBE, MIN)); + UPDATE_ENDSTOP_BIT(Z, MIN_PROBE); #endif - #if HAS_Z_MAX && !Z_SPI_SENSORLESS + #if Z_HOME_TO_MAX && !Z_SPI_SENSORLESS // Check both Z dual endstops + UPDATE_ENDSTOP_BIT(Z, MAX); #if ENABLED(Z_MULTI_ENDSTOPS) - UPDATE_ENDSTOP_BIT(Z, MAX); - #if HAS_Z2_MAX - UPDATE_ENDSTOP_BIT(Z2, MAX); - #else - COPY_LIVE_STATE(Z_MAX, Z2_MAX); - #endif + UPDATE_ENDSTOP_BIT(Z2, MAX); #if NUM_Z_STEPPER_DRIVERS >= 3 - #if HAS_Z3_MAX - UPDATE_ENDSTOP_BIT(Z3, MAX); - #else - COPY_LIVE_STATE(Z_MAX, Z3_MAX); - #endif - #endif - #if NUM_Z_STEPPER_DRIVERS >= 4 - #if HAS_Z4_MAX + UPDATE_ENDSTOP_BIT(Z3, MAX); + #if NUM_Z_STEPPER_DRIVERS >= 4 UPDATE_ENDSTOP_BIT(Z4, MAX); - #else - COPY_LIVE_STATE(Z_MAX, Z4_MAX); #endif #endif - #elif TERN1(USES_Z_MIN_PROBE_PIN, Z_MAX_PIN != Z_MIN_PROBE_PIN) - // If this pin isn't the bed probe it's the Z endstop - UPDATE_ENDSTOP_BIT(Z, MAX); #endif #endif - #if HAS_I_MIN && !I_SPI_SENSORLESS + #if I_HOME_TO_MIN && !I_SPI_SENSORLESS + UPDATE_ENDSTOP_BIT(I, MIN); #if ENABLED(I_DUAL_ENDSTOPS) - UPDATE_ENDSTOP_BIT(I, MIN); - #if HAS_I2_MIN - UPDATE_ENDSTOP_BIT(I2, MAX); - #else - COPY_LIVE_STATE(I_MIN, I2_MIN); - #endif - #else - UPDATE_ENDSTOP_BIT(I, MIN); + UPDATE_ENDSTOP_BIT(I2, MAX); #endif #endif - #if HAS_I_MAX && !I_SPI_SENSORLESS + #if I_HOME_TO_MAX && !I_SPI_SENSORLESS + UPDATE_ENDSTOP_BIT(I, MAX); #if ENABLED(I_DUAL_ENDSTOPS) - UPDATE_ENDSTOP_BIT(I, MAX); - #if HAS_I2_MAX - UPDATE_ENDSTOP_BIT(I2, MAX); - #else - COPY_LIVE_STATE(I_MAX, I2_MAX); - #endif - #else - UPDATE_ENDSTOP_BIT(I, MAX); + UPDATE_ENDSTOP_BIT(I2, MAX); #endif #endif - #if HAS_J_MIN && !J_SPI_SENSORLESS + #if J_HOME_TO_MIN && !J_SPI_SENSORLESS + UPDATE_ENDSTOP_BIT(J, MIN); #if ENABLED(J_DUAL_ENDSTOPS) - UPDATE_ENDSTOP_BIT(J, MIN); - #if HAS_J2_MIN - UPDATE_ENDSTOP_BIT(J2, MIN); - #else - COPY_LIVE_STATE(J_MIN, J2_MIN); - #endif - #else - UPDATE_ENDSTOP_BIT(J, MIN); + UPDATE_ENDSTOP_BIT(J2, MIN); #endif #endif - #if HAS_J_MAX && !J_SPI_SENSORLESS + #if J_HOME_TO_MAX && !J_SPI_SENSORLESS + UPDATE_ENDSTOP_BIT(J, MAX); #if ENABLED(J_DUAL_ENDSTOPS) - UPDATE_ENDSTOP_BIT(J, MAX); - #if HAS_J2_MAX - UPDATE_ENDSTOP_BIT(J2, MAX); - #else - COPY_LIVE_STATE(J_MAX, J2_MAX); - #endif - #else - UPDATE_ENDSTOP_BIT(J, MAX); + UPDATE_ENDSTOP_BIT(J2, MAX); #endif #endif - #if HAS_K_MIN && !K_SPI_SENSORLESS + #if K_HOME_TO_MIN && !K_SPI_SENSORLESS + UPDATE_ENDSTOP_BIT(K, MIN); #if ENABLED(K_DUAL_ENDSTOPS) - UPDATE_ENDSTOP_BIT(K, MIN); - #if HAS_K2_MIN - UPDATE_ENDSTOP_BIT(K2, MIN); - #else - COPY_LIVE_STATE(K_MIN, K2_MIN); - #endif - #else - UPDATE_ENDSTOP_BIT(K, MIN); + UPDATE_ENDSTOP_BIT(K2, MIN); #endif #endif - #if HAS_K_MAX && !K_SPI_SENSORLESS + #if K_HOME_TO_MAX && !K_SPI_SENSORLESS + UPDATE_ENDSTOP_BIT(K, MAX); #if ENABLED(K_DUAL_ENDSTOPS) - UPDATE_ENDSTOP_BIT(K, MAX); - #if HAS_K2_MAX - UPDATE_ENDSTOP_BIT(K2, MAX); - #else - COPY_LIVE_STATE(K_MAX, K2_MAX); - #endif - #else - UPDATE_ENDSTOP_BIT(K, MAX); + UPDATE_ENDSTOP_BIT(K2, MAX); #endif #endif @@ -936,7 +827,7 @@ void Endstops::update() { #if HAS_G38_PROBE #define _G38_OPEN_STATE TERN(G38_PROBE_AWAY, (G38_move >= 4), LOW) // For G38 moves check the probe's pin for ALL movement - if (G38_move && TEST_ENDSTOP(_ENDSTOP(Z, TERN(USES_Z_MIN_PROBE_PIN, MIN_PROBE, MIN))) != _G38_OPEN_STATE) { + if (G38_move && TEST_ENDSTOP(_ENDSTOP(Z, MIN_PROBE)) != _G38_OPEN_STATE) { if (stepper.axis_is_moving(X_AXIS)) { _ENDSTOP_HIT(X, TERN(X_HOME_TO_MIN, MIN, MAX)); planner.endstop_triggered(X_AXIS); } #if HAS_Y_AXIS else if (stepper.axis_is_moving(Y_AXIS)) { _ENDSTOP_HIT(Y, TERN(Y_HOME_TO_MIN, MIN, MAX)); planner.endstop_triggered(Y_AXIS); } @@ -952,7 +843,7 @@ void Endstops::update() { if (stepper.axis_is_moving(X_AXIS)) { if (stepper.motor_direction(X_AXIS_HEAD)) { // -direction - #if HAS_X_MIN || (X_SPI_SENSORLESS && X_HOME_TO_MIN) + #if X_HOME_TO_MIN PROCESS_ENDSTOP_X(MIN); #if CORE_DIAG(XY, Y, MIN) PROCESS_CORE_ENDSTOP(Y,MIN,X,MIN); @@ -966,7 +857,7 @@ void Endstops::update() { #endif } else { // +direction - #if HAS_X_MAX || (X_SPI_SENSORLESS && X_HOME_TO_MAX) + #if X_HOME_TO_MAX PROCESS_ENDSTOP_X(MAX); #if CORE_DIAG(XY, Y, MIN) PROCESS_CORE_ENDSTOP(Y,MIN,X,MAX); @@ -984,7 +875,7 @@ void Endstops::update() { #if HAS_Y_AXIS if (stepper.axis_is_moving(Y_AXIS)) { if (stepper.motor_direction(Y_AXIS_HEAD)) { // -direction - #if HAS_Y_MIN || (Y_SPI_SENSORLESS && Y_HOME_TO_MIN) + #if Y_HOME_TO_MIN PROCESS_ENDSTOP_Y(MIN); #if CORE_DIAG(XY, X, MIN) PROCESS_CORE_ENDSTOP(X,MIN,Y,MIN); @@ -998,7 +889,7 @@ void Endstops::update() { #endif } else { // +direction - #if HAS_Y_MAX || (Y_SPI_SENSORLESS && Y_HOME_TO_MAX) + #if Y_HOME_TO_MAX PROCESS_ENDSTOP_Y(MAX); #if CORE_DIAG(XY, X, MIN) PROCESS_CORE_ENDSTOP(X,MIN,Y,MAX); @@ -1018,10 +909,8 @@ void Endstops::update() { if (stepper.axis_is_moving(Z_AXIS)) { if (stepper.motor_direction(Z_AXIS_HEAD)) { // Z -direction. Gantry down, bed up. - #if HAS_Z_MIN || (Z_SPI_SENSORLESS && Z_HOME_TO_MIN) - if ( TERN1(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN, z_probe_enabled) - && TERN1(USES_Z_MIN_PROBE_PIN, !z_probe_enabled) - ) PROCESS_ENDSTOP_Z(MIN); + #if HAS_Z_MIN + PROCESS_ENDSTOP_Z(MIN); #if CORE_DIAG(XZ, X, MIN) PROCESS_CORE_ENDSTOP(X,MIN,Z,MIN); #elif CORE_DIAG(XZ, X, MAX) @@ -1034,15 +923,15 @@ void Endstops::update() { #endif // When closing the gap check the enabled probe - #if USES_Z_MIN_PROBE_PIN + #if PIN_EXISTS(Z_MIN_PROBE) if (z_probe_enabled) PROCESS_ENDSTOP(Z, MIN_PROBE); #endif } else { // Z +direction. Gantry up, bed down. - #if HAS_Z_MAX || (Z_SPI_SENSORLESS && Z_HOME_TO_MAX) + #if Z_HOME_TO_MAX #if ENABLED(Z_MULTI_ENDSTOPS) PROCESS_ENDSTOP_Z(MAX); - #elif TERN1(USES_Z_MIN_PROBE_PIN, Z_MAX_PIN != Z_MIN_PROBE_PIN) // No probe or probe is Z_MIN || Probe is not Z_MAX + #else PROCESS_ENDSTOP(Z, MAX); #endif #if CORE_DIAG(XZ, X, MIN) @@ -1062,12 +951,12 @@ void Endstops::update() { #if HAS_I_AXIS if (stepper.axis_is_moving(I_AXIS)) { if (stepper.motor_direction(I_AXIS_HEAD)) { // -direction - #if HAS_I_MIN || (I_SPI_SENSORLESS && I_HOME_TO_MIN) + #if I_HOME_TO_MIN PROCESS_ENDSTOP(I, MIN); #endif } else { // +direction - #if HAS_I_MAX || (I_SPI_SENSORLESS && I_HOME_TO_MAX) + #if I_HOME_TO_MAX PROCESS_ENDSTOP(I, MAX); #endif } @@ -1077,12 +966,12 @@ void Endstops::update() { #if HAS_J_AXIS if (stepper.axis_is_moving(J_AXIS)) { if (stepper.motor_direction(J_AXIS_HEAD)) { // -direction - #if HAS_J_MIN || (J_SPI_SENSORLESS && J_HOME_TO_MIN) + #if J_HOME_TO_MIN PROCESS_ENDSTOP(J, MIN); #endif } else { // +direction - #if HAS_J_MAX || (J_SPI_SENSORLESS && J_HOME_TO_MAX) + #if J_HOME_TO_MAX PROCESS_ENDSTOP(J, MAX); #endif } @@ -1092,12 +981,12 @@ void Endstops::update() { #if HAS_K_AXIS if (stepper.axis_is_moving(K_AXIS)) { if (stepper.motor_direction(K_AXIS_HEAD)) { // -direction - #if HAS_K_MIN || (K_SPI_SENSORLESS && K_HOME_TO_MIN) + #if K_HOME_TO_MIN PROCESS_ENDSTOP(K, MIN); #endif } else { // +direction - #if HAS_K_MAX || (K_SPI_SENSORLESS && K_HOME_TO_MAX) + #if K_HOME_TO_MAX PROCESS_ENDSTOP(K, MAX); #endif } @@ -1201,147 +1090,141 @@ void Endstops::update() { #define ES_GET_STATE(S) if (READ(S##_PIN)) SBI(live_state_local, S) - #if HAS_X_MIN + #if X_HOME_TO_MIN ES_GET_STATE(X_MIN); - #endif - #if HAS_X_MAX + #if HAS_X2_MIN + ES_GET_STATE(X2_MIN); + #endif + #elif X_HOME_TO_MAX ES_GET_STATE(X_MAX); + #if HAS_X2_MAX + ES_GET_STATE(X2_MAX); + #endif #endif - #if HAS_Y_MIN + #if Y_HOME_TO_MIN ES_GET_STATE(Y_MIN); - #endif - #if HAS_Y_MAX + #if HAS_Y2_MIN + ES_GET_STATE(Y2_MIN); + #endif + #elif Y_HOME_TO_MAX ES_GET_STATE(Y_MAX); + #if HAS_Y2_MAX + ES_GET_STATE(Y2_MAX); + #endif #endif - #if HAS_Z_MIN + #if Z_HOME_TO_MIN ES_GET_STATE(Z_MIN); - #endif - #if HAS_Z_MAX + #if HAS_Z2_MIN + ES_GET_STATE(Z2_MIN); + #endif + #if HAS_Z3_MIN + ES_GET_STATE(Z3_MIN); + #endif + #if HAS_Z4_MIN + ES_GET_STATE(Z4_MIN); + #endif + #elif Z_HOME_TO_MAX ES_GET_STATE(Z_MAX); + #if HAS_Z2_MAX + ES_GET_STATE(Z2_MAX); + #endif + #if HAS_Z3_MAX + ES_GET_STATE(Z3_MAX); + #endif + #if HAS_Z4_MAX + ES_GET_STATE(Z4_MAX); + #endif #endif - #if HAS_Z_MIN_PROBE_PIN - ES_GET_STATE(Z_MIN_PROBE); - #endif - #if HAS_X2_MIN - ES_GET_STATE(X2_MIN); - #endif - #if HAS_X2_MAX - ES_GET_STATE(X2_MAX); - #endif - #if HAS_Y2_MIN - ES_GET_STATE(Y2_MIN); - #endif - #if HAS_Y2_MAX - ES_GET_STATE(Y2_MAX); - #endif - #if HAS_Z2_MIN - ES_GET_STATE(Z2_MIN); - #endif - #if HAS_Z2_MAX - ES_GET_STATE(Z2_MAX); - #endif - #if HAS_Z3_MIN - ES_GET_STATE(Z3_MIN); - #endif - #if HAS_Z3_MAX - ES_GET_STATE(Z3_MAX); - #endif - #if HAS_Z4_MIN - ES_GET_STATE(Z4_MIN); - #endif - #if HAS_Z4_MAX - ES_GET_STATE(Z4_MAX); - #endif - #if HAS_I_MAX + #if I_HOME_TO_MAX ES_GET_STATE(I_MAX); - #endif - #if HAS_I_MIN + #elif I_HOME_TO_MIN ES_GET_STATE(I_MIN); #endif - #if HAS_J_MAX + #if J_HOME_TO_MAX ES_GET_STATE(J_MAX); - #endif - #if HAS_J_MIN + #elif J_HOME_TO_MIN ES_GET_STATE(J_MIN); #endif - #if HAS_K_MAX + #if K_HOME_TO_MAX ES_GET_STATE(K_MAX); - #endif - #if HAS_K_MIN + #elif K_HOME_TO_MIN ES_GET_STATE(K_MIN); #endif + #if HAS_Z_MIN_PROBE_PIN + ES_GET_STATE(Z_MIN_PROBE); + #endif uint16_t endstop_change = live_state_local ^ old_live_state_local; #define ES_REPORT_CHANGE(S) if (TEST(endstop_change, S)) SERIAL_ECHOPGM(" " STRINGIFY(S) ":", TEST(live_state_local, S)) if (endstop_change) { - #if HAS_X_MIN + #if X_HOME_TO_MIN ES_REPORT_CHANGE(X_MIN); + #if HAS_X2_MIN + ES_REPORT_CHANGE(X2_MIN); + #endif #endif - #if HAS_X_MAX + #if X_HOME_TO_MAX ES_REPORT_CHANGE(X_MAX); + #if HAS_X2_MAX + ES_REPORT_CHANGE(X2_MAX); + #endif #endif - #if HAS_Y_MIN + #if Y_HOME_TO_MIN ES_REPORT_CHANGE(Y_MIN); + #if HAS_Y2_MIN + ES_REPORT_CHANGE(Y2_MIN); + #endif #endif - #if HAS_Y_MAX + #if Y_HOME_TO_MAX ES_REPORT_CHANGE(Y_MAX); + #if HAS_Y2_MAX + ES_REPORT_CHANGE(Y2_MAX); + #endif #endif - #if HAS_Z_MIN + #if Z_HOME_TO_MIN ES_REPORT_CHANGE(Z_MIN); + #if HAS_Z2_MIN + ES_REPORT_CHANGE(Z2_MIN); + #endif + #if HAS_Z3_MIN + ES_REPORT_CHANGE(Z3_MIN); + #endif + #if HAS_Z4_MIN + ES_REPORT_CHANGE(Z4_MIN); + #endif #endif - #if HAS_Z_MAX + #if Z_HOME_TO_MAX ES_REPORT_CHANGE(Z_MAX); + #if HAS_Z2_MAX + ES_REPORT_CHANGE(Z2_MAX); + #endif + #if HAS_Z3_MAX + ES_REPORT_CHANGE(Z3_MAX); + #endif + #if HAS_Z4_MAX + ES_REPORT_CHANGE(Z4_MAX); + #endif #endif #if HAS_Z_MIN_PROBE_PIN ES_REPORT_CHANGE(Z_MIN_PROBE); #endif - #if HAS_X2_MIN - ES_REPORT_CHANGE(X2_MIN); - #endif - #if HAS_X2_MAX - ES_REPORT_CHANGE(X2_MAX); - #endif - #if HAS_Y2_MIN - ES_REPORT_CHANGE(Y2_MIN); - #endif - #if HAS_Y2_MAX - ES_REPORT_CHANGE(Y2_MAX); - #endif - #if HAS_Z2_MIN - ES_REPORT_CHANGE(Z2_MIN); - #endif - #if HAS_Z2_MAX - ES_REPORT_CHANGE(Z2_MAX); - #endif - #if HAS_Z3_MIN - ES_REPORT_CHANGE(Z3_MIN); - #endif - #if HAS_Z3_MAX - ES_REPORT_CHANGE(Z3_MAX); - #endif - #if HAS_Z4_MIN - ES_REPORT_CHANGE(Z4_MIN); - #endif - #if HAS_Z4_MAX - ES_REPORT_CHANGE(Z4_MAX); - #endif - #if HAS_I_MIN + #if I_HOME_TO_MIN ES_REPORT_CHANGE(I_MIN); #endif - #if HAS_I_MAX + #if I_HOME_TO_MAX ES_REPORT_CHANGE(I_MAX); #endif - #if HAS_J_MIN + #if J_HOME_TO_MIN ES_REPORT_CHANGE(J_MIN); #endif - #if HAS_J_MAX + #if J_HOME_TO_MAX ES_REPORT_CHANGE(J_MAX); #endif - #if HAS_K_MIN + #if K_HOME_TO_MIN ES_REPORT_CHANGE(K_MIN); #endif - #if HAS_K_MAX + #if K_HOME_TO_MAX ES_REPORT_CHANGE(K_MAX); #endif SERIAL_ECHOLNPGM("\n"); diff --git a/Marlin/src/module/endstops.h b/Marlin/src/module/endstops.h index 82a44cf95b83c..b07e486978182 100644 --- a/Marlin/src/module/endstops.h +++ b/Marlin/src/module/endstops.h @@ -32,7 +32,7 @@ #define _ES_ITEM(K,N) TERN_(K,DEFER4(__ES_ITEM)(N)) enum EndstopEnum : char { - // Common XYZ (ABC) endstops. Defined according to USE_[XYZ](MIN|MAX)_PLUG settings. + // Common XYZ (ABC) endstops. _ES_ITEM(HAS_X_MIN, X_MIN) _ES_ITEM(HAS_X_MAX, X_MAX) _ES_ITEM(HAS_Y_MIN, Y_MIN) @@ -47,52 +47,49 @@ enum EndstopEnum : char { _ES_ITEM(HAS_K_MAX, K_MAX) // Extra Endstops for XYZ - #if ENABLED(X_DUAL_ENDSTOPS) - _ES_ITEM(HAS_X_MIN, X2_MIN) - _ES_ITEM(HAS_X_MAX, X2_MAX) - #endif - #if ENABLED(Y_DUAL_ENDSTOPS) - _ES_ITEM(HAS_Y_MIN, Y2_MIN) - _ES_ITEM(HAS_Y_MAX, Y2_MAX) - #endif + _ES_ITEM(HAS_X2_MIN, X2_MIN) + _ES_ITEM(HAS_X2_MAX, X2_MAX) + _ES_ITEM(HAS_Y2_MIN, Y2_MIN) + _ES_ITEM(HAS_Y2_MAX, Y2_MAX) + #if ENABLED(Z_MULTI_ENDSTOPS) - _ES_ITEM(HAS_Z_MIN, Z2_MIN) - _ES_ITEM(HAS_Z_MAX, Z2_MAX) + _ES_ITEM(Z_HOME_TO_MIN, Z2_MIN) + _ES_ITEM(Z_HOME_TO_MAX, Z2_MAX) #if NUM_Z_STEPPER_DRIVERS >= 3 - _ES_ITEM(HAS_Z_MIN, Z3_MIN) - _ES_ITEM(HAS_Z_MAX, Z3_MAX) - #endif - #if NUM_Z_STEPPER_DRIVERS >= 4 - _ES_ITEM(HAS_Z_MIN, Z4_MIN) - _ES_ITEM(HAS_Z_MAX, Z4_MAX) + _ES_ITEM(Z_HOME_TO_MIN, Z3_MIN) + _ES_ITEM(Z_HOME_TO_MAX, Z3_MAX) + #if NUM_Z_STEPPER_DRIVERS >= 4 + _ES_ITEM(Z_HOME_TO_MIN, Z4_MIN) + _ES_ITEM(Z_HOME_TO_MAX, Z4_MAX) + #endif #endif #endif // Bed Probe state is distinct or shared with Z_MIN (i.e., when the probe is the only Z endstop) #if !HAS_DELTA_SENSORLESS_PROBING - _ES_ITEM(HAS_BED_PROBE, Z_MIN_PROBE IF_DISABLED(USES_Z_MIN_PROBE_PIN, = Z_MIN)) + _ES_ITEM(HAS_BED_PROBE, Z_MIN_PROBE) #endif // The total number of states NUM_ENDSTOP_STATES // Endstops can be either MIN or MAX but not both - #if HAS_X_MIN || HAS_X_MAX + #if X_HOME_DIR , X_ENDSTOP = TERN(X_HOME_TO_MAX, X_MAX, X_MIN) #endif - #if HAS_Y_MIN || HAS_Y_MAX + #if HAS_Y_AXIS && Y_HOME_DIR , Y_ENDSTOP = TERN(Y_HOME_TO_MAX, Y_MAX, Y_MIN) #endif - #if HAS_Z_MIN || HAS_Z_MAX || HOMING_Z_WITH_PROBE - , Z_ENDSTOP = TERN(Z_HOME_TO_MAX, Z_MAX, TERN(HOMING_Z_WITH_PROBE, Z_MIN_PROBE, Z_MIN)) + #if HAS_Z_AXIS && Z_HOME_DIR + , Z_ENDSTOP = TERN(Z_HOME_TO_MAX, Z_MAX, Z_MIN) #endif - #if HAS_I_MIN || HAS_I_MAX + #if HAS_I_AXIS && I_HOME_DIR , I_ENDSTOP = TERN(I_HOME_TO_MAX, I_MAX, I_MIN) #endif - #if HAS_J_MIN || HAS_J_MAX + #if HAS_J_AXIS && J_HOME_DIR , J_ENDSTOP = TERN(J_HOME_TO_MAX, J_MAX, J_MIN) #endif - #if HAS_K_MIN || HAS_K_MAX + #if HAS_K_AXIS && K_HOME_DIR , K_ENDSTOP = TERN(K_HOME_TO_MAX, K_MAX, K_MIN) #endif }; diff --git a/Marlin/src/module/motion.cpp b/Marlin/src/module/motion.cpp index a77f395fb4c2b..f54bf215c0af0 100644 --- a/Marlin/src/module/motion.cpp +++ b/Marlin/src/module/motion.cpp @@ -1340,7 +1340,7 @@ void prepare_line_to_destination() { * Homing bump feedrate (mm/s) */ feedRate_t get_homing_bump_feedrate(const AxisEnum axis) { - #if HOMING_Z_WITH_PROBE + #if USE_PROBE_FOR_Z_HOMING if (axis == Z_AXIS) return MMM_TO_MMS(Z_PROBE_FEEDRATE_SLOW); #endif static const uint8_t homing_bump_divisor[] PROGMEM = HOMING_BUMP_DIVISOR; @@ -1538,7 +1538,7 @@ void prepare_line_to_destination() { if (is_home_dir) { - if (TERN0(HOMING_Z_WITH_PROBE, axis == Z_AXIS)) { + if (TERN0(USE_PROBE_FOR_Z_HOMING, axis == Z_AXIS)) { #if BOTH(HAS_HEATED_BED, WAIT_FOR_BED_HEATER) // Wait for bed to heat back up between probing points thermalManager.wait_for_bed_heating(); @@ -1582,7 +1582,7 @@ void prepare_line_to_destination() { if (is_home_dir) { - #if HOMING_Z_WITH_PROBE && HAS_QUIET_PROBING + #if USE_PROBE_FOR_Z_HOMING && HAS_QUIET_PROBING if (axis == Z_AXIS && final_approach) probe.set_probing_paused(false); #endif @@ -1731,7 +1731,7 @@ void prepare_line_to_destination() { #else #define _CAN_HOME(A) (axis == _AXIS(A) && ( \ ENABLED(A##_SPI_SENSORLESS) \ - || TERN0(HAS_Z_AXIS, TERN0(HOMING_Z_WITH_PROBE, _AXIS(A) == Z_AXIS)) \ + || TERN0(HAS_Z_AXIS, TERN0(USE_PROBE_FOR_Z_HOMING, _AXIS(A) == Z_AXIS)) \ || TERN0(A##_HOME_TO_MIN, A##_MIN_PIN > -1) \ || TERN0(A##_HOME_TO_MAX, A##_MAX_PIN > -1) \ )) @@ -1753,7 +1753,7 @@ void prepare_line_to_destination() { // // Homing Z with a probe? Raise Z (maybe) and deploy the Z probe. // - if (TERN0(HOMING_Z_WITH_PROBE, axis == Z_AXIS && probe.deploy())) + if (TERN0(USE_PROBE_FOR_Z_HOMING, axis == Z_AXIS && probe.deploy())) return; // Set flags for X, Y, Z motor locking @@ -1770,7 +1770,7 @@ void prepare_line_to_destination() { // // Deploy BLTouch or tare the probe just before probing // - #if HOMING_Z_WITH_PROBE + #if USE_PROBE_FOR_Z_HOMING if (axis == Z_AXIS) { if (TERN0(BLTOUCH, bltouch.deploy())) return; // BLTouch was deployed above, but get the alarm state. if (TERN0(PROBE_TARE, probe.tare())) return; @@ -1791,9 +1791,9 @@ void prepare_line_to_destination() { // Determine if a homing bump will be done and the bumps distance // When homing Z with probe respect probe clearance - const bool use_probe_bump = TERN0(HOMING_Z_WITH_PROBE, axis == Z_AXIS && home_bump_mm(axis)); + const bool use_probe_bump = TERN0(USE_PROBE_FOR_Z_HOMING, axis == Z_AXIS && home_bump_mm(axis)); const float bump = axis_home_dir * ( - use_probe_bump ? _MAX(TERN0(HOMING_Z_WITH_PROBE, Z_CLEARANCE_BETWEEN_PROBES), home_bump_mm(axis)) : home_bump_mm(axis) + use_probe_bump ? _MAX(TERN0(USE_PROBE_FOR_Z_HOMING, Z_CLEARANCE_BETWEEN_PROBES), home_bump_mm(axis)) : home_bump_mm(axis) ); // @@ -1803,7 +1803,7 @@ void prepare_line_to_destination() { if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("Home Fast: ", move_length, "mm"); do_homing_move(axis, move_length, 0.0, !use_probe_bump); - #if BOTH(HOMING_Z_WITH_PROBE, BLTOUCH) + #if BOTH(USE_PROBE_FOR_Z_HOMING, BLTOUCH) if (axis == Z_AXIS && !bltouch.high_speed_mode) bltouch.stow(); // Intermediate STOW (in LOW SPEED MODE) #endif @@ -1811,7 +1811,7 @@ void prepare_line_to_destination() { if (bump) { // Move away from the endstop by the axis HOMING_BUMP_MM if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("Move Away: ", -bump, "mm"); - do_homing_move(axis, -bump, TERN(HOMING_Z_WITH_PROBE, (axis == Z_AXIS ? z_probe_fast_mm_s : 0), 0), false); + do_homing_move(axis, -bump, TERN(USE_PROBE_FOR_Z_HOMING, (axis == Z_AXIS ? z_probe_fast_mm_s : 0), 0), false); #if ENABLED(DETECT_BROKEN_ENDSTOP) // Check for a broken endstop @@ -1837,7 +1837,7 @@ void prepare_line_to_destination() { } #endif - #if BOTH(HOMING_Z_WITH_PROBE, BLTOUCH) + #if BOTH(USE_PROBE_FOR_Z_HOMING, BLTOUCH) if (axis == Z_AXIS && !bltouch.high_speed_mode && bltouch.deploy()) return; // Intermediate DEPLOY (in LOW SPEED MODE) #endif @@ -1847,7 +1847,7 @@ void prepare_line_to_destination() { if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("Re-bump: ", rebump, "mm"); do_homing_move(axis, rebump, get_homing_bump_feedrate(axis), true); - #if BOTH(HOMING_Z_WITH_PROBE, BLTOUCH) + #if BOTH(USE_PROBE_FOR_Z_HOMING, BLTOUCH) if (axis == Z_AXIS) bltouch.stow(); // The final STOW #endif } @@ -2024,7 +2024,7 @@ void prepare_line_to_destination() { #endif // Put away the Z probe - #if HOMING_Z_WITH_PROBE + #if USE_PROBE_FOR_Z_HOMING if (axis == Z_AXIS && probe.stow()) return; #endif @@ -2033,7 +2033,7 @@ void prepare_line_to_destination() { if (endstop_backoff[axis]) { current_position[axis] -= ABS(endstop_backoff[axis]) * axis_home_dir; line_to_current_position( - #if HOMING_Z_WITH_PROBE + #if USE_PROBE_FOR_Z_HOMING (axis == Z_AXIS) ? z_probe_fast_mm_s : #endif homing_feedrate(axis) @@ -2105,11 +2105,11 @@ void set_axis_is_at_home(const AxisEnum axis) { */ #if HAS_BED_PROBE && Z_HOME_TO_MIN if (axis == Z_AXIS) { - #if HOMING_Z_WITH_PROBE + #if USE_PROBE_FOR_Z_HOMING current_position.z -= probe.offset.z; - if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("*** Z HOMED WITH PROBE (Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) ***\n> probe.offset.z = ", probe.offset.z); + if (DEBUGGING(LEVELING)) DEBUG_ECHOLNPGM("*** Z HOMED WITH PROBE ***\n> probe.offset.z = ", probe.offset.z); #else diff --git a/Marlin/src/module/probe.h b/Marlin/src/module/probe.h index 3c97afcb899c4..15690f483f7b0 100644 --- a/Marlin/src/module/probe.h +++ b/Marlin/src/module/probe.h @@ -39,11 +39,7 @@ }; #endif -#if USES_Z_MIN_PROBE_PIN - #define PROBE_TRIGGERED() (READ(Z_MIN_PROBE_PIN) != Z_MIN_PROBE_ENDSTOP_INVERTING) -#else - #define PROBE_TRIGGERED() (READ(Z_MIN_PIN) != Z_MIN_ENDSTOP_INVERTING) -#endif +#define PROBE_TRIGGERED() (READ(Z_MIN_PROBE_PIN) != Z_MIN_PROBE_ENDSTOP_INVERTING) #if ENABLED(PREHEAT_BEFORE_LEVELING) #ifndef LEVELING_NOZZLE_TEMP diff --git a/Marlin/src/pins/mega/pins_OVERLORD.h b/Marlin/src/pins/mega/pins_OVERLORD.h index 98f8da571940d..2baa673b25890 100644 --- a/Marlin/src/pins/mega/pins_OVERLORD.h +++ b/Marlin/src/pins/mega/pins_OVERLORD.h @@ -46,7 +46,7 @@ // Z Probe (when not Z_MIN_PIN) // #ifndef Z_MIN_PROBE_PIN - #define Z_MIN_PROBE_PIN 46 // JP4, Tfeed1 + #define Z_MIN_PROBE_PIN Z_MIN_PIN // JP4, Tfeed1 #endif #ifndef FIL_RUNOUT_PIN diff --git a/Marlin/src/pins/pins_postprocess.h b/Marlin/src/pins/pins_postprocess.h index aa1def0b40a93..d39f47848f20b 100644 --- a/Marlin/src/pins/pins_postprocess.h +++ b/Marlin/src/pins/pins_postprocess.h @@ -1276,113 +1276,6 @@ #define K_MS3_PIN -1 #endif -// -// Disable unused endstop / probe pins -// -#define _STOP_IN_USE(N) (X2_USE_ENDSTOP == N || Y2_USE_ENDSTOP == N || Z2_USE_ENDSTOP == N || Z3_USE_ENDSTOP == N || Z4_USE_ENDSTOP == N) -#if !defined(USE_XMAX_PLUG) && _STOP_IN_USE(_XMAX_) - #define USE_XMAX_PLUG -#endif -#if !defined(USE_YMAX_PLUG) && _STOP_IN_USE(_YMAX_) - #define USE_YMAX_PLUG -#endif -#if !defined(USE_ZMAX_PLUG) && _STOP_IN_USE(_ZMAX_) - #define USE_ZMAX_PLUG -#endif -#if !defined(USE_XMIN_PLUG) && _STOP_IN_USE(_XMIN_) - #define USE_XMIN_PLUG -#endif -#if !defined(USE_YMIN_PLUG) && _STOP_IN_USE(_YMIN_) - #define USE_YMIN_PLUG -#endif -#if !defined(USE_ZMIN_PLUG) && _STOP_IN_USE(_ZMIN_) - #define USE_ZMIN_PLUG -#endif -#undef _STOP_IN_USE -#if !USES_Z_MIN_PROBE_PIN - #undef Z_MIN_PROBE_PIN - #define Z_MIN_PROBE_PIN -1 -#endif -#if DISABLED(USE_XMIN_PLUG) - #undef X_MIN_PIN - #define X_MIN_PIN -1 -#endif -#if DISABLED(USE_XMAX_PLUG) - #undef X_MAX_PIN - #define X_MAX_PIN -1 -#endif -#if DISABLED(USE_YMIN_PLUG) - #undef Y_MIN_PIN - #define Y_MIN_PIN -1 -#endif -#if DISABLED(USE_YMAX_PLUG) - #undef Y_MAX_PIN - #define Y_MAX_PIN -1 -#endif -#if DISABLED(USE_ZMIN_PLUG) - #undef Z_MIN_PIN - #define Z_MIN_PIN -1 -#endif -#if DISABLED(USE_ZMAX_PLUG) - #undef Z_MAX_PIN - #define Z_MAX_PIN -1 -#endif -#if DISABLED(USE_IMIN_PLUG) - #undef I_MIN_PIN - #define I_MIN_PIN -1 -#endif -#if DISABLED(USE_IMAX_PLUG) - #undef I_MAX_PIN - #define I_MAX_PIN -1 -#endif -#if DISABLED(USE_JMIN_PLUG) - #undef J_MIN_PIN - #define J_MIN_PIN -1 -#endif -#if DISABLED(USE_JMAX_PLUG) - #undef J_MAX_PIN - #define J_MAX_PIN -1 -#endif -#if DISABLED(USE_KMIN_PLUG) - #undef K_MIN_PIN - #define K_MIN_PIN -1 -#endif -#if DISABLED(USE_KMAX_PLUG) - #undef K_MAX_PIN - #define K_MAX_PIN -1 -#endif - -#if DISABLED(X_DUAL_ENDSTOPS) || X_HOME_TO_MAX - #undef X2_MIN_PIN -#endif -#if DISABLED(X_DUAL_ENDSTOPS) || X_HOME_TO_MIN - #undef X2_MAX_PIN -#endif -#if DISABLED(Y_DUAL_ENDSTOPS) || Y_HOME_TO_MAX - #undef Y2_MIN_PIN -#endif -#if DISABLED(Y_DUAL_ENDSTOPS) || Y_HOME_TO_MIN - #undef Y2_MAX_PIN -#endif -#if DISABLED(Z_MULTI_ENDSTOPS) || Z_HOME_TO_MAX - #undef Z2_MIN_PIN -#endif -#if DISABLED(Z_MULTI_ENDSTOPS) || Z_HOME_TO_MIN - #undef Z2_MAX_PIN -#endif -#if DISABLED(Z_MULTI_ENDSTOPS) || NUM_Z_STEPPER_DRIVERS < 3 || Z_HOME_TO_MAX - #undef Z3_MIN_PIN -#endif -#if DISABLED(Z_MULTI_ENDSTOPS) || NUM_Z_STEPPER_DRIVERS < 3 || Z_HOME_TO_MIN - #undef Z3_MAX_PIN -#endif -#if DISABLED(Z_MULTI_ENDSTOPS) || NUM_Z_STEPPER_DRIVERS < 4 || Z_HOME_TO_MAX - #undef Z4_MIN_PIN -#endif -#if DISABLED(Z_MULTI_ENDSTOPS) || NUM_Z_STEPPER_DRIVERS < 4 || Z_HOME_TO_MIN - #undef Z4_MAX_PIN -#endif - // // Default DOGLCD SPI delays // diff --git a/Marlin/src/pins/rambo/pins_RAMBO_THINKERV2.h b/Marlin/src/pins/rambo/pins_RAMBO_THINKERV2.h index 278a5bf0b45a3..6eedbf5abbeca 100755 --- a/Marlin/src/pins/rambo/pins_RAMBO_THINKERV2.h +++ b/Marlin/src/pins/rambo/pins_RAMBO_THINKERV2.h @@ -35,16 +35,10 @@ #endif // Support BLTouch and fixed probes -#if ENABLED(BLTOUCH) - #if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) - #define Z_MIN_PIN 22 - #elif !defined(Z_MIN_PROBE_PIN) +#ifndef Z_MIN_PROBE_PIN + #if ENABLED(BLTOUCH) #define Z_MIN_PROBE_PIN 22 - #endif -#elif ENABLED(FIX_MOUNTED_PROBE) - #if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) - #define Z_MIN_PIN 4 - #elif !defined(Z_MIN_PROBE_PIN) + #else #define Z_MIN_PROBE_PIN 4 #endif #endif diff --git a/Marlin/src/pins/ramps/pins_BQ_ZUM_MEGA_3D.h b/Marlin/src/pins/ramps/pins_BQ_ZUM_MEGA_3D.h index 4a54b85ae0bd4..8ee5d98f60b6e 100644 --- a/Marlin/src/pins/ramps/pins_BQ_ZUM_MEGA_3D.h +++ b/Marlin/src/pins/ramps/pins_BQ_ZUM_MEGA_3D.h @@ -34,21 +34,14 @@ // Limit Switches // #define X_MAX_PIN 79 - -// This board has headers for Z-min, Z-max and IND_S_5V *but* as the bq team -// decided to ship the printer only with the probe and no additional Z-min -// endstop and the instruction manual advises the user to connect the probe to -// IND_S_5V the option Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN will not work. -#if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) - #define Z_MIN_PIN 19 // IND_S_5V - #define Z_MAX_PIN 18 // Z-MIN Label -#endif +#define Z_MIN_PIN 19 // IND_S_5V +#define Z_MAX_PIN 18 // Z-MIN Label // // Z Probe (when not Z_MIN_PIN) // #ifndef Z_MIN_PROBE_PIN - #define Z_MIN_PROBE_PIN 19 // IND_S_5V + #define Z_MIN_PROBE_PIN Z_MIN_PIN // IND_S_5V #endif // diff --git a/Marlin/src/pins/samd/pins_RAMPS_144.h b/Marlin/src/pins/samd/pins_RAMPS_144.h index 449ae0273e237..674eb34d67ee9 100644 --- a/Marlin/src/pins/samd/pins_RAMPS_144.h +++ b/Marlin/src/pins/samd/pins_RAMPS_144.h @@ -62,7 +62,7 @@ // Z Probe (when not Z_MIN_PIN) // #ifndef Z_MIN_PROBE_PIN - #define Z_MIN_PROBE_PIN 18 + #define Z_MIN_PROBE_PIN Z_MIN_PIN #endif // diff --git a/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_SKR_PRO_11/PeripheralPins.c b/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_SKR_PRO_11/PeripheralPins.c index 4ea275d4cf7e0..bb98624170b19 100644 --- a/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_SKR_PRO_11/PeripheralPins.c +++ b/buildroot/share/PlatformIO/variants/MARLIN_BIGTREE_SKR_PRO_11/PeripheralPins.c @@ -139,7 +139,7 @@ const PinMap PinMap_PWM[] = { {PC_7, TIM3, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM3, 2, 0)}, // TIM3_CH2 ESP8266 connector. Available if 8266 isn't used {PB_7, TIM4, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM4, 2, 0)}, // TIM4_CH2 I2C connector, SDA pin. Available if I2C isn't used. // TIM5_CH1 is used by the Servo Library - {PA_2, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 3, 0)}, // TIM5_CH3 BL-TOUCH port. Available if Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN + {PA_2, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 3, 0)}, // TIM5_CH3 BL-TOUCH port. /** * Unused by specifications on SKR-Pro. diff --git a/buildroot/tests/DUE b/buildroot/tests/DUE index 37678501e4312..2e149b05dbab4 100755 --- a/buildroot/tests/DUE +++ b/buildroot/tests/DUE @@ -36,7 +36,7 @@ exec_test $1 $2 "RAMPS4DUE_EFB with ABL (Bilinear), ExtUI, S-Curve, many options # restore_configs opt_set MOTHERBOARD BOARD_RADDS NUM_Z_STEPPER_DRIVERS 3 -opt_enable USE_XMAX_PLUG USE_YMAX_PLUG ENDSTOPPULLUPS BLTOUCH AUTO_BED_LEVELING_BILINEAR \ +opt_enable ENDSTOPPULLUPS BLTOUCH AUTO_BED_LEVELING_BILINEAR \ Z_STEPPER_AUTO_ALIGN Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS Z_SAFE_HOMING pins_set ramps/RAMPS X_MAX_PIN -1 pins_set ramps/RAMPS Y_MAX_PIN -1 diff --git a/buildroot/tests/FYSETC_F6 b/buildroot/tests/FYSETC_F6 index 9306686af5cef..660564cf6bf91 100755 --- a/buildroot/tests/FYSETC_F6 +++ b/buildroot/tests/FYSETC_F6 @@ -39,7 +39,7 @@ opt_set MOTHERBOARD BOARD_FYSETC_F6_13 \ opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER \ MARLIN_BRICKOUT MARLIN_INVADERS MARLIN_SNAKE \ MONITOR_DRIVER_STATUS STEALTHCHOP_XY STEALTHCHOP_Z STEALTHCHOP_E HYBRID_THRESHOLD \ - USE_ZMIN_PLUG SENSORLESS_HOMING TMC_DEBUG M114_DETAIL + SENSORLESS_HOMING TMC_DEBUG M114_DETAIL exec_test $1 $2 "RAMPS | Mixed TMC | Sensorless | RRDFGSC | Games" "$3" # @@ -58,7 +58,7 @@ opt_set MOTHERBOARD BOARD_FYSETC_F6_13 \ X_MAX_ENDSTOP_INVERTING false \ X_DRIVER_TYPE TMC2209 Y_DRIVER_TYPE TMC2130 Z_DRIVER_TYPE TMC2130_STANDALONE E0_DRIVER_TYPE TMC2660 \ X_HARDWARE_SERIAL Serial2 -opt_enable USE_ZMIN_PLUG FIX_MOUNTED_PROBE AUTO_BED_LEVELING_BILINEAR PAUSE_BEFORE_DEPLOY_STOW \ +opt_enable FIX_MOUNTED_PROBE AUTO_BED_LEVELING_BILINEAR PAUSE_BEFORE_DEPLOY_STOW \ FYSETC_242_OLED_12864 EEPROM_SETTINGS EEPROM_CHITCHAT M114_DETAIL Z_SAFE_HOMING \ STEALTHCHOP_XY STEALTHCHOP_Z STEALTHCHOP_E HYBRID_THRESHOLD SENSORLESS_HOMING SQUARE_WAVE_STEPPING exec_test $1 $2 "FYSETC_F6 | SCARA | Mixed TMC | EEPROM" "$3" diff --git a/buildroot/tests/LPC1769 b/buildroot/tests/LPC1769 index 3fe99734ca6b0..16c21eb3135b4 100755 --- a/buildroot/tests/LPC1769 +++ b/buildroot/tests/LPC1769 @@ -29,7 +29,7 @@ exec_test $1 $2 "Smoothieboard with TFTGLCD_PANEL_SPI and many features" "$3" #restore_configs #opt_set MOTHERBOARD BOARD_AZTEEG_X5_MINI_WIFI -#opt_enable COREYX USE_XMAX_PLUG DAC_MOTOR_CURRENT_DEFAULT \ +#opt_enable COREYX DAC_MOTOR_CURRENT_DEFAULT \ # REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT BABYSTEPPING \ # AUTO_BED_LEVELING_UBL RESTORE_LEVELING_AFTER_G28 EEPROM_SETTINGS \ # FILAMENT_LCD_DISPLAY FILAMENT_WIDTH_SENSOR FAN_SOFT_PWM \ @@ -48,7 +48,7 @@ opt_enable AUTO_BED_LEVELING_BILINEAR EEPROM_SETTINGS EEPROM_CHITCHAT MECHANICAL TMC_USE_SW_SPI MONITOR_DRIVER_STATUS STEALTHCHOP_XY STEALTHCHOP_Z HYBRID_THRESHOLD \ SENSORLESS_PROBING Z_SAFE_HOMING X_STALL_SENSITIVITY Y_STALL_SENSITIVITY Z_STALL_SENSITIVITY TMC_DEBUG \ EXPERIMENTAL_I2CBUS -opt_disable PSU_CONTROL Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN +opt_disable PSU_CONTROL exec_test $1 $2 "Cohesion3D Remix DELTA + ABL Bilinear + EEPROM + SENSORLESS_PROBING" "$3" # clean up diff --git a/buildroot/tests/STM32F103RET6_creality b/buildroot/tests/STM32F103RET6_creality index 8eda5f801dd47..8f2315597c8a6 100755 --- a/buildroot/tests/STM32F103RET6_creality +++ b/buildroot/tests/STM32F103RET6_creality @@ -28,9 +28,9 @@ opt_add SDCARD_EEPROM_EMULATION AUTO_BED_LEVELING_BILINEAR Z_SAFE_HOMING exec_test $1 $2 "Ender 3 v2 with MarlinUI" "$3" restore_configs -opt_set MOTHERBOARD BOARD_CREALITY_V452 SERIAL_PORT 1 +opt_set MOTHERBOARD BOARD_CREALITY_V452 SERIAL_PORT 1 Z_MIN_PROBE_PIN Z_MIN_PIN opt_disable NOZZLE_TO_PROBE_OFFSET -opt_enable NOZZLE_AS_PROBE Z_SAFE_HOMING Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN FAN_SOFT_PWM \ +opt_enable NOZZLE_AS_PROBE Z_SAFE_HOMING FAN_SOFT_PWM \ PROBE_ACTIVATION_SWITCH PROBE_TARE PROBE_TARE_ONLY_WHILE_INACTIVE exec_test $1 $2 "Creality V4.5.2 PROBE_ACTIVATION_SWITCH, Probe Tare" "$3" diff --git a/buildroot/tests/STM32F103RE_btt_USB b/buildroot/tests/STM32F103RE_btt_USB index 7b264ea283129..96c6ce0f73861 100755 --- a/buildroot/tests/STM32F103RE_btt_USB +++ b/buildroot/tests/STM32F103RE_btt_USB @@ -14,9 +14,10 @@ opt_set MOTHERBOARD BOARD_BTT_SKR_E3_DIP SERIAL_PORT 1 SERIAL_PORT_2 -1 exec_test $1 $2 "BigTreeTech SKR E3 DIP v1.0 - Basic Configuration" "$3" restore_configs -opt_set MOTHERBOARD BOARD_BTT_SKR_CR6 SERIAL_PORT -1 SERIAL_PORT_2 2 TEMP_SENSOR_BED 1 +opt_set MOTHERBOARD BOARD_BTT_SKR_CR6 SERIAL_PORT -1 SERIAL_PORT_2 2 TEMP_SENSOR_BED 1 \ + Z_MIN_PROBE_PIN Z_MIN_PIN opt_enable CR10_STOCKDISPLAY FAN_SOFT_PWM \ - NOZZLE_AS_PROBE Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN Z_SAFE_HOMING \ + NOZZLE_AS_PROBE Z_SAFE_HOMING \ PROBE_ACTIVATION_SWITCH PROBE_TARE PROBE_TARE_ONLY_WHILE_INACTIVE \ PROBING_HEATERS_OFF PREHEAT_BEFORE_PROBING opt_disable NOZZLE_TO_PROBE_OFFSET diff --git a/buildroot/tests/mega1280 b/buildroot/tests/mega1280 index a7f25953acd03..2fddff6fd6cee 100755 --- a/buildroot/tests/mega1280 +++ b/buildroot/tests/mega1280 @@ -40,7 +40,7 @@ restore_configs opt_set MOTHERBOARD BOARD_ZRIB_V52 \ LCD_LANGUAGE pt REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 \ EXTRUDERS 2 TEMP_SENSOR_1 1 -opt_enable USE_XMAX_PLUG DUAL_X_CARRIAGE REPRAPWORLD_KEYPAD +opt_enable DUAL_X_CARRIAGE REPRAPWORLD_KEYPAD exec_test $1 $2 "ZRIB_V52 | DUAL_X_CARRIAGE" "$3" # diff --git a/buildroot/tests/rambo b/buildroot/tests/rambo index a54c04eeb21c5..ed2fa46f46099 100755 --- a/buildroot/tests/rambo +++ b/buildroot/tests/rambo @@ -16,8 +16,8 @@ opt_set MOTHERBOARD BOARD_RAMBO \ TEMP_SENSOR_CHAMBER 3 TEMP_CHAMBER_PIN 3 HEATER_CHAMBER_PIN 45 \ GRID_MAX_POINTS_X 16 \ FANMUX0_PIN 53 -opt_disable Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN USE_WATCHDOG -opt_enable USE_ZMAX_PLUG REPRAP_DISCOUNT_SMART_CONTROLLER LCD_PROGRESS_BAR LCD_PROGRESS_BAR_TEST \ +opt_disable USE_WATCHDOG +opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER LCD_PROGRESS_BAR LCD_PROGRESS_BAR_TEST \ FIX_MOUNTED_PROBE CODEPENDENT_XY_HOMING PIDTEMPBED PTC_PROBE PTC_BED \ PREHEAT_BEFORE_PROBING PROBING_HEATERS_OFF PROBING_FANS_OFF PROBING_STEPPERS_OFF WAIT_FOR_BED_HEATER \ EEPROM_SETTINGS SDSUPPORT SD_REPRINT_LAST_SELECTED_FILE BINARY_FILE_TRANSFER \ @@ -52,8 +52,7 @@ opt_set MOTHERBOARD BOARD_RAMBO \ MANUAL_FEEDRATE '{ 50*60, 50*60, 4*60 }' \ AXIS_RELATIVE_MODES '{ false, false, false }' \ LEVEL_CORNERS_LEVELING_ORDER '{ LF, RF }' -opt_enable USE_XMAX_PLUG USE_YMAX_PLUG USE_ZMAX_PLUG \ - REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER REVERSE_ENCODER_DIRECTION SDSUPPORT EEPROM_SETTINGS \ +opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER REVERSE_ENCODER_DIRECTION SDSUPPORT EEPROM_SETTINGS \ S_CURVE_ACCELERATION X_DUAL_STEPPER_DRIVERS X_DUAL_ENDSTOPS Y_DUAL_STEPPER_DRIVERS Y_DUAL_ENDSTOPS \ ADAPTIVE_STEP_SMOOTHING CNC_COORDINATE_SYSTEMS GCODE_MOTION_MODES \ LEVEL_BED_CORNERS LEVEL_CENTER_TOO @@ -114,7 +113,7 @@ opt_set MOTHERBOARD BOARD_RAMBO \ CONTROLLER_FAN_PIN X_MAX_PIN FILWIDTH_PIN 5 \ FAN_MIN_PWM 50 FAN_KICKSTART_TIME 100 \ XY_FREQUENCY_LIMIT 15 -opt_enable COREYX USE_XMAX_PLUG MIXING_EXTRUDER GRADIENT_MIX \ +opt_enable COREYX MIXING_EXTRUDER GRADIENT_MIX \ BABYSTEPPING BABYSTEP_DISPLAY_TOTAL FILAMENT_LCD_DISPLAY FILAMENT_WIDTH_SENSOR \ REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER MENU_ADDAUTOSTART SDSUPPORT SDCARD_SORT_ALPHA \ ENDSTOP_NOISE_THRESHOLD FAN_SOFT_PWM \ diff --git a/buildroot/tests/teensy35 b/buildroot/tests/teensy35 index 09e8cee58ef3e..e24b87d1b5766 100755 --- a/buildroot/tests/teensy35 +++ b/buildroot/tests/teensy35 @@ -86,7 +86,7 @@ opt_set MOTHERBOARD BOARD_TEENSY35_36 \ X_DRIVER_TYPE TMC5160 Y_DRIVER_TYPE TMC5160 \ X_MIN_ENDSTOP_INVERTING true Y_MIN_ENDSTOP_INVERTING true \ X_CS_PIN 46 Y_CS_PIN 47 -opt_enable COREXY USE_ZMIN_PLUG MONITOR_DRIVER_STATUS SENSORLESS_HOMING +opt_enable COREXY MONITOR_DRIVER_STATUS SENSORLESS_HOMING exec_test $1 $2 "Teensy 3.5/3.6 COREXY" "$3" # @@ -102,7 +102,7 @@ exec_test $1 $2 "Teensy 3.5/3.6 COREXZ | BACKLASH" "$3" # restore_configs opt_set MOTHERBOARD BOARD_TEENSY35_36 NUM_Z_STEPPER_DRIVERS 2 Z2_MIN_PIN 2 -opt_enable Z_MULTI_ENDSTOPS USE_XMAX_PLUG +opt_enable Z_MULTI_ENDSTOPS pins_set ramps/RAMPS X_MAX_PIN -1 exec_test $1 $2 "Dual Z with Dual Z endstops" "$3" diff --git a/buildroot/tests/teensy41 b/buildroot/tests/teensy41 index 1affd7c89e125..f5d201ce4d894 100755 --- a/buildroot/tests/teensy41 +++ b/buildroot/tests/teensy41 @@ -90,7 +90,7 @@ opt_set MOTHERBOARD BOARD_TEENSY41 \ X_DRIVER_TYPE TMC5160 Y_DRIVER_TYPE TMC5160 \ X_MIN_ENDSTOP_INVERTING true Y_MIN_ENDSTOP_INVERTING true \ X_CS_PIN 46 Y_CS_PIN 47 -opt_enable COREXY USE_ZMIN_PLUG MONITOR_DRIVER_STATUS SENSORLESS_HOMING +opt_enable COREXY MONITOR_DRIVER_STATUS SENSORLESS_HOMING exec_test $1 $2 "Teensy 4.0/4.1 COREXY" "$3" # @@ -106,7 +106,7 @@ exec_test $1 $2 "Teensy 4.0/4.1 COREXZ" "$3" # restore_configs opt_set MOTHERBOARD BOARD_TEENSY41 NUM_Z_STEPPER_DRIVERS 2 Z2_MIN_PIN 2 -opt_enable Z_MULTI_ENDSTOPS USE_XMAX_PLUG +opt_enable Z_MULTI_ENDSTOPS pins_set ramps/RAMPS X_MAX_PIN -1 exec_test $1 $2 "Dual Z with Dual Z endstops" "$3"