Вот вам дифф на исходники марлина, который по идее сделает то, что вы хотите. Сорри, рабочесть не проверял, но по идее фикс тривиальный..
- Код: Выделить всё • Развернуть
diff --git a/Marlin/stepper.cpp b/Marlin/stepper.cpp
index 4ed8bef..ee326ae 100644
--- a/Marlin/stepper.cpp
+++ b/Marlin/stepper.cpp
@@ -346,6 +346,10 @@ ISR(TIMER1_COMPA_vect)
if ((out_bits & (1<<X_AXIS)) != 0) { // stepping along -X axis
#if !defined COREXY //NOT COREXY
WRITE(X_DIR_PIN, INVERT_X_DIR);
+
+ #ifdef Z_DUAL_STEPPER_DRIVERS
+ WRITE(Z2_DIR_PIN,INVERT_X_DIR);
+ #endif
#endif
count_direction[X_AXIS]=-1;
CHECK_ENDSTOPS
@@ -364,6 +368,9 @@ ISR(TIMER1_COMPA_vect)
else { // +direction
#if !defined COREXY //NOT COREXY
WRITE(X_DIR_PIN,!INVERT_X_DIR);
+ #ifdef Z_DUAL_STEPPER_DRIVERS
+ WRITE(Z2_DIR_PIN,!INVERT_X_DIR);
+ #endif
#endif
count_direction[X_AXIS]=1;
@@ -441,11 +448,7 @@ ISR(TIMER1_COMPA_vect)
if ((out_bits & (1<<Z_AXIS)) != 0) { // -direction
WRITE(Z_DIR_PIN,INVERT_Z_DIR);
-
- #ifdef Z_DUAL_STEPPER_DRIVERS
- WRITE(Z2_DIR_PIN,INVERT_Z_DIR);
- #endif
-
+
count_direction[Z_AXIS]=-1;
CHECK_ENDSTOPS
{