Skip to content

Commit 6795897

Browse files
committed
🔧 Refactor STEP pin state
1 parent 9b36dca commit 6795897

File tree

4 files changed

+48
-38
lines changed

4 files changed

+48
-38
lines changed

Marlin/Configuration_adv.h

+11-11
Original file line numberDiff line numberDiff line change
@@ -1104,17 +1104,17 @@
11041104
// Add a Duplicate option for well-separated conjoined nozzles
11051105
//#define MULTI_NOZZLE_DUPLICATION
11061106

1107-
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
1108-
#define INVERT_X_STEP_PIN false
1109-
#define INVERT_Y_STEP_PIN false
1110-
#define INVERT_Z_STEP_PIN false
1111-
#define INVERT_I_STEP_PIN false
1112-
#define INVERT_J_STEP_PIN false
1113-
#define INVERT_K_STEP_PIN false
1114-
#define INVERT_U_STEP_PIN false
1115-
#define INVERT_V_STEP_PIN false
1116-
#define INVERT_W_STEP_PIN false
1117-
#define INVERT_E_STEP_PIN false
1107+
// By default stepper drivers require an active-HIGH signal but some high-power drivers require an active-LOW signal to step.
1108+
#define STEP_STATE_X HIGH
1109+
#define STEP_STATE_Y HIGH
1110+
#define STEP_STATE_Z HIGH
1111+
#define STEP_STATE_I HIGH
1112+
#define STEP_STATE_J HIGH
1113+
#define STEP_STATE_K HIGH
1114+
#define STEP_STATE_U HIGH
1115+
#define STEP_STATE_V HIGH
1116+
#define STEP_STATE_W HIGH
1117+
#define STEP_STATE_E HIGH
11181118

11191119
/**
11201120
* Idle Stepper Shutdown

Marlin/src/inc/Conditionals_adv.h

+8
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@
9999
#undef SHAPING_BUFFER_Y
100100
#undef SHAPING_FREQ_Y
101101
#undef STEALTHCHOP_Y
102+
#undef STEP_STATE_Y
102103
#endif
103104

104105
#if !HAS_Z_AXIS
@@ -112,6 +113,7 @@
112113
#undef NUM_Z_STEPPERS
113114
#undef SAFE_BED_LEVELING_START_Z
114115
#undef STEALTHCHOP_Z
116+
#undef STEP_STATE_Z
115117
#undef Z_IDLE_HEIGHT
116118
#undef Z_PROBE_SLED
117119
#undef Z_SAFE_HOMING
@@ -123,6 +125,7 @@
123125
#undef DISABLE_INACTIVE_I
124126
#undef SAFE_BED_LEVELING_START_I
125127
#undef STEALTHCHOP_I
128+
#undef STEP_STATE_I
126129
#endif
127130

128131
#if !HAS_J_AXIS
@@ -131,6 +134,7 @@
131134
#undef DISABLE_INACTIVE_J
132135
#undef SAFE_BED_LEVELING_START_J
133136
#undef STEALTHCHOP_J
137+
#undef STEP_STATE_J
134138
#endif
135139

136140
#if !HAS_K_AXIS
@@ -139,6 +143,7 @@
139143
#undef DISABLE_INACTIVE_K
140144
#undef SAFE_BED_LEVELING_START_K
141145
#undef STEALTHCHOP_K
146+
#undef STEP_STATE_K
142147
#endif
143148

144149
#if !HAS_U_AXIS
@@ -147,6 +152,7 @@
147152
#undef DISABLE_INACTIVE_U
148153
#undef SAFE_BED_LEVELING_START_U
149154
#undef STEALTHCHOP_U
155+
#undef STEP_STATE_U
150156
#endif
151157

152158
#if !HAS_V_AXIS
@@ -155,6 +161,7 @@
155161
#undef DISABLE_INACTIVE_V
156162
#undef SAFE_BED_LEVELING_START_V
157163
#undef STEALTHCHOP_V
164+
#undef STEP_STATE_V
158165
#endif
159166

160167
#if !HAS_W_AXIS
@@ -163,6 +170,7 @@
163170
#undef DISABLE_INACTIVE_W
164171
#undef SAFE_BED_LEVELING_START_W
165172
#undef STEALTHCHOP_W
173+
#undef STEP_STATE_W
166174
#endif
167175

168176
// Disallowed with no extruders

Marlin/src/inc/SanityCheck.h

+2
Original file line numberDiff line numberDiff line change
@@ -674,6 +674,8 @@
674674
#error "BABYSTEP_ZPROBE_GFX_OVERLAY is now BABYSTEP_GFX_OVERLAY."
675675
#elif defined(DISABLE_INACTIVE_E)
676676
#error "DISABLE_INACTIVE_E is now set with DISABLE_INACTIVE_EXTRUDER."
677+
#elif defined(INVERT_X_STEP_PIN) || defined(INVERT_Y_STEP_PIN) || defined(INVERT_Z_STEP_PIN) || defined(INVERT_I_STEP_PIN) || defined(INVERT_J_STEP_PIN) || defined(INVERT_K_STEP_PIN) || defined(INVERT_U_STEP_PIN) || defined(INVERT_V_STEP_PIN) || defined(INVERT_W_STEP_PIN) || defined(INVERT_E_STEP_PIN)
678+
#error "INVERT_*_STEP_PIN true is now STEP_STATE_* LOW, and INVERT_*_STEP_PIN false is now STEP_STATE_* HIGH."
677679
#endif
678680

679681
// L64xx stepper drivers have been removed

Marlin/src/module/stepper.cpp

+27-27
Original file line numberDiff line numberDiff line change
@@ -1933,7 +1933,7 @@ void Stepper::pulse_phase_isr() {
19331933
#if ENABLED(MIXING_EXTRUDER)
19341934
if (step_needed.e) {
19351935
count_position[E_AXIS] += count_direction[E_AXIS];
1936-
E_STEP_WRITE(mixer.get_next_stepper(), !INVERT_E_STEP_PIN);
1936+
E_STEP_WRITE(mixer.get_next_stepper(), STEP_STATE_E);
19371937
}
19381938
#elif HAS_E0_STEP
19391939
PULSE_START(E);
@@ -1977,7 +1977,7 @@ void Stepper::pulse_phase_isr() {
19771977
#endif
19781978

19791979
#if ENABLED(MIXING_EXTRUDER)
1980-
if (step_needed.e) E_STEP_WRITE(mixer.get_stepper(), INVERT_E_STEP_PIN);
1980+
if (step_needed.e) E_STEP_WRITE(mixer.get_stepper(), !STEP_STATE_E);
19811981
#elif HAS_E0_STEP
19821982
PULSE_STOP(E);
19831983
#endif
@@ -2638,7 +2638,7 @@ uint32_t Stepper::block_phase_isr() {
26382638
la_delta_error -= advance_divisor;
26392639

26402640
// Set the STEP pulse ON
2641-
E_STEP_WRITE(TERN(MIXING_EXTRUDER, mixer.get_next_stepper(), stepper_extruder), !INVERT_E_STEP_PIN);
2641+
E_STEP_WRITE(TERN(MIXING_EXTRUDER, mixer.get_next_stepper(), stepper_extruder), STEP_STATE_E);
26422642
}
26432643

26442644
TERN_(I2S_STEPPER_STREAM, i2s_push_sample());
@@ -2652,7 +2652,7 @@ uint32_t Stepper::block_phase_isr() {
26522652
#endif
26532653

26542654
// Set the STEP pulse OFF
2655-
E_STEP_WRITE(TERN(MIXING_EXTRUDER, mixer.get_stepper(), stepper_extruder), INVERT_E_STEP_PIN);
2655+
E_STEP_WRITE(TERN(MIXING_EXTRUDER, mixer.get_stepper(), stepper_extruder), !STEP_STATE_E);
26562656
}
26572657
}
26582658

@@ -2915,31 +2915,31 @@ void Stepper::init() {
29152915
#if HAS_X_STEP
29162916
#if HAS_X2_STEPPER
29172917
X2_STEP_INIT();
2918-
X2_STEP_WRITE(INVERT_X_STEP_PIN);
2918+
X2_STEP_WRITE(!STEP_STATE_X);
29192919
#endif
29202920
AXIS_INIT(X, X);
29212921
#endif
29222922

29232923
#if HAS_Y_STEP
29242924
#if HAS_DUAL_Y_STEPPERS
29252925
Y2_STEP_INIT();
2926-
Y2_STEP_WRITE(INVERT_Y_STEP_PIN);
2926+
Y2_STEP_WRITE(!STEP_STATE_Y);
29272927
#endif
29282928
AXIS_INIT(Y, Y);
29292929
#endif
29302930

29312931
#if HAS_Z_STEP
29322932
#if NUM_Z_STEPPERS >= 2
29332933
Z2_STEP_INIT();
2934-
Z2_STEP_WRITE(INVERT_Z_STEP_PIN);
2934+
Z2_STEP_WRITE(!STEP_STATE_Z);
29352935
#endif
29362936
#if NUM_Z_STEPPERS >= 3
29372937
Z3_STEP_INIT();
2938-
Z3_STEP_WRITE(INVERT_Z_STEP_PIN);
2938+
Z3_STEP_WRITE(!STEP_STATE_Z);
29392939
#endif
29402940
#if NUM_Z_STEPPERS >= 4
29412941
Z4_STEP_INIT();
2942-
Z4_STEP_WRITE(INVERT_Z_STEP_PIN);
2942+
Z4_STEP_WRITE(!STEP_STATE_Z);
29432943
#endif
29442944
AXIS_INIT(Z, Z);
29452945
#endif
@@ -3466,58 +3466,58 @@ void Stepper::report_positions() {
34663466

34673467
_SAVE_START();
34683468

3469-
X_STEP_WRITE(!INVERT_X_STEP_PIN);
3469+
X_STEP_WRITE(STEP_STATE_X);
34703470
#ifdef Y_STEP_WRITE
3471-
Y_STEP_WRITE(!INVERT_Y_STEP_PIN);
3471+
Y_STEP_WRITE(STEP_STATE_Y);
34723472
#endif
34733473
#ifdef Z_STEP_WRITE
3474-
Z_STEP_WRITE(!INVERT_Z_STEP_PIN);
3474+
Z_STEP_WRITE(STEP_STATE_Z);
34753475
#endif
34763476
#ifdef I_STEP_WRITE
3477-
I_STEP_WRITE(!INVERT_I_STEP_PIN);
3477+
I_STEP_WRITE(STEP_STATE_I);
34783478
#endif
34793479
#ifdef J_STEP_WRITE
3480-
J_STEP_WRITE(!INVERT_J_STEP_PIN);
3480+
J_STEP_WRITE(STEP_STATE_J);
34813481
#endif
34823482
#ifdef K_STEP_WRITE
3483-
K_STEP_WRITE(!INVERT_K_STEP_PIN);
3483+
K_STEP_WRITE(STEP_STATE_K);
34843484
#endif
34853485
#ifdef U_STEP_WRITE
3486-
U_STEP_WRITE(!INVERT_U_STEP_PIN);
3486+
U_STEP_WRITE(STEP_STATE_U);
34873487
#endif
34883488
#ifdef V_STEP_WRITE
3489-
V_STEP_WRITE(!INVERT_V_STEP_PIN);
3489+
V_STEP_WRITE(STEP_STATE_V);
34903490
#endif
34913491
#ifdef W_STEP_WRITE
3492-
W_STEP_WRITE(!INVERT_W_STEP_PIN);
3492+
W_STEP_WRITE(STEP_STATE_W);
34933493
#endif
34943494

34953495
_PULSE_WAIT();
34963496

3497-
X_STEP_WRITE(INVERT_X_STEP_PIN);
3497+
X_STEP_WRITE(!STEP_STATE_X);
34983498
#ifdef Y_STEP_WRITE
3499-
Y_STEP_WRITE(INVERT_Y_STEP_PIN);
3499+
Y_STEP_WRITE(!STEP_STATE_Y);
35003500
#endif
35013501
#ifdef Z_STEP_WRITE
3502-
Z_STEP_WRITE(INVERT_Z_STEP_PIN);
3502+
Z_STEP_WRITE(!STEP_STATE_Z);
35033503
#endif
35043504
#ifdef I_STEP_WRITE
3505-
I_STEP_WRITE(INVERT_I_STEP_PIN);
3505+
I_STEP_WRITE(!STEP_STATE_I);
35063506
#endif
35073507
#ifdef J_STEP_WRITE
3508-
J_STEP_WRITE(INVERT_J_STEP_PIN);
3508+
J_STEP_WRITE(!STEP_STATE_J);
35093509
#endif
35103510
#ifdef K_STEP_WRITE
3511-
K_STEP_WRITE(INVERT_K_STEP_PIN);
3511+
K_STEP_WRITE(!STEP_STATE_K);
35123512
#endif
35133513
#ifdef U_STEP_WRITE
3514-
U_STEP_WRITE(INVERT_U_STEP_PIN);
3514+
U_STEP_WRITE(!STEP_STATE_U);
35153515
#endif
35163516
#ifdef V_STEP_WRITE
3517-
V_STEP_WRITE(INVERT_V_STEP_PIN);
3517+
V_STEP_WRITE(!STEP_STATE_V);
35183518
#endif
35193519
#ifdef W_STEP_WRITE
3520-
W_STEP_WRITE(INVERT_W_STEP_PIN);
3520+
W_STEP_WRITE(!STEP_STATE_W);
35213521
#endif
35223522

35233523
// Restore direction bits

0 commit comments

Comments
 (0)