ZProbe Setup

I have been working on getting my Smoothie setup and running into issues with the ZProbe. I have read the section in the documentation about the ZProbe and the guide at [I can’t post links yet but it is the one mentioned in the documentation]. I think I have it figured out, but still not sure about the Z height after probing.

I have setup a test file with the following code at the start…

G28 ; Home
G1 Z25 ; Move Z so probe isn't triggered
G4 P6000 ; Wait for bed to be in position
G32 ; Do the probe
G92 Z7.4 ; Set the Z height

So the G92 value comes from the 5mm z probe height in the configuration and the 2.4 is the height between the probe trigger and the nozzle. It still needs some fine tuning.

I am currently using a Printrbot Simple Metal. In Marlin, you can set a value via M212 for the difference between the probe height and the nozzle. This would be something like the G92 command. Is there a similar value that can be set in Smoothie? What the M212 command allows is for me to change that offset and start a print. If the nozzle is too high/low, I can stop the print, adjust the value, restart and check the height again. I’m hoping to find a similar procedure in Smoothie. Is there?

Imported from wikidot

It’s been hard for me to get a straight answer on this! I generally get referred to cryptic pages like this that are way above my head:
smoothieware dot org slash zprobe
smoothieware dot org slash delta

It’s actually useful if you read it 5-10 times in conjunction with a few other pages.

Here’s my simplified current understanding. Maybe somebody can set the record straight?

G32 doesn’t affect Z height. It only determines the flatness of the plate and adjusts the relative endstop offsets and delta radius.

To find the z probe offset:
G28 ; Home
G30 ;this will find the plate with the sensor and set Z to 0mm…
lower the nozzle to the plate (paper test)
m114 ; get position, which is your offset. eg 5mm

To set the Z height:
G28 ; Home
G30 Znnn where nnn= your probe offset. eg G30 Z5 This will find the plate with the sensor and then set the Z height to that value.

There are dozens of possible probing methods/configurations, which means the documentation has to be general in it’s scope. It’s definitely not cryptic, but it’s not describing your exact setup.

To set your Z height, you don’t have to do all this. all you need to do is « home the printer, then jog the Z to where you want Z=0 to be then type M306 Z0 ».

Exactly what you want to do, and how you want to do it, depends on your taste, and your exact probe and printer types. There are many machine configurations possible, and many ways to do height configuration …

I have been working on this same thing today and have gotten it to probe the 3 locations but just cannot seem to get the Z height right. I have read so many posts on here that now I am getting my self even more confused.
Here is what I have
-The nozzle distance from bed when probe is triggered is 0.6
-The X offset from nozzle tip and probe is 5
-The Y offset from nozzle tip and probe is 43

Here is my current config that I am using for Endstop/Zprobe

  1. 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 140 #

  1. optional order in which axis will home, default is they all home at the same time,
  2. 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
#move_to_origin_after_home false # move XY to 0,0 after homing

  1. 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 5 # "
#gamma_homing_retract_mm 1 # "

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

  1. 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 1.5 # mm/sec probe feed rate
zprobe.debounce_count 100 # set if noisy
zprobe.fast_feedrate 20 # move feedrate mm/sec
zprobe.probe_height 5 # how much above bed to start probe
gamma_min_endstop nc # normally 1.28. Change to nc to prevent conflict,

  1. 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 20,5 # the first probe point (x,y) optional may be defined with M557
leveling-strategy.three-point-leveling.point2 180,5 # the second probe point (x,y)
leveling-strategy.three-point-leveling.point3 180,140 # 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 5,43,0.6 # 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

In my G-code start I am using for printing I am using
G1 Z10 ;Move Z up
G32 ;Run Z probe
G92 Z0.45 ;Set Z Probe offset

When my print starts currently it is way above the bed. I have tried adjusting the zprobe.probe_height number, the G92 number but just cannot figure out what I am doing wrong.

Any Ideas?

Hey.

Try this

G1 Z10 ;Move Z up
G32 ;Run Z probe calibration
G30 Zxxxx ;Probe a single point

where xxx is the height of the probe above the bed at the end of probing

Hello :slight_smile:
I’m currently trying to implement the z probe and have been running into the same issue that @Chris had above: I’ve read the z probe section and it does talks about the height after calibration however I didn’t have a clear picture of how the process should look from start to finish, in the generic sense. When I start the process, if the printer is homed, the probe is triggered if I try to do the G32 command.

I’ve started running:

G28 ; Home all axis
G1 Z5 ;  Lift Z axis 5mm
G32 ; Perform calibration 
??? ;  Set the Z height

It will go through and probe the 3 points and then stop. When I’ve tried to run a print afterwards, the print homes, then lifts to about 5 mm and starts extruding.

If I run another G30 to probe, instead of printing, the probe reports 5.018 mm. If I’m reading this right, My code should be:

G28 ; Home all axis
G1 Z5 ;  Lift Z axis 5mm
G32 ; Perform calibration 
G30 Z5 ; set Z height after probing

For this to be saved, would we still need to run an M500 to save to the config-override file ? Could I implement this in my start gcode for prints or would the G30 command need to be changed per print basis ?

Ideally, I would like to not have to manually tweak the bed ever again, and have the z probe do the heavy lifting…