Merge pull request #251 from ZetaPhoenix/Marlin_v1_bugfix
Limit Switch locations based on MIN/MAX limits and homing direction
This commit is contained in:
		@@ -203,10 +203,14 @@ const bool Z_ENDSTOPS_INVERTING = true; // set to true to invert the logic of th
 | 
				
			|||||||
#define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
 | 
					#define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
 | 
				
			||||||
#define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)
 | 
					#define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// The position of the homing switches. Use MAX_LENGTH * -0.5 if the center should be 0, 0, 0
 | 
					// The position of the homing switches
 | 
				
			||||||
#define X_HOME_POS 0
 | 
					//#define MANUAL_HOME_POSITIONS  // If defined, manualy programed locations will be used
 | 
				
			||||||
#define Y_HOME_POS 0
 | 
					//#define BED_CENTER_AT_0_0  // If defined the center of the bed is defined as (0,0)
 | 
				
			||||||
#define Z_HOME_POS 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
 | 
					//// MOVEMENT SETTINGS
 | 
				
			||||||
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
 | 
					#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -76,6 +76,54 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#define ENDSTOPS_ONLY_FOR_HOMING // If defined the endstops will only be used for homing
 | 
					#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.
 | 
					//#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.
 | 
					// A single Z stepper driver is usually used to drive 2 stepper motors.
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user