From 460751503e4e7ec48151312d7fd1f02049f4e32a Mon Sep 17 00:00:00 2001 From: Jim Morris Date: Wed, 17 Jul 2013 01:17:27 -0700 Subject: [PATCH] Added default configurations for deltas when DELTA is defined --- Marlin/Configuration.h | 69 +++++++++++++++++++++++++++++++++++--- Marlin/Configuration_adv.h | 9 +++-- 2 files changed, 72 insertions(+), 6 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 54d64cf915..6e5685b6c9 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -74,7 +74,7 @@ //============================== Delta Settings ============================= //=========================================================================== // Enable DELTA kinematics -//#define DELTA +#define DELTA // Make delta curves from many straight lines (linear interpolation). // This is a trade-off between visible corners (not enough segments) @@ -277,11 +277,26 @@ #endif // The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins. +#ifdef DELTA +const bool X_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops. +const bool Y_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops. +const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops. + +#else const bool X_ENDSTOPS_INVERTING = true; // set to true to invert the logic of the endstops. const bool Y_ENDSTOPS_INVERTING = true; // set to true to invert the logic of the endstops. const bool Z_ENDSTOPS_INVERTING = true; // set to true to invert the logic of the endstops. +#endif // DELTA + +#ifdef DELTA +// deltas never have min endstops +#define DISABLE_MIN_ENDSTOPS + +#else + //#define DISABLE_MAX_ENDSTOPS //#define DISABLE_MIN_ENDSTOPS +#endif // delta // Disable max endstops for compatibility with endstop checking routine #if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS) @@ -300,21 +315,41 @@ const bool Z_ENDSTOPS_INVERTING = true; // set to true to invert the logic of th #define DISABLE_Z false #define DISABLE_E false // For all extruders -#define INVERT_X_DIR true // for Mendel set to false, for Orca set to true +#ifdef DELTA +#define INVERT_X_DIR false // DELTA does not invert +#define INVERT_Y_DIR false +#define INVERT_Z_DIR false + +#else + +#define INVERT_X_DIR true // for Mendel set to false, for Orca set to true #define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false #define INVERT_Z_DIR true // for Mendel set to false, for Orca set to true +#endif // DELTA + #define INVERT_E0_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false #define INVERT_E1_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false #define INVERT_E2_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false // ENDSTOP SETTINGS: // Sets direction of endstops when homing; 1=MAX, -1=MIN +#ifdef DELTA +// deltas always home to max +#define X_HOME_DIR 1 +#define Y_HOME_DIR 1 +#define Z_HOME_DIR 1 +#define min_software_endstops false // If true, axis won't move to coordinates less than HOME_POS. +#define max_software_endstops false // If true, axis won't move to coordinates greater than the defined lengths below. + +#else + #define X_HOME_DIR -1 #define Y_HOME_DIR -1 #define Z_HOME_DIR -1 - #define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS. #define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below. +#endif // delta + // Travel limits after homing #define X_MAX_POS 205 #define X_MIN_POS 0 @@ -332,22 +367,48 @@ const bool Z_ENDSTOPS_INVERTING = true; // set to true to invert the logic of th //#define BED_CENTER_AT_0_0 // If defined, the center of the bed is at (X=0, Y=0) //Manual homing switch locations: + +#ifdef DELTA +#define MANUAL_HOME_POSITIONS // MANUAL_*_HOME_POS below will be used // For deltabots this means top and center of the cartesian print volume. +#define MANUAL_X_HOME_POS 0 +#define MANUAL_Y_HOME_POS 0 +#define MANUAL_Z_HOME_POS 250 // For delta: Distance between nozzle and print surface after homing. + +#else + #define MANUAL_X_HOME_POS 0 #define MANUAL_Y_HOME_POS 0 #define MANUAL_Z_HOME_POS 0 -//#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing. +#endif // DELTA //// MOVEMENT SETTINGS #define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E + +#ifdef DELTA +// delta homing speeds must be the same on xyz +#define HOMING_FEEDRATE {200*60, 200*60, 200*60, 0} // set the homing speeds (mm/min) + +#else + #define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0} // set the homing speeds (mm/min) +#endif // DELTA // default settings +#ifdef DELTA +// delta speeds must be the same on xyz +#define DEFAULT_AXIS_STEPS_PER_UNIT {80, 80, 80, 760*1.1} // default steps per unit for Kossel (GT2, 20 tooth) +#define DEFAULT_MAX_FEEDRATE {500, 500, 500, 25} // (mm/sec) +#define DEFAULT_MAX_ACCELERATION {9000,9000,9000,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for skeinforge 40+, for older versions raise them a lot. + +#else #define DEFAULT_AXIS_STEPS_PER_UNIT {78.7402,78.7402,200.0*8/3,760*1.1} // default steps per unit for Ultimaker #define DEFAULT_MAX_FEEDRATE {500, 500, 5, 25} // (mm/sec) #define DEFAULT_MAX_ACCELERATION {9000,9000,100,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for skeinforge 40+, for older versions raise them a lot. +#endif // DELTA + #define DEFAULT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves #define DEFAULT_RETRACT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for retracts diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 909949eb91..fd4bda0db6 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -148,8 +148,13 @@ //homing hits the endstop, then retracts by this distance, before it tries to slowly bump again: #define X_HOME_RETRACT_MM 5 -#define Y_HOME_RETRACT_MM 5 -#define Z_HOME_RETRACT_MM 1 +#define Y_HOME_RETRACT_MM 5 +#ifdef DELTA +#define Z_HOME_RETRACT_MM 5 +#else +#define Z_HOME_RETRACT_MM 1 +#endif + //#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially. #define AXIS_RELATIVE_MODES {false, false, false, false}