Topic: Taurino + RAMPS Firmware & auto level
I'm going through the configuration right now, basing it on MacGyverX's E3DV6 firmware here https://github.com/ymilord/Solidoodle-P … guration.h
It appears that the probe deployment options have been removed at some point. I'm working off the latest Marlin.
MacGyverX:
//============================= Bed Auto Leveling ===========================
#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
//#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#ifdef ENABLE_AUTO_BED_LEVELING
// There are 2 different ways to pick the X and Y locations to probe:
// - "grid" mode
// Probe every point in a rectangular grid
// You must specify the rectangle, and the density of sample points
// This mode is preferred because there are more measurements.
// It used to be called ACCURATE_BED_LEVELING but "grid" is more descriptive
// - "3-point" mode
// Probe 3 arbitrary points on the bed (that aren't colinear)
// You must specify the X & Y coordinates of all 3 points
#define AUTO_BED_LEVELING_GRID
// with AUTO_BED_LEVELING_GRID, the bed is sampled in a
// AUTO_BED_LEVELING_GRID_POINTSxAUTO_BED_LEVELING_GRID_POINTS grid
// and least squares solution is calculated
// Note: this feature occupies 10'206 byte
#ifdef AUTO_BED_LEVELING_GRID
// set the rectangle in which to probe
#define LEFT_PROBE_BED_POSITION 30
#define RIGHT_PROBE_BED_POSITION 170
#define BACK_PROBE_BED_POSITION 170
#define FRONT_PROBE_BED_POSITION 30
// set the number of grid points per dimension
#define AUTO_BED_LEVELING_GRID_POINTS 3
#else // not AUTO_BED_LEVELING_GRID
// with no grid, just probe 3 arbitrary points. A simple cross-product
// is used to estimate the plane of the print bed
#define ABL_PROBE_PT_1_X 170
#define ABL_PROBE_PT_1_Y 170
#define ABL_PROBE_PT_2_X 170
#define ABL_PROBE_PT_2_Y 30
#define ABL_PROBE_PT_3_X 30
#define ABL_PROBE_PT_3_Y 30
#endif // AUTO_BED_LEVELING_GRID
#define PROBE_DOWN_ENTER 190
#define PROBE_DOWN_EXIT 130
#define PROBE_UP_ENTER 30
#define PROBE_UP_EXIT 95
// these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
#define X_PROBE_OFFSET_FROM_EXTRUDER -30.825
#define X_PROBE_OFFSET_RANGE_MIN -40
#define X_PROBE_OFFSET_RANGE_MAX -20
#define Y_PROBE_OFFSET_FROM_EXTRUDER -1.1
#define Y_PROBE_OFFSET_RANGE_MIN -10
#define Y_PROBE_OFFSET_RANGE_MAX 10
#define Z_PROBE_OFFSET_FROM_EXTRUDER 3.2
#define Z_PROBE_OFFSET_RANGE_MIN 0
#define Z_PROBE_OFFSET_RANGE_MAX 10
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min
#define Z_RAISE_BEFORE_PROBING 8 //How much the extruder will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 2 //How much the extruder will be raised when traveling from between next probing points
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
//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 103 // X point for Z homing when homing all axis (G28)
#define Z_SAFE_HOMING_Y_POINT 100 // Y point for Z homing when homing all axis (G28)
#endif
#endif // ENABLE_AUTO_BED_LEVELING
Current Marlin
//===========================================================================
//============================ Bed Auto Leveling ============================
//===========================================================================
// @section bedlevel
#define AUTO_BED_LEVELING_FEATURE // Delete the comment to enable (remove // at the start of the line)
//#define DEBUG_LEVELING_FEATURE
#define Z_MIN_PROBE_REPEATABILITY_TEST // If not commented out, Z Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
// There are 2 different ways to specify probing locations:
//
// - "grid" mode
// Probe several points in a rectangular grid.
// You specify the rectangle and the density of sample points.
// This mode is preferred because there are more measurements.
//
// - "3-point" mode
// Probe 3 arbitrary points on the bed (that aren't collinear)
// You specify the XY coordinates of all 3 points.
// Enable this to sample the bed in a grid (least squares solution).
// Note: this feature generates 10KB extra code size.
#define AUTO_BED_LEVELING_GRID
#if ENABLED(AUTO_BED_LEVELING_GRID)
#define LEFT_PROBE_BED_POSITION 30
#define RIGHT_PROBE_BED_POSITION 170
#define FRONT_PROBE_BED_POSITION 30
#define BACK_PROBE_BED_POSITION 170
#define MIN_PROBE_EDGE 10 // The Z probe minimum square sides can be no smaller than this.
// Set the number of grid points per dimension.
// You probably don't need more than 3 (squared=9).
#define AUTO_BED_LEVELING_GRID_POINTS 3
#else // !AUTO_BED_LEVELING_GRID
// Arbitrary points to probe.
// A simple cross-product is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 170
#define ABL_PROBE_PT_1_Y 170
#define ABL_PROBE_PT_2_X 170
#define ABL_PROBE_PT_2_Y 30
#define ABL_PROBE_PT_3_X 30
#define ABL_PROBE_PT_3_Y 30
#endif // AUTO_BED_LEVELING_GRID
// Z Probe to nozzle (X,Y) offset, relative to (0, 0).
// X and Y offsets must be integers.
//
// In the following example the X and Y offsets are both positive:
// #define X_PROBE_OFFSET_FROM_EXTRUDER 10
// #define Y_PROBE_OFFSET_FROM_EXTRUDER 10
//
// +-- BACK ---+
// | |
// L | (+) P | R <-- probe (20,20)
// E | | I
// F | (-) N (+) | G <-- nozzle (10,10)
// T | | H
// | (-) | T
// | |
// O-- FRONT --+
// (0,0)
#define X_PROBE_OFFSET_FROM_EXTRUDER -30.825 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER -1.1 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 3.2 // Z offset: -below +above [the nozzle]
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min.
#define Z_RAISE_BEFORE_PROBING 8 // How much the Z axis will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 2 // How much the Z axis will be raised when traveling from between next probing points.
#define Z_RAISE_AFTER_PROBING 15 // How much the Z axis will be raised after the last probing point.
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" // These commands will be executed in the end of G29 routine.
// Useful to retract a deployable Z probe.
// Probes are sensors/switches that need to be activated before they can be used
// and deactivated after their use.
// Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, ... . You have to activate one of these for the AUTO_BED_LEVELING_FEATURE
// A fix mounted probe, like the normal inductive probe, must be deactivated to go below Z_PROBE_OFFSET_FROM_EXTRUDER
// when the hardware endstops are active.
//#define FIX_MOUNTED_PROBE
// A Servo Probe can be defined in the servo section below.
// An Allen Key Probe is currently predefined only in the delta example configurations.
// Enable if you have a Z probe mounted on a sled like those designed by Charles Bell.
//#define Z_PROBE_SLED
//#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
// A Mechanical Probe is any probe that either doesn't deploy or needs manual deployment
// For example any setup that uses the nozzle itself as a probe.
//#define MECHANICAL_PROBE
// If you've enabled AUTO_BED_LEVELING_FEATURE and are using the Z Probe for Z Homing,
// it is highly recommended you also enable Z_SAFE_HOMING below!
#endif // AUTO_BED_LEVELING_FEATURE
I would just copy these four lines, but I didn't find any mention of these settings in the rest of the files.
#define PROBE_DOWN_ENTER 190
#define PROBE_DOWN_EXIT 130
#define PROBE_UP_ENTER 30
#define PROBE_UP_EXIT 95
What can I do to get the automatic deployment and retraction to work?
Lastly, I hooked everything up as-is and my Z probe isn't working at all. The bed will crash right into it, but it's reading correctly with a multimeter.
Here's my endstop section:
//===========================================================================
//============================== Endstop Settings ===========================
//===========================================================================
// @section homing
// Specify here all the endstop connectors that are connected to any endstop or probe.
// Almost all printers will be using one per axis. Probes will use one or more of the
// extra connectors. Leave undefined any used for non-endstop and non-probe purposes.
//#define USE_XMIN_PLUG
//#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
#define USE_XMAX_PLUG
#define USE_YMAX_PLUG
//#define USE_ZMAX_PLUG
// coarse Endstop Settings
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
#if DISABLED(ENDSTOPPULLUPS)
// fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
//#define ENDSTOPPULLUP_XMAX
//#define ENDSTOPPULLUP_YMAX
//#define ENDSTOPPULLUP_ZMAX
//#define ENDSTOPPULLUP_XMIN
//#define ENDSTOPPULLUP_YMIN
//#define ENDSTOPPULLUP_ZMIN
//#define ENDSTOPPULLUP_ZMIN_PROBE
#endif
// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool X_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
Thanks!