3 Point Z-Probe Setup

I have read and re-read the Z-Probe setup (3 Point Leveling) but I am still having an issue getting it the desired result. I have also searched the forums. My printer (Cartesian) will probe the 3 positions and respond back with very small numbers (first two and the third having a lot of 9;s). I am assuming those are tolerances of some sort.

In the Wiki it states
“For this to be effective you must do your Z home to the first probe point defined when creating the plane. Set the Z height to zero at the first probe point,”

My probe triggers when the nozzle is 2.4mm above the bed at point 1. Do I initially set that point as Z0 (nozzle being 2.4mm high) before issuing a G32 command to do the entire process or do I set Z0 with the nozzle touching bed.

My offset leveling-strategy.three-point-leveling.probe_offsets is (0,0,2.4). I have tried (0,0,-2.4) with the same results.

Once I figure this out I would love to do a setup diagram for the non-cnc noobs (like me).

Thank you

Imported from wikidot

Anyone can help here ? Any levelling specialists ?

I’m not sure I’m right, but I think you want to first do your bed leveling without worrying how high your hotend is or not.
And when that is done, you take care of your Z height, using homing offsets.

So it sounds like you would set the pin for gamma_min_endstop to the z_probe pin and then set gamma_min to the offset distance. What is leveling-strategy.three-point-leveling.probe_offsets used for then? See that is where my confusion is coming in.

Once I get this figured out in my head I will write up a more detailed procedure for the site.

Thanks

The only way I have gotten it working is to three point level probe first, then Z home. In firmware gamma_min pin and z_probe pin are the same pin. gamma_min distance is set to the nozzle to probe distance and the z_probe Z offset is set to 0. Took me a long time to figure out, documentation on this is not ideal.

Ok, I will give this a try to confirm. Once I have confirmed it I will look at updating the site.

Thank you

@761384
Thank you that is a major improvement in getting this to work. My printer (homebrewed) still is not benefitting from this feature but the process you outlined does respond better and is clearer.

I am going to retighten and check alignments on my printer and retest. I am also going to try this procedure with the grid leveling and see how it goes.

Thanks again

hello i cant implement this code to my cartesian style printer. can someone explain me how to do it?

Hey.

Did you read http://smoothieware.org/zprobe carefully ?

What problem are you encountering ?

Hello,
I’m struggling with this levelling issue as well. I setup a Cartesian machine without having big troubles. But I couldn’t figure out how to deal with this bed levelling or compensating problem. I’ve tried many different configuration edits to get my z level but I couldn’t achieved it yet. For me wiki page is not that clear. There should be a hint to do it. Oif someone can explain it step by step i’m sure it would be beneficial and useful for many Smoothieboarders.

Hi Arthur,

I have a probe for my cartesian setup which is lower than hotend as usual. i can set my bed plane flatness with G32 command it works like a charm. and i save it with M500. but after that when i try to send my G30 code to zero hot end i cant get the real dimension. I tried several different options such as editing offsets of hotend in the config file, edit offset for the probe. and i tried offset in negative an positive way. but i cant achieve to zero my hot end with my probe. on the other hand I can set my Z level manually with using M306 Command. so i think I`m making a mistake at somewhere and cant teach machine how to use the probe.

if i understand well from the wiki page i have to enter difference between hot end and probe, which is about 13mm, some where in the config file but i dont know which is the corect one. Hot end offset or probe offset at 3 point levelling section? and my mind is confused what kind value i have to enter. As i my probe is lower than hot end i think i should have to enter a negative value? but i`m not sure. If some one can guide at this point it will be great.

related section of my config is below

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

  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 355 # 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 175 #
gamma_min_endstop 1.28^ #
gamma_max_endstop 1.29^ #
gamma_homing_direction home_to_min #
gamma_min 0 #
gamma_max 120 #

  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

  1. optional enable limit switches, actions will stop if any enabled limit switch is triggered

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

alpha_fast_homing_rate_mm_s 30 # feedrates in mm/second
beta_fast_homing_rate_mm_s 20 # "
gamma_fast_homing_rate_mm_s 10 # "
alpha_slow_homing_rate_mm_s 20 # "
beta_slow_homing_rate_mm_s 10 # "
gamma_slow_homing_rate_mm_s 2 # "

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

#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 5 # mm/sec probe feed rate
#zprobe.debounce_count 100 # set if noisy
zprobe.fast_feedrate 200 # move feedrate mm/sec
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 200.0,80.0 # the first probe point (x,y) optional may be defined with M557
leveling-strategy.three-point-leveling.point2 120.0,150.0 # the second probe point (x,y)
leveling-strategy.three-point-leveling.point3 270.0,130.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.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

thanks very much.
MERT

If the distance between your probe and your hotend is 13mm, just do G30 Z13 and you should be fine.

Cheers.