Pārlūkot izejas kodu

Added new feature for AutoParking Extruder (APE)

Vben 7 gadus atpakaļ
vecāks
revīzija
4817b39d98
39 mainītis faili ar 734 papildinājumiem un 22 dzēšanām
  1. 10
    0
      Marlin/Conditionals_post.h
  2. 15
    0
      Marlin/Configuration.h
  3. 170
    21
      Marlin/Marlin_main.cpp
  4. 28
    0
      Marlin/SanityCheck.h
  5. 1
    1
      Marlin/configuration_store.cpp
  6. 15
    0
      Marlin/example_configurations/AlephObjects/TAZ4/Configuration.h
  7. 15
    0
      Marlin/example_configurations/AliExpress/CL-260/Configuration.h
  8. 15
    0
      Marlin/example_configurations/Anet/A6/Configuration.h
  9. 15
    0
      Marlin/example_configurations/Anet/A8/Configuration.h
  10. 15
    0
      Marlin/example_configurations/BQ/Hephestos/Configuration.h
  11. 15
    0
      Marlin/example_configurations/BQ/Hephestos_2/Configuration.h
  12. 15
    0
      Marlin/example_configurations/BQ/WITBOX/Configuration.h
  13. 15
    0
      Marlin/example_configurations/Cartesio/Configuration.h
  14. 15
    0
      Marlin/example_configurations/Creality/CR-10/Configuration.h
  15. 15
    0
      Marlin/example_configurations/Felix/Configuration.h
  16. 15
    0
      Marlin/example_configurations/Felix/DUAL/Configuration.h
  17. 15
    0
      Marlin/example_configurations/Folger Tech/i3-2020/Configuration.h
  18. 15
    0
      Marlin/example_configurations/Geeetech/GT2560/Configuration.h
  19. 15
    0
      Marlin/example_configurations/Geeetech/I3_Pro_X-GT2560/Configuration.h
  20. 15
    0
      Marlin/example_configurations/Infitary/i3-M508/Configuration.h
  21. 15
    0
      Marlin/example_configurations/Malyan/M150/Configuration.h
  22. 15
    0
      Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h
  23. 15
    0
      Marlin/example_configurations/RigidBot/Configuration.h
  24. 15
    0
      Marlin/example_configurations/SCARA/Configuration.h
  25. 15
    0
      Marlin/example_configurations/TinyBoy2/Configuration.h
  26. 15
    0
      Marlin/example_configurations/Velleman/K8200/Configuration.h
  27. 15
    0
      Marlin/example_configurations/Velleman/K8400/Configuration.h
  28. 15
    0
      Marlin/example_configurations/Velleman/K8400/Dual-head/Configuration.h
  29. 15
    0
      Marlin/example_configurations/adafruit/ST7565/Configuration.h
  30. 15
    0
      Marlin/example_configurations/delta/FLSUN/auto_calibrate/Configuration.h
  31. 15
    0
      Marlin/example_configurations/delta/FLSUN/kossel_mini/Configuration.h
  32. 15
    0
      Marlin/example_configurations/delta/generic/Configuration.h
  33. 15
    0
      Marlin/example_configurations/delta/kossel_mini/Configuration.h
  34. 15
    0
      Marlin/example_configurations/delta/kossel_pro/Configuration.h
  35. 15
    0
      Marlin/example_configurations/delta/kossel_xl/Configuration.h
  36. 15
    0
      Marlin/example_configurations/gCreate/gMax1.5+/Configuration.h
  37. 15
    0
      Marlin/example_configurations/makibox/Configuration.h
  38. 15
    0
      Marlin/example_configurations/tvrrug/Round2/Configuration.h
  39. 15
    0
      Marlin/example_configurations/wt150/Configuration.h

+ 10
- 0
Marlin/Conditionals_post.h Parādīt failu

906
     #undef PROBE_MANUALLY
906
     #undef PROBE_MANUALLY
907
   #endif
907
   #endif
908
 
908
 
909
+  // Parking Extruder
910
+  #if ENABLED(PARKING_EXTRUDER)
911
+    #ifndef PARKING_EXTRUDER_GRAB_DISTANCE
912
+      #define PARKING_EXTRUDER_GRAB_DISTANCE 0
913
+    #endif
914
+    #ifndef PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE
915
+      #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE HIGH
916
+    #endif
917
+  #endif
918
+
909
 #endif // CONDITIONALS_POST_H
919
 #endif // CONDITIONALS_POST_H

+ 15
- 0
Marlin/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid not magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 170
- 21
Marlin/Marlin_main.cpp Parādīt failu

3494
 
3494
 
3495
 #endif // ARC_SUPPORT
3495
 #endif // ARC_SUPPORT
3496
 
3496
 
3497
+void dwell(millis_t time) {
3498
+  refresh_cmd_timeout();
3499
+  time += previous_cmd_ms;
3500
+  while (PENDING(millis(), time)) idle();
3501
+}
3502
+
3497
 /**
3503
 /**
3498
  * G4: Dwell S<seconds> or P<milliseconds>
3504
  * G4: Dwell S<seconds> or P<milliseconds>
3499
  */
3505
  */
3504
   if (parser.seenval('S')) dwell_ms = parser.value_millis_from_seconds(); // seconds to wait
3510
   if (parser.seenval('S')) dwell_ms = parser.value_millis_from_seconds(); // seconds to wait
3505
 
3511
 
3506
   stepper.synchronize();
3512
   stepper.synchronize();
3507
-  refresh_cmd_timeout();
3508
-  dwell_ms += previous_cmd_ms;  // keep track of when we started waiting
3509
 
3513
 
3510
   if (!lcd_hasstatus()) LCD_MESSAGEPGM(MSG_DWELL);
3514
   if (!lcd_hasstatus()) LCD_MESSAGEPGM(MSG_DWELL);
3511
 
3515
 
3512
-  while (PENDING(millis(), dwell_ms)) idle();
3516
+  dwell(dwell_ms);
3513
 }
3517
 }
3514
 
3518
 
3515
 #if ENABLED(BEZIER_CURVE_SUPPORT)
3519
 #if ENABLED(BEZIER_CURVE_SUPPORT)
4083
 
4087
 
4084
   // Restore the active tool after homing
4088
   // Restore the active tool after homing
4085
   #if HOTENDS > 1
4089
   #if HOTENDS > 1
4086
-    tool_change(old_tool_index, 0, true);
4090
+    tool_change(old_tool_index, 0,
4091
+      #if ENABLED(PARKING_EXTRUDER)
4092
+        false // fetch the previous toolhead
4093
+      #else
4094
+        true
4095
+      #endif
4096
+    );
4087
   #endif
4097
   #endif
4088
 
4098
 
4089
   lcd_refresh();
4099
   lcd_refresh();
6017
    */
6027
    */
6018
 
6028
 
6019
   // Wait for spindle to come up to speed
6029
   // Wait for spindle to come up to speed
6020
-  inline void delay_for_power_up() {
6021
-    refresh_cmd_timeout();
6022
-    while (PENDING(millis(), SPINDLE_LASER_POWERUP_DELAY + previous_cmd_ms)) idle();
6023
-  }
6030
+  inline void delay_for_power_up() { dwell(SPINDLE_LASER_POWERUP_DELAY); }
6024
 
6031
 
6025
   // Wait for spindle to stop turning
6032
   // Wait for spindle to stop turning
6026
-  inline void delay_for_power_down() {
6027
-    refresh_cmd_timeout();
6028
-    while (PENDING(millis(), SPINDLE_LASER_POWERDOWN_DELAY + previous_cmd_ms + 1)) idle();
6029
-  }
6033
+  inline void delay_for_power_down() { dwell(SPINDLE_LASER_POWERDOWN_DELAY); }
6030
 
6034
 
6031
   /**
6035
   /**
6032
    * ocr_val_mode() is used for debugging and to get the points needed to compute the RPM vs ocr_val line
6036
    * ocr_val_mode() is used for debugging and to get the points needed to compute the RPM vs ocr_val line
8697
     if (parser.seenval('X')) hotend_offset[X_AXIS][target_extruder] = parser.value_linear_units();
8701
     if (parser.seenval('X')) hotend_offset[X_AXIS][target_extruder] = parser.value_linear_units();
8698
     if (parser.seenval('Y')) hotend_offset[Y_AXIS][target_extruder] = parser.value_linear_units();
8702
     if (parser.seenval('Y')) hotend_offset[Y_AXIS][target_extruder] = parser.value_linear_units();
8699
 
8703
 
8700
-    #if ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_NOZZLE)
8704
+    #if ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_NOZZLE) || ENABLED(PARKING_EXTRUDER)
8701
       if (parser.seenval('Z')) hotend_offset[Z_AXIS][target_extruder] = parser.value_linear_units();
8705
       if (parser.seenval('Z')) hotend_offset[Z_AXIS][target_extruder] = parser.value_linear_units();
8702
     #endif
8706
     #endif
8703
 
8707
 
8708
       SERIAL_ECHO(hotend_offset[X_AXIS][e]);
8712
       SERIAL_ECHO(hotend_offset[X_AXIS][e]);
8709
       SERIAL_CHAR(',');
8713
       SERIAL_CHAR(',');
8710
       SERIAL_ECHO(hotend_offset[Y_AXIS][e]);
8714
       SERIAL_ECHO(hotend_offset[Y_AXIS][e]);
8711
-      #if ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_NOZZLE)
8715
+      #if ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_NOZZLE) || ENABLED(PARKING_EXTRUDER)
8712
         SERIAL_CHAR(',');
8716
         SERIAL_CHAR(',');
8713
         SERIAL_ECHO(hotend_offset[Z_AXIS][e]);
8717
         SERIAL_ECHO(hotend_offset[Z_AXIS][e]);
8714
       #endif
8718
       #endif
10244
   SERIAL_ECHOLN(MSG_INVALID_EXTRUDER);
10248
   SERIAL_ECHOLN(MSG_INVALID_EXTRUDER);
10245
 }
10249
 }
10246
 
10250
 
10251
+#if ENABLED(PARKING_EXTRUDER)
10252
+
10253
+  #if ENABLED(PARKING_EXTRUDER_SOLENOIDS_INVERT)
10254
+    #define PE_MAGNET_ON_STATE !PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE
10255
+  #else
10256
+    #define PE_MAGNET_ON_STATE PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE
10257
+  #endif
10258
+
10259
+  void pe_set_magnet(const uint8_t extruder_num, const uint8_t state) {
10260
+    switch (extruder_num) {
10261
+      case 1: OUT_WRITE(SOL1_PIN, state); break;
10262
+      default: OUT_WRITE(SOL0_PIN, state); break;
10263
+    }
10264
+    #if PARKING_EXTRUDER_SOLENOIDS_DELAY > 0
10265
+      dwell(PARKING_EXTRUDER_SOLENOIDS_DELAY);
10266
+    #endif
10267
+  }
10268
+
10269
+  inline void pe_activate_magnet(const uint8_t extruder_num) { pe_set_magnet(extruder_num, PE_MAGNET_ON_STATE); }
10270
+  inline void pe_deactivate_magnet(const uint8_t extruder_num) { pe_set_magnet(extruder_num, !PE_MAGNET_ON_STATE); }
10271
+
10272
+#endif // PARKING_EXTRUDER
10273
+
10247
 /**
10274
 /**
10248
  * Perform a tool-change, which may result in moving the
10275
  * Perform a tool-change, which may result in moving the
10249
  * previous tool out of the way and the new tool into place.
10276
  * previous tool out of the way and the new tool into place.
10271
 
10298
 
10272
       if (tmp_extruder != active_extruder) {
10299
       if (tmp_extruder != active_extruder) {
10273
         if (!no_move && axis_unhomed_error()) {
10300
         if (!no_move && axis_unhomed_error()) {
10274
-          SERIAL_ECHOLNPGM("No move on toolchange");
10275
           no_move = true;
10301
           no_move = true;
10302
+          #if ENABLED(DEBUG_LEVELING_FEATURE)
10303
+            if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("No move on toolchange");
10304
+          #endif
10276
         }
10305
         }
10277
 
10306
 
10278
         // Save current position to destination, for use later
10307
         // Save current position to destination, for use later
10382
           #endif
10411
           #endif
10383
 
10412
 
10384
           // No extra case for HAS_ABL in DUAL_X_CARRIAGE. Does that mean they don't work together?
10413
           // No extra case for HAS_ABL in DUAL_X_CARRIAGE. Does that mean they don't work together?
10414
+
10385
         #else // !DUAL_X_CARRIAGE
10415
         #else // !DUAL_X_CARRIAGE
10386
 
10416
 
10417
+          #if ENABLED(PARKING_EXTRUDER) // Dual Parking extruder
10418
+            const float z_diff = hotend_offset[Z_AXIS][active_extruder] - hotend_offset[Z_AXIS][tmp_extruder];
10419
+            float z_raise = 0;
10420
+            if (!no_move) {
10421
+
10422
+              const float parkingposx[] = PARKING_EXTRUDER_PARKING_X,
10423
+                          midpos = ((parkingposx[1] - parkingposx[0])/2) + parkingposx[0] + hotend_offset[X_AXIS][active_extruder],
10424
+                          grabpos = parkingposx[tmp_extruder] + hotend_offset[X_AXIS][active_extruder]
10425
+                                    + (tmp_extruder == 0 ? -(PARKING_EXTRUDER_GRAB_DISTANCE) : PARKING_EXTRUDER_GRAB_DISTANCE);
10426
+              /**
10427
+               *  Steps:
10428
+               *    1. raise Z-Axis to have enough clearance
10429
+               *    2. move to park poition of old extruder
10430
+               *    3. disengage magnetc field, wait for delay
10431
+               *    4. move near new extruder
10432
+               *    5. engage magnetic field for new extruder
10433
+               *    6. move to parking incl. offset of new extruder
10434
+               *    7. lower Z-Axis
10435
+               */
10436
+
10437
+              // STEP 1
10438
+              #if ENABLED(DEBUG_LEVELING_FEATURE)
10439
+                SERIAL_ECHOLNPGM("Starting Autopark");
10440
+                if (DEBUGGING(LEVELING)) DEBUG_POS("current position:", current_position);
10441
+              #endif
10442
+              z_raise = PARKING_EXTRUDER_SECURITY_RAISE;
10443
+              current_position[Z_AXIS] += z_raise;
10444
+              #if ENABLED(DEBUG_LEVELING_FEATURE)
10445
+                SERIAL_ECHOLNPGM("(1) Raise Z-Axis ");
10446
+                if (DEBUGGING(LEVELING)) DEBUG_POS("Moving to Raised Z-Position", current_position);
10447
+              #endif
10448
+              planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[Z_AXIS], active_extruder);
10449
+              stepper.synchronize();
10450
+
10451
+              // STEP 2
10452
+              current_position[X_AXIS] = parkingposx[active_extruder] + hotend_offset[X_AXIS][active_extruder];
10453
+              #if ENABLED(DEBUG_LEVELING_FEATURE)
10454
+                SERIAL_ECHOLNPAIR("(2) Park extruder ", active_extruder);
10455
+                if (DEBUGGING(LEVELING)) DEBUG_POS("Moving ParkPos", current_position);
10456
+              #endif
10457
+              planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[X_AXIS], active_extruder);
10458
+              stepper.synchronize();
10459
+
10460
+              // STEP 3
10461
+              #if ENABLED(DEBUG_LEVELING_FEATURE)
10462
+                SERIAL_ECHOLNPGM("(3) Disengage magnet ");
10463
+              #endif
10464
+              pe_deactivate_magnet(active_extruder);
10465
+
10466
+              // STEP 4
10467
+              #if ENABLED(DEBUG_LEVELING_FEATURE)
10468
+                SERIAL_ECHOLNPGM("(4) Move to position near new extruder");
10469
+              #endif
10470
+              current_position[X_AXIS] += (active_extruder == 0 ? 10 : -10); // move 10mm away from parked extruder
10471
+
10472
+              #if ENABLED(DEBUG_LEVELING_FEATURE)
10473
+                if (DEBUGGING(LEVELING)) DEBUG_POS("Moving away from parked extruder", current_position);
10474
+              #endif
10475
+              planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[X_AXIS], active_extruder);
10476
+              stepper.synchronize();
10477
+
10478
+              // STEP 5
10479
+              #if ENABLED(DEBUG_LEVELING_FEATURE)
10480
+                SERIAL_ECHOLNPGM("(5) Engage magnetic field");
10481
+              #endif
10482
+
10483
+              #if ENABLED(PARKING_EXTRUDER_SOLENOIDS_INVERT)
10484
+                pe_activate_magnet(active_extruder); //just save power for inverted magnets
10485
+              #endif
10486
+              pe_activate_magnet(tmp_extruder);
10487
+
10488
+              // STEP 6
10489
+              current_position[X_AXIS] = grabpos + (tmp_extruder == 0 ? (+10) : (-10));
10490
+              planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[X_AXIS], active_extruder);
10491
+              current_position[X_AXIS] = grabpos;
10492
+              #if ENABLED(DEBUG_LEVELING_FEATURE)
10493
+                SERIAL_ECHOLNPAIR("(6) Unpark extruder ", tmp_extruder);
10494
+                if (DEBUGGING(LEVELING)) DEBUG_POS("Move UnparkPos", current_position);
10495
+              #endif
10496
+              planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[X_AXIS]/2, active_extruder);
10497
+              stepper.synchronize();
10498
+
10499
+              // Step 7
10500
+              current_position[X_AXIS] = midpos - hotend_offset[X_AXIS][tmp_extruder];
10501
+              #if ENABLED(DEBUG_LEVELING_FEATURE)
10502
+                SERIAL_ECHOLNPGM("(7) Move midway between hotends");
10503
+                if (DEBUGGING(LEVELING)) DEBUG_POS("Move midway to new extruder", current_position);
10504
+              #endif
10505
+              planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[X_AXIS], active_extruder);
10506
+              stepper.synchronize();
10507
+              #if ENABLED(DEBUG_LEVELING_FEATURE)
10508
+                SERIAL_ECHOLNPGM("Autopark done.");
10509
+              #endif
10510
+            }
10511
+            else { // nomove == true
10512
+              // Only engage magnetic field for new extruder
10513
+              pe_activate_magnet(tmp_extruder);
10514
+              #if ENABLED(PARKING_EXTRUDER_SOLENOIDS_INVERT)
10515
+                pe_activate_magnet(active_extruder); // Just save power for inverted magnets
10516
+              #endif
10517
+            }
10518
+            current_position[Z_AXIS] -= hotend_offset[Z_AXIS][tmp_extruder] - hotend_offset[Z_AXIS][active_extruder]; // Apply Zoffset
10519
+
10520
+            #if ENABLED(DEBUG_LEVELING_FEATURE)
10521
+              if (DEBUGGING(LEVELING)) DEBUG_POS("Applying Z-offset", current_position);
10522
+            #endif
10523
+
10524
+          #endif // dualParking extruder
10525
+
10387
           #if ENABLED(SWITCHING_NOZZLE)
10526
           #if ENABLED(SWITCHING_NOZZLE)
10388
             #define DONT_SWITCH (SWITCHING_EXTRUDER_SERVO_NR == SWITCHING_NOZZLE_SERVO_NR)
10527
             #define DONT_SWITCH (SWITCHING_EXTRUDER_SERVO_NR == SWITCHING_NOZZLE_SERVO_NR)
10389
             // <0 if the new nozzle is higher, >0 if lower. A bigger raise when lower.
10528
             // <0 if the new nozzle is higher, >0 if lower. A bigger raise when lower.
10487
           // The newly-selected extruder XY is actually at...
10626
           // The newly-selected extruder XY is actually at...
10488
           current_position[X_AXIS] += xydiff[X_AXIS];
10627
           current_position[X_AXIS] += xydiff[X_AXIS];
10489
           current_position[Y_AXIS] += xydiff[Y_AXIS];
10628
           current_position[Y_AXIS] += xydiff[Y_AXIS];
10490
-          #if HAS_WORKSPACE_OFFSET || ENABLED(DUAL_X_CARRIAGE)
10629
+          #if HAS_WORKSPACE_OFFSET || ENABLED(DUAL_X_CARRIAGE) || ENABLED(PARKING_EXTRUDER)
10491
             for (uint8_t i = X_AXIS; i <= Y_AXIS; i++) {
10630
             for (uint8_t i = X_AXIS; i <= Y_AXIS; i++) {
10492
               #if HAS_POSITION_SHIFT
10631
               #if HAS_POSITION_SHIFT
10493
                 position_shift[i] += xydiff[i];
10632
                 position_shift[i] += xydiff[i];
10529
 
10668
 
10530
       stepper.synchronize();
10669
       stepper.synchronize();
10531
 
10670
 
10532
-      #if ENABLED(EXT_SOLENOID)
10671
+      #if ENABLED(EXT_SOLENOID) && !ENABLED(PARKING_EXTRUDER)
10533
         disable_all_solenoids();
10672
         disable_all_solenoids();
10534
         enable_solenoid_on_active_extruder();
10673
         enable_solenoid_on_active_extruder();
10535
       #endif // EXT_SOLENOID
10674
       #endif // EXT_SOLENOID
10684
       #endif // CNC_WORKSPACE_PLANES
10823
       #endif // CNC_WORKSPACE_PLANES
10685
 
10824
 
10686
       #if ENABLED(INCH_MODE_SUPPORT)
10825
       #if ENABLED(INCH_MODE_SUPPORT)
10687
-        case 20: //G20: Inch Mode
10826
+        case 20: // G20: Inch Mode
10688
           gcode_G20();
10827
           gcode_G20();
10689
           break;
10828
           break;
10690
 
10829
 
10691
-        case 21: //G21: MM Mode
10830
+        case 21: // G21: MM Mode
10692
           gcode_G21();
10831
           gcode_G21();
10693
           break;
10832
           break;
10694
       #endif // INCH_MODE_SUPPORT
10833
       #endif // INCH_MODE_SUPPORT
10835
         #endif
10974
         #endif
10836
 
10975
 
10837
         #if ENABLED(SDCARD_SORT_ALPHA) && ENABLED(SDSORT_GCODE)
10976
         #if ENABLED(SDCARD_SORT_ALPHA) && ENABLED(SDSORT_GCODE)
10838
-          case 34: //M34 - Set SD card sorting options
10977
+          case 34: // M34: Set SD card sorting options
10839
             gcode_M34(); break;
10978
             gcode_M34(); break;
10840
         #endif // SDCARD_SORT_ALPHA && SDSORT_GCODE
10979
         #endif // SDCARD_SORT_ALPHA && SDSORT_GCODE
10841
 
10980
 
11085
       case 204: // M204: Set acceleration
11224
       case 204: // M204: Set acceleration
11086
         gcode_M204();
11225
         gcode_M204();
11087
         break;
11226
         break;
11088
-      case 205: //M205: Set advanced settings
11227
+      case 205: // M205: Set advanced settings
11089
         gcode_M205();
11228
         gcode_M205();
11090
         break;
11229
         break;
11091
 
11230
 
13352
   #if ENABLED(SWITCHING_NOZZLE)
13491
   #if ENABLED(SWITCHING_NOZZLE)
13353
     move_nozzle_servo(0);  // Initialize nozzle servo
13492
     move_nozzle_servo(0);  // Initialize nozzle servo
13354
   #endif
13493
   #endif
13494
+  
13495
+  #if ENABLED(PARKING_EXTRUDER)
13496
+    #if ENABLED(PARKING_EXTRUDER_SOLENOIDS_INVERT)
13497
+      pe_activate_magnet(0);
13498
+      pe_activate_magnet(1);
13499
+    #else 
13500
+      pe_deactivate_magnet(0);
13501
+      pe_deactivate_magnet(1);
13502
+    #endif
13503
+  #endif
13355
 }
13504
 }
13356
 
13505
 
13357
 /**
13506
 /**

+ 28
- 0
Marlin/SanityCheck.h Parādīt failu

417
 #endif
417
 #endif
418
 
418
 
419
 /**
419
 /**
420
+ * Parking Extruder requirements
421
+ */
422
+#if ENABLED(PARKING_EXTRUDER)
423
+  #if ENABLED(DUAL_X_CARRIAGE)
424
+    #error "PARKING_EXTRUDER and DUAL_X_CARRIAGE are incompatible."
425
+  #elif ENABLED(SINGLENOZZLE)
426
+    #error "PARKING_EXTRUDER and SINGLENOZZLE are incompatible."
427
+  #elif ENABLED(EXT_SOLENOID)
428
+    #error "PARKING_EXTRUDER and EXT_SOLENOID are incompatible. (Pins are used twice.)"
429
+  #elif EXTRUDERS != 2
430
+    #error "PARKING_EXTRUDER requires exactly 2 EXTRUDERS."
431
+  #elif !PIN_EXISTS(SOL0) || !PIN_EXISTS(SOL1)
432
+    #error "PARKING_EXTRUDER requires SOL0_PIN and SOL1_PIN."
433
+  #elif !defined(PARKING_EXTRUDER_PARKING_X)
434
+    #error "PARKING_EXTRUDER requires PARKING_EXTRUDER_PARKING_X."
435
+  #elif !defined(PARKING_EXTRUDER_SECURITY_RAISE)
436
+    #error "PARKING_EXTRUDER requires PARKING_EXTRUDER_SECURITY_RAISE."
437
+  #elif PARKING_EXTRUDER_SECURITY_RAISE < 0
438
+    #error "PARKING_EXTRUDER_SECURITY_RAISE must be 0 or higher."
439
+  #elif !defined(PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE) || !WITHIN(PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE, LOW, HIGH)
440
+    #error "PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE must be defined as HIGH or LOW."
441
+  #elif !defined(PARKING_EXTRUDER_SOLENOIDS_DELAY) || !WITHIN(PARKING_EXTRUDER_SOLENOIDS_DELAY, 0, 2000)
442
+    #error "PARKING_EXTRUDER_SOLENOIDS_DELAY must be between 0 and 2000 (ms)."
443
+  #endif
444
+#endif
445
+
446
+
447
+/**
420
  * Limited number of servos
448
  * Limited number of servos
421
  */
449
  */
422
 #if NUM_SERVOS > 4
450
 #if NUM_SERVOS > 4

+ 1
- 1
Marlin/configuration_store.cpp Parādīt failu

1563
         SERIAL_ECHOPAIR("  M218 T", (int)e);
1563
         SERIAL_ECHOPAIR("  M218 T", (int)e);
1564
         SERIAL_ECHOPAIR(" X", LINEAR_UNIT(hotend_offset[X_AXIS][e]));
1564
         SERIAL_ECHOPAIR(" X", LINEAR_UNIT(hotend_offset[X_AXIS][e]));
1565
         SERIAL_ECHOPAIR(" Y", LINEAR_UNIT(hotend_offset[Y_AXIS][e]));
1565
         SERIAL_ECHOPAIR(" Y", LINEAR_UNIT(hotend_offset[Y_AXIS][e]));
1566
-        #if ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_NOZZLE)
1566
+        #if ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_NOZZLE) ||ENABLED(PARKING_EXTRUDER)
1567
           SERIAL_ECHOPAIR(" Z", LINEAR_UNIT(hotend_offset[Z_AXIS][e]));
1567
           SERIAL_ECHOPAIR(" Z", LINEAR_UNIT(hotend_offset[Z_AXIS][e]));
1568
         #endif
1568
         #endif
1569
         SERIAL_EOL();
1569
         SERIAL_EOL();

+ 15
- 0
Marlin/example_configurations/AlephObjects/TAZ4/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/AliExpress/CL-260/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/Anet/A6/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/Anet/A8/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/BQ/Hephestos/Configuration.h Parādīt failu

179
 #endif
179
 #endif
180
 
180
 
181
 /**
181
 /**
182
+ * Two separate X-carriages with extruders that connect to a moving part
183
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
184
+ */
185
+//#define PARKING_EXTRUDER
186
+#if ENABLED(PARKING_EXTRUDER)
187
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
188
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
189
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
190
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
191
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
192
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
193
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
194
+#endif
195
+
196
+/**
182
  * "Mixing Extruder"
197
  * "Mixing Extruder"
183
  *   - Adds a new code, M165, to set the current mix factors.
198
  *   - Adds a new code, M165, to set the current mix factors.
184
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
199
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/BQ/Hephestos_2/Configuration.h Parādīt failu

175
 #endif
175
 #endif
176
 
176
 
177
 /**
177
 /**
178
+ * Two separate X-carriages with extruders that connect to a moving part
179
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
180
+ */
181
+//#define PARKING_EXTRUDER
182
+#if ENABLED(PARKING_EXTRUDER)
183
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
184
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
185
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
186
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
187
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
188
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
189
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
190
+#endif
191
+
192
+/**
178
  * "Mixing Extruder"
193
  * "Mixing Extruder"
179
  *   - Adds a new code, M165, to set the current mix factors.
194
  *   - Adds a new code, M165, to set the current mix factors.
180
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
195
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/BQ/WITBOX/Configuration.h Parādīt failu

179
 #endif
179
 #endif
180
 
180
 
181
 /**
181
 /**
182
+ * Two separate X-carriages with extruders that connect to a moving part
183
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
184
+ */
185
+//#define PARKING_EXTRUDER
186
+#if ENABLED(PARKING_EXTRUDER)
187
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
188
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
189
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
190
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
191
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
192
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
193
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
194
+#endif
195
+
196
+/**
182
  * "Mixing Extruder"
197
  * "Mixing Extruder"
183
  *   - Adds a new code, M165, to set the current mix factors.
198
  *   - Adds a new code, M165, to set the current mix factors.
184
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
199
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/Cartesio/Configuration.h Parādīt failu

177
 #endif
177
 #endif
178
 
178
 
179
 /**
179
 /**
180
+ * Two separate X-carriages with extruders that connect to a moving part
181
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
182
+ */
183
+//#define PARKING_EXTRUDER
184
+#if ENABLED(PARKING_EXTRUDER)
185
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
186
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
187
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
188
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
189
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
190
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
191
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
192
+#endif
193
+
194
+/**
180
  * "Mixing Extruder"
195
  * "Mixing Extruder"
181
  *   - Adds a new code, M165, to set the current mix factors.
196
  *   - Adds a new code, M165, to set the current mix factors.
182
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
197
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/Creality/CR-10/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/Felix/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/Felix/DUAL/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/Folger Tech/i3-2020/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/Geeetech/GT2560/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/Geeetech/I3_Pro_X-GT2560/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/Infitary/i3-M508/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/Malyan/M150/Configuration.h Parādīt failu

181
 #endif
181
 #endif
182
 
182
 
183
 /**
183
 /**
184
+ * Two separate X-carriages with extruders that connect to a moving part
185
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
186
+ */
187
+//#define PARKING_EXTRUDER
188
+#if ENABLED(PARKING_EXTRUDER)
189
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
190
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
191
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
192
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
193
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
194
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
195
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
196
+#endif
197
+
198
+/**
184
  * "Mixing Extruder"
199
  * "Mixing Extruder"
185
  *   - Adds a new code, M165, to set the current mix factors.
200
  *   - Adds a new code, M165, to set the current mix factors.
186
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
201
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/RigidBot/Configuration.h Parādīt failu

179
 #endif
179
 #endif
180
 
180
 
181
 /**
181
 /**
182
+ * Two separate X-carriages with extruders that connect to a moving part
183
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
184
+ */
185
+//#define PARKING_EXTRUDER
186
+#if ENABLED(PARKING_EXTRUDER)
187
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
188
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
189
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
190
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
191
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
192
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
193
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
194
+#endif
195
+
196
+/**
182
  * "Mixing Extruder"
197
  * "Mixing Extruder"
183
  *   - Adds a new code, M165, to set the current mix factors.
198
  *   - Adds a new code, M165, to set the current mix factors.
184
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
199
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/SCARA/Configuration.h Parādīt failu

206
 #endif
206
 #endif
207
 
207
 
208
 /**
208
 /**
209
+ * Two separate X-carriages with extruders that connect to a moving part
210
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
211
+ */
212
+//#define PARKING_EXTRUDER
213
+#if ENABLED(PARKING_EXTRUDER)
214
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
215
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
216
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
217
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
218
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
219
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
220
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
221
+#endif
222
+
223
+/**
209
  * "Mixing Extruder"
224
  * "Mixing Extruder"
210
  *   - Adds a new code, M165, to set the current mix factors.
225
  *   - Adds a new code, M165, to set the current mix factors.
211
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
226
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/TinyBoy2/Configuration.h Parādīt failu

198
 #endif
198
 #endif
199
 
199
 
200
 /**
200
 /**
201
+ * Two separate X-carriages with extruders that connect to a moving part
202
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
203
+ */
204
+//#define PARKING_EXTRUDER
205
+#if ENABLED(PARKING_EXTRUDER)
206
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
207
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
208
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
209
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
210
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
211
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
212
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
213
+#endif
214
+
215
+/**
201
  * "Mixing Extruder"
216
  * "Mixing Extruder"
202
  *   - Adds a new code, M165, to set the current mix factors.
217
  *   - Adds a new code, M165, to set the current mix factors.
203
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
218
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/Velleman/K8200/Configuration.h Parādīt failu

196
 #endif
196
 #endif
197
 
197
 
198
 /**
198
 /**
199
+ * Two separate X-carriages with extruders that connect to a moving part
200
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
201
+ */
202
+//#define PARKING_EXTRUDER
203
+#if ENABLED(PARKING_EXTRUDER)
204
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
205
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
206
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
207
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
208
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
209
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
210
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
211
+#endif
212
+
213
+/**
199
  * "Mixing Extruder"
214
  * "Mixing Extruder"
200
  *   - Adds a new code, M165, to set the current mix factors.
215
  *   - Adds a new code, M165, to set the current mix factors.
201
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
216
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/Velleman/K8400/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/Velleman/K8400/Dual-head/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/adafruit/ST7565/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/delta/FLSUN/auto_calibrate/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/delta/FLSUN/kossel_mini/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/delta/generic/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/delta/kossel_mini/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/delta/kossel_pro/Configuration.h Parādīt failu

180
 #endif
180
 #endif
181
 
181
 
182
 /**
182
 /**
183
+ * Two separate X-carriages with extruders that connect to a moving part
184
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
185
+ */
186
+//#define PARKING_EXTRUDER
187
+#if ENABLED(PARKING_EXTRUDER)
188
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
189
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
190
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
191
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
192
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
193
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
194
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
195
+#endif
196
+
197
+/**
183
  * "Mixing Extruder"
198
  * "Mixing Extruder"
184
  *   - Adds a new code, M165, to set the current mix factors.
199
  *   - Adds a new code, M165, to set the current mix factors.
185
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
200
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/delta/kossel_xl/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/gCreate/gMax1.5+/Configuration.h Parādīt failu

181
 #endif
181
 #endif
182
 
182
 
183
 /**
183
 /**
184
+ * Two separate X-carriages with extruders that connect to a moving part
185
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
186
+ */
187
+//#define PARKING_EXTRUDER
188
+#if ENABLED(PARKING_EXTRUDER)
189
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
190
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
191
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
192
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
193
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
194
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
195
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
196
+#endif
197
+
198
+/**
184
  * "Mixing Extruder"
199
  * "Mixing Extruder"
185
  *   - Adds a new code, M165, to set the current mix factors.
200
  *   - Adds a new code, M165, to set the current mix factors.
186
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
201
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/makibox/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/tvrrug/Round2/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

+ 15
- 0
Marlin/example_configurations/wt150/Configuration.h Parādīt failu

176
 #endif
176
 #endif
177
 
177
 
178
 /**
178
 /**
179
+ * Two separate X-carriages with extruders that connect to a moving part
180
+ * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN.
181
+ */
182
+//#define PARKING_EXTRUDER
183
+#if ENABLED(PARKING_EXTRUDER)
184
+  #define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
185
+  #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
186
+  #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // Delay (ms) for magnetic field. No delay if 0 or not defined.
187
+  #define PARKING_EXTRUDER_PARKING_X { -78, 184 }     // X positions for parking the extruders
188
+  #define PARKING_EXTRUDER_GRAB_DISTANCE 1            // mm to move beyond the parking point to grab the extruder
189
+  #define PARKING_EXTRUDER_SECURITY_RAISE 5           // Z-raise before parking
190
+  #define HOTEND_OFFSET_Z { 0.0, 1.3 }                // Z-offsets of the two hotends. The first must be 0.
191
+#endif
192
+
193
+/**
179
  * "Mixing Extruder"
194
  * "Mixing Extruder"
180
  *   - Adds a new code, M165, to set the current mix factors.
195
  *   - Adds a new code, M165, to set the current mix factors.
181
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
196
  *   - Extends the stepping routines to move multiple steppers in proportion to the mix.

Notiek ielāde…
Atcelt
Saglabāt