Option to force X or Y to home first when homing the other axis

2.0.x
Kevin 7 years ago committed by Scott Lahteine
parent 60fc372211
commit 9019ea0fce

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

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

@ -227,10 +227,14 @@ void GcodeSuite::G28(const bool always_home_all) {
#endif #endif
// Home Y (before X)
#if ENABLED(HOME_Y_BEFORE_X) #if ENABLED(HOME_Y_BEFORE_X)
// Home Y if (home_all || homeY
if (home_all || homeY) { #if ENABLED(CODEPENDENT_XY_HOMING)
|| homeX
#endif
) {
HOMEAXIS(Y); HOMEAXIS(Y);
#if ENABLED(DEBUG_LEVELING_FEATURE) #if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) DEBUG_POS("> homeY", current_position); if (DEBUGGING(LEVELING)) DEBUG_POS("> homeY", current_position);
@ -240,7 +244,11 @@ void GcodeSuite::G28(const bool always_home_all) {
#endif #endif
// Home X // Home X
if (home_all || homeX) { if (home_all || homeX
#if ENABLED(CODEPENDENT_XY_HOMING) && DISABLED(HOME_Y_BEFORE_X)
|| homeY
#endif
) {
#if ENABLED(DUAL_X_CARRIAGE) #if ENABLED(DUAL_X_CARRIAGE)
@ -271,8 +279,8 @@ void GcodeSuite::G28(const bool always_home_all) {
#endif #endif
} }
// Home Y (after X)
#if DISABLED(HOME_Y_BEFORE_X) #if DISABLED(HOME_Y_BEFORE_X)
// Home Y
if (home_all || homeY) { if (home_all || homeY) {
HOMEAXIS(Y); HOMEAXIS(Y);
#if ENABLED(DEBUG_LEVELING_FEATURE) #if ENABLED(DEBUG_LEVELING_FEATURE)

@ -886,12 +886,20 @@ static_assert(1 >= 0
#endif #endif
/** /**
* Homing Bump * Homing
*/ */
#if X_HOME_BUMP_MM < 0 || Y_HOME_BUMP_MM < 0 || Z_HOME_BUMP_MM < 0 #if X_HOME_BUMP_MM < 0 || Y_HOME_BUMP_MM < 0 || Z_HOME_BUMP_MM < 0
#error "[XYZ]_HOME_BUMP_MM must be greater than or equal to 0." #error "[XYZ]_HOME_BUMP_MM must be greater than or equal to 0."
#endif #endif
#if ENABLED(CODEPENDENT_XY_HOMING)
#if ENABLED(QUICK_HOME)
#error "QUICK_HOME is incompatible with CODEPENDENT_XY_HOMING."
#elif IS_KINEMATIC
#error "CODEPENDENT_XY_HOMING requires a Cartesian setup."
#endif
#endif
/** /**
* Make sure Z_SAFE_HOMING point is reachable * Make sure Z_SAFE_HOMING point is reachable
*/ */

Loading…
Cancel
Save