Skip to content

Commit 430eedf

Browse files
committed
👷 Optional IJKUVW endstops
1 parent 793a851 commit 430eedf

File tree

1 file changed

+30
-31
lines changed

1 file changed

+30
-31
lines changed

Marlin/src/module/endstops.cpp

+30-31
Original file line numberDiff line numberDiff line change
@@ -823,19 +823,16 @@ void Endstops::update() {
823823
#endif
824824

825825
#if ENABLED(CALIBRATION_GCODE)
826-
if (calibration_probe_enabled) {
827-
#if HAS_CALIBRATION_STATE
828-
if (TEST(live_state, CALIBRATION) == calibration_stop_state) stepper.quick_stop();
829-
#else
830-
if (TEST(live_state, Z_MIN_PROBE) == calibration_stop_state) stepper.quick_stop();
831-
#endif
832-
}
826+
if (calibration_probe_enabled
827+
&& calibration_stop_state == TEST(live_state, TERN(HAS_CALIBRATION_STATE, CALIBRATION, Z_MIN_PROBE)))
828+
stepper.quick_stop();
833829
#endif
830+
834831
// Signal, after validation, if an endstop limit is pressed or not
835832

836833
#if HAS_X_AXIS
837834
if (stepper.axis_is_moving(X_AXIS)) {
838-
if (!stepper.motor_direction(X_AXIS_HEAD)) { // -direction
835+
if (!stepper.motor_direction(X_AXIS_HEAD)) {
839836
#if HAS_X_MIN_STATE
840837
PROCESS_ENDSTOP_X(MIN);
841838
#if CORE_DIAG(XY, Y, MIN)
@@ -849,7 +846,7 @@ void Endstops::update() {
849846
#endif
850847
#endif
851848
}
852-
else { // +direction
849+
else {
853850
#if HAS_X_MAX_STATE
854851
PROCESS_ENDSTOP_X(MAX);
855852
#if CORE_DIAG(XY, Y, MIN)
@@ -868,7 +865,7 @@ void Endstops::update() {
868865

869866
#if HAS_Y_AXIS
870867
if (stepper.axis_is_moving(Y_AXIS)) {
871-
if (!stepper.motor_direction(Y_AXIS_HEAD)) { // -direction
868+
if (!stepper.motor_direction(Y_AXIS_HEAD)) {
872869
#if HAS_Y_MIN_STATE
873870
PROCESS_ENDSTOP_Y(MIN);
874871
#if CORE_DIAG(XY, X, MIN)
@@ -882,7 +879,7 @@ void Endstops::update() {
882879
#endif
883880
#endif
884881
}
885-
else { // +direction
882+
else {
886883
#if HAS_Y_MAX_STATE
887884
PROCESS_ENDSTOP_Y(MAX);
888885
#if CORE_DIAG(XY, X, MIN)
@@ -901,7 +898,8 @@ void Endstops::update() {
901898

902899
#if HAS_Z_AXIS
903900
if (stepper.axis_is_moving(Z_AXIS)) {
904-
if (!stepper.motor_direction(Z_AXIS_HEAD)) { // Z -direction. Gantry down, bed up.
901+
if (!stepper.motor_direction(Z_AXIS_HEAD)) {
902+
// Z- : Gantry down, bed up
905903
#if HAS_Z_MIN_STATE
906904
// If the Z_MIN_PIN is being used for the probe there's no
907905
// separate Z_MIN endstop. But a Z endstop could be wired
@@ -927,7 +925,8 @@ void Endstops::update() {
927925
if (z_probe_enabled) PROCESS_ENDSTOP(Z, MIN_PROBE);
928926
#endif
929927
}
930-
else { // Z +direction. Gantry up, bed down.
928+
else {
929+
// Z+ : Gantry up, bed down
931930
#if HAS_Z_MAX_STATE
932931
PROCESS_ENDSTOP_Z(MAX);
933932
#if CORE_DIAG(XZ, X, MIN)
@@ -944,89 +943,89 @@ void Endstops::update() {
944943
}
945944
#endif // HAS_Z_AXIS
946945

947-
#if HAS_I_AXIS
946+
#if HAS_I_AXIS && HAS_I_STATE
948947
if (stepper.axis_is_moving(I_AXIS)) {
949-
if (!stepper.motor_direction(I_AXIS_HEAD)) { // -direction
948+
if (!stepper.motor_direction(I_AXIS_HEAD)) {
950949
#if HAS_I_MIN_STATE
951950
PROCESS_ENDSTOP(I, MIN);
952951
#endif
953952
}
954-
else { // +direction
953+
else {
955954
#if HAS_I_MAX_STATE
956955
PROCESS_ENDSTOP(I, MAX);
957956
#endif
958957
}
959958
}
960959
#endif // HAS_I_AXIS
961960

962-
#if HAS_J_AXIS
961+
#if HAS_J_AXIS && HAS_J_STATE
963962
if (stepper.axis_is_moving(J_AXIS)) {
964-
if (!stepper.motor_direction(J_AXIS_HEAD)) { // -direction
963+
if (!stepper.motor_direction(J_AXIS_HEAD)) {
965964
#if HAS_J_MIN_STATE
966965
PROCESS_ENDSTOP(J, MIN);
967966
#endif
968967
}
969-
else { // +direction
968+
else {
970969
#if HAS_J_MAX_STATE
971970
PROCESS_ENDSTOP(J, MAX);
972971
#endif
973972
}
974973
}
975974
#endif // HAS_J_AXIS
976975

977-
#if HAS_K_AXIS
976+
#if HAS_K_AXIS && HAS_K_STATE
978977
if (stepper.axis_is_moving(K_AXIS)) {
979-
if (!stepper.motor_direction(K_AXIS_HEAD)) { // -direction
978+
if (!stepper.motor_direction(K_AXIS_HEAD)) {
980979
#if HAS_K_MIN_STATE
981980
PROCESS_ENDSTOP(K, MIN);
982981
#endif
983982
}
984-
else { // +direction
983+
else {
985984
#if HAS_K_MAX_STATE
986985
PROCESS_ENDSTOP(K, MAX);
987986
#endif
988987
}
989988
}
990989
#endif // HAS_K_AXIS
991990

992-
#if HAS_U_AXIS
991+
#if HAS_U_AXIS && HAS_U_STATE
993992
if (stepper.axis_is_moving(U_AXIS)) {
994-
if (!stepper.motor_direction(U_AXIS_HEAD)) { // -direction
993+
if (!stepper.motor_direction(U_AXIS_HEAD)) {
995994
#if HAS_U_MIN_STATE
996995
PROCESS_ENDSTOP(U, MIN);
997996
#endif
998997
}
999-
else { // +direction
998+
else {
1000999
#if HAS_U_MAX_STATE
10011000
PROCESS_ENDSTOP(U, MAX);
10021001
#endif
10031002
}
10041003
}
10051004
#endif // HAS_U_AXIS
10061005

1007-
#if HAS_V_AXIS
1006+
#if HAS_V_AXIS && HAS_V_STATE
10081007
if (stepper.axis_is_moving(V_AXIS)) {
1009-
if (!stepper.motor_direction(V_AXIS_HEAD)) { // -direction
1008+
if (!stepper.motor_direction(V_AXIS_HEAD)) {
10101009
#if HAS_V_MIN_STATE
10111010
PROCESS_ENDSTOP(V, MIN);
10121011
#endif
10131012
}
1014-
else { // +direction
1013+
else {
10151014
#if HAS_V_MAX_STATE
10161015
PROCESS_ENDSTOP(V, MAX);
10171016
#endif
10181017
}
10191018
}
10201019
#endif // HAS_V_AXIS
10211020

1022-
#if HAS_W_AXIS
1021+
#if HAS_W_AXIS && HAS_W_STATE
10231022
if (stepper.axis_is_moving(W_AXIS)) {
1024-
if (!stepper.motor_direction(W_AXIS_HEAD)) { // -direction
1023+
if (!stepper.motor_direction(W_AXIS_HEAD)) {
10251024
#if HAS_W_MIN_STATE
10261025
PROCESS_ENDSTOP(W, MIN);
10271026
#endif
10281027
}
1029-
else { // +direction
1028+
else {
10301029
#if HAS_W_MAX_STATE
10311030
PROCESS_ENDSTOP(W, MAX);
10321031
#endif

0 commit comments

Comments
 (0)