Skip to content

Commit 20b8d75

Browse files
thinkyheadptoal
authored andcommitted
🐛 Fix up endstop flags (MarlinFirmware#22487)
1 parent f52d045 commit 20b8d75

File tree

4 files changed

+51
-54
lines changed

4 files changed

+51
-54
lines changed

Marlin/src/inc/Conditionals_post.h

+39-32
Original file line numberDiff line numberDiff line change
@@ -2122,72 +2122,79 @@
21222122
#define IS_Z4_ENDSTOP(A,M) (ENABLED(Z_MULTI_ENDSTOPS) && NUM_Z_STEPPER_DRIVERS >= 4 && Z4_USE_ENDSTOP == _##A##M##_)
21232123

21242124
#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))
2125-
#if _HAS_STOP(X,MIN)
2125+
#if BOTH(X_HOME_TO_MIN, USE_XMIN_PLUG) && _HAS_STOP(X,MIN)
21262126
#define HAS_X_MIN 1
21272127
#endif
2128-
#if _HAS_STOP(X,MAX)
2128+
#if (BOTH(X_HOME_TO_MAX, USE_XMAX_PLUG) || ENABLED(DUAL_X_CARRIAGE)) && _HAS_STOP(X,MAX)
21292129
#define HAS_X_MAX 1
21302130
#endif
2131-
#if HAS_Y_AXIS && _HAS_STOP(Y,MIN)
2131+
#if ALL(HAS_Y_AXIS, Y_HOME_TO_MIN, USE_YMIN_PLUG) && _HAS_STOP(Y,MIN)
21322132
#define HAS_Y_MIN 1
21332133
#endif
2134-
#if HAS_Y_AXIS && _HAS_STOP(Y,MAX)
2134+
#if ALL(HAS_Y_AXIS, Y_HOME_TO_MAX, USE_YMAX_PLUG) && _HAS_STOP(Y,MAX)
21352135
#define HAS_Y_MAX 1
21362136
#endif
21372137
#if BOTH(HAS_Z_AXIS, USE_ZMIN_PLUG) && _HAS_STOP(Z,MIN)
21382138
#define HAS_Z_MIN 1
21392139
#endif
2140-
#if BOTH(HAS_Z_AXIS, USE_ZMAX_PLUG) && _HAS_STOP(Z,MAX)
2140+
#if ALL(HAS_Z_AXIS, Z_HOME_TO_MAX, USE_ZMAX_PLUG) && _HAS_STOP(Z,MAX)
21412141
#define HAS_Z_MAX 1
21422142
#endif
2143-
#if _HAS_STOP(I,MIN)
2143+
#if LINEAR_AXES >= 4 && BOTH(I_HOME_TO_MIN, USE_IMIN_PLUG) && _HAS_STOP(I,MIN)
21442144
#define HAS_I_MIN 1
21452145
#endif
2146-
#if _HAS_STOP(I,MAX)
2146+
#if LINEAR_AXES >= 4 && BOTH(I_HOME_TO_MAX, USE_IMAX_PLUG) && _HAS_STOP(I,MAX)
21472147
#define HAS_I_MAX 1
21482148
#endif
2149-
#if _HAS_STOP(J,MIN)
2149+
#if LINEAR_AXES >= 5 && BOTH(J_HOME_TO_MIN, USE_JMIN_PLUG) && _HAS_STOP(J,MIN)
21502150
#define HAS_J_MIN 1
21512151
#endif
2152-
#if _HAS_STOP(J,MAX)
2152+
#if LINEAR_AXES >= 5 && BOTH(J_HOME_TO_MAX, USE_JMAX_PLUG) && _HAS_STOP(J,MAX)
21532153
#define HAS_J_MAX 1
21542154
#endif
2155-
#if _HAS_STOP(K,MIN)
2155+
#if LINEAR_AXES >= 6 && BOTH(K_HOME_TO_MIN, USE_KMIN_PLUG) && _HAS_STOP(K,MIN)
21562156
#define HAS_K_MIN 1
21572157
#endif
2158-
#if _HAS_STOP(K,MAX)
2158+
#if LINEAR_AXES >= 6 && BOTH(K_HOME_TO_MAX, USE_KMAX_PLUG) && _HAS_STOP(K,MAX)
21592159
#define HAS_K_MAX 1
21602160
#endif
2161-
#if PIN_EXISTS(X2_MIN)
2161+
#if BOTH(X_HOME_TO_MIN, X_DUAL_ENDSTOPS) && PIN_EXISTS(X2_MIN)
21622162
#define HAS_X2_MIN 1
21632163
#endif
2164-
#if PIN_EXISTS(X2_MAX)
2164+
#if BOTH(X_HOME_TO_MAX, X_DUAL_ENDSTOPS) && PIN_EXISTS(X2_MAX)
21652165
#define HAS_X2_MAX 1
21662166
#endif
2167-
#if PIN_EXISTS(Y2_MIN)
2167+
#if BOTH(Y_HOME_TO_MIN, Y_DUAL_ENDSTOPS) && PIN_EXISTS(Y2_MIN)
21682168
#define HAS_Y2_MIN 1
21692169
#endif
2170-
#if PIN_EXISTS(Y2_MAX)
2170+
#if BOTH(Y_HOME_TO_MAX, Y_DUAL_ENDSTOPS) && PIN_EXISTS(Y2_MAX)
21712171
#define HAS_Y2_MAX 1
21722172
#endif
2173-
#if PIN_EXISTS(Z2_MIN)
2174-
#define HAS_Z2_MIN 1
2175-
#endif
2176-
#if PIN_EXISTS(Z2_MAX)
2177-
#define HAS_Z2_MAX 1
2178-
#endif
2179-
#if PIN_EXISTS(Z3_MIN)
2180-
#define HAS_Z3_MIN 1
2181-
#endif
2182-
#if PIN_EXISTS(Z3_MAX)
2183-
#define HAS_Z3_MAX 1
2184-
#endif
2185-
#if PIN_EXISTS(Z4_MIN)
2186-
#define HAS_Z4_MIN 1
2187-
#endif
2188-
#if PIN_EXISTS(Z4_MAX)
2189-
#define HAS_Z4_MAX 1
2173+
#if ENABLED(Z_MULTI_ENDSTOPS)
2174+
#if Z_HOME_TO_MIN && PIN_EXISTS(Z2_MIN)
2175+
#define HAS_Z2_MIN 1
2176+
#endif
2177+
#if Z_HOME_TO_MAX && PIN_EXISTS(Z2_MAX)
2178+
#define HAS_Z2_MAX 1
2179+
#endif
2180+
#if NUM_Z_STEPPER_DRIVERS >= 3
2181+
#if Z_HOME_TO_MIN && PIN_EXISTS(Z3_MIN)
2182+
#define HAS_Z3_MIN 1
2183+
#endif
2184+
#if Z_HOME_TO_MAX && PIN_EXISTS(Z3_MAX)
2185+
#define HAS_Z3_MAX 1
2186+
#endif
2187+
#if NUM_Z_STEPPER_DRIVERS >= 4
2188+
#if Z_HOME_TO_MIN && PIN_EXISTS(Z4_MIN)
2189+
#define HAS_Z4_MIN 1
2190+
#endif
2191+
#if Z_HOME_TO_MAX && PIN_EXISTS(Z4_MAX)
2192+
#define HAS_Z4_MAX 1
2193+
#endif
2194+
#endif
2195+
#endif
21902196
#endif
2197+
21912198
#if HAS_BED_PROBE && PIN_EXISTS(Z_MIN_PROBE)
21922199
#define HAS_Z_MIN_PROBE_PIN 1
21932200
#endif

Marlin/src/module/endstops.h

+10-20
Original file line numberDiff line numberDiff line change
@@ -47,26 +47,16 @@ enum EndstopEnum : char {
4747
_ES_ITEM(HAS_K_MAX, K_MAX)
4848

4949
// Extra Endstops for XYZ
50-
#if ENABLED(X_DUAL_ENDSTOPS)
51-
_ES_ITEM(HAS_X_MIN, X2_MIN)
52-
_ES_ITEM(HAS_X_MAX, X2_MAX)
53-
#endif
54-
#if ENABLED(Y_DUAL_ENDSTOPS)
55-
_ES_ITEM(HAS_Y_MIN, Y2_MIN)
56-
_ES_ITEM(HAS_Y_MAX, Y2_MAX)
57-
#endif
58-
#if ENABLED(Z_MULTI_ENDSTOPS)
59-
_ES_ITEM(HAS_Z_MIN, Z2_MIN)
60-
_ES_ITEM(HAS_Z_MAX, Z2_MAX)
61-
#if NUM_Z_STEPPER_DRIVERS >= 3
62-
_ES_ITEM(HAS_Z_MIN, Z3_MIN)
63-
_ES_ITEM(HAS_Z_MAX, Z3_MAX)
64-
#endif
65-
#if NUM_Z_STEPPER_DRIVERS >= 4
66-
_ES_ITEM(HAS_Z_MIN, Z4_MIN)
67-
_ES_ITEM(HAS_Z_MAX, Z4_MAX)
68-
#endif
69-
#endif
50+
_ES_ITEM(HAS_X2_MIN, X2_MIN)
51+
_ES_ITEM(HAS_X2_MAX, X2_MAX)
52+
_ES_ITEM(HAS_Y2_MIN, Y2_MIN)
53+
_ES_ITEM(HAS_Y2_MAX, Y2_MAX)
54+
_ES_ITEM(HAS_Z2_MIN, Z2_MIN)
55+
_ES_ITEM(HAS_Z2_MAX, Z2_MAX)
56+
_ES_ITEM(HAS_Z3_MIN, Z3_MIN)
57+
_ES_ITEM(HAS_Z3_MAX, Z3_MAX)
58+
_ES_ITEM(HAS_Z4_MIN, Z4_MIN)
59+
_ES_ITEM(HAS_Z4_MAX, Z4_MAX)
7060

7161
// Bed Probe state is distinct or shared with Z_MIN (i.e., when the probe is the only Z endstop)
7262
_ES_ITEM(HAS_BED_PROBE, Z_MIN_PROBE IF_DISABLED(USES_Z_MIN_PROBE_PIN, = Z_MIN))

buildroot/tests/teensy35

+1-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ exec_test $1 $2 "Teensy 3.5/3.6 COREXZ | BACKLASH" "$3"
100100
# Enable Dual Z with Dual Z endstops
101101
#
102102
restore_configs
103-
opt_set MOTHERBOARD BOARD_TEENSY35_36 NUM_Z_STEPPER_DRIVERS 2 Z2_MAX_PIN 2
103+
opt_set MOTHERBOARD BOARD_TEENSY35_36 NUM_Z_STEPPER_DRIVERS 2 Z2_MIN_PIN 2
104104
opt_enable Z_MULTI_ENDSTOPS USE_XMAX_PLUG
105105
pins_set ramps/RAMPS X_MAX_PIN -1
106106
exec_test $1 $2 "Dual Z with Dual Z endstops" "$3"

buildroot/tests/teensy41

+1-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ exec_test $1 $2 "Teensy 4.0/4.1 COREXZ" "$3"
103103
# Enable Dual Z with Dual Z endstops
104104
#
105105
restore_configs
106-
opt_set MOTHERBOARD BOARD_TEENSY41 NUM_Z_STEPPER_DRIVERS 2 Z2_MAX_PIN 2
106+
opt_set MOTHERBOARD BOARD_TEENSY41 NUM_Z_STEPPER_DRIVERS 2 Z2_MIN_PIN 2
107107
opt_enable Z_MULTI_ENDSTOPS USE_XMAX_PLUG
108108
pins_set ramps/RAMPS X_MAX_PIN -1
109109
exec_test $1 $2 "Dual Z with Dual Z endstops" "$3"

0 commit comments

Comments
 (0)