BL Touch errors after 1 probe

so ive been fiddling with my MKS-Sbase 1.3 and a BL touch, i have it wired to the Zmax pin, P1.23 and 5v and ground, i have a physical endstop connected to Zmin and have the touch probe configured to use P1.29 (Zmax)

every time i do one probe to test for offset it retracts then drops then blinks red. i have no idea why
someone please help, my firmware config follows.
also any tweaks to my config would be helpful

# NOTE Lines must not exceed 132 characters
# Robot module configurations : general handling of movement G-codes and slicing into moves
default_feed_rate                            4000             # Default rate ( mm/minute ) for G1/G2/G3 moves
default_seek_rate                            4000             # Default rate ( mm/minute ) for G0 moves
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
mm_per_line_segment                          5                # Lines can be cut into segments ( not usefull with cartesian
                                                              # coordinates robots ).

# Arm solution configuration : Cartesian robot. Translates mm positions into stepper positions
alpha_steps_per_mm                           80               # Steps per mm for alpha stepper
beta_steps_per_mm                            80               # Steps per mm for beta stepper
gamma_steps_per_mm                           2560             # Steps per mm for gamma stepper

# Planner module configuration : Look-ahead and acceleration configuration
planner_queue_size                           32               # DO NOT CHANGE THIS UNLESS YOU KNOW EXACTLY WHAT YOU ARE DOING
acceleration                                 600             # Acceleration in mm/second/second.
z_acceleration                              60              # Acceleration for Z only moves in mm/s^2, 0 uses acceleration which is the default. DO NOT SET ON A DELTA
acceleration_ticks_per_second                1000             # Number of times per second the speed is updated
junction_deviation                           0.02             # Similar to the old "max_jerk", in millimeters,
                                                              # see 
                                                              # and 
                                                              # Lower values mean being more careful, higher values means being
                                                              # faster and have more jerk
#z_junction_deviation                        0.0              # for Z only moves, -1 uses junction_deviation, zero disables junction_deviation on z moves DO NOT SET ON A DELTA
#minimum_planner_speed                       0.0              # sets the minimum planner speed in mm/sec





# Stepper module configuration
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

# Cartesian axis speed limits
x_axis_max_speed                             10000            # mm/min
y_axis_max_speed                             10000            # mm/min
z_axis_max_speed                             200              # mm/min

# Stepper module pins ( ports, and pin numbers, appending "!" to the number will invert a pin )
alpha_step_pin                               2.0              # Pin for alpha stepper step signal
alpha_dir_pin                                0.5              # Pin for alpha stepper direction
alpha_en_pin                                 0.4              # Pin for alpha enable pin
alpha_current                                1.2             # X stepper motor current
alpha_max_rate                               10000.0          # mm/min

beta_step_pin                                2.1              # Pin for beta stepper step signal
beta_dir_pin                                 0.11             # Pin for beta stepper direction
beta_en_pin                                  0.10             # Pin for beta enable
beta_current                                 1.2             # Y stepper motor current
beta_max_rate                                10000.0          # mm/min

gamma_step_pin                               2.2              # Pin for gamma stepper step signal
gamma_dir_pin                                0.20             # Pin for gamma stepper direction
gamma_en_pin                                 0.19             # Pin for gamma enable
gamma_current                                1.2              # Z stepper motor current
gamma_max_rate                               100.0            # mm/min

# Serial communications configuration ( baud rate default to 9600 if undefined )
uart0.baud_rate                              115200           # Baud rate for the default hardware serial port
second_usb_serial_enable                     false            # This enables a second usb serial port (to have both pronterface
                                                              # and a terminal connected)
#leds_disable                                true             # disable using leds after config loaded
#play_led_disable                            true             # disable the play led
pause_button_enable                          true             # Pause button enable
#pause_button_pin                            2.12             # pause button pin. default is P2.12
#kill_button_enable                           false            # set to true to enable a kill button
#kill_button_pin                              2.12             # kill button pin. default is same as pause button 2.12 (2.11 is another good choice)
#msd_disable                                 false            # disable the MSD (USB SDCARD) when set to true (needs special binary)
#dfu_enable                                  false            # for linux developers, set to true to enable DFU

# Extruder module configuration
extruder.hotend.enable                          true             # Whether to activate the extruder module at all. All configuration is ignored if false
extruder.hotend.steps_per_mm                    415              # Steps per mm for extruder stepper
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

extruder.hotend.step_pin                        2.3              # Pin for extruder step signal
extruder.hotend.dir_pin                         0.22             # Pin for extruder dir signal
extruder.hotend.en_pin                          0.21             # Pin for extruder enable signal

# extruder offset
#extruder.hotend.x_offset                        0                # x offset from origin in mm
#extruder.hotend.y_offset                        0                # y offset from origin in mm
#extruder.hotend.z_offset                        0                # z offset from origin in mm

# firmware retract settings when using G10/G11, these are the defaults if not defined, must be defined for each extruder if not using the defaults
#extruder.hotend.retract_length                  3               # retract length in mm
#extruder.hotend.retract_feedrate                45              # retract feedrate in mm/sec
#extruder.hotend.retract_recover_length          0               # additional length for recover
#extruder.hotend.retract_recover_feedrate        8               # recover feedrate in mm/sec (should be less than retract feedrate)
#extruder.hotend.retract_zlift_length            0               # zlift on retract in mm, 0 disables
#extruder.hotend.retract_zlift_feedrate          6000            # zlift feedrate in mm/min (Note mm/min NOT mm/sec)

delta_current                                1.2              # First extruder stepper motor current

# Second extruder module configuration
extruder.hotend2.enable                          false             # Whether to activate the extruder module at all. All configuration is ignored if false
extruder.hotend2.steps_per_mm                    100              # 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

extruder.hotend2.step_pin                        2.8              # Pin for extruder step signal
extruder.hotend2.dir_pin                         2.13             # Pin for extruder dir signal
extruder.hotend2.en_pin                          4.29             # Pin for extruder enable signal

#extruder.hotend2.x_offset                        0                # x offset from origin in mm
extruder.hotend2.y_offset                        60             # y offset from origin in mm
#extruder.hotend2.z_offset                        0                # z offset from origin in mm
epsilon_current                              1.5              # Second extruder stepper motor current


# Laser module configuration
laser_module_enable                          false            # Whether to activate the laser module at all. All configuration is
                                                              # ignored if false.
#laser_module_pin                             2.5             # this pin will be PWMed to control the laser. Only P2.0 - P2.5, P1.18, P1.20, P1.21, P1.23, P1.24, P1.26, P3.25, P3.26
                                                              # can be used since laser requires hardware PWM
#laser_module_max_power                       0.8             # this is the maximum duty cycle that will be applied to the laser
#laser_module_tickle_power                    0.0             # this duty cycle will be used for travel moves to keep the laser
                                                              # active without actually burning
#laser_module_pwm_period                      20              # this sets the pwm frequency as the period in microseconds

# Hotend temperature control configuration
temperature_control.hotend1.enable            true             # Whether to activate this ( "hotend" ) module at all. All configuration is ignored if false.
temperature_control.hotend1.link_to_tool      true             # Link enabling/disabling of this hot end to the extruder ofthe same name
temperature_control.hotend1.thermistor_pin    0.25             # Pin for the thermistor to read
temperature_control.hotend1.heater_pin        2.4              # Pin that controls the heater
temperature_control.hotend1.thermistor        EPCOS100K          # see 
#temperature_control.hotend1.beta              4066             # or set the beta value
temperature_control.hotend1.set_m_code        104              #
temperature_control.hotend1.set_and_wait_m_code 109            #
temperature_control.hotend1.designator        T0                #
temperature_control.hotend1.p_factor          30
temperature_control.hotend1.i_factor          1
temperature_control.hotend1.d_factor          15
temperature_control.hotend1.max_pwm           255
temperature_control.hotend2.enable            false             # Whether to activate this ( "hotend" ) module at all. All configuration is ignored if false.
temperature_control.hotend2.link_to_tool      true             # Link enabling/disabling of this hot end to the extruder ofthe same name
temperature_control.hotend2.thermistor_pin    0.23             # Pin for the thermistor to read
temperature_control.hotend2.heater_pin        2.6              # Pin that controls the heater
temperature_control.hotend2.thermistor        Semitec          # see 
#temperature_control.hotend2.beta              4066             # or set the beta value
temperature_control.hotend2.set_m_code        104              #
temperature_control.hotend2.set_and_wait_m_code 109            #
temperature_control.hotend2.designator        T1               #
temperature_control.hotend2.p_factor          30
temperature_control.hotend2.i_factor          1
temperature_control.hotend2.d_factor          15
temperature_control.hotend2.max_pwm           255
temperature_control.bed.enable               true             #
temperature_control.bed.thermistor_pin       0.24             #
temperature_control.bed.heater_pin           2.5              #  2.5
temperature_control.bed.thermistor           RRRF100K    # see 
#temperature_control.bed.beta                3960             # or set the beta value

temperature_control.bed.set_m_code           140              #
temperature_control.bed.set_and_wait_m_code  190              #
temperature_control.bed.designator           B                #
temperature_control.bed.runaway_heating_timeout		0
#temperature_control.bed.bang_bang            false           # set to true to use bang bang control rather than PID
#temperature_control.bed.hysteresis           2.0             # set to the temperature in degrees C to use as hysteresis
                                                              # when using bang bang

# Switch module for fan control
switch.fan.enable                            false             #
switch.fan.input_on_command                  M106             #
switch.fan.input_off_command                 M107             #
switch.fan.output_pin                        2.7              #
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

switch.misc.enable                           false             #
switch.misc.input_on_command                 M42              #
switch.misc.input_off_command                M43              #
switch.misc.output_pin                       2.7              #
switch.misc.output_type                      digital          # just an on or off pin

# automatically toggle a switch at a specified temperature. Different ones of these may be defined to monitor different temperatures and switch different swithxes
# useful to turn on a fan or water pump to cool the hotend
temperatureswitch.hotend.enable	            false             #
temperatureswitch.hotend.designator          T0                # first character of the temperature control designator to use as the temperature sensor to monitor
Temperatureswitch.hotend.switch              misc             # select which switch to use, matches the name of the defined switch
temperatureswitch.hotend.threshold_temp      60.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

# Switch module for spindle control
#switch.spindle.enable                        false            #

# Endstops
endstops_enable                              true             # the endstop module is enabled by default and can be disabled here
#corexy_homing                               false            # set to true if homing on a hbit or corexy
alpha_min_endstop                            1.24^            # add a ! to invert if endstop is NO connected to ground
alpha_max_endstop                            1.25^            # NOTE set to nc if this is not installed
alpha_homing_direction                       home_to_min      # or set to home_to_max and set alpha_max
alpha_min                                    -20                # this gets loaded after homing when home_to_min is set
alpha_max                                    200              # this gets loaded after homing when home_to_max is set
beta_min_endstop                             1.26^!            #
beta_max_endstop                             1.27^            #
beta_homing_direction                        home_to_min      #
beta_min                                     -5                #
beta_max                                     192              #
gamma_min_endstop                            1.28^!            #
gamma_max_endstop                            nc            #
gamma_homing_direction                       home_to_min      #
gamma_min                                    0                #
gamma_max                                    200              #

# optional order in which axis will home, default is they all home at the same time,
# if this is set it will force each axis to home one at a time in the specified order
homing_order                                 XYZ              # x axis followed by y then z last

# optional enable limit switches, actions will stop if any enabled limit switch is triggered
#alpha_limit_enable                          false            # set to true to enable X min and max limit switches
#beta_limit_enable                           false            # set to true to enable Y min and max limit switches
#gamma_limit_enable                          false            # set to true to enable Z min and max limit switches

alpha_fast_homing_rate_mm_s                  50               # feedrates in mm/second
beta_fast_homing_rate_mm_s                   50               # "
gamma_fast_homing_rate_mm_s                  10                # "
alpha_slow_homing_rate_mm_s                  5               # "
beta_slow_homing_rate_mm_s                   5               # "
gamma_slow_homing_rate_mm_s                  2                # "

alpha_homing_retract_mm                      5                # distance in mm
beta_homing_retract_mm                       5                # "
gamma_homing_retract_mm                      1                # "

endstop_debounce_count                       100              # uncomment if you get noise on your endstops, default is 100

## Z-Probe (BL Touch)
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                        100                 # move feedrate mm/sec
zprobe.probe_height                         5                   # how much above bed to start probe
##BLTouch Servo Settings
switch.servo.enable                         true
switch.servo.input_on_command               M280 S3.0           # M280 S7.5 Would be midway
switch.servo.input_off_command              M280 S7.0           # Same as M280 S0 0% duty cycle, effectivley off
switch.servo.output_pin                     1.23                # Must be a PWM capable pin
switch.servo.output_type                    hwpwm               # H/W PWM output settable
switch.servo.pwm_period_ms                  20                  # Set Period to 20ms (50Hz) - Default is 50Hz

## BL Touch Usage G-Code (to run bed level compensation)
#G28 X Y             ; Home X & Y (to min)
#G1 X100 Y100        ; Move to bed centre
#M280 S3.0           ; Deploy probe pin
#G32                 ; Probe the bed & enable compensation
#G1 X100 Y100        ; Return to bed centre
#G30 Z1.5            ; Move down to find bed and set Z home offset. NOTE: Adjust "Z1.5" to be the Z-offset (in mm) between the probe and the nozzle; experiment!
#M280 S7.0           ; Retract probe
#M374      ; SAVE compensation grid


# BL Touch Commands:
# Probe Down        M280 S3.0
# Probe Up          M280 S7.0
# Self Test         M280 S8.4
# Release Alarm     M280 S10.6

# If compensation isn't working after restarting the printer, enable using:
# M375      ; (you MUST home after using this)

## NOTE: Add these lines to 'machine start' gcode settings in slicer, as replacement for "Home X/Y/Z" (G28):
##  G28 X0 Y0        ; Home X, Y
##  G1 X100 Y100 Z50 F1500 ; Move to bed centre
##  M280 S3.0        ; Deploy probe pin
##     NOTE: Adjust "Z1.5" to be the Z-offset (in mm) between the probe and the nozzle; experiment!
##     This is how you adjust nozzle printing height!
##  G30 Z1.5         ; Move down to find bed & set Z home offset (Zxx=probe-nozzle offset)
##  M280 S7.0        ; Retract probe
##  G1 Z15.0 F9000   ; move extruder up 15mm



# Levelling strategy
# Example for 3-point levelling strategy, see wiki documentation for other strategies
#leveling-strategy.three-point-leveling.enable         true        # a leveling strategy that probes three points to define a plane and keeps the Z parallel to that plane
#leveling-strategy.three-point-leveling.point1         0.0,0.0   # the first probe point (x,y) optional may be defined with M557
#leveling-strategy.three-point-leveling.point2         190.0,100.0 # the second probe point (x,y)
#leveling-strategy.three-point-leveling.point3         50.0,190.0   # the third probe point (x,y)
#leveling-strategy.three-point-leveling.home_first     true        # home the XY axis before probing
#leveling-strategy.three-point-leveling.tolerance      0.03        # the probe tolerance in mm, anything less that this will be ignored, default is 0.03mm
#leveling-strategy.three-point-leveling.probe_offsets  27,-6,0       # the probe offsets from nozzle, must be x,y,z, default is no offset
#leveling-strategy.three-point-leveling.save_plane     true       # set to true to allow the bed plane to be saved with M500 default is false

leveling-strategy.rectangular-grid.enable               true     # The strategy must be enabled in the config, as well as the zprobe module.
leveling-strategy.rectangular-grid.x_size               210       # size of bed in the X axis
leveling-strategy.rectangular-grid.y_size               200       # size of bed in the Y axis
leveling-strategy.rectangular-grid.size                 9    # The size of the grid, for example, 7 causes a 7x7 grid with 49 points.
                                                           # Must be an odd number.
leveling-strategy.rectangular-grid.probe_offsets        0,6,0    # Optional probe offsets from the nozzle or tool head
leveling-strategy.rectangular-grid.save                 true    # If the saved grid is to be loaded on boot then this must be set to true
leveling-strategy.rectangular-grid.initial_height       10       # Optionally an initial_height can be set that tell the intial probe
                                                           # where to stop the fast decent before it probes, this should be
                                                           # around 5-10mm above the bed
leveling-strategy.rectangular-grid.do_home        false

# Panel
panel.enable                                 true             # set to true to enable the panel code
#panel.lcd                                    smoothiepanel     # set type of panel
#panel.encoder_a_pin                          3.25!^            # encoder pin
#panel.encoder_b_pin                          3.26!^            # encoder pin

# Example for reprap discount GLCD
# on glcd EXP1 is to left and EXP2 is to right, pin 1 is bottom left, pin 2 is top left etc.
# +5v is EXP1 pin 10, Gnd is EXP1 pin 9
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                      1.30!^            # click button        ; GLCD EXP1 Pin 2
panel.buzz_pin                              1.31              # pin for buzzer      ; GLCD EXP1 Pin 1
panel.back_button_pin                       2.11!^            # back button         ; GLCD EXP2 Pin 8
panel.external_sd                     true              # set to true if there is an extrernal sdcard on the panel
panel.external_sd.spi_channel         1                 # set spi channel the sdcard is on
panel.external_sd.spi_cs_pin          0.28              # set spi chip select for the sdcard (or any spare pin)
panel.external_sd.sdcd_pin            0.27!^            # sd detect signal (set to nc if no sdcard detect) (or any spare pin)



# pins used with other panels
#panel.up_button_pin                         0.1!              # up button if used
#panel.down_button_pin                       0.0!              # down button if used
#panel.click_button_pin                      0.18!             # click button if used

panel.menu_offset                            0                 # 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                     200               # 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

# Example of a custom menu entry, which will show up in the Custom entry.
# NOTE _ gets converted to space in the menu and commands, | is used to separate multiple commands
custom_menu.power_on.enable                true              #
custom_menu.power_on.name                  Power_on          #
custom_menu.power_on.command               M80               #

custom_menu.power_off.enable               true              #
custom_menu.power_off.name                 Power_off         #
custom_menu.power_off.command              M81               #

# Only needed on a smoothieboard
currentcontrol_module_enable                  true             #


return_error_on_unhandled_gcode              false            #

# network settings
network.enable                               true            # enable the ethernet network services
network.webserver.enable                     true             # enable the webserver
network.telnet.enable                        true             # enable the telnet server
#network.ip_address                           auto             # use dhcp to get ip address
# uncomment the 3 below to manually setup ip address
network.ip_address                           192.168.1.2    # the IP address
network.ip_mask                              255.255.255.0    # the ip mask
network.ip_gateway                           192.168.1.1      # the gateway address
#network.mac_override                         xx.xx.xx.xx.xx.xx  # override the mac address, only do this if you have a conflict

I solved the problem. The P1.29 wasnt set to pullup. And I had superfluous code I copied by accident

2 Likes

Just in case you don’t know about it : http://smoothieware.org/troubleshooting#what-is-wrong-with-mks