Procházet zdrojové kódy

[2.0.x] Fix Dual X Carriage tool change crash (#11447)

Scott Lahteine před 6 roky
rodič
revize
9c62c47579
No account linked to committer's email address
55 změnil soubory, kde provedl 139 přidání a 9 odebrání
  1. 2
    0
      Marlin/Configuration_adv.h
  2. 2
    0
      Marlin/src/config/default/Configuration_adv.h
  3. 2
    0
      Marlin/src/config/examples/AlephObjects/TAZ4/Configuration_adv.h
  4. 2
    0
      Marlin/src/config/examples/Anet/A6/Configuration_adv.h
  5. 2
    0
      Marlin/src/config/examples/Anet/A8/Configuration_adv.h
  6. 2
    0
      Marlin/src/config/examples/Azteeg/X5GT/Configuration_adv.h
  7. 2
    0
      Marlin/src/config/examples/BIBO/TouchX/cyclops/Configuration_adv.h
  8. 2
    0
      Marlin/src/config/examples/BIBO/TouchX/default/Configuration_adv.h
  9. 2
    0
      Marlin/src/config/examples/BQ/Hephestos/Configuration_adv.h
  10. 2
    0
      Marlin/src/config/examples/BQ/Hephestos_2/Configuration_adv.h
  11. 2
    0
      Marlin/src/config/examples/BQ/WITBOX/Configuration_adv.h
  12. 2
    0
      Marlin/src/config/examples/Cartesio/Configuration_adv.h
  13. 2
    0
      Marlin/src/config/examples/Creality/CR-10/Configuration_adv.h
  14. 2
    0
      Marlin/src/config/examples/Creality/CR-10S/Configuration_adv.h
  15. 2
    0
      Marlin/src/config/examples/Creality/CR-10mini/Configuration_adv.h
  16. 2
    0
      Marlin/src/config/examples/Creality/CR-8/Configuration_adv.h
  17. 2
    0
      Marlin/src/config/examples/Creality/Ender-2/Configuration_adv.h
  18. 2
    0
      Marlin/src/config/examples/Creality/Ender-3/Configuration_adv.h
  19. 2
    0
      Marlin/src/config/examples/Creality/Ender-4/Configuration_adv.h
  20. 2
    0
      Marlin/src/config/examples/Einstart-S/Configuration_adv.h
  21. 2
    0
      Marlin/src/config/examples/Felix/Configuration_adv.h
  22. 2
    0
      Marlin/src/config/examples/FolgerTech/i3-2020/Configuration_adv.h
  23. 2
    0
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro C/Configuration_adv.h
  24. 2
    0
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro W/Configuration_adv.h
  25. 2
    0
      Marlin/src/config/examples/Infitary/i3-M508/Configuration_adv.h
  26. 2
    0
      Marlin/src/config/examples/JGAurora/A5/Configuration_adv.h
  27. 2
    0
      Marlin/src/config/examples/MakerParts/Configuration_adv.h
  28. 2
    0
      Marlin/src/config/examples/Malyan/M150/Configuration_adv.h
  29. 2
    0
      Marlin/src/config/examples/Malyan/M200/Configuration_adv.h
  30. 2
    0
      Marlin/src/config/examples/Micromake/C1/enhanced/Configuration_adv.h
  31. 2
    0
      Marlin/src/config/examples/Mks/Sbase/Configuration_adv.h
  32. 2
    0
      Marlin/src/config/examples/RigidBot/Configuration_adv.h
  33. 2
    0
      Marlin/src/config/examples/SCARA/Configuration_adv.h
  34. 2
    0
      Marlin/src/config/examples/Sanguinololu/Configuration_adv.h
  35. 2
    0
      Marlin/src/config/examples/TheBorg/Configuration_adv.h
  36. 2
    0
      Marlin/src/config/examples/TinyBoy2/Configuration_adv.h
  37. 2
    0
      Marlin/src/config/examples/Tronxy/X3A/Configuration_adv.h
  38. 2
    0
      Marlin/src/config/examples/UltiMachine/Archim2/Configuration_adv.h
  39. 2
    0
      Marlin/src/config/examples/Velleman/K8200/Configuration_adv.h
  40. 2
    0
      Marlin/src/config/examples/Velleman/K8400/Configuration_adv.h
  41. 2
    0
      Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration_adv.h
  42. 2
    0
      Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h
  43. 2
    0
      Marlin/src/config/examples/delta/FLSUN/kossel/Configuration_adv.h
  44. 2
    0
      Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h
  45. 2
    0
      Marlin/src/config/examples/delta/generic/Configuration_adv.h
  46. 2
    0
      Marlin/src/config/examples/delta/kossel_mini/Configuration_adv.h
  47. 2
    0
      Marlin/src/config/examples/delta/kossel_pro/Configuration_adv.h
  48. 2
    0
      Marlin/src/config/examples/delta/kossel_xl/Configuration_adv.h
  49. 2
    0
      Marlin/src/config/examples/gCreate/gMax1.5+/Configuration_adv.h
  50. 2
    0
      Marlin/src/config/examples/makibox/Configuration_adv.h
  51. 2
    0
      Marlin/src/config/examples/tvrrug/Round2/Configuration_adv.h
  52. 2
    0
      Marlin/src/config/examples/wt150/Configuration_adv.h
  53. 12
    0
      Marlin/src/inc/Conditionals_post.h
  54. 1
    1
      Marlin/src/module/motion.cpp
  55. 22
    8
      Marlin/src/module/tool_change.cpp

+ 2
- 0
Marlin/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/default/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/AlephObjects/TAZ4/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Anet/A6/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Anet/A8/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Azteeg/X5GT/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/BIBO/TouchX/cyclops/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/BIBO/TouchX/default/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/BQ/Hephestos/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/BQ/Hephestos_2/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/BQ/WITBOX/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Cartesio/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Creality/CR-10/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Creality/CR-10S/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Creality/CR-10mini/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Creality/CR-8/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Creality/Ender-2/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Creality/Ender-3/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Creality/Ender-4/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Einstart-S/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Felix/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/FolgerTech/i3-2020/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Geeetech/Prusa i3 Pro C/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Geeetech/Prusa i3 Pro W/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Infitary/i3-M508/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/JGAurora/A5/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/MakerParts/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Malyan/M150/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Malyan/M200/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Micromake/C1/enhanced/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Mks/Sbase/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/RigidBot/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/SCARA/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Sanguinololu/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/TheBorg/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/TinyBoy2/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Tronxy/X3A/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/UltiMachine/Archim2/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Velleman/K8200/Configuration_adv.h Zobrazit soubor

@@ -343,6 +343,8 @@
343 343
   // Configuration for second X-carriage
344 344
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
345 345
   // the second x-carriage always homes to the maximum endstop.
346
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
347
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
346 348
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
347 349
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
348 350
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Velleman/K8400/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/delta/FLSUN/kossel/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/delta/generic/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/delta/kossel_mini/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/delta/kossel_pro/Configuration_adv.h Zobrazit soubor

@@ -345,6 +345,8 @@
345 345
   // Configuration for second X-carriage
346 346
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
347 347
   // the second x-carriage always homes to the maximum endstop.
348
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
349
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
348 350
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
349 351
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
350 352
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/delta/kossel_xl/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/gCreate/gMax1.5+/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/makibox/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/tvrrug/Round2/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 2
- 0
Marlin/src/config/examples/wt150/Configuration_adv.h Zobrazit soubor

@@ -340,6 +340,8 @@
340 340
   // Configuration for second X-carriage
341 341
   // Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
342 342
   // the second x-carriage always homes to the maximum endstop.
343
+  #define X1_MIN_POS X_MIN_POS  // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage
344
+  #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage
343 345
   #define X2_MIN_POS 80     // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
344 346
   #define X2_MAX_POS 353    // set maximum to the distance between toolheads when both heads are homed
345 347
   #define X2_HOME_DIR 1     // the second X-carriage always homes to the maximum endstop position

+ 12
- 0
Marlin/src/inc/Conditionals_post.h Zobrazit soubor

@@ -86,6 +86,18 @@
86 86
 #define Y_MAX_BED (Y_CENTER + (Y_BED_SIZE) / 2)
87 87
 
88 88
 /**
89
+ * Dual X Carriage
90
+ */
91
+#if ENABLED(DUAL_X_CARRIAGE)
92
+  #ifndef X1_MIN_POS
93
+    #define X1_MIN_POS X_MIN_POS
94
+  #endif
95
+  #ifndef X1_MAX_POS
96
+    #define X1_MAX_POS X_BED_SIZE
97
+  #endif
98
+#endif
99
+
100
+/**
89 101
  * CoreXY, CoreXZ, and CoreYZ - and their reverse
90 102
  */
91 103
 #define CORE_IS_XY (ENABLED(COREXY) || ENABLED(COREYX))

+ 1
- 1
Marlin/src/module/motion.cpp Zobrazit soubor

@@ -1483,7 +1483,7 @@ void homeaxis(const AxisEnum axis) {
1483 1483
       if (axis == X_AXIS) {
1484 1484
 
1485 1485
         // In Dual X mode hotend_offset[X] is T1's home position
1486
-        float dual_max_x = MAX(hotend_offset[X_AXIS][1], X2_MAX_POS);
1486
+        const float dual_max_x = MAX(hotend_offset[X_AXIS][1], X2_MAX_POS);
1487 1487
 
1488 1488
         if (active_extruder != 0) {
1489 1489
           // T1 can move from X2_MIN_POS to X2_MAX_POS or X2 home position (whichever is larger)

+ 22
- 8
Marlin/src/module/tool_change.cpp Zobrazit soubor

@@ -377,9 +377,6 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
377 377
           #endif
378 378
         }
379 379
 
380
-        // Save current position to destination, for use later
381
-        set_destination_from_current();
382
-
383 380
         #if HAS_LEVELING
384 381
           // Set current position to the physical position
385 382
           const bool leveling_was_active = planner.leveling_active;
@@ -388,10 +385,23 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
388 385
 
389 386
         #if ENABLED(DUAL_X_CARRIAGE)
390 387
 
388
+          #if HAS_SOFTWARE_ENDSTOPS
389
+            // Update the X software endstops early
390
+            active_extruder = tmp_extruder;
391
+            update_software_endstops(X_AXIS);
392
+            active_extruder = !tmp_extruder;
393
+          #endif
394
+
395
+          // Don't move the new extruder out of bounds
396
+          if (!WITHIN(current_position[X_AXIS], soft_endstop_min[X_AXIS], soft_endstop_max[X_AXIS]))
397
+            no_move = true;
398
+
399
+          if (!no_move) set_destination_from_current();
391 400
           dualx_tool_change(tmp_extruder, no_move); // Can modify no_move
392 401
 
393 402
         #else // !DUAL_X_CARRIAGE
394 403
 
404
+          set_destination_from_current();
395 405
           #if ENABLED(PARKING_EXTRUDER) // Dual Parking extruder
396 406
             parking_extruder_tool_change(tmp_extruder, no_move);
397 407
           #endif
@@ -424,16 +434,16 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
424 434
 
425 435
         #endif // !DUAL_X_CARRIAGE
426 436
 
427
-        #if HAS_LEVELING
428
-          // Restore leveling to re-establish the logical position
429
-          set_bed_leveling_enabled(leveling_was_active);
430
-        #endif
431
-
432 437
         #if ENABLED(SWITCHING_NOZZLE)
433 438
           // The newly-selected extruder Z is actually at...
434 439
           current_position[Z_AXIS] -= zdiff;
435 440
         #endif
436 441
 
442
+        #if HAS_LEVELING
443
+          // Restore leveling to re-establish the logical position
444
+          set_bed_leveling_enabled(leveling_was_active);
445
+        #endif
446
+
437 447
         // Tell the planner the new "current position"
438 448
         SYNC_PLAN_POSITION_KINEMATIC();
439 449
 
@@ -477,6 +487,10 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
477 487
 
478 488
       feedrate_mm_s = old_feedrate_mm_s;
479 489
 
490
+      #if HAS_SOFTWARE_ENDSTOPS && ENABLED(DUAL_X_CARRIAGE)
491
+        update_software_endstops(X_AXIS);
492
+      #endif
493
+
480 494
     #else // HOTENDS <= 1
481 495
 
482 496
       UNUSED(fr_mm_s);

Loading…
Zrušit
Uložit