Skip to content

Commit a9f8a19

Browse files
thinkyheadmtm88001
authored andcommitted
Fix MK2_MULTIPLEXER stepper indirection
Addressing MarlinFirmware#8544
1 parent c2a0692 commit a9f8a19

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

Marlin/stepper_indirection.h

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,10 @@
429429
#define NORM_E_DIR() { switch (current_block->active_extruder) { case 0: E0_DIR_WRITE(!INVERT_E0_DIR); break; case 1: E0_DIR_WRITE(INVERT_E0_DIR); break; case 2: E1_DIR_WRITE(!INVERT_E1_DIR); break; case 3: E1_DIR_WRITE(INVERT_E1_DIR); } }
430430
#define REV_E_DIR() { switch (current_block->active_extruder) { case 0: E0_DIR_WRITE(INVERT_E0_DIR); break; case 1: E0_DIR_WRITE(!INVERT_E0_DIR); break; case 2: E1_DIR_WRITE(INVERT_E1_DIR); break; case 3: E1_DIR_WRITE(!INVERT_E1_DIR); } }
431431
#endif
432+
#elif ENABLED(MK2_MULTIPLEXER) // Even-numbered steppers are reversed
433+
#define E_STEP_WRITE(v) E0_STEP_WRITE(v)
434+
#define NORM_E_DIR() E0_DIR_WRITE(TEST(current_block->active_extruder, 0) ? !INVERT_E0_DIR: INVERT_E0_DIR)
435+
#define REV_E_DIR() E0_DIR_WRITE(TEST(current_block->active_extruder, 0) ? INVERT_E0_DIR: !INVERT_E0_DIR)
432436
#elif EXTRUDERS > 4
433437
#define E_STEP_WRITE(v) { switch (current_block->active_extruder) { case 0: E0_STEP_WRITE(v); break; case 1: E1_STEP_WRITE(v); break; case 2: E2_STEP_WRITE(v); break; case 3: E3_STEP_WRITE(v); break; case 4: E4_STEP_WRITE(v); } }
434438
#define NORM_E_DIR() { switch (current_block->active_extruder) { case 0: E0_DIR_WRITE(!INVERT_E0_DIR); break; case 1: E1_DIR_WRITE(!INVERT_E1_DIR); break; case 2: E2_DIR_WRITE(!INVERT_E2_DIR); break; case 3: E3_DIR_WRITE(!INVERT_E3_DIR); break; case 4: E4_DIR_WRITE(!INVERT_E4_DIR); } }
@@ -472,14 +476,8 @@
472476
#endif
473477
#else
474478
#define E_STEP_WRITE(v) E0_STEP_WRITE(v)
475-
#if ENABLED(MK2_MULTIPLEXER)
476-
// Even-numbered steppers are reversed
477-
#define NORM_E_DIR() E0_DIR_WRITE(TEST(current_block->active_extruder, 0) ? !INVERT_E0_DIR: INVERT_E0_DIR)
478-
#define REV_E_DIR() E0_DIR_WRITE(TEST(current_block->active_extruder, 0) ? INVERT_E0_DIR: !INVERT_E0_DIR)
479-
#else
480-
#define NORM_E_DIR() E0_DIR_WRITE(!INVERT_E0_DIR)
481-
#define REV_E_DIR() E0_DIR_WRITE(INVERT_E0_DIR)
482-
#endif
479+
#define NORM_E_DIR() E0_DIR_WRITE(!INVERT_E0_DIR)
480+
#define REV_E_DIR() E0_DIR_WRITE(INVERT_E0_DIR)
483481
#endif
484482

485483
#endif // STEPPER_INDIRECTION_H

0 commit comments

Comments
 (0)