So I finally got sick of manually levelling my bed with a screwdriver and bought an IR sensor. It works super well and was extremely easy to install because I already have an E3Dv6 hotend. After a couple of hours of struggling through extremely poor documentation I thought I had understood everything. I set up my slicer start code to this:
G28 ;home all axes
G92 E0 ;I don't remember what this is for
G1 Z30 F750 ;lower gently closer to bed to avoid horrible-sounding resonance from z-axis higher up
G32 ;auto-level
G1 X0 Y75 Z50 F1000 ;lift nozzle in preparation for extruding
G1 E20 F120 ;extrude 20mm of filament (which I trim off manually with pliers before the print starts)
G92 E0
G4 P3000
...and hit print. All going well, but the print started too close to the bed and the filament was getting squished completely flat. I actually have no idea why that happened (it seems to be printing at z=0 for some reason?) but that's not the main issue today. Since I had to cancel the print anyway I decided to try again but with the probe points further out, closer to the edges of the bed for better accuracy. I originally had the 3rd probe point at x=74, y=143 (maximum Y length is 173mm, so it was measuring 30mm in from the end of the bed) but I thought I should probably get it a bit closer, so I changed it to x=74, y=163 (which should probe 10mm from the end of the print area). That worked fine.... until the G32 completed and it randomly tried to drive way off the end of the bed and crashed it.
So... wtf? Why did it ignore the software endstops? Why did it even try to move after completing G32? I don't understand why it tries to move 30mm forwards at the end of a G32 at all, let alone why it overrides the software endstops and crashes the bed. I also can't figure out if the probe points (i.e. Z_PROBE_X1, Z_PROBE_Y1, etc.) are supposed to indicate the position of the probe when probing, or the position of the extruder when probing. It doesn't say. I would assume it means the probe position, but then when I start a G32 it first moves the extruder to what looks like y=60..... so..... again, wtf? The probe is already at y=30 and you KNOW the probe is 30mm ahead of the extruder so WHY are you moving another 30mm?? I just don't understand![:'( :'(]()
My X and Y limits are 147mm and 173mm respectively. My probe sits ~30mm in front of the extruder (so 30mm ahead of the extruder, in the Y+ direction; in other words, with the extruder at y=0, the probe would be roughly y=30). I'm on version 0.92.9. This my z-probe config:
// #################### Z-Probing #####################
...and hit print. All going well, but the print started too close to the bed and the filament was getting squished completely flat. I actually have no idea why that happened (it seems to be printing at z=0 for some reason?) but that's not the main issue today. Since I had to cancel the print anyway I decided to try again but with the probe points further out, closer to the edges of the bed for better accuracy. I originally had the 3rd probe point at x=74, y=143 (maximum Y length is 173mm, so it was measuring 30mm in from the end of the bed) but I thought I should probably get it a bit closer, so I changed it to x=74, y=163 (which should probe 10mm from the end of the print area). That worked fine.... until the G32 completed and it randomly tried to drive way off the end of the bed and crashed it.
So... wtf? Why did it ignore the software endstops? Why did it even try to move after completing G32? I don't understand why it tries to move 30mm forwards at the end of a G32 at all, let alone why it overrides the software endstops and crashes the bed. I also can't figure out if the probe points (i.e. Z_PROBE_X1, Z_PROBE_Y1, etc.) are supposed to indicate the position of the probe when probing, or the position of the extruder when probing. It doesn't say. I would assume it means the probe position, but then when I start a G32 it first moves the extruder to what looks like y=60..... so..... again, wtf? The probe is already at y=30 and you KNOW the probe is 30mm ahead of the extruder so WHY are you moving another 30mm?? I just don't understand

My X and Y limits are 147mm and 173mm respectively. My probe sits ~30mm in front of the extruder (so 30mm ahead of the extruder, in the Y+ direction; in other words, with the extruder at y=0, the probe would be roughly y=30). I'm on version 0.92.9. This my z-probe config:
// #################### Z-Probing #####################
#define Z_PROBE_Z_OFFSET 0
#define Z_PROBE_Z_OFFSET_MODE 0
#define UI_BED_COATING 1
#define FEATURE_Z_PROBE 1
#define Z_PROBE_BED_DISTANCE 5
#define Z_PROBE_PIN ORIG_Z_MIN_PIN
#define Z_PROBE_PULLUP 0
#define Z_PROBE_ON_HIGH 1
#define Z_PROBE_X_OFFSET 0
#define Z_PROBE_Y_OFFSET 30
#define Z_PROBE_WAIT_BEFORE_TEST 0
#define Z_PROBE_SPEED 2
#define Z_PROBE_XY_SPEED 150
#define Z_PROBE_SWITCHING_DISTANCE 0.5
#define Z_PROBE_REPETITIONS 2
#define Z_PROBE_HEIGHT 1.20
#define Z_PROBE_START_SCRIPT ""
#define Z_PROBE_FINISHED_SCRIPT ""
#define Z_PROBE_REQUIRES_HEATING 0
#define Z_PROBE_MIN_TEMPERATURE 150
#define FEATURE_AUTOLEVEL 1
#define Z_PROBE_X1 10 //10 from left, facing electronics
#define Z_PROBE_Y1 30 //30 from back, facing electronics
#define Z_PROBE_X2 137 //10 from 147 max right, facing electronics
#define Z_PROBE_Y2 30 //30 from back, facing electronics
#define Z_PROBE_X3 74 //half of 147 max right, facing electronics
#define Z_PROBE_Y3 163 //10 from 173 max forward, facing electronics - CRASHES BED INTO PHYSICAL MAXIMUM Y+ WTF
#define BED_LEVELING_METHOD 0
#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