Z home with BLTouch fails

1,692 views
Skip to first unread message

Peter McCracken

unread,
Apr 29, 2016, 9:45:34 AM4/29/16
to Smoothieware Support

So... I have been experimenting with BLTouch and Smoothieboard on a printer I am in the process of building. For bed leveling the BLTouch probe seems to work fine and all of the various servo commands also work as expected, however I cannot get Z home to work using the BLTouch probe as the endstop switch. I guess I could add a seperate opto endstop for Z min and attach the probe to Z max for the purposes of bed leveling but it should really be possible to have it function correctly as the Z min endstop.

See the video below of the operation, the first command is G30, followed by G32, which all seems to work perfectly. The final command is Z home and you can see the behavior is not correct. Apologies for the Z axis noise, there were a couple of rogue unfastened T nuts. This printer is a work in progress.


Below is the relevant config... Among several things I tried setting gamma_min_endstop to nc, however that only results in the Z home not functioning at all, the Z axis just moves up slightly. Thoughts ?

# 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                                    0                # 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                                     0                #
beta_max                                     200              #
gamma_min_endstop                            1.28^            #
gamma_max_endstop                            1.29^            #
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                  4                # "
alpha_slow_homing_rate_mm_s                  25               # "
beta_slow_homing_rate_mm_s                   25               # "
gamma_slow_homing_rate_mm_s                  2                # "

alpha_homing_retract_mm                      5                # distance in mm
beta_homing_retract_mm                       20                # "
gamma_homing_retract_mm                      10                # "

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

# optional Z probe
zprobe.enable                                true           # set to true to enable a zprobe
zprobe.probe_pin                             1.28^          # pin probe is attached to if NC remove the !
zprobe.slow_feedrate                         5               # mm/sec probe feed rate
zprobe.debounce_count                        100             # set if noisy
zprobe.fast_feedrate                         200             # move feedrate mm/sec
zprobe.probe_height                          8              # how much above bed to start probe

#gamma_min_endstop                           nc              # normally 1.28. Change to nc to prevent conflict,

# associated with zprobe the leveling strategy to use
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         100.0,0.0   # the first probe point (x,y) optional may be defined with M557
leveling-strategy.three-point-leveling.point2         200.0,200.0 # the second probe point (x,y)
leveling-strategy.three-point-leveling.point3         0.0,200.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  0,0,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

Arthur Wolf

unread,
Apr 29, 2016, 2:57:01 PM4/29/16
to Smoothieware Support
Hey.

It's not really clear what/how/when something is going wrong in the video.
Looks like it's homing no ? Can you explain some more ?

Cheers.

--
You received this message because you are subscribed to the Google Groups "Smoothieware Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to smoothieware-sup...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Courage et bonne humeur.

wolfmanjm

unread,
Apr 29, 2016, 6:13:32 PM4/29/16
to Smoothieware Support
Really you cannot use one pin for two different functions.

Peter McCracken

unread,
May 1, 2016, 3:27:25 PM5/1/16
to Smoothieware Support
Honestly, that's pure nonsense.

The purpose of the sensor is to determine proximity to the bed, there is absolutely NO REASON whatsoever that the sensor cannot be used for both Z homing and also bed leveling as the both functions are trying to determine the same thing, "how close to the bed am I". As an example printrbot have implemented this functionality fairly well using an inductive sensor on some of their printers. It is entirely possible with smoothie as well, just a matter of the code being revised appropriately to handle the BLTouch behavior.

Arthur Wolf

unread,
May 1, 2016, 3:58:26 PM5/1/16
to Smoothieware Support
On Sat, Apr 30, 2016 at 12:13 AM, wolfmanjm <wolf...@gmail.com> wrote:
Really you cannot use one pin for two different functions.

Actually several users have tried this and it worked fine. It makes sense for some sorts of probing setups ( there are so many ... )
I think the issue here is more about BLTouch's behavior, but I don't understand what's going on well enough.

--
You received this message because you are subscribed to the Google Groups "Smoothieware Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to smoothieware-sup...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

wolfmanjm

unread,
May 1, 2016, 5:28:51 PM5/1/16
to Smoothieware Support
You misunderstand....  I said you cannot define the same pin for two different functions in config. that means the pin gets allocated twice and the second one wins. it may work in some rate circumstances but is not supported or guaranteed to work.

Peter McCracken

unread,
May 1, 2016, 6:11:34 PM5/1/16
to Smoothieware Support
I don't think you understand the code path very well, which worries me a lot....

The second does NOT win... if the first assignment is removed completely Z home fails to work completely, the probe well bury itself in the bed, however if the first assignment is active for Z min then the Z homing works to a fashion, the BLTouch sensor enters alarm state though. In either case the "Z probing" for bed leveling works perfectly. Ergo the second pin assignment is most definitely not negating the first.

Peter McCracken

unread,
May 1, 2016, 6:43:33 PM5/1/16
to Smoothieware Support
So the Z home using BLTouch is a special case as an M280 S7.0 would need to be sent just after the probe had been triggered.

Chris Kuhl

unread,
Nov 11, 2016, 8:26:01 PM11/11/16
to Smoothieware Support
Did this ever get figured out?  I'm trying to configure a BLTouch right now with no luck.


wolfmanjm

unread,
Nov 11, 2016, 9:49:10 PM11/11/16
to Smoothieware Support
bltouch is a probe, it is not an endstop. homing uses endstops not probes. the wiki covers
 how to set your Z0 with a probe if you do not have endstops on z.

i repeat you cannot home z using a probe (that is G28 will not home z). You can have both a z endstop and a probe though. they are two totally different things in smoothie, one uses the zprobe configs the other endstops config. homing is G28 probi g is G30, g31, g32 and G38.2.
Reply all
Reply to author
Forward
0 new messages