Parcourir la 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)
InsanityAutomation il y a 5 ans
Parent
révision
050eac03af
86 fichiers modifiés avec 287 ajouts et 218 suppressions
  1. 2
    2
      Marlin/Configuration_adv.h
  2. 14
    11
      Marlin/src/feature/runout.h
  3. 1
    1
      Marlin/src/gcode/calibrate/G28.cpp
  4. 1
    1
      Marlin/src/gcode/calibrate/G34_M422.cpp
  5. 32
    9
      Marlin/src/gcode/control/M605.cpp
  6. 1
    1
      Marlin/src/gcode/gcode.cpp
  7. 1
    1
      Marlin/src/gcode/gcode.h
  8. 1
    0
      Marlin/src/inc/Conditionals_LCD.h
  9. 10
    8
      Marlin/src/inc/SanityCheck.h
  10. 7
    3
      Marlin/src/module/motion.cpp
  11. 9
    5
      Marlin/src/module/motion.h
  12. 1
    1
      Marlin/src/module/planner.cpp
  13. 61
    29
      Marlin/src/module/stepper_indirection.h
  14. 2
    2
      config/default/Configuration_adv.h
  15. 2
    2
      config/examples/3DFabXYZ/Migbot/Configuration_adv.h
  16. 2
    2
      config/examples/AlephObjects/TAZ4/Configuration_adv.h
  17. 2
    2
      config/examples/AliExpress/UM2pExt/Configuration_adv.h
  18. 2
    2
      config/examples/Anet/A2/Configuration_adv.h
  19. 2
    2
      config/examples/Anet/A2plus/Configuration_adv.h
  20. 2
    2
      config/examples/Anet/A6/Configuration_adv.h
  21. 2
    2
      config/examples/Anet/A8/Configuration_adv.h
  22. 2
    2
      config/examples/AnyCubic/i3/Configuration_adv.h
  23. 2
    2
      config/examples/ArmEd/Configuration_adv.h
  24. 2
    2
      config/examples/BIBO/TouchX/cyclops/Configuration_adv.h
  25. 2
    2
      config/examples/BIBO/TouchX/default/Configuration_adv.h
  26. 2
    2
      config/examples/BQ/Hephestos/Configuration_adv.h
  27. 2
    2
      config/examples/BQ/Hephestos_2/Configuration_adv.h
  28. 2
    2
      config/examples/BQ/WITBOX/Configuration_adv.h
  29. 2
    2
      config/examples/Cartesio/Configuration_adv.h
  30. 2
    2
      config/examples/Creality/CR-10/Configuration_adv.h
  31. 2
    2
      config/examples/Creality/CR-10S/Configuration_adv.h
  32. 2
    2
      config/examples/Creality/CR-10_5S/Configuration_adv.h
  33. 2
    2
      config/examples/Creality/CR-10mini/Configuration_adv.h
  34. 2
    2
      config/examples/Creality/CR-8/Configuration_adv.h
  35. 2
    2
      config/examples/Creality/Ender-2/Configuration_adv.h
  36. 2
    2
      config/examples/Creality/Ender-3/Configuration_adv.h
  37. 2
    2
      config/examples/Creality/Ender-4/Configuration_adv.h
  38. 2
    2
      config/examples/Einstart-S/Configuration_adv.h
  39. 2
    2
      config/examples/Felix/Configuration_adv.h
  40. 2
    2
      config/examples/FlashForge/CreatorPro/Configuration_adv.h
  41. 2
    2
      config/examples/FolgerTech/i3-2020/Configuration_adv.h
  42. 2
    2
      config/examples/Formbot/Raptor/Configuration_adv.h
  43. 2
    2
      config/examples/Formbot/T_Rex_2+/Configuration_adv.h
  44. 2
    2
      config/examples/Formbot/T_Rex_3/Configuration_adv.h
  45. 2
    2
      config/examples/Geeetech/A10M/Configuration_adv.h
  46. 2
    2
      config/examples/Geeetech/A20M/Configuration_adv.h
  47. 2
    2
      config/examples/Geeetech/MeCreator2/Configuration_adv.h
  48. 2
    2
      config/examples/Geeetech/Prusa i3 Pro C/Configuration_adv.h
  49. 2
    2
      config/examples/Geeetech/Prusa i3 Pro W/Configuration_adv.h
  50. 2
    2
      config/examples/Infitary/i3-M508/Configuration_adv.h
  51. 2
    2
      config/examples/JGAurora/A5/Configuration_adv.h
  52. 2
    2
      config/examples/MakerParts/Configuration_adv.h
  53. 2
    2
      config/examples/Malyan/M150/Configuration_adv.h
  54. 2
    2
      config/examples/Malyan/M200/Configuration_adv.h
  55. 2
    2
      config/examples/Micromake/C1/enhanced/Configuration_adv.h
  56. 2
    2
      config/examples/Mks/Robin/Configuration_adv.h
  57. 2
    2
      config/examples/Mks/Sbase/Configuration_adv.h
  58. 2
    2
      config/examples/RapideLite/RL200/Configuration_adv.h
  59. 2
    2
      config/examples/RigidBot/Configuration_adv.h
  60. 2
    2
      config/examples/SCARA/Configuration_adv.h
  61. 2
    2
      config/examples/Sanguinololu/Configuration_adv.h
  62. 2
    2
      config/examples/TheBorg/Configuration_adv.h
  63. 2
    2
      config/examples/TinyBoy2/Configuration_adv.h
  64. 2
    2
      config/examples/Tronxy/X3A/Configuration_adv.h
  65. 2
    2
      config/examples/Tronxy/X5S-2E/Configuration_adv.h
  66. 2
    2
      config/examples/UltiMachine/Archim1/Configuration_adv.h
  67. 2
    2
      config/examples/UltiMachine/Archim2/Configuration_adv.h
  68. 2
    2
      config/examples/VORONDesign/Configuration_adv.h
  69. 2
    2
      config/examples/Velleman/K8200/Configuration_adv.h
  70. 2
    2
      config/examples/Velleman/K8400/Configuration_adv.h
  71. 2
    2
      config/examples/WASP/PowerWASP/Configuration_adv.h
  72. 2
    2
      config/examples/Wanhao/Duplicator 6/Configuration_adv.h
  73. 2
    2
      config/examples/delta/Anycubic/Kossel/Configuration_adv.h
  74. 2
    2
      config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h
  75. 2
    2
      config/examples/delta/FLSUN/kossel/Configuration_adv.h
  76. 2
    2
      config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h
  77. 2
    2
      config/examples/delta/Geeetech/Rostock 301/Configuration_adv.h
  78. 2
    2
      config/examples/delta/MKS/SBASE/Configuration_adv.h
  79. 2
    2
      config/examples/delta/Tevo Little Monster/Configuration_adv.h
  80. 2
    2
      config/examples/delta/generic/Configuration_adv.h
  81. 2
    2
      config/examples/delta/kossel_mini/Configuration_adv.h
  82. 2
    2
      config/examples/delta/kossel_xl/Configuration_adv.h
  83. 2
    2
      config/examples/gCreate/gMax1.5+/Configuration_adv.h
  84. 2
    2
      config/examples/makibox/Configuration_adv.h
  85. 2
    2
      config/examples/tvrrug/Round2/Configuration_adv.h
  86. 2
    2
      config/examples/wt150/Configuration_adv.h

+ 2
- 2
Marlin/Configuration_adv.h Voir le fichier

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

+ 14
- 11
Marlin/src/feature/runout.h Voir le fichier

@@ -230,20 +230,23 @@ class FilamentSensorBase {
230 230
     private:
231 231
       static inline bool poll_runout_state(const uint8_t extruder) {
232 232
         const uint8_t runout_states = poll_runout_states();
233
+
233 234
         #if NUM_RUNOUT_SENSORS == 1
234 235
           UNUSED(extruder);
235
-          return runout_states;                     // A single sensor applying to all extruders
236
-        #else
237
-          #if ENABLED(DUAL_X_CARRIAGE)
238
-            if (dual_x_carriage_mode == DXC_DUPLICATION_MODE || dual_x_carriage_mode == DXC_SCALED_DUPLICATION_MODE)
239
-              return runout_states;                 // Any extruder
240
-            else
241
-          #elif ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
242
-            if (extruder_duplication_enabled)
243
-              return runout_states;                 // Any extruder
244
-            else
236
+        #endif
237
+
238
+        if (true
239
+          #if NUM_RUNOUT_SENSORS > 1
240
+            #if ENABLED(DUAL_X_CARRIAGE)
241
+              && (dual_x_carriage_mode == DXC_DUPLICATION_MODE || dual_x_carriage_mode == DXC_SCALED_DUPLICATION_MODE)
242
+            #elif ENABLED(MULTI_NOZZLE_DUPLICATION)
243
+              && extruder_duplication_enabled
244
+            #endif
245 245
           #endif
246
-              return TEST(runout_states, extruder); // Specific extruder
246
+        ) return runout_states;               // Any extruder
247
+
248
+        #if NUM_RUNOUT_SENSORS > 1
249
+          return TEST(runout_states, extruder); // Specific extruder
247 250
         #endif
248 251
       }
249 252
 

+ 1
- 1
Marlin/src/gcode/calibrate/G28.cpp Voir le fichier

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

+ 1
- 1
Marlin/src/gcode/calibrate/G34_M422.cpp Voir le fichier

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

+ 32
- 9
Marlin/src/gcode/control/M605.cpp Voir le fichier

@@ -22,7 +22,7 @@
22 22
 
23 23
 #include "../../inc/MarlinConfig.h"
24 24
 
25
-#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
25
+#if HAS_DUPLICATION_MODE
26 26
 
27 27
 //#define DEBUG_DXC_MODE
28 28
 
@@ -38,8 +38,8 @@
38 38
    * M605: Set dual x-carriage movement mode
39 39
    *
40 40
    *    M605    : Restore user specified DEFAULT_DUAL_X_CARRIAGE_MODE
41
-   *    M605 S0: Full control mode. The slicer has full control over x-carriage movement
42
-   *    M605 S1: Auto-park mode. The inactive head will auto park/unpark without slicer involvement
41
+   *    M605 S0 : Full control mode. The slicer has full control over x-carriage movement
42
+   *    M605 S1 : Auto-park mode. The inactive head will auto park/unpark without slicer involvement
43 43
    *    M605 S2 [Xnnn] [Rmmm]: Duplication mode. The second extruder will duplicate the first with nnn
44 44
    *                         units x-offset and an optional differential hotend temperature of
45 45
    *                         mmm degrees. E.g., with "M605 S2 X100 R2" the second extruder will duplicate
@@ -59,6 +59,8 @@
59 59
       const DualXMode previous_mode = dual_x_carriage_mode;
60 60
 
61 61
       dual_x_carriage_mode = (DualXMode)parser.value_byte();
62
+
63
+      #if 0
62 64
       scaled_duplication_mode = false;
63 65
 
64 66
       if (dual_x_carriage_mode == DXC_SCALED_DUPLICATION_MODE) {
@@ -77,6 +79,7 @@
77 79
         }
78 80
         return;
79 81
       }
82
+      #endif
80 83
 
81 84
       switch (dual_x_carriage_mode) {
82 85
         case DXC_FULL_CONTROL_MODE:
@@ -147,16 +150,36 @@
147 150
     #endif // DEBUG_DXC_MODE
148 151
   }
149 152
 
150
-#elif ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
153
+#elif ENABLED(MULTI_NOZZLE_DUPLICATION)
151 154
 
155
+  /**
156
+   * M605: Set multi-nozzle duplication mode
157
+   *
158
+   *  S2       - Enable duplication mode
159
+   *  P[mask]  - Bit-mask of nozzles to include in the duplication set.
160
+   *             A value of 0 disables duplication.
161
+   *  E[index] - Last nozzle index to include in the duplication set.
162
+   *             A value of 0 disables duplication.
163
+   */
152 164
   void GcodeSuite::M605() {
153
-    planner.synchronize();
154
-    extruder_duplication_enabled = parser.intval('S') == (int)DXC_DUPLICATION_MODE;
165
+    if (parser.seen("EPS")) {
166
+      planner.synchronize();
167
+      if (parser.seenval('P')) duplication_e_mask = parser.value_int();   // Set the mask directly
168
+      else if (parser.seenval('E')) duplication_e_mask = pow(2, e + 1) - 1;    // Set the mask by E index
169
+      const bool ena = (2 == parser.intval('S', extruder_duplication_enabled ? 2 : 0));
170
+      extruder_duplication_enabled = ena && (duplication_e_mask >= 3);
171
+    }
155 172
     SERIAL_ECHO_START();
156 173
     SERIAL_ECHOPGM(MSG_DUPLICATION_MODE);
157
-    serialprintln_onoff(extruder_duplication_enabled);
174
+    serialprint_onoff(extruder_duplication_enabled);
175
+    if (ena) {
176
+      SERIAL_ECHOPGM(" ( ");
177
+      HOTEND_LOOP() if (TEST(duplication_e_mask, e)) { SERIAL_ECHO(e); SERIAL_CHAR(' '); }
178
+      SERIAL_CHAR(')');
179
+    }
180
+    SERIAL_EOL();
158 181
   }
159 182
 
160
-#endif // DUAL_NOZZLE_DUPLICATION_MODE
183
+#endif // MULTI_NOZZLE_DUPLICATION
161 184
 
162
-#endif // DUAL_X_CARRIAGE || DUAL_NOZZLE_DUPLICATION_MODE
185
+#endif // HAS_DUPICATION_MODE

+ 1
- 1
Marlin/src/gcode/gcode.cpp Voir le fichier

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

+ 1
- 1
Marlin/src/gcode/gcode.h Voir le fichier

@@ -769,7 +769,7 @@ private:
769 769
     static void M603();
770 770
   #endif
771 771
 
772
-  #if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
772
+  #if HAS_DUPLICATION_MODE
773 773
     static void M605();
774 774
   #endif
775 775
 

+ 1
- 0
Marlin/src/inc/Conditionals_LCD.h Voir le fichier

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

+ 10
- 8
Marlin/src/inc/SanityCheck.h Voir le fichier

@@ -345,6 +345,8 @@
345 345
   #error "TMC_Z_CALIBRATION has been deprecated in favor of Z_STEPPER_AUTO_ALIGN. Please update your configuration."
346 346
 #elif defined(Z_MIN_PROBE_ENDSTOP)
347 347
   #error "Z_MIN_PROBE_ENDSTOP is no longer required. Please remove it from Configuration.h."
348
+#elif defined(DUAL_NOZZLE_DUPLICATION_MODE)
349
+  #error "DUAL_NOZZLE_DUPLICATION_MODE is now MULTI_NOZZLE_DUPLICATION. Please update your configuration."
348 350
 #endif
349 351
 
350 352
 #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
1444 1446
 #endif
1445 1447
 
1446 1448
 /**
1447
- * Basic 2-nozzle duplication mode
1449
+ * Basic multi hotend duplication mode
1448 1450
  */
1449
-#if ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
1450
-  #if HOTENDS != 2
1451
-    #error "DUAL_NOZZLE_DUPLICATION_MODE requires exactly 2 hotends."
1451
+#if ENABLED(MULTI_NOZZLE_DUPLICATION)
1452
+  #if HOTENDS < 2
1453
+    #error "MULTI_NOZZLE_DUPLICATION requires 2 or more hotends."
1452 1454
   #elif ENABLED(DUAL_X_CARRIAGE)
1453
-    #error "DUAL_NOZZLE_DUPLICATION_MODE is incompatible with DUAL_X_CARRIAGE."
1455
+    #error "MULTI_NOZZLE_DUPLICATION is incompatible with DUAL_X_CARRIAGE."
1454 1456
   #elif ENABLED(SINGLENOZZLE)
1455
-    #error "DUAL_NOZZLE_DUPLICATION_MODE is incompatible with SINGLENOZZLE."
1457
+    #error "MULTI_NOZZLE_DUPLICATION is incompatible with SINGLENOZZLE."
1456 1458
   #elif ENABLED(MIXING_EXTRUDER)
1457
-    #error "DUAL_NOZZLE_DUPLICATION_MODE is incompatible with MIXING_EXTRUDER."
1459
+    #error "MULTI_NOZZLE_DUPLICATION is incompatible with MIXING_EXTRUDER."
1458 1460
   #elif ENABLED(SWITCHING_EXTRUDER)
1459
-    #error "DUAL_NOZZLE_DUPLICATION_MODE is incompatible with SWITCHING_EXTRUDER."
1461
+    #error "MULTI_NOZZLE_DUPLICATION is incompatible with SWITCHING_EXTRUDER."
1460 1462
   #endif
1461 1463
 #endif
1462 1464
 

+ 7
- 3
Marlin/src/module/motion.cpp Voir le fichier

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

+ 9
- 5
Marlin/src/module/motion.h Voir le fichier

@@ -313,11 +313,15 @@ void homeaxis(const AxisEnum axis);
313 313
 #endif
314 314
 
315 315
 /**
316
- * Dual X Carriage / Dual Nozzle
316
+ * Duplication mode
317 317
  */
318
-#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
319
-  extern bool extruder_duplication_enabled,       // Used in Dual X mode 2
320
-              scaled_duplication_mode;            // Used in Dual X mode 3
318
+#if HAS_DUPLICATION_MODE
319
+  extern bool extruder_duplication_enabled;       // Used in Dual X mode 2
320
+              //scaled_duplication_mode;            // Used in Dual X mode 3
321
+#endif
322
+
323
+#if ENABLED(MULTI_NOZZLE_DUPLICATION) && HOTENDS > 2
324
+  uint8_t duplication_e_mask;
321 325
 #endif
322 326
 
323 327
 /**
@@ -346,7 +350,7 @@ void homeaxis(const AxisEnum axis);
346 350
 
347 351
   FORCE_INLINE int x_home_dir(const uint8_t extruder) { return extruder ? X2_HOME_DIR : X_HOME_DIR; }
348 352
 
349
-#elif ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
353
+#elif ENABLED(MULTI_NOZZLE_DUPLICATION)
350 354
 
351 355
   enum DualXMode : char {
352 356
     DXC_DUPLICATION_MODE = 2

+ 1
- 1
Marlin/src/module/planner.cpp Voir le fichier

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

+ 61
- 29
Marlin/src/module/stepper_indirection.h Voir le fichier

@@ -593,47 +593,79 @@ void reset_stepper_drivers();    // Called by settings.load / settings.reset
593 593
   #define E_STEP_WRITE(E,V) E0_STEP_WRITE(V)
594 594
   #define   NORM_E_DIR(E)   do{ E0_DIR_WRITE(TEST(E, 0) ? !INVERT_E0_DIR:  INVERT_E0_DIR); }while(0)
595 595
   #define    REV_E_DIR(E)   do{ E0_DIR_WRITE(TEST(E, 0) ?  INVERT_E0_DIR: !INVERT_E0_DIR); }while(0)
596
-#elif E_STEPPERS > 5
597
-  #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)
598
-  #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)
599
-  #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)
600
-#elif E_STEPPERS > 4
601
-  #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)
602
-  #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)
603
-  #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)
604
-#elif E_STEPPERS > 3
605
-  #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)
606
-  #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)
607
-  #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)
608
-#elif E_STEPPERS > 2
609
-  #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)
610
-  #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)
611
-  #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)
596
+
612 597
 #elif E_STEPPERS > 1
613
-  #if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
614 598
 
615
-    #define E_STEP_WRITE(E,V) do{ if (extruder_duplication_enabled)  { E0_STEP_WRITE(V); E1_STEP_WRITE(V); } \
616
-                                                  else if ((E) == 0) { E0_STEP_WRITE(V); } \
617
-                                                  else               { E1_STEP_WRITE(V); } }while(0)
599
+  #if E_STEPPERS > 5
600
+    #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)
601
+    #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)
602
+    #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)
603
+  #elif E_STEPPERS > 4
604
+    #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)
605
+    #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)
606
+    #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)
607
+  #elif E_STEPPERS > 3
608
+    #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)
609
+    #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)
610
+    #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)
611
+  #elif E_STEPPERS > 2
612
+    #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)
613
+    #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)
614
+    #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)
615
+  #else
616
+    #define _E_STEP_WRITE(E,V) do{ if (E == 0) { E0_STEP_WRITE(V); } else { E1_STEP_WRITE(V); } }while(0)
617
+    #define   _NORM_E_DIR(E)   do{ if (E == 0) { E0_DIR_WRITE(!INVERT_E0_DIR); } else { E1_DIR_WRITE(!INVERT_E1_DIR); } }while(0)
618
+    #define    _REV_E_DIR(E)   do{ if (E == 0) { E0_DIR_WRITE( INVERT_E0_DIR); } else { E1_DIR_WRITE( INVERT_E1_DIR); } }while(0)
619
+  #endif
620
+
621
+  #if ENABLED(DUAL_X_CARRIAGE) || ENABLED(MULTI_NOZZLE_DUPLICATION)
622
+
623
+    #define NDIR(N) _DUPE(DIR,!INVERT_E##N##_DIR)
624
+    #define RDIR(N) _DUPE(DIR, INVERT_E##N##_DIR)
625
+    #define E_STEP_WRITE(E,V) do{ if (extruder_duplication_enabled) { DUPE(STEP,V); } else _E_STEP_WRITE(E,V); }while(0)
618 626
 
619
-    #define   NORM_E_DIR(E)   do{ if (extruder_duplication_enabled)  { E0_DIR_WRITE(!INVERT_E0_DIR); E1_DIR_WRITE(!INVERT_E1_DIR); } \
620
-                                                  else if ((E) == 0) { E0_DIR_WRITE(!INVERT_E0_DIR); } \
621
-                                                  else               { E1_DIR_WRITE(!INVERT_E1_DIR); } }while(0)
627
+    #if E_STEPPERS > 2
628
+      #define _DUPE(N,T,V)    do{ if (duplication_e_mask <= (N)) E##N##_##T##_WRITE(V); }while(0)
629
+      #if E_STEPPERS > 5
630
+        #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)
631
+        #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)
632
+        #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)
633
+      #elif E_STEPPERS > 4
634
+        #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)
635
+        #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)
636
+        #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)
637
+      #elif E_STEPPERS > 3
638
+        #define DUPE(T,V)     do{ _DUPE(0,T,V); _DUPE(1,T,V); _DUPE(2,T,V); _DUPE(3,T,V); }while(0)
639
+        #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)
640
+        #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)
641
+      #else
642
+        #define DUPE(T,V)     do{ _DUPE(0,T,V); _DUPE(1,T,V); _DUPE(2,T,V); }while(0)
643
+        #define NORM_E_DIR(E) do{ if (extruder_duplication_enabled) { NDIR(0); NDIR(1); NDIR(2); } else _NORM_E_DIR(E); }while(0)
644
+        #define REV_E_DIR(E)  do{ if (extruder_duplication_enabled) { RDIR(0); RDIR(1); RDIR(2); } else  _REV_E_DIR(E); }while(0)
645
+      #endif
646
+    #else
647
+      #define _DUPE(T,V)    do{ E0_##T##_WRITE(V); E1_##T##_WRITE(V); }while(0)
648
+      #define DUPE(T,V)  _DUPE(T,V)
649
+      #define NORM_E_DIR(E) do{ if (extruder_duplication_enabled) { NDIR(0); NDIR(1); } else _NORM_E_DIR(E); }while(0)
650
+      #define REV_E_DIR(E)  do{ if (extruder_duplication_enabled) { RDIR(0); RDIR(1); } else  _REV_E_DIR(E); }while(0)
651
+    #endif
622 652
 
623
-    #define    REV_E_DIR(E)   do{ if (extruder_duplication_enabled)  { E0_DIR_WRITE( INVERT_E0_DIR); E1_DIR_WRITE( INVERT_E1_DIR); } \
624
-                                                  else if ((E) == 0) { E0_DIR_WRITE( INVERT_E0_DIR); } \
625
-                                                  else               { E1_DIR_WRITE( INVERT_E1_DIR); } }while(0)
626 653
   #else
627
-    #define E_STEP_WRITE(E,V) do{ if (E == 0) { E0_STEP_WRITE(V); } else { E1_STEP_WRITE(V); } }while(0)
628
-    #define   NORM_E_DIR(E)   do{ if (E == 0) { E0_DIR_WRITE(!INVERT_E0_DIR); } else { E1_DIR_WRITE(!INVERT_E1_DIR); } }while(0)
629
-    #define    REV_E_DIR(E)   do{ if (E == 0) { E0_DIR_WRITE( INVERT_E0_DIR); } else { E1_DIR_WRITE( INVERT_E1_DIR); } }while(0)
654
+
655
+    #define E_STEP_WRITE(E,V) _E_STEP_WRITE(E,V)
656
+    #define   NORM_E_DIR(E)   _NORM_E_DIR(E)
657
+    #define    REV_E_DIR(E)   _REV_E_DIR(E)
658
+
630 659
   #endif
660
+
631 661
 #elif E_STEPPERS
632 662
   #define E_STEP_WRITE(E,V) E0_STEP_WRITE(V)
633 663
   #define   NORM_E_DIR(E)   E0_DIR_WRITE(!INVERT_E0_DIR)
634 664
   #define    REV_E_DIR(E)   E0_DIR_WRITE( INVERT_E0_DIR)
665
+
635 666
 #else
636 667
   #define E_STEP_WRITE(E,V) NOOP
637 668
   #define   NORM_E_DIR(E)   NOOP
638 669
   #define    REV_E_DIR(E)   NOOP
670
+
639 671
 #endif

+ 2
- 2
config/default/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/3DFabXYZ/Migbot/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/AlephObjects/TAZ4/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/AliExpress/UM2pExt/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Anet/A2/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Anet/A2plus/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Anet/A6/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Anet/A8/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/AnyCubic/i3/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/ArmEd/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/BIBO/TouchX/cyclops/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/BIBO/TouchX/default/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/BQ/Hephestos/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/BQ/Hephestos_2/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/BQ/WITBOX/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Cartesio/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Creality/CR-10/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Creality/CR-10S/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Creality/CR-10_5S/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Creality/CR-10mini/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Creality/CR-8/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Creality/Ender-2/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Creality/Ender-3/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Creality/Ender-4/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Einstart-S/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Felix/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/FlashForge/CreatorPro/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/FolgerTech/i3-2020/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Formbot/Raptor/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Formbot/T_Rex_2+/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Formbot/T_Rex_3/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Geeetech/A10M/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Geeetech/A20M/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Geeetech/MeCreator2/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Geeetech/Prusa i3 Pro C/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Geeetech/Prusa i3 Pro W/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Infitary/i3-M508/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/JGAurora/A5/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/MakerParts/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Malyan/M150/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Malyan/M200/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Micromake/C1/enhanced/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Mks/Robin/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Mks/Sbase/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/RapideLite/RL200/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/RigidBot/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/SCARA/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Sanguinololu/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/TheBorg/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/TinyBoy2/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Tronxy/X3A/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Tronxy/X5S-2E/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/UltiMachine/Archim1/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/UltiMachine/Archim2/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/VORONDesign/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Velleman/K8200/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Velleman/K8400/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/WASP/PowerWASP/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/Wanhao/Duplicator 6/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/delta/Anycubic/Kossel/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/delta/FLSUN/kossel/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/delta/Geeetech/Rostock 301/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/delta/MKS/SBASE/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/delta/Tevo Little Monster/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/delta/generic/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/delta/kossel_mini/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/delta/kossel_xl/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/gCreate/gMax1.5+/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/makibox/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/tvrrug/Round2/Configuration_adv.h Voir le fichier

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

+ 2
- 2
config/examples/wt150/Configuration_adv.h Voir le fichier

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

Chargement…
Annuler
Enregistrer