Browse Source

Merge pull request #9676 from smoki3/bugfix-2.0.x

[2.0.x] Option to force homing of a dependent axis
Scott Lahteine 7 years ago
parent
commit
6589f654b0
No account linked to committer's email address
46 changed files with 155 additions and 32 deletions
  1. 4
    4
      .travis.yml
  2. 3
    0
      Marlin/Configuration_adv.h
  3. 3
    0
      Marlin/src/config/default/Configuration_adv.h
  4. 3
    0
      Marlin/src/config/examples/AlephObjects/TAZ4/Configuration_adv.h
  5. 3
    0
      Marlin/src/config/examples/Anet/A6/Configuration_adv.h
  6. 3
    0
      Marlin/src/config/examples/Anet/A8/Configuration_adv.h
  7. 3
    0
      Marlin/src/config/examples/Azteeg/X5GT/Configuration_adv.h
  8. 3
    0
      Marlin/src/config/examples/BIBO/TouchX/Configuration_adv.h
  9. 3
    0
      Marlin/src/config/examples/BQ/Hephestos/Configuration_adv.h
  10. 3
    0
      Marlin/src/config/examples/BQ/Hephestos_2/Configuration_adv.h
  11. 3
    0
      Marlin/src/config/examples/BQ/WITBOX/Configuration_adv.h
  12. 3
    0
      Marlin/src/config/examples/Cartesio/Configuration_adv.h
  13. 3
    0
      Marlin/src/config/examples/Creality/CR-10/Configuration_adv.h
  14. 3
    0
      Marlin/src/config/examples/Creality/CR-10S/Configuration_adv.h
  15. 3
    0
      Marlin/src/config/examples/Creality/Ender/Configuration_adv.h
  16. 3
    0
      Marlin/src/config/examples/Felix/Configuration_adv.h
  17. 3
    0
      Marlin/src/config/examples/FolgerTech/i3-2020/Configuration_adv.h
  18. 3
    0
      Marlin/src/config/examples/Infitary/i3-M508/Configuration_adv.h
  19. 3
    0
      Marlin/src/config/examples/JGAurora/A5/Configuration_adv.h
  20. 3
    0
      Marlin/src/config/examples/MakerParts/Configuration_adv.h
  21. 3
    0
      Marlin/src/config/examples/Malyan/M150/Configuration_adv.h
  22. 3
    0
      Marlin/src/config/examples/Malyan/M200/Configuration_adv.h
  23. 3
    0
      Marlin/src/config/examples/Micromake/C1/enhanced/Configuration_adv.h
  24. 3
    0
      Marlin/src/config/examples/Mks/Sbase/Configuration_adv.h
  25. 3
    0
      Marlin/src/config/examples/RigidBot/Configuration_adv.h
  26. 3
    0
      Marlin/src/config/examples/SCARA/Configuration_adv.h
  27. 3
    0
      Marlin/src/config/examples/Sanguinololu/Configuration_adv.h
  28. 3
    0
      Marlin/src/config/examples/TheBorg/Configuration_adv.h
  29. 3
    0
      Marlin/src/config/examples/TinyBoy2/Configuration_adv.h
  30. 3
    0
      Marlin/src/config/examples/UltiMachine/Archim2/Configuration_adv.h
  31. 3
    0
      Marlin/src/config/examples/Velleman/K8200/Configuration_adv.h
  32. 3
    0
      Marlin/src/config/examples/Velleman/K8400/Configuration_adv.h
  33. 3
    0
      Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration_adv.h
  34. 3
    0
      Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h
  35. 3
    0
      Marlin/src/config/examples/delta/FLSUN/kossel/Configuration_adv.h
  36. 3
    0
      Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h
  37. 3
    0
      Marlin/src/config/examples/delta/generic/Configuration_adv.h
  38. 3
    0
      Marlin/src/config/examples/delta/kossel_mini/Configuration_adv.h
  39. 3
    0
      Marlin/src/config/examples/delta/kossel_pro/Configuration_adv.h
  40. 3
    0
      Marlin/src/config/examples/delta/kossel_xl/Configuration_adv.h
  41. 3
    0
      Marlin/src/config/examples/gCreate/gMax1.5+/Configuration_adv.h
  42. 3
    0
      Marlin/src/config/examples/makibox/Configuration_adv.h
  43. 3
    0
      Marlin/src/config/examples/tvrrug/Round2/Configuration_adv.h
  44. 3
    0
      Marlin/src/config/examples/wt150/Configuration_adv.h
  45. 13
    27
      Marlin/src/gcode/calibrate/G28.cpp
  46. 9
    1
      Marlin/src/inc/SanityCheck.h

+ 4
- 4
.travis.yml View File

@@ -67,7 +67,7 @@ script:
67 67
   - opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT EEPROM_SETTINGS
68 68
   - opt_enable BLINKM PCA9632 RGB_LED NEOPIXEL_LED AUTO_POWER_CONTROL
69 69
   - opt_enable AUTO_BED_LEVELING_LINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE
70
-  - opt_enable_adv FWRETRACT MAX7219_DEBUG LED_CONTROL_MENU CASE_LIGHT_ENABLE CASE_LIGHT_USE_NEOPIXEL
70
+  - opt_enable_adv FWRETRACT MAX7219_DEBUG LED_CONTROL_MENU CASE_LIGHT_ENABLE CASE_LIGHT_USE_NEOPIXEL CODEPENDENT_XY_HOMING
71 71
   - opt_set ABL_GRID_POINTS_X 16
72 72
   - opt_set ABL_GRID_POINTS_Y 16
73 73
   - opt_set_adv FANMUX0_PIN 53
@@ -84,13 +84,13 @@ script:
84 84
   - opt_set TEMP_SENSOR_4 999
85 85
   - opt_set TEMP_SENSOR_BED 1
86 86
   - opt_enable AUTO_BED_LEVELING_UBL DEBUG_LEVELING_FEATURE G26_MESH_EDITING ENABLE_LEVELING_FADE_HEIGHT EEPROM_SETTINGS EEPROM_CHITCHAT G3D_PANEL SKEW_CORRECTION
87
-  - opt_enable_adv CUSTOM_USER_MENUS I2C_POSITION_ENCODERS BABYSTEPPING BABYSTEP_XY LIN_ADVANCE NANODLP_Z_SYNC
87
+  - opt_enable_adv CUSTOM_USER_MENUS I2C_POSITION_ENCODERS BABYSTEPPING BABYSTEP_XY LIN_ADVANCE NANODLP_Z_SYNC QUICK_HOME
88 88
   - build_marlin_pio ${TRAVIS_BUILD_DIR} ${TEST_PLATFORM}
89 89
   #
90
-  # Add a Sled Z Probe, do non-segmented moves, use Japanese language
90
+  # Add a Sled Z Probe, use UBL Cartesian moves, use Japanese language
91 91
   #
92 92
   - opt_set LANGUAGE kana_utf8
93
-  - opt_enable Z_PROBE_SLED
93
+  - opt_enable Z_PROBE_SLED SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE
94 94
   - opt_disable SEGMENT_LEVELED_MOVES
95 95
   - opt_enable_adv BABYSTEP_ZPROBE_OFFSET DOUBLECLICK_FOR_Z_BABYSTEPPING
96 96
   - build_marlin_pio ${TRAVIS_BUILD_DIR} ${TEST_PLATFORM}

+ 3
- 0
Marlin/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/default/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/AlephObjects/TAZ4/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/Anet/A6/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/Anet/A8/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/Azteeg/X5GT/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/BIBO/TouchX/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/BQ/Hephestos/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/BQ/Hephestos_2/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 #define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/BQ/WITBOX/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/Cartesio/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 #define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/Creality/CR-10/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/Creality/CR-10S/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/Creality/Ender/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/Felix/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/FolgerTech/i3-2020/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/Infitary/i3-M508/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/JGAurora/A5/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/MakerParts/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/Malyan/M150/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/Malyan/M200/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/Micromake/C1/enhanced/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/Mks/Sbase/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/RigidBot/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/SCARA/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/Sanguinololu/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/TheBorg/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/TinyBoy2/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/UltiMachine/Archim2/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/Velleman/K8200/Configuration_adv.h View File

@@ -375,6 +375,9 @@
375 375
 // When G28 is called, this option will make Y home before X
376 376
 //#define HOME_Y_BEFORE_X
377 377
 
378
+// Enable this if X or Y can't home without homing the other axis first.
379
+//#define CODEPENDENT_XY_HOMING
380
+
378 381
 // @section machine
379 382
 
380 383
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/Velleman/K8400/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/delta/FLSUN/kossel/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/delta/generic/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/delta/kossel_mini/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/delta/kossel_pro/Configuration_adv.h View File

@@ -367,6 +367,9 @@
367 367
 // When G28 is called, this option will make Y home before X
368 368
 //#define HOME_Y_BEFORE_X
369 369
 
370
+// Enable this if X or Y can't home without homing the other axis first.
371
+//#define CODEPENDENT_XY_HOMING
372
+
370 373
 // @section machine
371 374
 
372 375
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/delta/kossel_xl/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/gCreate/gMax1.5+/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/makibox/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/tvrrug/Round2/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/src/config/examples/wt150/Configuration_adv.h View File

@@ -362,6 +362,9 @@
362 362
 // When G28 is called, this option will make Y home before X
363 363
 //#define HOME_Y_BEFORE_X
364 364
 
365
+// Enable this if X or Y can't home without homing the other axis first.
366
+//#define CODEPENDENT_XY_HOMING
367
+
365 368
 // @section machine
366 369
 
367 370
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 13
- 27
Marlin/src/gcode/calibrate/G28.cpp View File

@@ -198,12 +198,7 @@ void GcodeSuite::G28(const bool always_home_all) {
198 198
 
199 199
     #if Z_HOME_DIR > 0  // If homing away from BED do Z first
200 200
 
201
-      if (home_all || homeZ) {
202
-        HOMEAXIS(Z);
203
-        #if ENABLED(DEBUG_LEVELING_FEATURE)
204
-          if (DEBUGGING(LEVELING)) DEBUG_POS("> HOMEAXIS(Z)", current_position);
205
-        #endif
206
-      }
201
+      if (home_all || homeZ) HOMEAXIS(Z);
207 202
 
208 203
     #endif
209 204
 
@@ -227,20 +222,23 @@ void GcodeSuite::G28(const bool always_home_all) {
227 222
 
228 223
     #endif
229 224
 
225
+    // Home Y (before X)
230 226
     #if ENABLED(HOME_Y_BEFORE_X)
231 227
 
232
-      // Home Y
233
-      if (home_all || homeY) {
234
-        HOMEAXIS(Y);
235
-        #if ENABLED(DEBUG_LEVELING_FEATURE)
236
-          if (DEBUGGING(LEVELING)) DEBUG_POS("> homeY", current_position);
228
+      if (home_all || homeY
229
+        #if ENABLED(CODEPENDENT_XY_HOMING)
230
+          || homeX
237 231
         #endif
238
-      }
232
+      ) HOMEAXIS(Y);
239 233
 
240 234
     #endif
241 235
 
242 236
     // Home X
243
-    if (home_all || homeX) {
237
+    if (home_all || homeX
238
+      #if ENABLED(CODEPENDENT_XY_HOMING) && DISABLED(HOME_Y_BEFORE_X)
239
+        || homeY
240
+      #endif
241
+    ) {
244 242
 
245 243
       #if ENABLED(DUAL_X_CARRIAGE)
246 244
 
@@ -265,20 +263,11 @@ void GcodeSuite::G28(const bool always_home_all) {
265 263
         HOMEAXIS(X);
266 264
 
267 265
       #endif
268
-
269
-      #if ENABLED(DEBUG_LEVELING_FEATURE)
270
-        if (DEBUGGING(LEVELING)) DEBUG_POS("> homeX", current_position);
271
-      #endif
272 266
     }
273 267
 
268
+    // Home Y (after X)
274 269
     #if DISABLED(HOME_Y_BEFORE_X)
275
-      // Home Y
276
-      if (home_all || homeY) {
277
-        HOMEAXIS(Y);
278
-        #if ENABLED(DEBUG_LEVELING_FEATURE)
279
-          if (DEBUGGING(LEVELING)) DEBUG_POS("> homeY", current_position);
280
-        #endif
281
-      }
270
+      if (home_all || homeY) HOMEAXIS(Y);
282 271
     #endif
283 272
 
284 273
     // Home Z last if homing towards the bed
@@ -289,9 +278,6 @@ void GcodeSuite::G28(const bool always_home_all) {
289 278
         #else
290 279
           HOMEAXIS(Z);
291 280
         #endif
292
-        #if ENABLED(DEBUG_LEVELING_FEATURE)
293
-          if (DEBUGGING(LEVELING)) DEBUG_POS("> (home_all || homeZ) > final", current_position);
294
-        #endif
295 281
       } // home_all || homeZ
296 282
     #endif // Z_HOME_DIR < 0
297 283
 

+ 9
- 1
Marlin/src/inc/SanityCheck.h View File

@@ -886,12 +886,20 @@ static_assert(1 >= 0
886 886
 #endif
887 887
 
888 888
 /**
889
- * Homing Bump
889
+ * Homing
890 890
  */
891 891
 #if X_HOME_BUMP_MM < 0 || Y_HOME_BUMP_MM < 0 || Z_HOME_BUMP_MM < 0
892 892
   #error "[XYZ]_HOME_BUMP_MM must be greater than or equal to 0."
893 893
 #endif
894 894
 
895
+#if ENABLED(CODEPENDENT_XY_HOMING)
896
+  #if ENABLED(QUICK_HOME)
897
+    #error "QUICK_HOME is incompatible with CODEPENDENT_XY_HOMING."
898
+  #elif IS_KINEMATIC
899
+    #error "CODEPENDENT_XY_HOMING requires a Cartesian setup."
900
+  #endif
901
+#endif
902
+
895 903
 /**
896 904
  * Make sure Z_SAFE_HOMING point is reachable
897 905
  */

Loading…
Cancel
Save