Ported over Johann Rocholl's improvements for delta printers:
- Nonlinear auto bed leveling code (includes G29, G30, Z_RAISE_AFTER_PROBING). Cleaned it up to be a delta-specific AUTO_BED_LEVELING_GRID code path. - Allen key z-probe deployment and retraction code. Cleaned it up and added safety checks.
This commit is contained in:
@ -110,6 +110,9 @@ Here are some standard links for getting your machine calibrated:
|
||||
// Effective horizontal distance bridged by diagonal push rods.
|
||||
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_CARRIAGE_OFFSET)
|
||||
|
||||
// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
|
||||
#define DELTA_PRINTABLE_RADIUS 90
|
||||
|
||||
|
||||
//===========================================================================
|
||||
//============================= Thermal Settings ============================
|
||||
@ -361,8 +364,7 @@ const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||
const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
|
||||
const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
|
||||
//#define DISABLE_MAX_ENDSTOPS
|
||||
// Deltas never have min endstops
|
||||
#define DISABLE_MIN_ENDSTOPS
|
||||
#define DISABLE_MIN_ENDSTOPS // Deltas only use min endstops for probing
|
||||
|
||||
// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
|
||||
#define X_ENABLE_ON 0
|
||||
@ -413,8 +415,80 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||
//============================= Bed Auto Leveling ===========================
|
||||
//===========================================================================
|
||||
|
||||
//Bed Auto Leveling is still not compatible with Delta Kinematics
|
||||
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
|
||||
// Z-Probe Repeatability test is not supported in Deltas yet.
|
||||
|
||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||
|
||||
// Deltas only support grid mode
|
||||
#define AUTO_BED_LEVELING_GRID
|
||||
|
||||
#define DELTA_PROBABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
|
||||
#define LEFT_PROBE_BED_POSITION -DELTA_PROBABLE_RADIUS
|
||||
#define RIGHT_PROBE_BED_POSITION DELTA_PROBABLE_RADIUS
|
||||
#define BACK_PROBE_BED_POSITION DELTA_PROBABLE_RADIUS
|
||||
#define FRONT_PROBE_BED_POSITION -DELTA_PROBABLE_RADIUS
|
||||
|
||||
// Non-linear bed leveling will be used.
|
||||
// Compensate by interpolating between the nearest four Z probe values for each point.
|
||||
// Useful for deltas where the print surface may appear like a bowl or dome shape.
|
||||
// Works best with ACCURATE_BED_LEVELING_POINTS 5 or higher.
|
||||
#define AUTO_BED_LEVELING_GRID_POINTS 9
|
||||
|
||||
// Offsets to the probe relative to the extruder tip (Hotend - Probe)
|
||||
// X and Y offsets must be integers
|
||||
#define X_PROBE_OFFSET_FROM_EXTRUDER 0 // -left +right
|
||||
#define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // -front +behind
|
||||
#define Z_PROBE_OFFSET_FROM_EXTRUDER -3.5 // -below (always!)
|
||||
|
||||
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance.
|
||||
// Be sure you have this distance over your Z_MAX_POS in case
|
||||
|
||||
#define XY_TRAVEL_SPEED 4000 // X and Y axis travel speed between probes, in mm/min
|
||||
|
||||
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point.
|
||||
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points
|
||||
#define Z_RAISE_AFTER_PROBING 50 //How much the extruder will be raised after the last probing point.
|
||||
|
||||
// Allen key retractable z-probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe
|
||||
// Deploys by touching z-axis belt. Retracts by pushing the probe down. Uses Z_MIN_PIN.
|
||||
//#define Z_PROBE_ALLEN_KEY
|
||||
#ifdef Z_PROBE_ALLEN_KEY
|
||||
#define Z_PROBE_ALLEN_KEY_DEPLOY_X 30
|
||||
#define Z_PROBE_ALLEN_KEY_DEPLOY_Y DELTA_PRINTABLE_RADIUS
|
||||
#define Z_PROBE_ALLEN_KEY_DEPLOY_Z 100
|
||||
|
||||
#define Z_PROBE_ALLEN_KEY_RETRACT_X -64
|
||||
#define Z_PROBE_ALLEN_KEY_RETRACT_Y 56
|
||||
#define Z_PROBE_ALLEN_KEY_RETRACT_Z 23
|
||||
#define Z_PROBE_ALLEN_KEY_RETRACT_DEPTH 20
|
||||
#endif
|
||||
|
||||
//If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
|
||||
//The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.
|
||||
// You MUST HAVE the SERVO_ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.
|
||||
|
||||
// #define PROBE_SERVO_DEACTIVATION_DELAY 300
|
||||
|
||||
|
||||
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
|
||||
//it is highly recommended you let this Z_SAFE_HOMING enabled!!!
|
||||
|
||||
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area.
|
||||
// When defined, it will:
|
||||
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled
|
||||
// - If stepper drivers timeout, it will need X and Y homing again before Z homing
|
||||
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
|
||||
// - Block Z homing only when the probe is outside bed area.
|
||||
|
||||
#ifdef Z_SAFE_HOMING
|
||||
|
||||
#define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2) // X point for Z homing when homing all axis (G28)
|
||||
#define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2) // Y point for Z homing when homing all axis (G28)
|
||||
|
||||
#endif
|
||||
|
||||
#endif // ENABLE_AUTO_BED_LEVELING
|
||||
|
||||
|
||||
|
||||
|
@ -455,9 +455,27 @@ const unsigned int dropsegments=5; //everything with less than this number of st
|
||||
//===========================================================================
|
||||
|
||||
#if defined (ENABLE_AUTO_BED_LEVELING) && defined (DELTA)
|
||||
#error "Bed Auto Leveling is still not compatible with Delta Kinematics."
|
||||
|
||||
#if not defined(AUTO_BED_LEVELING_GRID)
|
||||
#error "Only Grid Bed Auto Leveling is supported on Deltas."
|
||||
#endif
|
||||
|
||||
#if defined(Z_PROBE_SLED)
|
||||
#error "You cannot use Z_PROBE_SLED together with DELTA."
|
||||
#endif
|
||||
|
||||
#if defined(Z_PROBE_REPEATABILITY_TEST)
|
||||
#error "Z-probe repeatability test is not supported on Deltas yet."
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(Z_PROBE_ALLEN_KEY)
|
||||
#if !defined(AUTO_BED_LEVELING_GRID) || !defined(DELTA)
|
||||
#error "Invalid use of Z_PROBE_ALLEN_KEY."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if EXTRUDERS > 1 && defined TEMP_SENSOR_1_AS_REDUNDANT
|
||||
#error "You cannot use TEMP_SENSOR_1_AS_REDUNDANT if EXTRUDERS > 1"
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user