3 Point Z-Probe Setup

(jjcolletta_SW) #1

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

(Arthur Wolf) #2

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.

(jjcolletta_SW) #3

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.


(761834_SW) #4

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.

(jjcolletta_SW) #5

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

Thank you

(jjcolletta_SW) #6

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

(Mert G) #7

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

(Arthur Wolf) #8


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

What problem are you encountering ?

(Mert G) #9

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.

(Mert G) #10

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.

(Arthur Wolf) #11

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