Browse Source

Separate SWITCHING_NOZZLE and SWITCHING_EXTRUDER

fixoid 7 years ago
parent
commit
c2321b1cdd
33 changed files with 280 additions and 93 deletions
  1. 20
    22
      Marlin/Conditionals_LCD.h
  2. 1
    1
      Marlin/Conditionals_post.h
  3. 8
    2
      Marlin/Configuration.h
  4. 26
    6
      Marlin/Marlin_main.cpp
  5. 15
    8
      Marlin/SanityCheck.h
  6. 1
    1
      Marlin/configuration_store.cpp
  7. 8
    2
      Marlin/example_configurations/Cartesio/Configuration.h
  8. 8
    2
      Marlin/example_configurations/Felix/Configuration.h
  9. 8
    2
      Marlin/example_configurations/Felix/DUAL/Configuration.h
  10. 8
    2
      Marlin/example_configurations/FolgerTech-i3-2020/Configuration.h
  11. 8
    2
      Marlin/example_configurations/Hephestos/Configuration.h
  12. 8
    2
      Marlin/example_configurations/Hephestos_2/Configuration.h
  13. 8
    2
      Marlin/example_configurations/K8200/Configuration.h
  14. 8
    2
      Marlin/example_configurations/K8400/Configuration.h
  15. 8
    2
      Marlin/example_configurations/K8400/Dual-head/Configuration.h
  16. 8
    2
      Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h
  17. 8
    2
      Marlin/example_configurations/RigidBot/Configuration.h
  18. 8
    2
      Marlin/example_configurations/SCARA/Configuration.h
  19. 8
    2
      Marlin/example_configurations/TAZ4/Configuration.h
  20. 8
    2
      Marlin/example_configurations/TinyBoy2/Configuration.h
  21. 8
    2
      Marlin/example_configurations/WITBOX/Configuration.h
  22. 8
    2
      Marlin/example_configurations/adafruit/ST7565/Configuration.h
  23. 8
    2
      Marlin/example_configurations/delta/FLSUN/auto_calibrate/Configuration.h
  24. 8
    2
      Marlin/example_configurations/delta/FLSUN/kossel_mini/Configuration.h
  25. 8
    2
      Marlin/example_configurations/delta/generic/Configuration.h
  26. 8
    2
      Marlin/example_configurations/delta/kossel_mini/Configuration.h
  27. 8
    2
      Marlin/example_configurations/delta/kossel_pro/Configuration.h
  28. 8
    2
      Marlin/example_configurations/delta/kossel_xl/Configuration.h
  29. 8
    2
      Marlin/example_configurations/gCreate_gMax1.5+/Configuration.h
  30. 8
    2
      Marlin/example_configurations/makibox/Configuration.h
  31. 8
    2
      Marlin/example_configurations/tvrrug/Round2/Configuration.h
  32. 8
    2
      Marlin/example_configurations/wt150/Configuration.h
  33. 1
    1
      README.md

+ 20
- 22
Marlin/Conditionals_LCD.h View File

@@ -291,36 +291,34 @@
291 291
    *  TOOL_E_INDEX - Index to use when getting/setting the tool state
292 292
    *
293 293
    */
294
-  #if ENABLED(SINGLENOZZLE)             // One hotend, multi-extruder
295
-    #define HOTENDS      1
296
-    #define E_STEPPERS   EXTRUDERS
297
-    #define E_MANUAL     EXTRUDERS
298
-    #define TOOL_E_INDEX current_block->active_extruder
294
+  #if ENABLED(SINGLENOZZLE) || ENABLED(MIXING_EXTRUDER)         // One hotend, one thermistor, no XY offset
295
+    #define HOTENDS       1
299 296
     #undef TEMP_SENSOR_1_AS_REDUNDANT
300 297
     #undef HOTEND_OFFSET_X
301 298
     #undef HOTEND_OFFSET_Y
302
-  #elif ENABLED(SWITCHING_EXTRUDER)     // One E stepper, unified E axis, two hotends
303
-    #define HOTENDS      EXTRUDERS
304
-    #define E_STEPPERS   1
305
-    #define E_MANUAL     1
306
-    #define TOOL_E_INDEX 0
307
-    #ifndef HOTEND_OFFSET_Z
299
+  #else                                                         // Two hotends
300
+    #define HOTENDS       EXTRUDERS
301
+    #if ENABLED(SWITCHING_NOZZLE) && !defined(HOTEND_OFFSET_Z)
308 302
       #define HOTEND_OFFSET_Z { 0 }
309 303
     #endif
310
-  #elif ENABLED(MIXING_EXTRUDER)        // Multi-stepper, unified E axis, one hotend
311
-    #define HOTENDS      1
312
-    #define E_STEPPERS   MIXING_STEPPERS
313
-    #define E_MANUAL     1
314
-    #define TOOL_E_INDEX 0
315
-  #else                                 // One stepper, E axis, and hotend per tool
316
-    #define HOTENDS      EXTRUDERS
317
-    #define E_STEPPERS   EXTRUDERS
318
-    #define E_MANUAL     EXTRUDERS
319
-    #define TOOL_E_INDEX current_block->active_extruder
304
+  #endif
305
+
306
+  #if ENABLED(SWITCHING_EXTRUDER) || ENABLED(MIXING_EXTRUDER)   // Unified E axis
307
+    #if ENABLED(MIXING_EXTRUDER)
308
+      #define E_STEPPERS  MIXING_STEPPERS
309
+    #else
310
+      #define E_STEPPERS  1                                     // One E stepper
311
+    #endif
312
+    #define E_MANUAL      1
313
+    #define TOOL_E_INDEX  0
314
+  #else
315
+    #define E_STEPPERS    EXTRUDERS
316
+    #define E_MANUAL      EXTRUDERS
317
+    #define TOOL_E_INDEX  current_block->active_extruder
320 318
   #endif
321 319
 
322 320
   /**
323
-   * Distinct E Factors – Disable by commenting out DISTINCT_E_FACTORS
321
+   * DISTINCT_E_FACTORS affects how some E factors are accessed
324 322
    */
325 323
   #if ENABLED(DISTINCT_E_FACTORS) && E_STEPPERS > 1
326 324
     #define XYZE_N (XYZ + E_STEPPERS)

+ 1
- 1
Marlin/Conditionals_post.h View File

@@ -326,7 +326,7 @@
326 326
     #ifndef HOTEND_OFFSET_Y
327 327
       #define HOTEND_OFFSET_Y { 0 } // Y offsets for each extruder
328 328
     #endif
329
-    #if !defined(HOTEND_OFFSET_Z) && (ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_EXTRUDER))
329
+    #if !defined(HOTEND_OFFSET_Z) && (ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_NOZZLE))
330 330
       #define HOTEND_OFFSET_Z { 0 }
331 331
     #endif
332 332
   #endif

+ 8
- 2
Marlin/Configuration.h View File

@@ -137,12 +137,18 @@
137 137
 //#define SINGLENOZZLE
138 138
 
139 139
 // A dual extruder that uses a single stepper motor
140
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
141 140
 //#define SWITCHING_EXTRUDER
142 141
 #if ENABLED(SWITCHING_EXTRUDER)
143 142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144 143
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
145
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
144
+#endif
145
+
146
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
147
+//#define SWITCHING_NOZZLE
148
+#if ENABLED(SWITCHING_NOZZLE)
149
+  #define SWITCHING_NOZZLE_SERVO_NR 0
150
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
151
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
146 152
 #endif
147 153
 
148 154
 /**

+ 26
- 6
Marlin/Marlin_main.cpp View File

@@ -7762,7 +7762,7 @@ inline void gcode_M211() {
7762 7762
    *   T<tool>
7763 7763
    *   X<xoffset>
7764 7764
    *   Y<yoffset>
7765
-   *   Z<zoffset> - Available with DUAL_X_CARRIAGE and SWITCHING_EXTRUDER
7765
+   *   Z<zoffset> - Available with DUAL_X_CARRIAGE and SWITCHING_NOZZLE
7766 7766
    */
7767 7767
   inline void gcode_M218() {
7768 7768
     if (get_target_extruder_from_command(218) || target_extruder == 0) return;
@@ -7770,7 +7770,7 @@ inline void gcode_M211() {
7770 7770
     if (code_seen('X')) hotend_offset[X_AXIS][target_extruder] = code_value_linear_units();
7771 7771
     if (code_seen('Y')) hotend_offset[Y_AXIS][target_extruder] = code_value_linear_units();
7772 7772
 
7773
-    #if ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_EXTRUDER)
7773
+    #if ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_NOZZLE)
7774 7774
       if (code_seen('Z')) hotend_offset[Z_AXIS][target_extruder] = code_value_linear_units();
7775 7775
     #endif
7776 7776
 
@@ -7781,7 +7781,7 @@ inline void gcode_M211() {
7781 7781
       SERIAL_ECHO(hotend_offset[X_AXIS][e]);
7782 7782
       SERIAL_CHAR(',');
7783 7783
       SERIAL_ECHO(hotend_offset[Y_AXIS][e]);
7784
-      #if ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_EXTRUDER)
7784
+      #if ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_NOZZLE)
7785 7785
         SERIAL_CHAR(',');
7786 7786
         SERIAL_ECHO(hotend_offset[Z_AXIS][e]);
7787 7787
       #endif
@@ -9364,6 +9364,14 @@ inline void gcode_M999() {
9364 9364
   }
9365 9365
 #endif
9366 9366
 
9367
+#if ENABLED(SWITCHING_NOZZLE)
9368
+  inline void move_nozzle_servo(uint8_t e) {
9369
+    const int angles[2] = SWITCHING_NOZZLE_SERVO_ANGLES;
9370
+    MOVE_SERVO(SWITCHING_NOZZLE_SERVO_NR, angles[e]);
9371
+    safe_delay(500);
9372
+  }
9373
+#endif
9374
+
9367 9375
 inline void invalid_extruder_error(const uint8_t &e) {
9368 9376
   SERIAL_ECHO_START;
9369 9377
   SERIAL_CHAR('T');
@@ -9511,7 +9519,7 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
9511 9519
           // No extra case for HAS_ABL in DUAL_X_CARRIAGE. Does that mean they don't work together?
9512 9520
         #else // !DUAL_X_CARRIAGE
9513 9521
 
9514
-          #if ENABLED(SWITCHING_EXTRUDER)
9522
+          #if ENABLED(SWITCHING_NOZZLE)
9515 9523
             // <0 if the new nozzle is higher, >0 if lower. A bigger raise when lower.
9516 9524
             const float z_diff = hotend_offset[Z_AXIS][active_extruder] - hotend_offset[Z_AXIS][tmp_extruder],
9517 9525
                         z_raise = 0.3 + (z_diff > 0.0 ? z_diff : 0.0);
@@ -9521,7 +9529,14 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
9521 9529
             planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[Z_AXIS], active_extruder);
9522 9530
             stepper.synchronize();
9523 9531
 
9524
-            move_extruder_servo(active_extruder);
9532
+            move_nozzle_servo(active_extruder);
9533
+          #endif
9534
+
9535
+          #if ENABLED(SWITCHING_EXTRUDER)
9536
+            #if !(ENABLED(SWITCHING_NOZZLE) && (SWITCHING_EXTRUDER_SERVO_NR == SWITCHING_NOZZLE_SERVO_NR))
9537
+              stepper.synchronize();
9538
+              move_extruder_servo(active_extruder);
9539
+            #endif
9525 9540
           #endif
9526 9541
 
9527 9542
           /**
@@ -9644,7 +9659,7 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
9644 9659
           prepare_move_to_destination();
9645 9660
         }
9646 9661
 
9647
-        #if ENABLED(SWITCHING_EXTRUDER)
9662
+        #if ENABLED(SWITCHING_NOZZLE)
9648 9663
           // Move back down, if needed. (Including when the new tool is higher.)
9649 9664
           if (z_raise != z_diff) {
9650 9665
             destination[Z_AXIS] += z_diff;
@@ -9672,6 +9687,11 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
9672 9687
       UNUSED(fr_mm_s);
9673 9688
       UNUSED(no_move);
9674 9689
 
9690
+      #if ENABLED(SWITCHING_EXTRUDER)
9691
+        stepper.synchronize();
9692
+        move_extruder_servo(active_extruder);
9693
+      #endif
9694
+
9675 9695
     #endif // HOTENDS <= 1
9676 9696
 
9677 9697
     SERIAL_ECHO_START;

+ 15
- 8
Marlin/SanityCheck.h View File

@@ -329,11 +329,16 @@
329 329
 #endif
330 330
 
331 331
 /**
332
- * Only one type of extruder allowed
332
+ * A dual nozzle x-carriage with switching servo
333 333
  */
334
-#if (ENABLED(SWITCHING_EXTRUDER) && (ENABLED(SINGLENOZZLE) || ENABLED(MIXING_EXTRUDER))) \
335
-  || (ENABLED(SINGLENOZZLE) && ENABLED(MIXING_EXTRUDER))
336
-    #error "Please define only one type of extruder: SINGLENOZZLE, SWITCHING_EXTRUDER, or MIXING_EXTRUDER."
334
+#if ENABLED(SWITCHING_NOZZLE)
335
+  #if ENABLED(SINGLENOZZLE)
336
+    #error "SWITCHING_NOZZLE and SINGLENOZZLE are incompatible."
337
+  #elif EXTRUDERS < 2
338
+    #error "SWITCHING_NOZZLE requires exactly 2 EXTRUDERS."
339
+  #elif NUM_SERVOS < 1
340
+    #error "SWITCHING_NOZZLE requires NUM_SERVOS >= 1."
341
+  #endif
337 342
 #endif
338 343
 
339 344
 /**
@@ -355,12 +360,14 @@
355 360
 #if ENABLED(MIXING_EXTRUDER)
356 361
   #if EXTRUDERS > 1
357 362
     #error "MIXING_EXTRUDER currently only supports one extruder."
358
-  #endif
359
-  #if MIXING_STEPPERS < 2
363
+  #elif MIXING_STEPPERS < 2
360 364
     #error "You must set MIXING_STEPPERS >= 2 for a mixing extruder."
361
-  #endif
362
-  #if ENABLED(FILAMENT_SENSOR)
365
+  #elif ENABLED(FILAMENT_SENSOR)
363 366
     #error "MIXING_EXTRUDER is incompatible with FILAMENT_SENSOR. Comment out this line to use it anyway."
367
+  #elif ENABLED(SWITCHING_EXTRUDER)
368
+    #error "Please select either MIXING_EXTRUDER or SWITCHING_EXTRUDER, not both."
369
+  #elif ENABLED(SINGLENOZZLE)
370
+    #error "MIXING_EXTRUDER is incompatible with SINGLENOZZLE."
364 371
   #endif
365 372
 #endif
366 373
 

+ 1
- 1
Marlin/configuration_store.cpp View File

@@ -1415,7 +1415,7 @@ void MarlinSettings::reset() {
1415 1415
         SERIAL_ECHOPAIR("  M218 T", (int)e);
1416 1416
         SERIAL_ECHOPAIR(" X", LINEAR_UNIT(hotend_offset[X_AXIS][e]));
1417 1417
         SERIAL_ECHOPAIR(" Y", LINEAR_UNIT(hotend_offset[Y_AXIS][e]));
1418
-        #if ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_EXTRUDER)
1418
+        #if ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_NOZZLE)
1419 1419
           SERIAL_ECHOPAIR(" Z", LINEAR_UNIT(hotend_offset[Z_AXIS][e]));
1420 1420
         #endif
1421 1421
         SERIAL_EOL;

+ 8
- 2
Marlin/example_configurations/Cartesio/Configuration.h View File

@@ -138,12 +138,18 @@
138 138
 //#define SINGLENOZZLE
139 139
 
140 140
 // A dual extruder that uses a single stepper motor
141
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
142 141
 //#define SWITCHING_EXTRUDER
143 142
 #if ENABLED(SWITCHING_EXTRUDER)
144 143
   #define SWITCHING_EXTRUDER_SERVO_NR 0
145 144
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
146
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
145
+#endif
146
+
147
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
148
+//#define SWITCHING_NOZZLE
149
+#if ENABLED(SWITCHING_NOZZLE)
150
+  #define SWITCHING_NOZZLE_SERVO_NR 0
151
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
152
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
147 153
 #endif
148 154
 
149 155
 /**

+ 8
- 2
Marlin/example_configurations/Felix/Configuration.h View File

@@ -137,12 +137,18 @@
137 137
 //#define SINGLENOZZLE
138 138
 
139 139
 // A dual extruder that uses a single stepper motor
140
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
141 140
 //#define SWITCHING_EXTRUDER
142 141
 #if ENABLED(SWITCHING_EXTRUDER)
143 142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144 143
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
145
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
144
+#endif
145
+
146
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
147
+//#define SWITCHING_NOZZLE
148
+#if ENABLED(SWITCHING_NOZZLE)
149
+  #define SWITCHING_NOZZLE_SERVO_NR 0
150
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
151
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
146 152
 #endif
147 153
 
148 154
 /**

+ 8
- 2
Marlin/example_configurations/Felix/DUAL/Configuration.h View File

@@ -137,12 +137,18 @@
137 137
 //#define SINGLENOZZLE
138 138
 
139 139
 // A dual extruder that uses a single stepper motor
140
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
141 140
 //#define SWITCHING_EXTRUDER
142 141
 #if ENABLED(SWITCHING_EXTRUDER)
143 142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144 143
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
145
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
144
+#endif
145
+
146
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
147
+//#define SWITCHING_NOZZLE
148
+#if ENABLED(SWITCHING_NOZZLE)
149
+  #define SWITCHING_NOZZLE_SERVO_NR 0
150
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
151
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
146 152
 #endif
147 153
 
148 154
 /**

+ 8
- 2
Marlin/example_configurations/FolgerTech-i3-2020/Configuration.h View File

@@ -137,12 +137,18 @@
137 137
 //#define SINGLENOZZLE
138 138
 
139 139
 // A dual extruder that uses a single stepper motor
140
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
141 140
 //#define SWITCHING_EXTRUDER
142 141
 #if ENABLED(SWITCHING_EXTRUDER)
143 142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144 143
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
145
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
144
+#endif
145
+
146
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
147
+//#define SWITCHING_NOZZLE
148
+#if ENABLED(SWITCHING_NOZZLE)
149
+  #define SWITCHING_NOZZLE_SERVO_NR 0
150
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
151
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
146 152
 #endif
147 153
 
148 154
 /**

+ 8
- 2
Marlin/example_configurations/Hephestos/Configuration.h View File

@@ -140,12 +140,18 @@
140 140
 //#define SINGLENOZZLE
141 141
 
142 142
 // A dual extruder that uses a single stepper motor
143
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
144 143
 //#define SWITCHING_EXTRUDER
145 144
 #if ENABLED(SWITCHING_EXTRUDER)
146 145
   #define SWITCHING_EXTRUDER_SERVO_NR 0
147 146
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
148
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
147
+#endif
148
+
149
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
150
+//#define SWITCHING_NOZZLE
151
+#if ENABLED(SWITCHING_NOZZLE)
152
+  #define SWITCHING_NOZZLE_SERVO_NR 0
153
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
154
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
149 155
 #endif
150 156
 
151 157
 /**

+ 8
- 2
Marlin/example_configurations/Hephestos_2/Configuration.h View File

@@ -137,12 +137,18 @@
137 137
 //#define SINGLENOZZLE
138 138
 
139 139
 // A dual extruder that uses a single stepper motor
140
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
141 140
 //#define SWITCHING_EXTRUDER
142 141
 #if ENABLED(SWITCHING_EXTRUDER)
143 142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144 143
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
145
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
144
+#endif
145
+
146
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
147
+//#define SWITCHING_NOZZLE
148
+#if ENABLED(SWITCHING_NOZZLE)
149
+  #define SWITCHING_NOZZLE_SERVO_NR 0
150
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
151
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
146 152
 #endif
147 153
 
148 154
 /**

+ 8
- 2
Marlin/example_configurations/K8200/Configuration.h View File

@@ -157,12 +157,18 @@
157 157
 //#define SINGLENOZZLE
158 158
 
159 159
 // A dual extruder that uses a single stepper motor
160
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
161 160
 //#define SWITCHING_EXTRUDER
162 161
 #if ENABLED(SWITCHING_EXTRUDER)
163 162
   #define SWITCHING_EXTRUDER_SERVO_NR 0
164 163
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
165
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
164
+#endif
165
+
166
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
167
+//#define SWITCHING_NOZZLE
168
+#if ENABLED(SWITCHING_NOZZLE)
169
+  #define SWITCHING_NOZZLE_SERVO_NR 0
170
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
171
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
166 172
 #endif
167 173
 
168 174
 /**

+ 8
- 2
Marlin/example_configurations/K8400/Configuration.h View File

@@ -137,12 +137,18 @@
137 137
 //#define SINGLENOZZLE
138 138
 
139 139
 // A dual extruder that uses a single stepper motor
140
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
141 140
 //#define SWITCHING_EXTRUDER
142 141
 #if ENABLED(SWITCHING_EXTRUDER)
143 142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144 143
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
145
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
144
+#endif
145
+
146
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
147
+//#define SWITCHING_NOZZLE
148
+#if ENABLED(SWITCHING_NOZZLE)
149
+  #define SWITCHING_NOZZLE_SERVO_NR 0
150
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
151
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
146 152
 #endif
147 153
 
148 154
 /**

+ 8
- 2
Marlin/example_configurations/K8400/Dual-head/Configuration.h View File

@@ -137,12 +137,18 @@
137 137
 //#define SINGLENOZZLE
138 138
 
139 139
 // A dual extruder that uses a single stepper motor
140
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
141 140
 //#define SWITCHING_EXTRUDER
142 141
 #if ENABLED(SWITCHING_EXTRUDER)
143 142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144 143
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
145
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
144
+#endif
145
+
146
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
147
+//#define SWITCHING_NOZZLE
148
+#if ENABLED(SWITCHING_NOZZLE)
149
+  #define SWITCHING_NOZZLE_SERVO_NR 0
150
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
151
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
146 152
 #endif
147 153
 
148 154
 /**

+ 8
- 2
Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h View File

@@ -137,12 +137,18 @@
137 137
 //#define SINGLENOZZLE
138 138
 
139 139
 // A dual extruder that uses a single stepper motor
140
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
141 140
 //#define SWITCHING_EXTRUDER
142 141
 #if ENABLED(SWITCHING_EXTRUDER)
143 142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144 143
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
145
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
144
+#endif
145
+
146
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
147
+//#define SWITCHING_NOZZLE
148
+#if ENABLED(SWITCHING_NOZZLE)
149
+  #define SWITCHING_NOZZLE_SERVO_NR 0
150
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
151
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
146 152
 #endif
147 153
 
148 154
 /**

+ 8
- 2
Marlin/example_configurations/RigidBot/Configuration.h View File

@@ -140,12 +140,18 @@
140 140
 //#define SINGLENOZZLE
141 141
 
142 142
 // A dual extruder that uses a single stepper motor
143
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
144 143
 //#define SWITCHING_EXTRUDER
145 144
 #if ENABLED(SWITCHING_EXTRUDER)
146 145
   #define SWITCHING_EXTRUDER_SERVO_NR 0
147 146
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
148
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
147
+#endif
148
+
149
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
150
+//#define SWITCHING_NOZZLE
151
+#if ENABLED(SWITCHING_NOZZLE)
152
+  #define SWITCHING_NOZZLE_SERVO_NR 0
153
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
154
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
149 155
 #endif
150 156
 
151 157
 /**

+ 8
- 2
Marlin/example_configurations/SCARA/Configuration.h View File

@@ -170,12 +170,18 @@
170 170
 //#define SINGLENOZZLE
171 171
 
172 172
 // A dual extruder that uses a single stepper motor
173
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
174 173
 //#define SWITCHING_EXTRUDER
175 174
 #if ENABLED(SWITCHING_EXTRUDER)
176 175
   #define SWITCHING_EXTRUDER_SERVO_NR 0
177 176
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
178
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
177
+#endif
178
+
179
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
180
+//#define SWITCHING_NOZZLE
181
+#if ENABLED(SWITCHING_NOZZLE)
182
+  #define SWITCHING_NOZZLE_SERVO_NR 0
183
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
184
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
179 185
 #endif
180 186
 
181 187
 /**

+ 8
- 2
Marlin/example_configurations/TAZ4/Configuration.h View File

@@ -137,12 +137,18 @@
137 137
 //#define SINGLENOZZLE
138 138
 
139 139
 // A dual extruder that uses a single stepper motor
140
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
141 140
 //#define SWITCHING_EXTRUDER
142 141
 #if ENABLED(SWITCHING_EXTRUDER)
143 142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144 143
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
145
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
144
+#endif
145
+
146
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
147
+//#define SWITCHING_NOZZLE
148
+#if ENABLED(SWITCHING_NOZZLE)
149
+  #define SWITCHING_NOZZLE_SERVO_NR 0
150
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
151
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
146 152
 #endif
147 153
 
148 154
 /**

+ 8
- 2
Marlin/example_configurations/TinyBoy2/Configuration.h View File

@@ -159,12 +159,18 @@
159 159
 //#define SINGLENOZZLE
160 160
 
161 161
 // A dual extruder that uses a single stepper motor
162
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
163 162
 //#define SWITCHING_EXTRUDER
164 163
 #if ENABLED(SWITCHING_EXTRUDER)
165 164
   #define SWITCHING_EXTRUDER_SERVO_NR 0
166 165
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
167
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
166
+#endif
167
+
168
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
169
+//#define SWITCHING_NOZZLE
170
+#if ENABLED(SWITCHING_NOZZLE)
171
+  #define SWITCHING_NOZZLE_SERVO_NR 0
172
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
173
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
168 174
 #endif
169 175
 
170 176
 /**

+ 8
- 2
Marlin/example_configurations/WITBOX/Configuration.h View File

@@ -140,12 +140,18 @@
140 140
 //#define SINGLENOZZLE
141 141
 
142 142
 // A dual extruder that uses a single stepper motor
143
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
144 143
 //#define SWITCHING_EXTRUDER
145 144
 #if ENABLED(SWITCHING_EXTRUDER)
146 145
   #define SWITCHING_EXTRUDER_SERVO_NR 0
147 146
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
148
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
147
+#endif
148
+
149
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
150
+//#define SWITCHING_NOZZLE
151
+#if ENABLED(SWITCHING_NOZZLE)
152
+  #define SWITCHING_NOZZLE_SERVO_NR 0
153
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
154
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
149 155
 #endif
150 156
 
151 157
 /**

+ 8
- 2
Marlin/example_configurations/adafruit/ST7565/Configuration.h View File

@@ -137,12 +137,18 @@
137 137
 //#define SINGLENOZZLE
138 138
 
139 139
 // A dual extruder that uses a single stepper motor
140
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
141 140
 //#define SWITCHING_EXTRUDER
142 141
 #if ENABLED(SWITCHING_EXTRUDER)
143 142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144 143
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
145
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
144
+#endif
145
+
146
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
147
+//#define SWITCHING_NOZZLE
148
+#if ENABLED(SWITCHING_NOZZLE)
149
+  #define SWITCHING_NOZZLE_SERVO_NR 0
150
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
151
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
146 152
 #endif
147 153
 
148 154
 /**

+ 8
- 2
Marlin/example_configurations/delta/FLSUN/auto_calibrate/Configuration.h View File

@@ -137,12 +137,18 @@
137 137
 //#define SINGLENOZZLE
138 138
 
139 139
 // A dual extruder that uses a single stepper motor
140
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
141 140
 //#define SWITCHING_EXTRUDER
142 141
 #if ENABLED(SWITCHING_EXTRUDER)
143 142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144 143
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
145
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
144
+#endif
145
+
146
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
147
+//#define SWITCHING_NOZZLE
148
+#if ENABLED(SWITCHING_NOZZLE)
149
+  #define SWITCHING_NOZZLE_SERVO_NR 0
150
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
151
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
146 152
 #endif
147 153
 
148 154
 /**

+ 8
- 2
Marlin/example_configurations/delta/FLSUN/kossel_mini/Configuration.h View File

@@ -137,12 +137,18 @@
137 137
 //#define SINGLENOZZLE
138 138
 
139 139
 // A dual extruder that uses a single stepper motor
140
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
141 140
 //#define SWITCHING_EXTRUDER
142 141
 #if ENABLED(SWITCHING_EXTRUDER)
143 142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144 143
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
145
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
144
+#endif
145
+
146
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
147
+//#define SWITCHING_NOZZLE
148
+#if ENABLED(SWITCHING_NOZZLE)
149
+  #define SWITCHING_NOZZLE_SERVO_NR 0
150
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
151
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
146 152
 #endif
147 153
 
148 154
 /**

+ 8
- 2
Marlin/example_configurations/delta/generic/Configuration.h View File

@@ -137,12 +137,18 @@
137 137
 //#define SINGLENOZZLE
138 138
 
139 139
 // A dual extruder that uses a single stepper motor
140
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
141 140
 //#define SWITCHING_EXTRUDER
142 141
 #if ENABLED(SWITCHING_EXTRUDER)
143 142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144 143
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
145
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
144
+#endif
145
+
146
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
147
+//#define SWITCHING_NOZZLE
148
+#if ENABLED(SWITCHING_NOZZLE)
149
+  #define SWITCHING_NOZZLE_SERVO_NR 0
150
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
151
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
146 152
 #endif
147 153
 
148 154
 /**

+ 8
- 2
Marlin/example_configurations/delta/kossel_mini/Configuration.h View File

@@ -137,12 +137,18 @@
137 137
 //#define SINGLENOZZLE
138 138
 
139 139
 // A dual extruder that uses a single stepper motor
140
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
141 140
 //#define SWITCHING_EXTRUDER
142 141
 #if ENABLED(SWITCHING_EXTRUDER)
143 142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144 143
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
145
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
144
+#endif
145
+
146
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
147
+//#define SWITCHING_NOZZLE
148
+#if ENABLED(SWITCHING_NOZZLE)
149
+  #define SWITCHING_NOZZLE_SERVO_NR 0
150
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
151
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
146 152
 #endif
147 153
 
148 154
 /**

+ 8
- 2
Marlin/example_configurations/delta/kossel_pro/Configuration.h View File

@@ -141,12 +141,18 @@
141 141
 //#define SINGLENOZZLE
142 142
 
143 143
 // A dual extruder that uses a single stepper motor
144
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
145 144
 //#define SWITCHING_EXTRUDER
146 145
 #if ENABLED(SWITCHING_EXTRUDER)
147 146
   #define SWITCHING_EXTRUDER_SERVO_NR 0
148 147
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
149
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
148
+#endif
149
+
150
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
151
+//#define SWITCHING_NOZZLE
152
+#if ENABLED(SWITCHING_NOZZLE)
153
+  #define SWITCHING_NOZZLE_SERVO_NR 0
154
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
155
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
150 156
 #endif
151 157
 
152 158
 /**

+ 8
- 2
Marlin/example_configurations/delta/kossel_xl/Configuration.h View File

@@ -137,12 +137,18 @@
137 137
 //#define SINGLENOZZLE
138 138
 
139 139
 // A dual extruder that uses a single stepper motor
140
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
141 140
 //#define SWITCHING_EXTRUDER
142 141
 #if ENABLED(SWITCHING_EXTRUDER)
143 142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144 143
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
145
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
144
+#endif
145
+
146
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
147
+//#define SWITCHING_NOZZLE
148
+#if ENABLED(SWITCHING_NOZZLE)
149
+  #define SWITCHING_NOZZLE_SERVO_NR 0
150
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
151
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
146 152
 #endif
147 153
 
148 154
 /**

+ 8
- 2
Marlin/example_configurations/gCreate_gMax1.5+/Configuration.h View File

@@ -142,12 +142,18 @@
142 142
 //#define SINGLENOZZLE
143 143
 
144 144
 // A dual extruder that uses a single stepper motor
145
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
146 145
 //#define SWITCHING_EXTRUDER
147 146
 #if ENABLED(SWITCHING_EXTRUDER)
148 147
   #define SWITCHING_EXTRUDER_SERVO_NR 0
149 148
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
150
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
149
+#endif
150
+
151
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
152
+//#define SWITCHING_NOZZLE
153
+#if ENABLED(SWITCHING_NOZZLE)
154
+  #define SWITCHING_NOZZLE_SERVO_NR 0
155
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
156
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
151 157
 #endif
152 158
 
153 159
 /**

+ 8
- 2
Marlin/example_configurations/makibox/Configuration.h View File

@@ -137,12 +137,18 @@
137 137
 //#define SINGLENOZZLE
138 138
 
139 139
 // A dual extruder that uses a single stepper motor
140
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
141 140
 //#define SWITCHING_EXTRUDER
142 141
 #if ENABLED(SWITCHING_EXTRUDER)
143 142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144 143
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
145
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
144
+#endif
145
+
146
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
147
+//#define SWITCHING_NOZZLE
148
+#if ENABLED(SWITCHING_NOZZLE)
149
+  #define SWITCHING_NOZZLE_SERVO_NR 0
150
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
151
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
146 152
 #endif
147 153
 
148 154
 /**

+ 8
- 2
Marlin/example_configurations/tvrrug/Round2/Configuration.h View File

@@ -137,12 +137,18 @@
137 137
 //#define SINGLENOZZLE
138 138
 
139 139
 // A dual extruder that uses a single stepper motor
140
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
141 140
 //#define SWITCHING_EXTRUDER
142 141
 #if ENABLED(SWITCHING_EXTRUDER)
143 142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144 143
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
145
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
144
+#endif
145
+
146
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
147
+//#define SWITCHING_NOZZLE
148
+#if ENABLED(SWITCHING_NOZZLE)
149
+  #define SWITCHING_NOZZLE_SERVO_NR 0
150
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
151
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
146 152
 #endif
147 153
 
148 154
 /**

+ 8
- 2
Marlin/example_configurations/wt150/Configuration.h View File

@@ -137,12 +137,18 @@
137 137
 //#define SINGLENOZZLE
138 138
 
139 139
 // A dual extruder that uses a single stepper motor
140
-// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
141 140
 //#define SWITCHING_EXTRUDER
142 141
 #if ENABLED(SWITCHING_EXTRUDER)
143 142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144 143
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
145
-  //#define HOTEND_OFFSET_Z {0.0, 0.0}
144
+#endif
145
+
146
+// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
147
+//#define SWITCHING_NOZZLE
148
+#if ENABLED(SWITCHING_NOZZLE)
149
+  #define SWITCHING_NOZZLE_SERVO_NR 0
150
+  #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 }   // Angles for E0, E1
151
+  //#define HOTEND_OFFSET_Z { 0.0, 0.0 }
146 152
 #endif
147 153
 
148 154
 /**

+ 1
- 1
README.md View File

@@ -62,7 +62,7 @@ Download earlier versions of Marlin on the [Releases page](https://github.com/Ma
62 62
   - Improve thermal management, add `WATCH_BED_TEMP_PERIOD`
63 63
   - Better handling of toolchange, multiple tools
64 64
   - Add support for two X steppers `X_DUAL_STEPPER_DRIVERS`
65
-  - Add support for `SINGLENOZZLE`, `MIXING_EXTRUDER`, and `SWITCHING_EXTRUDER`
65
+  - Add support for `SINGLENOZZLE`, `MIXING_EXTRUDER`, `SWITCHING_NOZZLE`, and `SWITCHING_EXTRUDER`
66 66
   - Simplified probe configuration, allow usage without bed leveling
67 67
   - And much more… See the [1.1.0-RC7 Change Log](https://github.com/MarlinFirmware/Marlin/releases/tag/1.1.0-RC7) for the complete list of changes.
68 68
 

Loading…
Cancel
Save