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
    *  TOOL_E_INDEX - Index to use when getting/setting the tool state
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
     #undef TEMP_SENSOR_1_AS_REDUNDANT
296
     #undef TEMP_SENSOR_1_AS_REDUNDANT
300
     #undef HOTEND_OFFSET_X
297
     #undef HOTEND_OFFSET_X
301
     #undef HOTEND_OFFSET_Y
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
       #define HOTEND_OFFSET_Z { 0 }
302
       #define HOTEND_OFFSET_Z { 0 }
309
     #endif
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
   #endif
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
   #if ENABLED(DISTINCT_E_FACTORS) && E_STEPPERS > 1
323
   #if ENABLED(DISTINCT_E_FACTORS) && E_STEPPERS > 1
326
     #define XYZE_N (XYZ + E_STEPPERS)
324
     #define XYZE_N (XYZ + E_STEPPERS)

+ 1
- 1
Marlin/Conditionals_post.h View File

326
     #ifndef HOTEND_OFFSET_Y
326
     #ifndef HOTEND_OFFSET_Y
327
       #define HOTEND_OFFSET_Y { 0 } // Y offsets for each extruder
327
       #define HOTEND_OFFSET_Y { 0 } // Y offsets for each extruder
328
     #endif
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
       #define HOTEND_OFFSET_Z { 0 }
330
       #define HOTEND_OFFSET_Z { 0 }
331
     #endif
331
     #endif
332
   #endif
332
   #endif

+ 8
- 2
Marlin/Configuration.h View File

137
 //#define SINGLENOZZLE
137
 //#define SINGLENOZZLE
138
 
138
 
139
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
140
 //#define SWITCHING_EXTRUDER
142
 #if ENABLED(SWITCHING_EXTRUDER)
141
 #if ENABLED(SWITCHING_EXTRUDER)
143
   #define SWITCHING_EXTRUDER_SERVO_NR 0
142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
152
 #endif
147
 
153
 
148
 /**
154
 /**

+ 26
- 6
Marlin/Marlin_main.cpp View File

7762
    *   T<tool>
7762
    *   T<tool>
7763
    *   X<xoffset>
7763
    *   X<xoffset>
7764
    *   Y<yoffset>
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
   inline void gcode_M218() {
7767
   inline void gcode_M218() {
7768
     if (get_target_extruder_from_command(218) || target_extruder == 0) return;
7768
     if (get_target_extruder_from_command(218) || target_extruder == 0) return;
7770
     if (code_seen('X')) hotend_offset[X_AXIS][target_extruder] = code_value_linear_units();
7770
     if (code_seen('X')) hotend_offset[X_AXIS][target_extruder] = code_value_linear_units();
7771
     if (code_seen('Y')) hotend_offset[Y_AXIS][target_extruder] = code_value_linear_units();
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
       if (code_seen('Z')) hotend_offset[Z_AXIS][target_extruder] = code_value_linear_units();
7774
       if (code_seen('Z')) hotend_offset[Z_AXIS][target_extruder] = code_value_linear_units();
7775
     #endif
7775
     #endif
7776
 
7776
 
7781
       SERIAL_ECHO(hotend_offset[X_AXIS][e]);
7781
       SERIAL_ECHO(hotend_offset[X_AXIS][e]);
7782
       SERIAL_CHAR(',');
7782
       SERIAL_CHAR(',');
7783
       SERIAL_ECHO(hotend_offset[Y_AXIS][e]);
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
         SERIAL_CHAR(',');
7785
         SERIAL_CHAR(',');
7786
         SERIAL_ECHO(hotend_offset[Z_AXIS][e]);
7786
         SERIAL_ECHO(hotend_offset[Z_AXIS][e]);
7787
       #endif
7787
       #endif
9364
   }
9364
   }
9365
 #endif
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
 inline void invalid_extruder_error(const uint8_t &e) {
9375
 inline void invalid_extruder_error(const uint8_t &e) {
9368
   SERIAL_ECHO_START;
9376
   SERIAL_ECHO_START;
9369
   SERIAL_CHAR('T');
9377
   SERIAL_CHAR('T');
9511
           // No extra case for HAS_ABL in DUAL_X_CARRIAGE. Does that mean they don't work together?
9519
           // No extra case for HAS_ABL in DUAL_X_CARRIAGE. Does that mean they don't work together?
9512
         #else // !DUAL_X_CARRIAGE
9520
         #else // !DUAL_X_CARRIAGE
9513
 
9521
 
9514
-          #if ENABLED(SWITCHING_EXTRUDER)
9522
+          #if ENABLED(SWITCHING_NOZZLE)
9515
             // <0 if the new nozzle is higher, >0 if lower. A bigger raise when lower.
9523
             // <0 if the new nozzle is higher, >0 if lower. A bigger raise when lower.
9516
             const float z_diff = hotend_offset[Z_AXIS][active_extruder] - hotend_offset[Z_AXIS][tmp_extruder],
9524
             const float z_diff = hotend_offset[Z_AXIS][active_extruder] - hotend_offset[Z_AXIS][tmp_extruder],
9517
                         z_raise = 0.3 + (z_diff > 0.0 ? z_diff : 0.0);
9525
                         z_raise = 0.3 + (z_diff > 0.0 ? z_diff : 0.0);
9521
             planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[Z_AXIS], active_extruder);
9529
             planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[Z_AXIS], active_extruder);
9522
             stepper.synchronize();
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
           #endif
9540
           #endif
9526
 
9541
 
9527
           /**
9542
           /**
9644
           prepare_move_to_destination();
9659
           prepare_move_to_destination();
9645
         }
9660
         }
9646
 
9661
 
9647
-        #if ENABLED(SWITCHING_EXTRUDER)
9662
+        #if ENABLED(SWITCHING_NOZZLE)
9648
           // Move back down, if needed. (Including when the new tool is higher.)
9663
           // Move back down, if needed. (Including when the new tool is higher.)
9649
           if (z_raise != z_diff) {
9664
           if (z_raise != z_diff) {
9650
             destination[Z_AXIS] += z_diff;
9665
             destination[Z_AXIS] += z_diff;
9672
       UNUSED(fr_mm_s);
9687
       UNUSED(fr_mm_s);
9673
       UNUSED(no_move);
9688
       UNUSED(no_move);
9674
 
9689
 
9690
+      #if ENABLED(SWITCHING_EXTRUDER)
9691
+        stepper.synchronize();
9692
+        move_extruder_servo(active_extruder);
9693
+      #endif
9694
+
9675
     #endif // HOTENDS <= 1
9695
     #endif // HOTENDS <= 1
9676
 
9696
 
9677
     SERIAL_ECHO_START;
9697
     SERIAL_ECHO_START;

+ 15
- 8
Marlin/SanityCheck.h View File

329
 #endif
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
 #endif
342
 #endif
338
 
343
 
339
 /**
344
 /**
355
 #if ENABLED(MIXING_EXTRUDER)
360
 #if ENABLED(MIXING_EXTRUDER)
356
   #if EXTRUDERS > 1
361
   #if EXTRUDERS > 1
357
     #error "MIXING_EXTRUDER currently only supports one extruder."
362
     #error "MIXING_EXTRUDER currently only supports one extruder."
358
-  #endif
359
-  #if MIXING_STEPPERS < 2
363
+  #elif MIXING_STEPPERS < 2
360
     #error "You must set MIXING_STEPPERS >= 2 for a mixing extruder."
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
     #error "MIXING_EXTRUDER is incompatible with FILAMENT_SENSOR. Comment out this line to use it anyway."
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
   #endif
371
   #endif
365
 #endif
372
 #endif
366
 
373
 

+ 1
- 1
Marlin/configuration_store.cpp View File

1415
         SERIAL_ECHOPAIR("  M218 T", (int)e);
1415
         SERIAL_ECHOPAIR("  M218 T", (int)e);
1416
         SERIAL_ECHOPAIR(" X", LINEAR_UNIT(hotend_offset[X_AXIS][e]));
1416
         SERIAL_ECHOPAIR(" X", LINEAR_UNIT(hotend_offset[X_AXIS][e]));
1417
         SERIAL_ECHOPAIR(" Y", LINEAR_UNIT(hotend_offset[Y_AXIS][e]));
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
           SERIAL_ECHOPAIR(" Z", LINEAR_UNIT(hotend_offset[Z_AXIS][e]));
1419
           SERIAL_ECHOPAIR(" Z", LINEAR_UNIT(hotend_offset[Z_AXIS][e]));
1420
         #endif
1420
         #endif
1421
         SERIAL_EOL;
1421
         SERIAL_EOL;

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

138
 //#define SINGLENOZZLE
138
 //#define SINGLENOZZLE
139
 
139
 
140
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
141
 //#define SWITCHING_EXTRUDER
143
 #if ENABLED(SWITCHING_EXTRUDER)
142
 #if ENABLED(SWITCHING_EXTRUDER)
144
   #define SWITCHING_EXTRUDER_SERVO_NR 0
143
   #define SWITCHING_EXTRUDER_SERVO_NR 0
145
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
153
 #endif
148
 
154
 
149
 /**
155
 /**

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

137
 //#define SINGLENOZZLE
137
 //#define SINGLENOZZLE
138
 
138
 
139
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
140
 //#define SWITCHING_EXTRUDER
142
 #if ENABLED(SWITCHING_EXTRUDER)
141
 #if ENABLED(SWITCHING_EXTRUDER)
143
   #define SWITCHING_EXTRUDER_SERVO_NR 0
142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
152
 #endif
147
 
153
 
148
 /**
154
 /**

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

137
 //#define SINGLENOZZLE
137
 //#define SINGLENOZZLE
138
 
138
 
139
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
140
 //#define SWITCHING_EXTRUDER
142
 #if ENABLED(SWITCHING_EXTRUDER)
141
 #if ENABLED(SWITCHING_EXTRUDER)
143
   #define SWITCHING_EXTRUDER_SERVO_NR 0
142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
152
 #endif
147
 
153
 
148
 /**
154
 /**

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

137
 //#define SINGLENOZZLE
137
 //#define SINGLENOZZLE
138
 
138
 
139
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
140
 //#define SWITCHING_EXTRUDER
142
 #if ENABLED(SWITCHING_EXTRUDER)
141
 #if ENABLED(SWITCHING_EXTRUDER)
143
   #define SWITCHING_EXTRUDER_SERVO_NR 0
142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
152
 #endif
147
 
153
 
148
 /**
154
 /**

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

140
 //#define SINGLENOZZLE
140
 //#define SINGLENOZZLE
141
 
141
 
142
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
143
 //#define SWITCHING_EXTRUDER
145
 #if ENABLED(SWITCHING_EXTRUDER)
144
 #if ENABLED(SWITCHING_EXTRUDER)
146
   #define SWITCHING_EXTRUDER_SERVO_NR 0
145
   #define SWITCHING_EXTRUDER_SERVO_NR 0
147
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
155
 #endif
150
 
156
 
151
 /**
157
 /**

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

137
 //#define SINGLENOZZLE
137
 //#define SINGLENOZZLE
138
 
138
 
139
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
140
 //#define SWITCHING_EXTRUDER
142
 #if ENABLED(SWITCHING_EXTRUDER)
141
 #if ENABLED(SWITCHING_EXTRUDER)
143
   #define SWITCHING_EXTRUDER_SERVO_NR 0
142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
152
 #endif
147
 
153
 
148
 /**
154
 /**

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

157
 //#define SINGLENOZZLE
157
 //#define SINGLENOZZLE
158
 
158
 
159
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
160
 //#define SWITCHING_EXTRUDER
162
 #if ENABLED(SWITCHING_EXTRUDER)
161
 #if ENABLED(SWITCHING_EXTRUDER)
163
   #define SWITCHING_EXTRUDER_SERVO_NR 0
162
   #define SWITCHING_EXTRUDER_SERVO_NR 0
164
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
172
 #endif
167
 
173
 
168
 /**
174
 /**

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

137
 //#define SINGLENOZZLE
137
 //#define SINGLENOZZLE
138
 
138
 
139
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
140
 //#define SWITCHING_EXTRUDER
142
 #if ENABLED(SWITCHING_EXTRUDER)
141
 #if ENABLED(SWITCHING_EXTRUDER)
143
   #define SWITCHING_EXTRUDER_SERVO_NR 0
142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
152
 #endif
147
 
153
 
148
 /**
154
 /**

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

137
 //#define SINGLENOZZLE
137
 //#define SINGLENOZZLE
138
 
138
 
139
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
140
 //#define SWITCHING_EXTRUDER
142
 #if ENABLED(SWITCHING_EXTRUDER)
141
 #if ENABLED(SWITCHING_EXTRUDER)
143
   #define SWITCHING_EXTRUDER_SERVO_NR 0
142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
152
 #endif
147
 
153
 
148
 /**
154
 /**

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

137
 //#define SINGLENOZZLE
137
 //#define SINGLENOZZLE
138
 
138
 
139
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
140
 //#define SWITCHING_EXTRUDER
142
 #if ENABLED(SWITCHING_EXTRUDER)
141
 #if ENABLED(SWITCHING_EXTRUDER)
143
   #define SWITCHING_EXTRUDER_SERVO_NR 0
142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
152
 #endif
147
 
153
 
148
 /**
154
 /**

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

140
 //#define SINGLENOZZLE
140
 //#define SINGLENOZZLE
141
 
141
 
142
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
143
 //#define SWITCHING_EXTRUDER
145
 #if ENABLED(SWITCHING_EXTRUDER)
144
 #if ENABLED(SWITCHING_EXTRUDER)
146
   #define SWITCHING_EXTRUDER_SERVO_NR 0
145
   #define SWITCHING_EXTRUDER_SERVO_NR 0
147
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
155
 #endif
150
 
156
 
151
 /**
157
 /**

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

170
 //#define SINGLENOZZLE
170
 //#define SINGLENOZZLE
171
 
171
 
172
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
173
 //#define SWITCHING_EXTRUDER
175
 #if ENABLED(SWITCHING_EXTRUDER)
174
 #if ENABLED(SWITCHING_EXTRUDER)
176
   #define SWITCHING_EXTRUDER_SERVO_NR 0
175
   #define SWITCHING_EXTRUDER_SERVO_NR 0
177
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
185
 #endif
180
 
186
 
181
 /**
187
 /**

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

137
 //#define SINGLENOZZLE
137
 //#define SINGLENOZZLE
138
 
138
 
139
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
140
 //#define SWITCHING_EXTRUDER
142
 #if ENABLED(SWITCHING_EXTRUDER)
141
 #if ENABLED(SWITCHING_EXTRUDER)
143
   #define SWITCHING_EXTRUDER_SERVO_NR 0
142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
152
 #endif
147
 
153
 
148
 /**
154
 /**

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

159
 //#define SINGLENOZZLE
159
 //#define SINGLENOZZLE
160
 
160
 
161
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
162
 //#define SWITCHING_EXTRUDER
164
 #if ENABLED(SWITCHING_EXTRUDER)
163
 #if ENABLED(SWITCHING_EXTRUDER)
165
   #define SWITCHING_EXTRUDER_SERVO_NR 0
164
   #define SWITCHING_EXTRUDER_SERVO_NR 0
166
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
174
 #endif
169
 
175
 
170
 /**
176
 /**

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

140
 //#define SINGLENOZZLE
140
 //#define SINGLENOZZLE
141
 
141
 
142
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
143
 //#define SWITCHING_EXTRUDER
145
 #if ENABLED(SWITCHING_EXTRUDER)
144
 #if ENABLED(SWITCHING_EXTRUDER)
146
   #define SWITCHING_EXTRUDER_SERVO_NR 0
145
   #define SWITCHING_EXTRUDER_SERVO_NR 0
147
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
155
 #endif
150
 
156
 
151
 /**
157
 /**

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

137
 //#define SINGLENOZZLE
137
 //#define SINGLENOZZLE
138
 
138
 
139
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
140
 //#define SWITCHING_EXTRUDER
142
 #if ENABLED(SWITCHING_EXTRUDER)
141
 #if ENABLED(SWITCHING_EXTRUDER)
143
   #define SWITCHING_EXTRUDER_SERVO_NR 0
142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
152
 #endif
147
 
153
 
148
 /**
154
 /**

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

137
 //#define SINGLENOZZLE
137
 //#define SINGLENOZZLE
138
 
138
 
139
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
140
 //#define SWITCHING_EXTRUDER
142
 #if ENABLED(SWITCHING_EXTRUDER)
141
 #if ENABLED(SWITCHING_EXTRUDER)
143
   #define SWITCHING_EXTRUDER_SERVO_NR 0
142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
152
 #endif
147
 
153
 
148
 /**
154
 /**

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

137
 //#define SINGLENOZZLE
137
 //#define SINGLENOZZLE
138
 
138
 
139
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
140
 //#define SWITCHING_EXTRUDER
142
 #if ENABLED(SWITCHING_EXTRUDER)
141
 #if ENABLED(SWITCHING_EXTRUDER)
143
   #define SWITCHING_EXTRUDER_SERVO_NR 0
142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
152
 #endif
147
 
153
 
148
 /**
154
 /**

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

137
 //#define SINGLENOZZLE
137
 //#define SINGLENOZZLE
138
 
138
 
139
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
140
 //#define SWITCHING_EXTRUDER
142
 #if ENABLED(SWITCHING_EXTRUDER)
141
 #if ENABLED(SWITCHING_EXTRUDER)
143
   #define SWITCHING_EXTRUDER_SERVO_NR 0
142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
152
 #endif
147
 
153
 
148
 /**
154
 /**

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

137
 //#define SINGLENOZZLE
137
 //#define SINGLENOZZLE
138
 
138
 
139
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
140
 //#define SWITCHING_EXTRUDER
142
 #if ENABLED(SWITCHING_EXTRUDER)
141
 #if ENABLED(SWITCHING_EXTRUDER)
143
   #define SWITCHING_EXTRUDER_SERVO_NR 0
142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
152
 #endif
147
 
153
 
148
 /**
154
 /**

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

141
 //#define SINGLENOZZLE
141
 //#define SINGLENOZZLE
142
 
142
 
143
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
144
 //#define SWITCHING_EXTRUDER
146
 #if ENABLED(SWITCHING_EXTRUDER)
145
 #if ENABLED(SWITCHING_EXTRUDER)
147
   #define SWITCHING_EXTRUDER_SERVO_NR 0
146
   #define SWITCHING_EXTRUDER_SERVO_NR 0
148
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
156
 #endif
151
 
157
 
152
 /**
158
 /**

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

137
 //#define SINGLENOZZLE
137
 //#define SINGLENOZZLE
138
 
138
 
139
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
140
 //#define SWITCHING_EXTRUDER
142
 #if ENABLED(SWITCHING_EXTRUDER)
141
 #if ENABLED(SWITCHING_EXTRUDER)
143
   #define SWITCHING_EXTRUDER_SERVO_NR 0
142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
152
 #endif
147
 
153
 
148
 /**
154
 /**

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

142
 //#define SINGLENOZZLE
142
 //#define SINGLENOZZLE
143
 
143
 
144
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
145
 //#define SWITCHING_EXTRUDER
147
 #if ENABLED(SWITCHING_EXTRUDER)
146
 #if ENABLED(SWITCHING_EXTRUDER)
148
   #define SWITCHING_EXTRUDER_SERVO_NR 0
147
   #define SWITCHING_EXTRUDER_SERVO_NR 0
149
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
157
 #endif
152
 
158
 
153
 /**
159
 /**

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

137
 //#define SINGLENOZZLE
137
 //#define SINGLENOZZLE
138
 
138
 
139
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
140
 //#define SWITCHING_EXTRUDER
142
 #if ENABLED(SWITCHING_EXTRUDER)
141
 #if ENABLED(SWITCHING_EXTRUDER)
143
   #define SWITCHING_EXTRUDER_SERVO_NR 0
142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
152
 #endif
147
 
153
 
148
 /**
154
 /**

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

137
 //#define SINGLENOZZLE
137
 //#define SINGLENOZZLE
138
 
138
 
139
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
140
 //#define SWITCHING_EXTRUDER
142
 #if ENABLED(SWITCHING_EXTRUDER)
141
 #if ENABLED(SWITCHING_EXTRUDER)
143
   #define SWITCHING_EXTRUDER_SERVO_NR 0
142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
152
 #endif
147
 
153
 
148
 /**
154
 /**

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

137
 //#define SINGLENOZZLE
137
 //#define SINGLENOZZLE
138
 
138
 
139
 // A dual extruder that uses a single stepper motor
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
 //#define SWITCHING_EXTRUDER
140
 //#define SWITCHING_EXTRUDER
142
 #if ENABLED(SWITCHING_EXTRUDER)
141
 #if ENABLED(SWITCHING_EXTRUDER)
143
   #define SWITCHING_EXTRUDER_SERVO_NR 0
142
   #define SWITCHING_EXTRUDER_SERVO_NR 0
144
   #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
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
 #endif
152
 #endif
147
 
153
 
148
 /**
154
 /**

+ 1
- 1
README.md View File

62
   - Improve thermal management, add `WATCH_BED_TEMP_PERIOD`
62
   - Improve thermal management, add `WATCH_BED_TEMP_PERIOD`
63
   - Better handling of toolchange, multiple tools
63
   - Better handling of toolchange, multiple tools
64
   - Add support for two X steppers `X_DUAL_STEPPER_DRIVERS`
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
   - Simplified probe configuration, allow usage without bed leveling
66
   - Simplified probe configuration, allow usage without bed leveling
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.
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