1 (edited by sdiglesias 2016-06-09 03:13:27)

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!