Skip to content

Commit 467ab74

Browse files
authored
πŸ§‘β€πŸ’» Simplify endstops config (MarlinFirmware#25748)
1 parent 358a54e commit 467ab74

40 files changed

+1293
-1994
lines changed

β€ŽMarlin/Configuration.h

-22
Original file line numberDiff line numberDiff line change
@@ -1087,28 +1087,6 @@
10871087

10881088
// @section endstops
10891089

1090-
// Specify here all the endstop connectors that are connected to any endstop or probe.
1091-
// Almost all printers will be using one per axis. Probes will use one or more of the
1092-
// extra connectors. Leave undefined any used for non-endstop and non-probe purposes.
1093-
#define USE_XMIN_PLUG
1094-
#define USE_YMIN_PLUG
1095-
#define USE_ZMIN_PLUG
1096-
//#define USE_IMIN_PLUG
1097-
//#define USE_JMIN_PLUG
1098-
//#define USE_KMIN_PLUG
1099-
//#define USE_UMIN_PLUG
1100-
//#define USE_VMIN_PLUG
1101-
//#define USE_WMIN_PLUG
1102-
//#define USE_XMAX_PLUG
1103-
//#define USE_YMAX_PLUG
1104-
//#define USE_ZMAX_PLUG
1105-
//#define USE_IMAX_PLUG
1106-
//#define USE_JMAX_PLUG
1107-
//#define USE_KMAX_PLUG
1108-
//#define USE_UMAX_PLUG
1109-
//#define USE_VMAX_PLUG
1110-
//#define USE_WMAX_PLUG
1111-
11121090
// Enable pullup for all endstops to prevent a floating state
11131091
#define ENDSTOPPULLUPS
11141092
#if DISABLED(ENDSTOPPULLUPS)

β€ŽMarlin/Configuration_adv.h

+6-6
Original file line numberDiff line numberDiff line change
@@ -849,13 +849,13 @@
849849
* Get the offset by homing X and measuring the error.
850850
* Also set with 'M666 X<offset>' and stored to EEPROM with 'M500'.
851851
*
852-
* - Use X2_USE_ENDSTOP to set the endstop plug by name. (_XMIN_, _XMAX_, _YMIN_, _YMAX_, _ZMIN_, _ZMAX_)
852+
* - Define the extra endstop pins here to override defaults. No auto-assignment.
853853
*/
854854
#if HAS_X2_STEPPER && DISABLED(DUAL_X_CARRIAGE)
855855
//#define INVERT_X2_VS_X_DIR // X2 direction signal is the opposite of X
856856
//#define X_DUAL_ENDSTOPS // X2 has its own endstop
857857
#if ENABLED(X_DUAL_ENDSTOPS)
858-
#define X2_USE_ENDSTOP _XMAX_ // X2 endstop board plug. Don't forget to enable USE_*_PLUG.
858+
//#define X2_STOP_PIN X_MAX_PIN // X2 endstop pin override
859859
#define X2_ENDSTOP_ADJUSTMENT 0 // X2 offset relative to X endstop
860860
#endif
861861
#endif
@@ -864,7 +864,7 @@
864864
//#define INVERT_Y2_VS_Y_DIR // Y2 direction signal is the opposite of Y
865865
//#define Y_DUAL_ENDSTOPS // Y2 has its own endstop
866866
#if ENABLED(Y_DUAL_ENDSTOPS)
867-
#define Y2_USE_ENDSTOP _YMAX_ // Y2 endstop board plug. Don't forget to enable USE_*_PLUG.
867+
//#define Y2_STOP_PIN Y_MAX_PIN // Y2 endstop pin override
868868
#define Y2_ENDSTOP_ADJUSTMENT 0 // Y2 offset relative to Y endstop
869869
#endif
870870
#endif
@@ -877,20 +877,20 @@
877877

878878
//#define Z_MULTI_ENDSTOPS // Other Z axes have their own endstops
879879
#if ENABLED(Z_MULTI_ENDSTOPS)
880-
#define Z2_USE_ENDSTOP _XMAX_ // Z2 endstop board plug. Don't forget to enable USE_*_PLUG.
880+
//#define Z2_STOP_PIN X_MAX_PIN // Z2 endstop pin override
881881
#define Z2_ENDSTOP_ADJUSTMENT 0 // Z2 offset relative to Z endstop
882882
#endif
883883
#ifdef Z3_DRIVER_TYPE
884884
//#define INVERT_Z3_VS_Z_DIR // Z3 direction signal is the opposite of Z
885885
#if ENABLED(Z_MULTI_ENDSTOPS)
886-
#define Z3_USE_ENDSTOP _YMAX_ // Z3 endstop board plug. Don't forget to enable USE_*_PLUG.
886+
//#define Z3_STOP_PIN Y_MAX_PIN // Z3 endstop pin override
887887
#define Z3_ENDSTOP_ADJUSTMENT 0 // Z3 offset relative to Z endstop
888888
#endif
889889
#endif
890890
#ifdef Z4_DRIVER_TYPE
891891
//#define INVERT_Z4_VS_Z_DIR // Z4 direction signal is the opposite of Z
892892
#if ENABLED(Z_MULTI_ENDSTOPS)
893-
#define Z4_USE_ENDSTOP _ZMAX_ // Z4 endstop board plug. Don't forget to enable USE_*_PLUG.
893+
//#define Z4_STOP_PIN Z_MAX_PIN // Z4 endstop pin override
894894
#define Z4_ENDSTOP_ADJUSTMENT 0 // Z4 offset relative to Z endstop
895895
#endif
896896
#endif

β€ŽMarlin/src/HAL/AVR/endstop_interrupts.h

+13-13
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ void setup_endstop_interrupts() {
160160
pciSetup(Z_MAX_PIN);
161161
#endif
162162
#endif
163-
#if HAS_Z_MIN
163+
#if HAS_Z_MIN_PIN
164164
#if (digitalPinToInterrupt(Z_MIN_PIN) != NOT_AN_INTERRUPT)
165165
_ATTACH(Z_MIN_PIN);
166166
#else
@@ -172,89 +172,89 @@ void setup_endstop_interrupts() {
172172
#if (digitalPinToInterrupt(I_MAX_PIN) != NOT_AN_INTERRUPT)
173173
_ATTACH(I_MAX_PIN);
174174
#else
175-
static_assert(digitalPinHasPCICR(I_MAX_PIN), "I_MAX_PIN is not interrupt-capable");
175+
static_assert(digitalPinHasPCICR(I_MAX_PIN), "I_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
176176
pciSetup(I_MAX_PIN);
177177
#endif
178178
#elif HAS_I_MIN
179179
#if (digitalPinToInterrupt(I_MIN_PIN) != NOT_AN_INTERRUPT)
180180
_ATTACH(I_MIN_PIN);
181181
#else
182-
static_assert(digitalPinHasPCICR(I_MIN_PIN), "I_MIN_PIN is not interrupt-capable");
182+
static_assert(digitalPinHasPCICR(I_MIN_PIN), "I_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
183183
pciSetup(I_MIN_PIN);
184184
#endif
185185
#endif
186186
#if HAS_J_MAX
187187
#if (digitalPinToInterrupt(J_MAX_PIN) != NOT_AN_INTERRUPT)
188188
_ATTACH(J_MAX_PIN);
189189
#else
190-
static_assert(digitalPinHasPCICR(J_MAX_PIN), "J_MAX_PIN is not interrupt-capable");
190+
static_assert(digitalPinHasPCICR(J_MAX_PIN), "J_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
191191
pciSetup(J_MAX_PIN);
192192
#endif
193193
#elif HAS_J_MIN
194194
#if (digitalPinToInterrupt(J_MIN_PIN) != NOT_AN_INTERRUPT)
195195
_ATTACH(J_MIN_PIN);
196196
#else
197-
static_assert(digitalPinHasPCICR(J_MIN_PIN), "J_MIN_PIN is not interrupt-capable");
197+
static_assert(digitalPinHasPCICR(J_MIN_PIN), "J_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
198198
pciSetup(J_MIN_PIN);
199199
#endif
200200
#endif
201201
#if HAS_K_MAX
202202
#if (digitalPinToInterrupt(K_MAX_PIN) != NOT_AN_INTERRUPT)
203203
_ATTACH(K_MAX_PIN);
204204
#else
205-
static_assert(digitalPinHasPCICR(K_MAX_PIN), "K_MAX_PIN is not interrupt-capable");
205+
static_assert(digitalPinHasPCICR(K_MAX_PIN), "K_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
206206
pciSetup(K_MAX_PIN);
207207
#endif
208208
#elif HAS_K_MIN
209209
#if (digitalPinToInterrupt(K_MIN_PIN) != NOT_AN_INTERRUPT)
210210
_ATTACH(K_MIN_PIN);
211211
#else
212-
static_assert(digitalPinHasPCICR(K_MIN_PIN), "K_MIN_PIN is not interrupt-capable");
212+
static_assert(digitalPinHasPCICR(K_MIN_PIN), "K_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
213213
pciSetup(K_MIN_PIN);
214214
#endif
215215
#endif
216216
#if HAS_U_MAX
217217
#if (digitalPinToInterrupt(U_MAX_PIN) != NOT_AN_INTERRUPT)
218218
_ATTACH(U_MAX_PIN);
219219
#else
220-
static_assert(digitalPinHasPCICR(U_MAX_PIN), "U_MAX_PIN is not interrupt-capable");
220+
static_assert(digitalPinHasPCICR(U_MAX_PIN), "U_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
221221
pciSetup(U_MAX_PIN);
222222
#endif
223223
#elif HAS_U_MIN
224224
#if (digitalPinToInterrupt(U_MIN_PIN) != NOT_AN_INTERRUPT)
225225
_ATTACH(U_MIN_PIN);
226226
#else
227-
static_assert(digitalPinHasPCICR(U_MIN_PIN), "U_MIN_PIN is not interrupt-capable");
227+
static_assert(digitalPinHasPCICR(U_MIN_PIN), "U_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
228228
pciSetup(U_MIN_PIN);
229229
#endif
230230
#endif
231231
#if HAS_V_MAX
232232
#if (digitalPinToInterrupt(V_MAX_PIN) != NOT_AN_INTERRUPT)
233233
_ATTACH(V_MAX_PIN);
234234
#else
235-
static_assert(digitalPinHasPCICR(V_MAX_PIN), "V_MAX_PIN is not interrupt-capable");
235+
static_assert(digitalPinHasPCICR(V_MAX_PIN), "V_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
236236
pciSetup(V_MAX_PIN);
237237
#endif
238238
#elif HAS_V_MIN
239239
#if (digitalPinToInterrupt(V_MIN_PIN) != NOT_AN_INTERRUPT)
240240
_ATTACH(V_MIN_PIN);
241241
#else
242-
static_assert(digitalPinHasPCICR(V_MIN_PIN), "V_MIN_PIN is not interrupt-capable");
242+
static_assert(digitalPinHasPCICR(V_MIN_PIN), "V_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
243243
pciSetup(V_MIN_PIN);
244244
#endif
245245
#endif
246246
#if HAS_W_MAX
247247
#if (digitalPinToInterrupt(W_MAX_PIN) != NOT_AN_INTERRUPT)
248248
_ATTACH(W_MAX_PIN);
249249
#else
250-
static_assert(digitalPinHasPCICR(W_MAX_PIN), "W_MAX_PIN is not interrupt-capable");
250+
static_assert(digitalPinHasPCICR(W_MAX_PIN), "W_MAX_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
251251
pciSetup(W_MAX_PIN);
252252
#endif
253253
#elif HAS_W_MIN
254254
#if (digitalPinToInterrupt(W_MIN_PIN) != NOT_AN_INTERRUPT)
255255
_ATTACH(W_MIN_PIN);
256256
#else
257-
static_assert(digitalPinHasPCICR(W_MIN_PIN), "W_MIN_PIN is not interrupt-capable");
257+
static_assert(digitalPinHasPCICR(W_MIN_PIN), "W_MIN_PIN is not interrupt-capable. Disable ENDSTOP_INTERRUPTS_FEATURE to continue.");
258258
pciSetup(W_MIN_PIN);
259259
#endif
260260
#endif

β€ŽMarlin/src/HAL/DUE/endstop_interrupts.h

+28-28
Original file line numberDiff line numberDiff line change
@@ -47,33 +47,33 @@ void endstop_ISR() { endstops.update(); }
4747

4848
void setup_endstop_interrupts() {
4949
#define _ATTACH(P) attachInterrupt(digitalPinToInterrupt(P), endstop_ISR, CHANGE)
50-
TERN_(HAS_X_MAX, _ATTACH(X_MAX_PIN));
51-
TERN_(HAS_X_MIN, _ATTACH(X_MIN_PIN));
52-
TERN_(HAS_Y_MAX, _ATTACH(Y_MAX_PIN));
53-
TERN_(HAS_Y_MIN, _ATTACH(Y_MIN_PIN));
54-
TERN_(HAS_Z_MAX, _ATTACH(Z_MAX_PIN));
55-
TERN_(HAS_Z_MIN, _ATTACH(Z_MIN_PIN));
56-
TERN_(HAS_X2_MAX, _ATTACH(X2_MAX_PIN));
57-
TERN_(HAS_X2_MIN, _ATTACH(X2_MIN_PIN));
58-
TERN_(HAS_Y2_MAX, _ATTACH(Y2_MAX_PIN));
59-
TERN_(HAS_Y2_MIN, _ATTACH(Y2_MIN_PIN));
60-
TERN_(HAS_Z2_MAX, _ATTACH(Z2_MAX_PIN));
61-
TERN_(HAS_Z2_MIN, _ATTACH(Z2_MIN_PIN));
62-
TERN_(HAS_Z3_MAX, _ATTACH(Z3_MAX_PIN));
63-
TERN_(HAS_Z3_MIN, _ATTACH(Z3_MIN_PIN));
64-
TERN_(HAS_Z4_MAX, _ATTACH(Z4_MAX_PIN));
65-
TERN_(HAS_Z4_MIN, _ATTACH(Z4_MIN_PIN));
50+
TERN_(HAS_X_MAX, _ATTACH(X_MAX_PIN));
51+
TERN_(HAS_X_MIN, _ATTACH(X_MIN_PIN));
52+
TERN_(HAS_Y_MAX, _ATTACH(Y_MAX_PIN));
53+
TERN_(HAS_Y_MIN, _ATTACH(Y_MIN_PIN));
54+
TERN_(HAS_Z_MAX, _ATTACH(Z_MAX_PIN));
55+
TERN_(HAS_Z_MIN_PIN, _ATTACH(Z_MIN_PIN));
56+
TERN_(HAS_X2_MAX, _ATTACH(X2_MAX_PIN));
57+
TERN_(HAS_X2_MIN, _ATTACH(X2_MIN_PIN));
58+
TERN_(HAS_Y2_MAX, _ATTACH(Y2_MAX_PIN));
59+
TERN_(HAS_Y2_MIN, _ATTACH(Y2_MIN_PIN));
60+
TERN_(HAS_Z2_MAX, _ATTACH(Z2_MAX_PIN));
61+
TERN_(HAS_Z2_MIN, _ATTACH(Z2_MIN_PIN));
62+
TERN_(HAS_Z3_MAX, _ATTACH(Z3_MAX_PIN));
63+
TERN_(HAS_Z3_MIN, _ATTACH(Z3_MIN_PIN));
64+
TERN_(HAS_Z4_MAX, _ATTACH(Z4_MAX_PIN));
65+
TERN_(HAS_Z4_MIN, _ATTACH(Z4_MIN_PIN));
6666
TERN_(HAS_Z_MIN_PROBE_PIN, _ATTACH(Z_MIN_PROBE_PIN));
67-
TERN_(HAS_I_MAX, _ATTACH(I_MAX_PIN));
68-
TERN_(HAS_I_MIN, _ATTACH(I_MIN_PIN));
69-
TERN_(HAS_J_MAX, _ATTACH(J_MAX_PIN));
70-
TERN_(HAS_J_MIN, _ATTACH(J_MIN_PIN));
71-
TERN_(HAS_K_MAX, _ATTACH(K_MAX_PIN));
72-
TERN_(HAS_K_MIN, _ATTACH(K_MIN_PIN));
73-
TERN_(HAS_U_MAX, _ATTACH(U_MAX_PIN));
74-
TERN_(HAS_U_MIN, _ATTACH(U_MIN_PIN));
75-
TERN_(HAS_V_MAX, _ATTACH(V_MAX_PIN));
76-
TERN_(HAS_V_MIN, _ATTACH(V_MIN_PIN));
77-
TERN_(HAS_W_MAX, _ATTACH(W_MAX_PIN));
78-
TERN_(HAS_W_MIN, _ATTACH(W_MIN_PIN));
67+
TERN_(HAS_I_MAX, _ATTACH(I_MAX_PIN));
68+
TERN_(HAS_I_MIN, _ATTACH(I_MIN_PIN));
69+
TERN_(HAS_J_MAX, _ATTACH(J_MAX_PIN));
70+
TERN_(HAS_J_MIN, _ATTACH(J_MIN_PIN));
71+
TERN_(HAS_K_MAX, _ATTACH(K_MAX_PIN));
72+
TERN_(HAS_K_MIN, _ATTACH(K_MIN_PIN));
73+
TERN_(HAS_U_MAX, _ATTACH(U_MAX_PIN));
74+
TERN_(HAS_U_MIN, _ATTACH(U_MIN_PIN));
75+
TERN_(HAS_V_MAX, _ATTACH(V_MAX_PIN));
76+
TERN_(HAS_V_MIN, _ATTACH(V_MIN_PIN));
77+
TERN_(HAS_W_MAX, _ATTACH(W_MAX_PIN));
78+
TERN_(HAS_W_MIN, _ATTACH(W_MIN_PIN));
7979
}

β€ŽMarlin/src/HAL/ESP32/endstop_interrupts.h

+28-28
Original file line numberDiff line numberDiff line change
@@ -42,33 +42,33 @@ void ICACHE_RAM_ATTR endstop_ISR() { endstops.update(); }
4242

4343
void setup_endstop_interrupts() {
4444
#define _ATTACH(P) attachInterrupt(digitalPinToInterrupt(P), endstop_ISR, CHANGE)
45-
TERN_(HAS_X_MAX, _ATTACH(X_MAX_PIN));
46-
TERN_(HAS_X_MIN, _ATTACH(X_MIN_PIN));
47-
TERN_(HAS_Y_MAX, _ATTACH(Y_MAX_PIN));
48-
TERN_(HAS_Y_MIN, _ATTACH(Y_MIN_PIN));
49-
TERN_(HAS_Z_MAX, _ATTACH(Z_MAX_PIN));
50-
TERN_(HAS_Z_MIN, _ATTACH(Z_MIN_PIN));
51-
TERN_(HAS_X2_MAX, _ATTACH(X2_MAX_PIN));
52-
TERN_(HAS_X2_MIN, _ATTACH(X2_MIN_PIN));
53-
TERN_(HAS_Y2_MAX, _ATTACH(Y2_MAX_PIN));
54-
TERN_(HAS_Y2_MIN, _ATTACH(Y2_MIN_PIN));
55-
TERN_(HAS_Z2_MAX, _ATTACH(Z2_MAX_PIN));
56-
TERN_(HAS_Z2_MIN, _ATTACH(Z2_MIN_PIN));
57-
TERN_(HAS_Z3_MAX, _ATTACH(Z3_MAX_PIN));
58-
TERN_(HAS_Z3_MIN, _ATTACH(Z3_MIN_PIN));
59-
TERN_(HAS_Z4_MAX, _ATTACH(Z4_MAX_PIN));
60-
TERN_(HAS_Z4_MIN, _ATTACH(Z4_MIN_PIN));
45+
TERN_(HAS_X_MAX, _ATTACH(X_MAX_PIN));
46+
TERN_(HAS_X_MIN, _ATTACH(X_MIN_PIN));
47+
TERN_(HAS_Y_MAX, _ATTACH(Y_MAX_PIN));
48+
TERN_(HAS_Y_MIN, _ATTACH(Y_MIN_PIN));
49+
TERN_(HAS_Z_MAX, _ATTACH(Z_MAX_PIN));
50+
TERN_(HAS_Z_MIN_PIN, _ATTACH(Z_MIN_PIN));
51+
TERN_(HAS_X2_MAX, _ATTACH(X2_MAX_PIN));
52+
TERN_(HAS_X2_MIN, _ATTACH(X2_MIN_PIN));
53+
TERN_(HAS_Y2_MAX, _ATTACH(Y2_MAX_PIN));
54+
TERN_(HAS_Y2_MIN, _ATTACH(Y2_MIN_PIN));
55+
TERN_(HAS_Z2_MAX, _ATTACH(Z2_MAX_PIN));
56+
TERN_(HAS_Z2_MIN, _ATTACH(Z2_MIN_PIN));
57+
TERN_(HAS_Z3_MAX, _ATTACH(Z3_MAX_PIN));
58+
TERN_(HAS_Z3_MIN, _ATTACH(Z3_MIN_PIN));
59+
TERN_(HAS_Z4_MAX, _ATTACH(Z4_MAX_PIN));
60+
TERN_(HAS_Z4_MIN, _ATTACH(Z4_MIN_PIN));
6161
TERN_(HAS_Z_MIN_PROBE_PIN, _ATTACH(Z_MIN_PROBE_PIN));
62-
TERN_(HAS_I_MAX, _ATTACH(I_MAX_PIN));
63-
TERN_(HAS_I_MIN, _ATTACH(I_MIN_PIN));
64-
TERN_(HAS_J_MAX, _ATTACH(J_MAX_PIN));
65-
TERN_(HAS_J_MIN, _ATTACH(J_MIN_PIN));
66-
TERN_(HAS_K_MAX, _ATTACH(K_MAX_PIN));
67-
TERN_(HAS_K_MIN, _ATTACH(K_MIN_PIN));
68-
TERN_(HAS_U_MAX, _ATTACH(U_MAX_PIN));
69-
TERN_(HAS_U_MIN, _ATTACH(U_MIN_PIN));
70-
TERN_(HAS_V_MAX, _ATTACH(V_MAX_PIN));
71-
TERN_(HAS_V_MIN, _ATTACH(V_MIN_PIN));
72-
TERN_(HAS_W_MAX, _ATTACH(W_MAX_PIN));
73-
TERN_(HAS_W_MIN, _ATTACH(W_MIN_PIN));
62+
TERN_(HAS_I_MAX, _ATTACH(I_MAX_PIN));
63+
TERN_(HAS_I_MIN, _ATTACH(I_MIN_PIN));
64+
TERN_(HAS_J_MAX, _ATTACH(J_MAX_PIN));
65+
TERN_(HAS_J_MIN, _ATTACH(J_MIN_PIN));
66+
TERN_(HAS_K_MAX, _ATTACH(K_MAX_PIN));
67+
TERN_(HAS_K_MIN, _ATTACH(K_MIN_PIN));
68+
TERN_(HAS_U_MAX, _ATTACH(U_MAX_PIN));
69+
TERN_(HAS_U_MIN, _ATTACH(U_MIN_PIN));
70+
TERN_(HAS_V_MAX, _ATTACH(V_MAX_PIN));
71+
TERN_(HAS_V_MIN, _ATTACH(V_MIN_PIN));
72+
TERN_(HAS_W_MAX, _ATTACH(W_MAX_PIN));
73+
TERN_(HAS_W_MIN, _ATTACH(W_MIN_PIN));
7474
}

0 commit comments

Comments
Β (0)