Initial auto-leveling configuration I'm near the end of a full electronics swap of a dead 3d printer.  I'm using an MKS Gen 1.4 board with Repetier firmware.  This is my first try at attempting to set up auto-leveling from scratch.

I've got the inductive probe mounted, positioned and calibrated so that running a G30 (single probe) works perfectly and returns valid results.

However, when I try a G28 (home), then G29 to do a full auto-leveling sequence, just prior to each probing, the Y axis lurches forward (roughly)70 mm, and stays cumulatively out of position by the amount it lurched forward.  Since 70mm x 3 is bigger than the depth of my bed (200x200) the Y-axis bangs and grinds against it's physical limit.  Additionally, that puts the Z-probe beyond the edge of the bed, which causes the firmware to go into error mode, because the actual z-low limit switch is hit without ever tripping the Z-probe.  Which, annoying sends the Z-Axis moving up, until it ultimately crashes into its physical limit and grinds until I kill the power.


Why is my config causing this lurching behavior?  How do I fix it?
Can the error behavior be configured/changed to NOT attempt infinite movement in the Z+ direction?  (It might not matter once #1 is fixed, but I don't like the idea of my printer going into a mode where the Z-stepper could burn itself out if the power isn't flipped.)


Here is the Z-probe section of my config.h:

(Note:  I have tried changing Z_PROBE_Y_OFFSET to -75, to see if I was entering the offset incorrectly.  It didn't seem to change the behavior noticeably.)

// #################### Z-Probing #####################

#define Z_PROBE_Z_OFFSET 0.2
#define Z_PROBE_Z_OFFSET_MODE 0
#define UI_BED_COATING 1
#define FEATURE_Z_PROBE 1
#define Z_PROBE_BED_DISTANCE 8.0 // Higher than max bed level distance error in mm
#define Z_PROBE_PIN ORIG_Y_MAX_PIN
#define Z_PROBE_PULLUP 0
#define Z_PROBE_ON_HIGH 1
#define Z_PROBE_X_OFFSET 10
#define Z_PROBE_Y_OFFSET 75
#define Z_PROBE_WAIT_BEFORE_TEST 0
#define Z_PROBE_SPEED 5
#define Z_PROBE_XY_SPEED 150
#define Z_PROBE_SWITCHING_DISTANCE 1.5
#define Z_PROBE_REPETITIONS 5 // Repetitions for probing at one point.
#define Z_PROBE_HEIGHT 22.68
#define Z_PROBE_START_SCRIPT "m117 Autoleveling..."
#define Z_PROBE_FINISHED_SCRIPT "m117 Autoleveling Complete"
#define Z_PROBE_REQUIRES_HEATING 0
#define Z_PROBE_MIN_TEMPERATURE 150
#define FEATURE_AUTOLEVEL 1
#define Z_PROBE_X1 20
#define Z_PROBE_Y1 00
#define Z_PROBE_X2 160
#define Z_PROBE_Y2 00
#define Z_PROBE_X3 100
#define Z_PROBE_Y3 120
#define BED_LEVELING_METHOD 1
#define BED_CORRECTION_METHOD 0
#define BED_LEVELING_GRID_SIZE 5
#define BED_LEVELING_REPETITIONS 5
#define BED_MOTOR_1_X 0
#define BED_MOTOR_1_Y 0
#define BED_MOTOR_2_X 200
#define BED_MOTOR_2_Y 0
#define BED_MOTOR_3_X 100
#define BED_MOTOR_3_Y 200
#define BENDING_CORRECTION_A 0
#define BENDING_CORRECTION_B 0
#define BENDING_CORRECTION_C 0
#define FEATURE_AXISCOMP 0
#define AXISCOMP_TANXY 0
#define AXISCOMP_TANYZ 0
Well, I´m using marlin for my printers and normally the offset is negative, this difference is from the 0.0 Z value sensor and nozzle. 

For example, I have an aluminum plate, so this material is less inductive and I'm getting a height of nozzle 1.2 mm; normally this value should be above 5mm, but my printers reads 1.2mm

So my offset is 1.2mm (this values is dangerous for me) because I can bend the plate if sensor stop working.

the safety z height on G28 is 4mm and also for auto probing G29, the speed testing for Z is lower than travel X and Y. 

    #ifdef AUTO_BED_LEVELING_GRID

    // set the rectangle in which to probe
    #define LEFT_PROBE_BED_POSITION 8
    #define RIGHT_PROBE_BED_POSITION 156
    #define BACK_PROBE_BED_POSITION 156
    #define FRONT_PROBE_BED_POSITION 8

     // set the number of grid points per dimension
     // I wouldn't see a reason to go above 3 (=9 probing points on the bed)
    #define AUTO_BED_LEVELING_GRID_POINTS 2


  #else  // not AUTO_BED_LEVELING_GRID
    // with no grid, just probe 3 arbitrary points.  A simple cross-product
    // is used to esimate the plane of the print bed

      #define ABL_PROBE_PT_1_X 15
      #define ABL_PROBE_PT_1_Y 156
      #define ABL_PROBE_PT_2_X 15
      #define ABL_PROBE_PT_2_Y 20
      #define ABL_PROBE_PT_3_X 156
      #define ABL_PROBE_PT_3_Y 20

  #endif // AUTO_BED_LEVELING_GRID


  // these are the 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 //25
  #define Y_PROBE_OFFSET_FROM_EXTRUDER 0 //29
  #define Z_PROBE_OFFSET_FROM_EXTRUDER -1.2 //-12.35

  #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 7000         // X and Y axis travel speed between probes, in mm/min

  #define Z_RAISE_BEFORE_PROBING 4    //How much the extruder will be raised before traveling to the first probing point.
  #define Z_RAISE_BETWEEN_PROBINGS 4  //How much the extruder will be raised when traveling from between next probing points


I hope this help to understand your settings. 

I have set the values to Zero instead 25 and 29 because I pre defined the testing points manually to 8 and 156; of course the center of the nozzle is moved 25 and 29 mm from the plate center, this avoids collision to X0 and Y0. And I just the level using 4 points once, if your bed is warped so is needed more internal points

  #define X_PROBE_OFFSET_FROM_EXTRUDER 0 //25
  #define Y_PROBE_OFFSET_FROM_EXTRUDER 0 //29