Browse Source

Single X Duplication Extension (#13373)

* Multi-nozzle selective duplication
* Use a bit-mask, reduce stepper_indirection.h size
* Tweak the multi-nozzle duplication description
* Use 'S' as a bool in M605
* Add HAS_DUPLICATION_MODE conditional
* Remove '_MODE' from the option name
* M605 in the style of Stacker M280
* Also include direct mask style (P)
pull/1/head
InsanityAutomation 6 years ago
committed by Scott Lahteine
parent
commit
050eac03af
  1. 4
      Marlin/Configuration_adv.h
  2. 21
      Marlin/src/feature/runout.h
  3. 2
      Marlin/src/gcode/calibrate/G28.cpp
  4. 2
      Marlin/src/gcode/calibrate/G34_M422.cpp
  5. 35
      Marlin/src/gcode/control/M605.cpp
  6. 2
      Marlin/src/gcode/gcode.cpp
  7. 2
      Marlin/src/gcode/gcode.h
  8. 1
      Marlin/src/inc/Conditionals_LCD.h
  9. 18
      Marlin/src/inc/SanityCheck.h
  10. 10
      Marlin/src/module/motion.cpp
  11. 14
      Marlin/src/module/motion.h
  12. 2
      Marlin/src/module/planner.cpp
  13. 86
      Marlin/src/module/stepper_indirection.h
  14. 4
      config/default/Configuration_adv.h
  15. 4
      config/examples/3DFabXYZ/Migbot/Configuration_adv.h
  16. 4
      config/examples/AlephObjects/TAZ4/Configuration_adv.h
  17. 4
      config/examples/AliExpress/UM2pExt/Configuration_adv.h
  18. 4
      config/examples/Anet/A2/Configuration_adv.h
  19. 4
      config/examples/Anet/A2plus/Configuration_adv.h
  20. 4
      config/examples/Anet/A6/Configuration_adv.h
  21. 4
      config/examples/Anet/A8/Configuration_adv.h
  22. 4
      config/examples/AnyCubic/i3/Configuration_adv.h
  23. 4
      config/examples/ArmEd/Configuration_adv.h
  24. 4
      config/examples/BIBO/TouchX/cyclops/Configuration_adv.h
  25. 4
      config/examples/BIBO/TouchX/default/Configuration_adv.h
  26. 4
      config/examples/BQ/Hephestos/Configuration_adv.h
  27. 4
      config/examples/BQ/Hephestos_2/Configuration_adv.h
  28. 4
      config/examples/BQ/WITBOX/Configuration_adv.h
  29. 4
      config/examples/Cartesio/Configuration_adv.h
  30. 4
      config/examples/Creality/CR-10/Configuration_adv.h
  31. 4
      config/examples/Creality/CR-10S/Configuration_adv.h
  32. 4
      config/examples/Creality/CR-10_5S/Configuration_adv.h
  33. 4
      config/examples/Creality/CR-10mini/Configuration_adv.h
  34. 4
      config/examples/Creality/CR-8/Configuration_adv.h
  35. 4
      config/examples/Creality/Ender-2/Configuration_adv.h
  36. 4
      config/examples/Creality/Ender-3/Configuration_adv.h
  37. 4
      config/examples/Creality/Ender-4/Configuration_adv.h
  38. 4
      config/examples/Einstart-S/Configuration_adv.h
  39. 4
      config/examples/Felix/Configuration_adv.h
  40. 4
      config/examples/FlashForge/CreatorPro/Configuration_adv.h
  41. 4
      config/examples/FolgerTech/i3-2020/Configuration_adv.h
  42. 4
      config/examples/Formbot/Raptor/Configuration_adv.h
  43. 4
      config/examples/Formbot/T_Rex_2+/Configuration_adv.h
  44. 4
      config/examples/Formbot/T_Rex_3/Configuration_adv.h
  45. 4
      config/examples/Geeetech/A10M/Configuration_adv.h
  46. 4
      config/examples/Geeetech/A20M/Configuration_adv.h
  47. 4
      config/examples/Geeetech/MeCreator2/Configuration_adv.h
  48. 4
      config/examples/Geeetech/Prusa i3 Pro C/Configuration_adv.h
  49. 4
      config/examples/Geeetech/Prusa i3 Pro W/Configuration_adv.h
  50. 4
      config/examples/Infitary/i3-M508/Configuration_adv.h
  51. 4
      config/examples/JGAurora/A5/Configuration_adv.h
  52. 4
      config/examples/MakerParts/Configuration_adv.h
  53. 4
      config/examples/Malyan/M150/Configuration_adv.h
  54. 4
      config/examples/Malyan/M200/Configuration_adv.h
  55. 4
      config/examples/Micromake/C1/enhanced/Configuration_adv.h
  56. 4
      config/examples/Mks/Robin/Configuration_adv.h
  57. 4
      config/examples/Mks/Sbase/Configuration_adv.h
  58. 4
      config/examples/RapideLite/RL200/Configuration_adv.h
  59. 4
      config/examples/RigidBot/Configuration_adv.h
  60. 4
      config/examples/SCARA/Configuration_adv.h
  61. 4
      config/examples/Sanguinololu/Configuration_adv.h
  62. 4
      config/examples/TheBorg/Configuration_adv.h
  63. 4
      config/examples/TinyBoy2/Configuration_adv.h
  64. 4
      config/examples/Tronxy/X3A/Configuration_adv.h
  65. 4
      config/examples/Tronxy/X5S-2E/Configuration_adv.h
  66. 4
      config/examples/UltiMachine/Archim1/Configuration_adv.h
  67. 4
      config/examples/UltiMachine/Archim2/Configuration_adv.h
  68. 4
      config/examples/VORONDesign/Configuration_adv.h
  69. 4
      config/examples/Velleman/K8200/Configuration_adv.h
  70. 4
      config/examples/Velleman/K8400/Configuration_adv.h
  71. 4
      config/examples/WASP/PowerWASP/Configuration_adv.h
  72. 4
      config/examples/Wanhao/Duplicator 6/Configuration_adv.h
  73. 4
      config/examples/delta/Anycubic/Kossel/Configuration_adv.h
  74. 4
      config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h
  75. 4
      config/examples/delta/FLSUN/kossel/Configuration_adv.h
  76. 4
      config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h
  77. 4
      config/examples/delta/Geeetech/Rostock 301/Configuration_adv.h
  78. 4
      config/examples/delta/MKS/SBASE/Configuration_adv.h
  79. 4
      config/examples/delta/Tevo Little Monster/Configuration_adv.h
  80. 4
      config/examples/delta/generic/Configuration_adv.h
  81. 4
      config/examples/delta/kossel_mini/Configuration_adv.h
  82. 4
      config/examples/delta/kossel_xl/Configuration_adv.h
  83. 4
      config/examples/gCreate/gMax1.5+/Configuration_adv.h
  84. 4
      config/examples/makibox/Configuration_adv.h
  85. 4
      config/examples/tvrrug/Round2/Configuration_adv.h
  86. 4
      config/examples/wt150/Configuration_adv.h

4
Marlin/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

21
Marlin/src/feature/runout.h

@ -230,19 +230,22 @@ class FilamentSensorBase {
private: private:
static inline bool poll_runout_state(const uint8_t extruder) { static inline bool poll_runout_state(const uint8_t extruder) {
const uint8_t runout_states = poll_runout_states(); const uint8_t runout_states = poll_runout_states();
#if NUM_RUNOUT_SENSORS == 1 #if NUM_RUNOUT_SENSORS == 1
UNUSED(extruder); UNUSED(extruder);
return runout_states; // A single sensor applying to all extruders #endif
#else
if (true
#if NUM_RUNOUT_SENSORS > 1
#if ENABLED(DUAL_X_CARRIAGE) #if ENABLED(DUAL_X_CARRIAGE)
if (dual_x_carriage_mode == DXC_DUPLICATION_MODE || dual_x_carriage_mode == DXC_SCALED_DUPLICATION_MODE) && (dual_x_carriage_mode == DXC_DUPLICATION_MODE || dual_x_carriage_mode == DXC_SCALED_DUPLICATION_MODE)
return runout_states; // Any extruder #elif ENABLED(MULTI_NOZZLE_DUPLICATION)
else && extruder_duplication_enabled
#elif ENABLED(DUAL_NOZZLE_DUPLICATION_MODE) #endif
if (extruder_duplication_enabled)
return runout_states; // Any extruder
else
#endif #endif
) return runout_states; // Any extruder
#if NUM_RUNOUT_SENSORS > 1
return TEST(runout_states, extruder); // Specific extruder return TEST(runout_states, extruder); // Specific extruder
#endif #endif
} }

2
Marlin/src/gcode/calibrate/G28.cpp

@ -258,7 +258,7 @@ void GcodeSuite::G28(const bool always_home_all) {
tool_change(0, 0, true); tool_change(0, 0, true);
#endif #endif
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE) #if HAS_DUPLICATION_MODE
extruder_duplication_enabled = false; extruder_duplication_enabled = false;
#endif #endif

2
Marlin/src/gcode/calibrate/G34_M422.cpp

@ -119,7 +119,7 @@ void GcodeSuite::G34() {
tool_change(0, 0, true); tool_change(0, 0, true);
#endif #endif
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE) #if HAS_DUPLICATION_MODE
extruder_duplication_enabled = false; extruder_duplication_enabled = false;
#endif #endif

35
Marlin/src/gcode/control/M605.cpp

@ -22,7 +22,7 @@
#include "../../inc/MarlinConfig.h" #include "../../inc/MarlinConfig.h"
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE) #if HAS_DUPLICATION_MODE
//#define DEBUG_DXC_MODE //#define DEBUG_DXC_MODE
@ -59,6 +59,8 @@
const DualXMode previous_mode = dual_x_carriage_mode; const DualXMode previous_mode = dual_x_carriage_mode;
dual_x_carriage_mode = (DualXMode)parser.value_byte(); dual_x_carriage_mode = (DualXMode)parser.value_byte();
#if 0
scaled_duplication_mode = false; scaled_duplication_mode = false;
if (dual_x_carriage_mode == DXC_SCALED_DUPLICATION_MODE) { if (dual_x_carriage_mode == DXC_SCALED_DUPLICATION_MODE) {
@ -77,6 +79,7 @@
} }
return; return;
} }
#endif
switch (dual_x_carriage_mode) { switch (dual_x_carriage_mode) {
case DXC_FULL_CONTROL_MODE: case DXC_FULL_CONTROL_MODE:
@ -147,16 +150,36 @@
#endif // DEBUG_DXC_MODE #endif // DEBUG_DXC_MODE
} }
#elif ENABLED(DUAL_NOZZLE_DUPLICATION_MODE) #elif ENABLED(MULTI_NOZZLE_DUPLICATION)
/**
* M605: Set multi-nozzle duplication mode
*
* S2 - Enable duplication mode
* P[mask] - Bit-mask of nozzles to include in the duplication set.
* A value of 0 disables duplication.
* E[index] - Last nozzle index to include in the duplication set.
* A value of 0 disables duplication.
*/
void GcodeSuite::M605() { void GcodeSuite::M605() {
if (parser.seen("EPS")) {
planner.synchronize(); planner.synchronize();
extruder_duplication_enabled = parser.intval('S') == (int)DXC_DUPLICATION_MODE; if (parser.seenval('P')) duplication_e_mask = parser.value_int(); // Set the mask directly
else if (parser.seenval('E')) duplication_e_mask = pow(2, e + 1) - 1; // Set the mask by E index
const bool ena = (2 == parser.intval('S', extruder_duplication_enabled ? 2 : 0));
extruder_duplication_enabled = ena && (duplication_e_mask >= 3);
}
SERIAL_ECHO_START(); SERIAL_ECHO_START();
SERIAL_ECHOPGM(MSG_DUPLICATION_MODE); SERIAL_ECHOPGM(MSG_DUPLICATION_MODE);
serialprintln_onoff(extruder_duplication_enabled); serialprint_onoff(extruder_duplication_enabled);
if (ena) {
SERIAL_ECHOPGM(" ( ");
HOTEND_LOOP() if (TEST(duplication_e_mask, e)) { SERIAL_ECHO(e); SERIAL_CHAR(' '); }
SERIAL_CHAR(')');
}
SERIAL_EOL();
} }
#endif // DUAL_NOZZLE_DUPLICATION_MODE #endif // MULTI_NOZZLE_DUPLICATION
#endif // DUAL_X_CARRIAGE || DUAL_NOZZLE_DUPLICATION_MODE #endif // HAS_DUPICATION_MODE

2
Marlin/src/gcode/gcode.cpp

@ -650,7 +650,7 @@ void GcodeSuite::process_parsed_command(
case 603: M603(); break; // M603: Configure Filament Change case 603: M603(); break; // M603: Configure Filament Change
#endif #endif
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE) #if HAS_DUPLICATION_MODE
case 605: M605(); break; // M605: Set Dual X Carriage movement mode case 605: M605(); break; // M605: Set Dual X Carriage movement mode
#endif #endif

2
Marlin/src/gcode/gcode.h

@ -769,7 +769,7 @@ private:
static void M603(); static void M603();
#endif #endif
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE) #if HAS_DUPLICATION_MODE
static void M605(); static void M605();
#endif #endif

1
Marlin/src/inc/Conditionals_LCD.h

@ -435,6 +435,7 @@
#define SWITCHING_NOZZLE_TWO_SERVOS defined(SWITCHING_NOZZLE_E1_SERVO_NR) #define SWITCHING_NOZZLE_TWO_SERVOS defined(SWITCHING_NOZZLE_E1_SERVO_NR)
#define HAS_HOTEND_OFFSET (HOTENDS > 1) #define HAS_HOTEND_OFFSET (HOTENDS > 1)
#define HAS_DUPLICATION_MODE (ENABLED(DUAL_X_CARRIAGE) || ENABLED(MULTI_NOZZLE_DUPLICATION))
/** /**
* DISTINCT_E_FACTORS affects how some E factors are accessed * DISTINCT_E_FACTORS affects how some E factors are accessed

18
Marlin/src/inc/SanityCheck.h

@ -345,6 +345,8 @@
#error "TMC_Z_CALIBRATION has been deprecated in favor of Z_STEPPER_AUTO_ALIGN. Please update your configuration." #error "TMC_Z_CALIBRATION has been deprecated in favor of Z_STEPPER_AUTO_ALIGN. Please update your configuration."
#elif defined(Z_MIN_PROBE_ENDSTOP) #elif defined(Z_MIN_PROBE_ENDSTOP)
#error "Z_MIN_PROBE_ENDSTOP is no longer required. Please remove it from Configuration.h." #error "Z_MIN_PROBE_ENDSTOP is no longer required. Please remove it from Configuration.h."
#elif defined(DUAL_NOZZLE_DUPLICATION_MODE)
#error "DUAL_NOZZLE_DUPLICATION_MODE is now MULTI_NOZZLE_DUPLICATION. Please update your configuration."
#endif #endif
#define BOARD_MKS_13 -47 #define BOARD_MKS_13 -47
@ -1444,19 +1446,19 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
#endif #endif
/** /**
* Basic 2-nozzle duplication mode * Basic multi hotend duplication mode
*/ */
#if ENABLED(DUAL_NOZZLE_DUPLICATION_MODE) #if ENABLED(MULTI_NOZZLE_DUPLICATION)
#if HOTENDS != 2 #if HOTENDS < 2
#error "DUAL_NOZZLE_DUPLICATION_MODE requires exactly 2 hotends." #error "MULTI_NOZZLE_DUPLICATION requires 2 or more hotends."
#elif ENABLED(DUAL_X_CARRIAGE) #elif ENABLED(DUAL_X_CARRIAGE)
#error "DUAL_NOZZLE_DUPLICATION_MODE is incompatible with DUAL_X_CARRIAGE." #error "MULTI_NOZZLE_DUPLICATION is incompatible with DUAL_X_CARRIAGE."
#elif ENABLED(SINGLENOZZLE) #elif ENABLED(SINGLENOZZLE)
#error "DUAL_NOZZLE_DUPLICATION_MODE is incompatible with SINGLENOZZLE." #error "MULTI_NOZZLE_DUPLICATION is incompatible with SINGLENOZZLE."
#elif ENABLED(MIXING_EXTRUDER) #elif ENABLED(MIXING_EXTRUDER)
#error "DUAL_NOZZLE_DUPLICATION_MODE is incompatible with MIXING_EXTRUDER." #error "MULTI_NOZZLE_DUPLICATION is incompatible with MIXING_EXTRUDER."
#elif ENABLED(SWITCHING_EXTRUDER) #elif ENABLED(SWITCHING_EXTRUDER)
#error "DUAL_NOZZLE_DUPLICATION_MODE is incompatible with SWITCHING_EXTRUDER." #error "MULTI_NOZZLE_DUPLICATION is incompatible with SWITCHING_EXTRUDER."
#endif #endif
#endif #endif

10
Marlin/src/module/motion.cpp

@ -872,9 +872,13 @@ void clamp_to_software_endstops(float target[XYZ]) {
#endif // !IS_KINEMATIC #endif // !IS_KINEMATIC
#endif // !UBL_SEGMENTED #endif // !UBL_SEGMENTED
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE) #if HAS_DUPLICATION_MODE
bool extruder_duplication_enabled = false, // Used in Dual X mode 2 & 3 bool extruder_duplication_enabled;
scaled_duplication_mode = false; // Used in Dual X mode 2 & 3 //scaled_duplication_mode;
#endif
#if ENABLED(MULTI_NOZZLE_DUPLICATION) && HOTENDS > 2
uint8_t duplication_e_mask; // = 0
#endif #endif
#if ENABLED(DUAL_X_CARRIAGE) #if ENABLED(DUAL_X_CARRIAGE)

14
Marlin/src/module/motion.h

@ -313,11 +313,15 @@ void homeaxis(const AxisEnum axis);
#endif #endif
/** /**
* Dual X Carriage / Dual Nozzle * Duplication mode
*/ */
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE) #if HAS_DUPLICATION_MODE
extern bool extruder_duplication_enabled, // Used in Dual X mode 2 extern bool extruder_duplication_enabled; // Used in Dual X mode 2
scaled_duplication_mode; // Used in Dual X mode 3 //scaled_duplication_mode; // Used in Dual X mode 3
#endif
#if ENABLED(MULTI_NOZZLE_DUPLICATION) && HOTENDS > 2
uint8_t duplication_e_mask;
#endif #endif
/** /**
@ -346,7 +350,7 @@ void homeaxis(const AxisEnum axis);
FORCE_INLINE int x_home_dir(const uint8_t extruder) { return extruder ? X2_HOME_DIR : X_HOME_DIR; } FORCE_INLINE int x_home_dir(const uint8_t extruder) { return extruder ? X2_HOME_DIR : X_HOME_DIR; }
#elif ENABLED(DUAL_NOZZLE_DUPLICATION_MODE) #elif ENABLED(MULTI_NOZZLE_DUPLICATION)
enum DualXMode : char { enum DualXMode : char {
DXC_DUPLICATION_MODE = 2 DXC_DUPLICATION_MODE = 2

2
Marlin/src/module/planner.cpp

@ -1996,7 +1996,7 @@ bool Planner::_populate_block(block_t * const block, bool split_move,
#endif // EXTRUDERS > 1 #endif // EXTRUDERS > 1
enable_E0(); enable_E0();
g_uc_extruder_last_move[0] = (BLOCK_BUFFER_SIZE) * 2; g_uc_extruder_last_move[0] = (BLOCK_BUFFER_SIZE) * 2;
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE) #if HAS_DUPLICATION_MODE
if (extruder_duplication_enabled) { if (extruder_duplication_enabled) {
enable_E1(); enable_E1();
g_uc_extruder_last_move[1] = (BLOCK_BUFFER_SIZE) * 2; g_uc_extruder_last_move[1] = (BLOCK_BUFFER_SIZE) * 2;

86
Marlin/src/module/stepper_indirection.h

@ -593,47 +593,79 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset
#define E_STEP_WRITE(E,V) E0_STEP_WRITE(V) #define E_STEP_WRITE(E,V) E0_STEP_WRITE(V)
#define NORM_E_DIR(E) do{ E0_DIR_WRITE(TEST(E, 0) ? !INVERT_E0_DIR: INVERT_E0_DIR); }while(0) #define NORM_E_DIR(E) do{ E0_DIR_WRITE(TEST(E, 0) ? !INVERT_E0_DIR: INVERT_E0_DIR); }while(0)
#define REV_E_DIR(E) do{ E0_DIR_WRITE(TEST(E, 0) ? INVERT_E0_DIR: !INVERT_E0_DIR); }while(0) #define REV_E_DIR(E) do{ E0_DIR_WRITE(TEST(E, 0) ? INVERT_E0_DIR: !INVERT_E0_DIR); }while(0)
#elif E_STEPPERS > 5
#define E_STEP_WRITE(E,V) do{ switch (E) { 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); case 5: E5_STEP_WRITE(V); } }while(0) #elif E_STEPPERS > 1
#define NORM_E_DIR(E) do{ switch (E) { 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); case 5: E5_DIR_WRITE(!INVERT_E5_DIR); } }while(0)
#define REV_E_DIR(E) do{ switch (E) { 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); case 5: E5_DIR_WRITE( INVERT_E5_DIR); } }while(0) #if E_STEPPERS > 5
#define _E_STEP_WRITE(E,V) do{ switch (E) { 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); case 5: E5_STEP_WRITE(V); } }while(0)
#define _NORM_E_DIR(E) do{ switch (E) { 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); case 5: E5_DIR_WRITE(!INVERT_E5_DIR); } }while(0)
#define _REV_E_DIR(E) do{ switch (E) { 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); case 5: E5_DIR_WRITE( INVERT_E5_DIR); } }while(0)
#elif E_STEPPERS > 4 #elif E_STEPPERS > 4
#define E_STEP_WRITE(E,V) do{ switch (E) { 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); } }while(0) #define _E_STEP_WRITE(E,V) do{ switch (E) { 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); } }while(0)
#define NORM_E_DIR(E) do{ switch (E) { 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); } }while(0) #define _NORM_E_DIR(E) do{ switch (E) { 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); } }while(0)
#define REV_E_DIR(E) do{ switch (E) { 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); } }while(0) #define _REV_E_DIR(E) do{ switch (E) { 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); } }while(0)
#elif E_STEPPERS > 3 #elif E_STEPPERS > 3
#define E_STEP_WRITE(E,V) do{ switch (E) { 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); } }while(0) #define _E_STEP_WRITE(E,V) do{ switch (E) { 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); } }while(0)
#define NORM_E_DIR(E) do{ switch (E) { 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); } }while(0) #define _NORM_E_DIR(E) do{ switch (E) { 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); } }while(0)
#define REV_E_DIR(E) do{ switch (E) { 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); } }while(0) #define _REV_E_DIR(E) do{ switch (E) { 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); } }while(0)
#elif E_STEPPERS > 2 #elif E_STEPPERS > 2
#define E_STEP_WRITE(E,V) do{ switch (E) { case 0: E0_STEP_WRITE(V); break; case 1: E1_STEP_WRITE(V); break; case 2: E2_STEP_WRITE(V); } }while(0) #define _E_STEP_WRITE(E,V) do{ switch (E) { case 0: E0_STEP_WRITE(V); break; case 1: E1_STEP_WRITE(V); break; case 2: E2_STEP_WRITE(V); } }while(0)
#define NORM_E_DIR(E) do{ switch (E) { 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); } }while(0) #define _NORM_E_DIR(E) do{ switch (E) { 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); } }while(0)
#define REV_E_DIR(E) do{ switch (E) { 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); } }while(0) #define _REV_E_DIR(E) do{ switch (E) { 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); } }while(0)
#elif E_STEPPERS > 1 #else
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE) #define _E_STEP_WRITE(E,V) do{ if (E == 0) { E0_STEP_WRITE(V); } else { E1_STEP_WRITE(V); } }while(0)
#define _NORM_E_DIR(E) do{ if (E == 0) { E0_DIR_WRITE(!INVERT_E0_DIR); } else { E1_DIR_WRITE(!INVERT_E1_DIR); } }while(0)
#define _REV_E_DIR(E) do{ if (E == 0) { E0_DIR_WRITE( INVERT_E0_DIR); } else { E1_DIR_WRITE( INVERT_E1_DIR); } }while(0)
#endif
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(MULTI_NOZZLE_DUPLICATION)
#define E_STEP_WRITE(E,V) do{ if (extruder_duplication_enabled) { E0_STEP_WRITE(V); E1_STEP_WRITE(V); } \ #define NDIR(N) _DUPE(DIR,!INVERT_E##N##_DIR)
else if ((E) == 0) { E0_STEP_WRITE(V); } \ #define RDIR(N) _DUPE(DIR, INVERT_E##N##_DIR)
else { E1_STEP_WRITE(V); } }while(0) #define E_STEP_WRITE(E,V) do{ if (extruder_duplication_enabled) { DUPE(STEP,V); } else _E_STEP_WRITE(E,V); }while(0)
#define NORM_E_DIR(E) do{ if (extruder_duplication_enabled) { E0_DIR_WRITE(!INVERT_E0_DIR); E1_DIR_WRITE(!INVERT_E1_DIR); } \ #if E_STEPPERS > 2
else if ((E) == 0) { E0_DIR_WRITE(!INVERT_E0_DIR); } \ #define _DUPE(N,T,V) do{ if (duplication_e_mask <= (N)) E##N##_##T##_WRITE(V); }while(0)
else { E1_DIR_WRITE(!INVERT_E1_DIR); } }while(0) #if E_STEPPERS > 5
#define DUPE(T,V) do{ _DUPE(0,T,V); _DUPE(1,T,V); _DUPE(2,T,V); _DUPE(3,T,V); _DUPE(4,T,V); _DUPE(5,T,V); }while(0)
#define NORM_E_DIR(E) do{ if (extruder_duplication_enabled) { NDIR(0); NDIR(1); NDIR(2); NDIR(3); NDIR(4); NDIR(5); } else _NORM_E_DIR(E); }while(0)
#define REV_E_DIR(E) do{ if (extruder_duplication_enabled) { RDIR(0); RDIR(1); RDIR(2); RDIR(3); RDIR(4); RDIR(5); } else _REV_E_DIR(E); }while(0)
#elif E_STEPPERS > 4
#define DUPE(T,V) do{ _DUPE(0,T,V); _DUPE(1,T,V); _DUPE(2,T,V); _DUPE(3,T,V); _DUPE(4,T,V); }while(0)
#define NORM_E_DIR(E) do{ if (extruder_duplication_enabled) { NDIR(0); NDIR(1); NDIR(2); NDIR(3); NDIR(4); } else _NORM_E_DIR(E); }while(0)
#define REV_E_DIR(E) do{ if (extruder_duplication_enabled) { RDIR(0); RDIR(1); RDIR(2); RDIR(3); RDIR(4); } else _REV_E_DIR(E); }while(0)
#elif E_STEPPERS > 3
#define DUPE(T,V) do{ _DUPE(0,T,V); _DUPE(1,T,V); _DUPE(2,T,V); _DUPE(3,T,V); }while(0)
#define NORM_E_DIR(E) do{ if (extruder_duplication_enabled) { NDIR(0); NDIR(1); NDIR(2); NDIR(3); } else _NORM_E_DIR(E); }while(0)
#define REV_E_DIR(E) do{ if (extruder_duplication_enabled) { RDIR(0); RDIR(1); RDIR(2); RDIR(3); } else _REV_E_DIR(E); }while(0)
#else
#define DUPE(T,V) do{ _DUPE(0,T,V); _DUPE(1,T,V); _DUPE(2,T,V); }while(0)
#define NORM_E_DIR(E) do{ if (extruder_duplication_enabled) { NDIR(0); NDIR(1); NDIR(2); } else _NORM_E_DIR(E); }while(0)
#define REV_E_DIR(E) do{ if (extruder_duplication_enabled) { RDIR(0); RDIR(1); RDIR(2); } else _REV_E_DIR(E); }while(0)
#endif
#else
#define _DUPE(T,V) do{ E0_##T##_WRITE(V); E1_##T##_WRITE(V); }while(0)
#define DUPE(T,V) _DUPE(T,V)
#define NORM_E_DIR(E) do{ if (extruder_duplication_enabled) { NDIR(0); NDIR(1); } else _NORM_E_DIR(E); }while(0)
#define REV_E_DIR(E) do{ if (extruder_duplication_enabled) { RDIR(0); RDIR(1); } else _REV_E_DIR(E); }while(0)
#endif
#define REV_E_DIR(E) do{ if (extruder_duplication_enabled) { E0_DIR_WRITE( INVERT_E0_DIR); E1_DIR_WRITE( INVERT_E1_DIR); } \
else if ((E) == 0) { E0_DIR_WRITE( INVERT_E0_DIR); } \
else { E1_DIR_WRITE( INVERT_E1_DIR); } }while(0)
#else #else
#define E_STEP_WRITE(E,V) do{ if (E == 0) { E0_STEP_WRITE(V); } else { E1_STEP_WRITE(V); } }while(0)
#define NORM_E_DIR(E) do{ if (E == 0) { E0_DIR_WRITE(!INVERT_E0_DIR); } else { E1_DIR_WRITE(!INVERT_E1_DIR); } }while(0) #define E_STEP_WRITE(E,V) _E_STEP_WRITE(E,V)
#define REV_E_DIR(E) do{ if (E == 0) { E0_DIR_WRITE( INVERT_E0_DIR); } else { E1_DIR_WRITE( INVERT_E1_DIR); } }while(0) #define NORM_E_DIR(E) _NORM_E_DIR(E)
#define REV_E_DIR(E) _REV_E_DIR(E)
#endif #endif
#elif E_STEPPERS #elif E_STEPPERS
#define E_STEP_WRITE(E,V) E0_STEP_WRITE(V) #define E_STEP_WRITE(E,V) E0_STEP_WRITE(V)
#define NORM_E_DIR(E) E0_DIR_WRITE(!INVERT_E0_DIR) #define NORM_E_DIR(E) E0_DIR_WRITE(!INVERT_E0_DIR)
#define REV_E_DIR(E) E0_DIR_WRITE( INVERT_E0_DIR) #define REV_E_DIR(E) E0_DIR_WRITE( INVERT_E0_DIR)
#else #else
#define E_STEP_WRITE(E,V) NOOP #define E_STEP_WRITE(E,V) NOOP
#define NORM_E_DIR(E) NOOP #define NORM_E_DIR(E) NOOP
#define REV_E_DIR(E) NOOP #define REV_E_DIR(E) NOOP
#endif #endif

4
config/default/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/3DFabXYZ/Migbot/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/AlephObjects/TAZ4/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/AliExpress/UM2pExt/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Anet/A2/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Anet/A2plus/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Anet/A6/Configuration_adv.h

@ -478,8 +478,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Anet/A8/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/AnyCubic/i3/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/ArmEd/Configuration_adv.h

@ -483,8 +483,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/BIBO/TouchX/cyclops/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/BIBO/TouchX/default/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/BQ/Hephestos/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/BQ/Hephestos_2/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/BQ/WITBOX/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Cartesio/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Creality/CR-10/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Creality/CR-10S/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Creality/CR-10_5S/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Creality/CR-10mini/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Creality/CR-8/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Creality/Ender-2/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Creality/Ender-3/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Creality/Ender-4/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Einstart-S/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Felix/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/FlashForge/CreatorPro/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/FolgerTech/i3-2020/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Formbot/Raptor/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Formbot/T_Rex_2+/Configuration_adv.h

@ -483,8 +483,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Formbot/T_Rex_3/Configuration_adv.h

@ -484,8 +484,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Geeetech/A10M/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Geeetech/A20M/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Geeetech/MeCreator2/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Geeetech/Prusa i3 Pro C/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Geeetech/Prusa i3 Pro W/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Infitary/i3-M508/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/JGAurora/A5/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/MakerParts/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Malyan/M150/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Malyan/M200/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Micromake/C1/enhanced/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Mks/Robin/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Mks/Sbase/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/RapideLite/RL200/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/RigidBot/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/SCARA/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Sanguinololu/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/TheBorg/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/TinyBoy2/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Tronxy/X3A/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Tronxy/X5S-2E/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/UltiMachine/Archim1/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/UltiMachine/Archim2/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/VORONDesign/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Velleman/K8200/Configuration_adv.h

@ -492,8 +492,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Velleman/K8400/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/WASP/PowerWASP/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/Wanhao/Duplicator 6/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/delta/Anycubic/Kossel/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/delta/FLSUN/kossel/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/delta/Geeetech/Rostock 301/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/delta/MKS/SBASE/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/delta/Tevo Little Monster/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/delta/generic/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/delta/kossel_mini/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/delta/kossel_xl/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/gCreate/gMax1.5+/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/makibox/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/tvrrug/Round2/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

4
config/examples/wt150/Configuration_adv.h

@ -479,8 +479,8 @@
#define AXIS_RELATIVE_MODES {false, false, false, false} #define AXIS_RELATIVE_MODES {false, false, false, false}
// Allow duplication mode with a basic dual-nozzle extruder // Add a Duplicate option for well-separated conjoined nozzles
//#define DUAL_NOZZLE_DUPLICATION_MODE //#define MULTI_NOZZLE_DUPLICATION
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. // By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
#define INVERT_X_STEP_PIN false #define INVERT_X_STEP_PIN false

Loading…
Cancel
Save