Delta, G29 crashing into the bed, help!

Greetings all.
I am brand new to 3D printing, and Smoothieware. I have managed to build up a delta kossel and have all the mechanical stuff setup. Now I am stuck on getting the firmware configured. I could really use some help.

I have my z-probe functional and working as expected (G30). But I cant seem to get any of the leveling/calibration commands to work. I am using a Mini differential IR height sensor V1.2 as the Z-Probe.

Below the output from commands and my config. Any ideas?

G28 Works, as expected
G29 crashes into bed. -Z right into the bed.
G30 Works, and returns expected value (Recv: Z:503.4500)
G31 kinda works, and fails about 1/3rd through with the below message:
Recv: Delta Grid Probe…
Recv: Probe start ht is 78.619995 mm, probe radius is 110.000000 mm, grid size is 9x9
Recv: probe at 0,0 is 0.020004 mm
Recv: DEBUG: X0.0000, Y-110.0000, Z0.6800
Recv: Probe failed to complete, check the initial probe height and/or initial_height settings

G32 crashes into bed

Send: version
Recv: Build version: edge-6a09a62, Build date: May  6 2019 12:53:34, MCU: LPC1768, System Clock: 100MHz

Send: M114
Recv: ok C: X:0.0000 Y:0.0000 Z:504.0000 E:0.0000
Send: M119
Recv: X_max:0 Y_max:0 Z_max:0 pins- (XL)P1.28:0 (YL)P1.26:0 (ZL)P1.24:0  Probe: 0
# NOTE Lines must not exceed 132 characters
# Robot module configurations : general handling of movement G-codes and slicing into moves

arm_solution                                 linear_delta     # delta

#---------------------------------------------------------------------------
#Basic Parameters
#---------------------------------------------------------------------------

alpha_steps_per_mm                           100              # Steps per mm for alpha stepper
beta_steps_per_mm                            100              # Steps per mm for beta stepper
gamma_steps_per_mm                           100              # Steps per mm for gamma stepper
extruder.hotend.steps_per_mm                 420              # Steps per mm for extruder stepper

arm_length                                   304.11           # this is the length of an arm from hinge to hinge
arm_radius                                   178.54           # this is the horizontal distance from hinge to hinge
                                                              # when the effector is centered
alpha_max_travel                             1000             # Max travel in mm for alpha/X axis when homing
beta_max_travel                              1000             # Max travel in mm for beta/Y axis when homing
gamma_max_travel                             1000             # Max travel in mm for gamma/Z axis when homing


#alpha_current                     1.25                        # X stepper motor current
#beta_current                      1.25                        # Y stepper motor current
#gamma_current                     1.25                        # Z stepper motor current
#delta_current                     1                        # E0 stepper motor current
#epsilon_current                  1.0                        # E1 stepper motor current

# Stepper Pins
alpha_step_pin                               2.2              # Pin for alpha stepper step signal
alpha_dir_pin                                2.6              # Pin for alpha stepper direction, add '!' to reverse direction
alpha_en_pin                                 2.1              # Pin for alpha enable pin

beta_step_pin                                0.19             # Pin for beta stepper step signal
beta_dir_pin                                 0.20             # Pin for beta stepper direction, add '!' to reverse direction
beta_en_pin                                  2.8              # Pin for beta enable pin

gamma_step_pin                               0.22             # Pin for gamma stepper step signal
gamma_dir_pin                                2.11             # Pin for gamma stepper direction, add '!' to reverse direction
gamma_en_pin                                 0.21             # Pin for gamma enable pin

extruder.hotend.step_pin                     2.13             # Pin for extruder step signal
extruder.hotend.dir_pin                      0.11             # Pin for extruder dir signal ( add '!' to reverse direction )
extruder.hotend.en_pin                       2.12             # Pin for extruder enable signal

#---------------------------------------------------------------------------
#Key Parameter
#---------------------------------------------------------------------------

default_feed_rate                            4000            # Default rate ( mm/minute ) for G1/G2/G3 moves
default_seek_rate                            4000            # Default rate ( mm/minute ) for G0 moves
acceleration                                 3000            # Acceleration in mm/second/second.
junction_deviation                           0.05            # Similar to the old "max_jerk", in millimeters,
                                                             # see https://github.com/grbl/grbl/blob/master/planner.c#L409
                                                             # and https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.8
                                                             # Lower values mean being more careful, higher values means being
                                                             # faster and have more jerk

x_axis_max_speed                             30000            # mm/min
y_axis_max_speed                             30000            # mm/min
z_axis_max_speed                             30000            # mm/min

alpha_max_rate                               30000.0          # mm/min
beta_max_rate                                30000.0          # mm/min
gamma_max_rate                               30000.0          # mm/min

#Endstops
endstops_enable                              true             # the endstop module is enabled by default and can be disabled here

alpha_max_endstop                            1.28!^            # Pin to read max endstop, uncomment this and comment the above if using max endstops
beta_max_endstop                             1.26!^            # Pin to read max endstop, uncomment this and comment the above if using max endstops
gamma_max_endstop                            1.24!^            # Pin to read max endstop, uncomment this and comment the above if using max endstops

alpha_limit_enable                          true            # set to true to enable X min and max limit switches
beta_limit_enable                           true            # set to true to enable Y min and max limit switches
gamma_limit_enable                          true            # set to true to enable Z min and max limit switches

delta_homing                                 true             # forces all three axis to home a the same time regardless of
                                                              # what is specified in G28
alpha_min_endstop                            nc               #
alpha_homing_direction                       home_to_max      # Home up
alpha_max                                    0                # This gets loaded as the current position after homing when home_to_max is set
alpha_min                                    0                # this gets loaded after homing when home_to_min is set
beta_min_endstop                             nc               #
beta_homing_direction                        home_to_max      #
beta_max                                     0                #
beta_min                                     0                # this gets loaded after homing when home_to_min is set
gamma_min_endstop                            nc               #
gamma_homing_direction                       home_to_max      #
gamma_max                                    0              # Print Height, gamma_max is set to about 20-30mm shorter than the distance to the bed, otherwise it will crash into the bed at high speed.
gamma_min                                    0                # this gets loaded after homing when home_to_min is set

alpha_fast_homing_rate_mm_s                  100              # homing feedrates in mm/second
beta_fast_homing_rate_mm_s                   10               #
gamma_fast_homing_rate_mm_s                  100              #
alpha_slow_homing_rate_mm_s                  10               #
beta_slow_homing_rate_mm_s                   100              #
gamma_slow_homing_rate_mm_s                  10

alpha_homing_retract_mm                      10                # retract/bounce distance after homing in mm
beta_homing_retract_mm                       10                #
gamma_homing_retract_mm                      10                #

alpha_trim                                   0                 # software trim for alpha stepper endstop (in mm)
beta_trim                                    0                 # software trim for beta stepper endstop (in mm)
gamma_trim                                   0                 # software trim for gamma stepper endstop (in mm)

# Z-Probe
zprobe.enable                                true            # set to true to enable a zprobe
zprobe.probe_pin                             1.29^            # Pin probe is attached to, if NC remove the !
zprobe.slow_feedrate                         5               # mm/sec probe feed rate
zprobe.fast_feedrate                         50             # move feedrate mm/sec
zprobe.probe_height                          10              # how much above bed to start probe
zprobe.max_z                                 450            # maximum default travel for the probe command, will use gamma_max if not defined
#zprobe.debounce_ms                          1              # Debounce the probe pin over this number of millisceconds. Set to 1 or 2 if your probe is too noisy and gives false readings.
#zprobe.dwell_before_probing                 0.2            # Dwell time in seconds before probing

leveling-strategy.delta-calibration.enable                true      # Set to true to enable the delta calibration levelling strategy.
                                                                    # This uses the probe to figure out the plane's tilt and arm's radius
                                                                    # in a delta machine
leveling-strategy.delta-calibration.radius                100       # Radius at which to probe the three points
leveling-strategy.delta-calibration.initial_height        0         # The initial height above the bed we stop the initial move down after home
                                                                    # to find the bed. This should be a height that is enough that the probe
                                                                    # will not hit the bed and is an offset from zprobe.max_z (can be
                                                                    # set to 0 if zprobe.max_z takes into account the probe offset)

leveling-strategy.delta-grid.enable         true
leveling-strategy.delta-grid.radius        110
leveling-strategy.delta-grid.size        9
leveling-strategy.delta-grid.do_home         true
leveling-strategy.delta-grid.initial_height     40
leveling-strategy.delta-grid.probe_offsets  0,0,0  # probe offsets x,y,z  (Z should always be 0)
leveling-strategy.delta-grid.save        true

#---------------------------------------------------------------------
#Delta Planning
#---------------------------------------------------------------------

mm_per_arc_segment                           0.5              # Arcs are cut into segments ( lines ), this is the length for
                                                              # these segments.  Smaller values mean more resolution,
                                                              # higher values mean faster computation

delta_segments_per_second                    100                # for deltas only same as in Marlin/Delta, set to 0 to disable
                                                              # and use mm_per_line_segment

planner_queue_size                           32               # DO NOT CHANGE THIS UNLESS YOU KNOW EXACTLY WHAT YOU ARE DOING
microseconds_per_step_pulse                  1                # Duration of step pulses to stepper drivers, in microseconds
base_stepping_frequency                      100000           # Base frequency for stepping, higher gives smoother movement
acceleration_ticks_per_second                1000             # Number of times per second the speed is updated

#---------------------------------------------------------------------------
#Additions
#---------------------------------------------------------------------------

uart0.baud_rate                              115200           # Baud rate for the default hardware ( UART ) serial port
second_usb_serial_enable                     false             # This enables a second usb serial port (to have both pronterface
                                                              # and a terminal connected)

laser_module_enable                          false            # Whether to activate the laser module at all. All configuration is
                                                              # ignored if false.

#after_suspend_gcode                            G91_G0Z10E-5F4000_G90_G0X0Y-85
#before_resume_gcode                            G91_G1E5_G90
#leave_heaters_on_suspend                       true

#---------------------------------------------------------------------------
# I/O
#---------------------------------------------------------------------------

extruder.hotend.enable                       true             # Whether to activate the extruder module at all. All configuration is ignored if false
extruder.hotend.default_feed_rate            600              # Default rate ( mm/minute ) for moves where only the extruder moves
extruder.hotend.acceleration                 500              # Acceleration for the stepper motor, as of 0.6, arbitrary ratio
extruder.hotend.max_speed                    50               # mm/s

temperature_control.hotend.enable            true             # Whether to activate this ( "hotend" ) module at all.
temperature_control.hotend.thermistor_pin    0.24             # Pin for the thermistor to read
temperature_control.hotend.heater_pin        2.7              # Pin that controls the heater, set to nc if a readonly thermistor is being defined
temperature_control.hotend.beta             3950              # Or set the beta value
temperature_control.hotend.set_m_code        104              # M-code to set the temperature for this module
temperature_control.hotend.set_and_wait_m_code 109            # M-code to set-and-wait for this module
temperature_control.hotend.designator        T                # Designator letter for this module
temperature_control.hotend.p_factor         22.2              # P ( proportional ) factor
temperature_control.hotend.i_factor         1.08              # I ( integral ) factor
temperature_control.hotend.d_factor         114               # D ( derivative ) factor

# Second extruder module configuration example
extruder.hotend2.enable                          false             # Whether to activate the extruder module at all. All configuration is ignored if false
#extruder.hotend2.steps_per_mm                    90               # Steps per mm for extruder stepper
#extruder.hotend2.default_feed_rate               600              # Default rate ( mm/minute ) for moves where only the extruder moves
#extruder.hotend2.acceleration                    500              # Acceleration for the stepper motor, as of 0.6, arbitrary ratio
#extruder.hotend2.max_speed                       50               # mm/s

#temperature_control.hotend2.enable            true             #
#temperature_control.hotend2.thermistor_pin    0.25             #
#temperature_control.hotend2.heater_pin        2.6             #
#temperature_control.hotend2.thermistor        RRRF100K        #
#temperature_control.hotend2.set_m_code        104              #
#temperature_control.hotend2.set_and_wait_m_code 109            #
#temperature_control.hotend2.designator        T1               #

#Bed
temperature_control.bed.enable               true             # Whether to activate this ( "hotend" ) module at all.
temperature_control.bed.thermistor_pin       0.23             # Pin for the thermistor to read
temperature_control.bed.heater_pin           2.5              # Pin that controls the heater
temperature_control.bed.thermistor           Semitec-104NT4   # See http://smoothieware.org/temperaturecontrol#thermistor
#temperature_control.bed.beta                3974             # Or set the beta value
temperature_control.bed.set_m_code           140              # M-code to set the temperature for this module
temperature_control.bed.set_and_wait_m_code  190              # M-code to set-and-wait for this module
temperature_control.bed.designator           B                # Designator letter for this module
temperature_control.bed.runaway_heating_timeout      0        # How long it can take to heat up, max is 2040 seconds.
temperature_control.bed.runaway_cooling_timeout      0        # How long it can take to cool down if temp is set lower, max is 2040 seconds
temperature_control.bed.runaway_range                0        # How far from the set temperature it can wander, max setting is 63°C

# Fan
switch.fan.enable                            true             # Enable this module
switch.fan.input_on_command                  M106             # Command that will turn this switch on
switch.fan.input_off_command                 M107             # Command that will turn this switch off
switch.fan.output_pin                        2.3              # Pin this module controls
switch.fan.output_type                       pwm              # PWM output settable with S parameter in the input_on_comand
switch.fan.max_pwm                           255              # Set max pwm for the pin default is 255

# Fan 2 (Hotend)
switch.fan2.enable                            false             #
switch.fan2.input_on_command                    M906
switch.fan2.input_off_command                   M907
switch.fan2.output_pin                        2.6              #
switch.fan2.output_type                       pwm              # pwm output settable with S parameter in the input_on_comand
switch.fan2.max_pwm                             150

# automatically toggle a switch at a specified temperature
# useful to turn on a fan or water pump to cool the hotend
temperatureswitch.hotend.enable                 true             # enable this module
temperatureswitch.hotend.switch                 fan2            # select which MOSFET to use, must match a switch configuration (fan2 below)
temperatureswitch.hotend.designator             T                # first character of the temperature control designator to use as the temperature sensor to monitor
temperatureswitch.hotend.threshold_temp         50.0             # temperature to turn on (if rising) or off the switch
temperatureswitch.hotend.heatup_poll            15               # poll heatup at 15 sec intervals
temperatureswitch.hotend.cooldown_poll          60               # poll cooldown at 60 sec intervals

# See http://smoothieware.org/panel
# Please find your panel on the wiki and copy/paste the right configuration here
panel.enable                                true              # ʹÄÜÏÔʾÆÁÉèÖÃ
panel.lcd                                   reprap_discount_glcd     #ÏÔʾÆÁÀàÐÍ
panel.spi_channel                           0                 # SPI channel to use  ; GLCD EXP1 Pins 3,5 (MOSI, SCLK)
panel.spi_cs_pin                            0.16              # SPI chip select     ; GLCD EXP1 Pin 4
panel.encoder_a_pin                         3.25!^            # Encoder pin         ; GLCD EXP2 Pin 3
panel.encoder_b_pin                         3.26!^            # Encoder pin         ; GLCD EXP2 Pin 5
panel.click_button_pin                      0.28!^            # Click button        ; GLCD EXP1 Pin 2
panel.buzz_pin                              1.30              # Pin for buzzer      ; GLCD EXP1 Pin 1
panel.external_sd                           true              # set to true if there is an extrernal sdcard on the panel
panel.external_sd.spi_channel               0                 # set spi channel the sdcard is on
panel.external_sd.spi_cs_pin                1.23              # set spi chip select for the sdcard (or any spare pin)
panel.external_sd.sdcd_pin                  1.31!^            # sd detect signal (set to nc if no sdcard detect) (or any spare pin)
panel.menu_offset                           1                 # Some panels will need 1 here
panel.alpha_jog_feedrate                    6000              # X jogging feedrate in mm/min
panel.beta_jog_feedrate                     6000              # Y jogging feedrate in mm/min
panel.gamma_jog_feedrate                    3000              # Z jogging feedrate in mm/min
panel.hotend_temperature                    185               # Temp to set hotend when preheat is selected
panel.bed_temperature                       60                # Temp to set bed when preheat is selected

#Network
network.enable                               false            # enable the ethernet network services
network.webserver.enable                     false             # enable the webserver
network.telnet.enable                        false             # enable the telnet server

Bailed out and started over with the formal sample configuration from Smoothieware:

Then could not get past the bed leveling (G31). Keep getting the following error: “Probe failed to complete, check the initial probe height and/or initial_height settings”. Turns out the error was cause by the homing switches not being equal. Thus it though the bed was tilted!

Easy check for misaligned home switches/tilted bed. Go to Z10. Then Max/Min of both X/Y. Measure the height of the effector from the bed at each of those points. In my case it was:

       4.3mm
         Y+
5.1mm X+ * X- 5.8mm
         Y-
       6.00mm

That showed me clearly something was WAY off. Fixed my home sensors. Cleared out my config-overrides on the SD card, and started over with a new calibration sequence.

G28 to find homes
G30 to find z-probe distance
Send: G30
Recv: Z:559.6500
Now set gamma_max and zprobe.max_z, and check it with M114
G32

That was a pain! But I am learning fast, and I will keep sharing my fixes for anyone else who finds this in years to come.