diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index a9ef23ce3..00ccaa082 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -204,55 +204,13 @@ const bool Z_ENDSTOPS_INVERTING = true; // set to true to invert the logic of th #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS) // The position of the homing switches -// Auto switch code by ZetaPhoenix -//#define MANUAL_HOME_POSITIONS //If defined, manualy programed locations will be loaded -//#define BED_CENTER_AT_0_0 - -#ifdef MANUAL_HOME_POSITION //Manual limit switch locations - #define X_HOME_POS 0 - #define Y_HOME_POS 0 - #define Z_HOME_POS 0 - -//Set min/max homing switch positions based upon direction and min/max travel limits -#else - //X axis - #if X_HOME_DIR == -1 - #ifdef BED_CENTER_AT_0_0 - #define X_HOME_POS X_MAX_LENGTH * -0.5 - #else - #define X_HOME_POS X_MIN_POS - #endif //BED_CENTER_AT_0_0 - #else - #ifdef BED_CENTER_AT_0_0 - #define X_HOME_POS X_MAX_LENGTH * 0.5 - #else - #define X_HOME_POS X_MAX_POS - #endif //BED_CENTER_AT_0_0 - #endif //X_HOME_DIR == -1 - - //Y axis - #if Y_HOME_DIR == -1 - #ifdef BED_CENTER_AT_0_0 - #define Y_HOME_POS Y_MAX_LENGTH * -0.5 - #else - #define Y_HOME_POS Y_MIN_POS - #endif //BED_CENTER_AT_0_0 - #else - #ifdef BED_CENTER_AT_0_0 - #define Y_HOME_POS Y_MAX_LENGTH * 0.5 - #else - #define Y_HOME_POS Y_MAX_POS - #endif //BED_CENTER_AT_0_0 - #endif //Y_HOME_DIR == -1 - - // Z axis - #if Z_HOME_DIR == -1 //BED_CENTER_AT_0_0 not used - #define Z_HOME_POS Z_MIN_POS - #else - #define Z_HOME_POS Z_MAX_POS - #endif //Z_HOME_DIR == -1 -#endif //End auto min/max positions +//#define MANUAL_HOME_POSITIONS // If defined, manualy programed locations will be used +//#define BED_CENTER_AT_0_0 // If defined the center of the bed is defined as (0,0) +//Manual homing switch locations: +#define MANUAL_X_HOME_POS 0 +#define MANUAL_Y_HOME_POS 0 +#define MANUAL_Z_HOME_POS 0 //// MOVEMENT SETTINGS #define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 0182c9375..a356c919e 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -76,6 +76,54 @@ #define ENDSTOPS_ONLY_FOR_HOMING // If defined the endstops will only be used for homing + +//// AUTOSET LOCATIONS OF LIMIT SWITCHES +//// Added by ZetaPhoenix 09-15-2012 +#ifdef MANUAL_HOME_POSITION //Use manual limit switch locations + #define X_HOME_POS MANUAL_X_HOME_POS + #define Y_HOME_POS MANUAL_Y_HOME_POS + #define Z_HOME_POS MANUAL_Z_HOME_POS +#else //Set min/max homing switch positions based upon homing direction and min/max travel limits + //X axis + #if X_HOME_DIR == -1 + #ifdef BED_CENTER_AT_0_0 + #define X_HOME_POS X_MAX_LENGTH * -0.5 + #else + #define X_HOME_POS X_MIN_POS + #endif //BED_CENTER_AT_0_0 + #else + #ifdef BED_CENTER_AT_0_0 + #define X_HOME_POS X_MAX_LENGTH * 0.5 + #else + #define X_HOME_POS X_MAX_POS + #endif //BED_CENTER_AT_0_0 + #endif //X_HOME_DIR == -1 + + //Y axis + #if Y_HOME_DIR == -1 + #ifdef BED_CENTER_AT_0_0 + #define Y_HOME_POS Y_MAX_LENGTH * -0.5 + #else + #define Y_HOME_POS Y_MIN_POS + #endif //BED_CENTER_AT_0_0 + #else + #ifdef BED_CENTER_AT_0_0 + #define Y_HOME_POS Y_MAX_LENGTH * 0.5 + #else + #define Y_HOME_POS Y_MAX_POS + #endif //BED_CENTER_AT_0_0 + #endif //Y_HOME_DIR == -1 + + // Z axis + #if Z_HOME_DIR == -1 //BED_CENTER_AT_0_0 not used + #define Z_HOME_POS Z_MIN_POS + #else + #define Z_HOME_POS Z_MAX_POS + #endif //Z_HOME_DIR == -1 +#endif //End auto min/max positions +//END AUTOSET LOCATIONS OF LIMIT SWITCHES -ZP + + //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. // A single Z stepper driver is usually used to drive 2 stepper motors.