Skip to content

Commit 607d094

Browse files
committed
🔧 Edge Stepping sanity-check
1 parent c3921bb commit 607d094

File tree

3 files changed

+37
-2
lines changed

3 files changed

+37
-2
lines changed

Marlin/src/inc/Conditionals_adv.h

+3
Original file line numberDiff line numberDiff line change
@@ -1133,6 +1133,9 @@
11331133
#endif
11341134
#endif
11351135

1136+
// Test for edge stepping on any axis
1137+
#define AXIS_HAS_DEDGE(A) (ENABLED(EDGE_STEPPING) && AXIS_IS_TMC(A))
1138+
11361139
#if ENABLED(DIRECT_STEPPING)
11371140
#ifndef STEPPER_PAGES
11381141
#define STEPPER_PAGES 16

Marlin/src/inc/SanityCheck.h

+34
Original file line numberDiff line numberDiff line change
@@ -4313,6 +4313,40 @@ static_assert(_PLUS_TEST(4), "HOMING_FEEDRATE_MM_M values must be positive.");
43134313
#error "MONITOR_DRIVER_STATUS and SDSUPPORT cannot be used together on boards with shared SPI."
43144314
#endif
43154315

4316+
// Although it just toggles STEP, EDGE_STEPPING requires HIGH state for logic
4317+
#if ENABLED(EDGE_STEPPING)
4318+
#if AXIS_HAS_DEDGE(X) && STEP_STATE_X != HIGH
4319+
#error "STEP_STATE_X must be HIGH for EDGE_STEPPING."
4320+
#endif
4321+
#if AXIS_HAS_DEDGE(Y) && STEP_STATE_Y != HIGH
4322+
#error "STEP_STATE_Y must be HIGH for EDGE_STEPPING."
4323+
#endif
4324+
#if AXIS_HAS_DEDGE(Z) && STEP_STATE_Z != HIGH
4325+
#error "STEP_STATE_Z must be HIGH for EDGE_STEPPING."
4326+
#endif
4327+
#if AXIS_HAS_DEDGE(I) && STEP_STATE_I != HIGH
4328+
#error "STEP_STATE_I must be HIGH for EDGE_STEPPING."
4329+
#endif
4330+
#if AXIS_HAS_DEDGE(J) && STEP_STATE_J != HIGH
4331+
#error "STEP_STATE_J must be HIGH for EDGE_STEPPING."
4332+
#endif
4333+
#if AXIS_HAS_DEDGE(K) && STEP_STATE_K != HIGH
4334+
#error "STEP_STATE_K must be HIGH for EDGE_STEPPING."
4335+
#endif
4336+
#if AXIS_HAS_DEDGE(U) && STEP_STATE_U != HIGH
4337+
#error "STEP_STATE_U must be HIGH for EDGE_STEPPING."
4338+
#endif
4339+
#if AXIS_HAS_DEDGE(V) && STEP_STATE_V != HIGH
4340+
#error "STEP_STATE_V must be HIGH for EDGE_STEPPING."
4341+
#endif
4342+
#if AXIS_HAS_DEDGE(W) && STEP_STATE_W != HIGH
4343+
#error "STEP_STATE_W must be HIGH for EDGE_STEPPING."
4344+
#endif
4345+
#if AXIS_HAS_DEDGE(E0) && STEP_STATE_E != HIGH
4346+
#error "STEP_STATE_E must be HIGH for EDGE_STEPPING."
4347+
#endif
4348+
#endif
4349+
43164350
// G60/G61 Position Save
43174351
#if SAVED_POSITIONS > 256
43184352
#error "SAVED_POSITIONS must be an integer from 0 to 256."

Marlin/src/module/stepper/trinamic.h

-2
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,6 @@
115115
void restore_trinamic_drivers();
116116
void reset_trinamic_drivers();
117117

118-
#define AXIS_HAS_DEDGE(A) (AXIS_IS_TMC(A) && ENABLED(EDGE_STEPPING))
119-
120118
// X Stepper
121119
#if AXIS_IS_TMC(X)
122120
extern TMC_CLASS(X, X) stepperX;

0 commit comments

Comments
 (0)