Bed Mesh Zero_Reference_Position

OK, this is a simple question, but I haven’t found a clear answer, unless it is the answer in the file, in which case, I think it could be made unambiguous.
The config file describes it as:

An optional X,Y coordinate that specifies the location on the bed where Z = 0. When this option is specified the mesh will be offset so that zero Z adjustment occurs at this location.
The default is no zero reference.

But the thing is that the probe is offset from the print head: if I send the printer to 0,0 and calibrate the probe, then it is measuring the bed at 8,50.*

If I was using that point as the zero reference, then should I call it 0,0 or 8,50?

[*If you’re about to say that is a long way out, I would agree, and I intend to move it, but I would need to reconfigure the carriage, so it will have to do for now.}

Your probe offset is defined under the probe section and any subsequent probing takes that into account.

So “Z = 0” already factors in the probe offset. No need to double up on it.

That is what I would expect, but I think the wording of the config file actually describes the contrary, so I wanted to check.

A little observation suggests that I was right: at the end of the bed mesh probing, it comes back and probes the zero point…

Although reading your post again, there is a point of confusion: I was talking about X-Y offset, where you speak of Z.

Maybe I misunderstood your question then.

It will come back and probe that point, as that’s your reference point for probing Z.
Once it’s done with the bed mesh it re-probes to update it’s reference for Z.
Essentially it’s just re-Z homing.

XY offset is just telling the printer “Use this spot as your reference”.
Then all the probed points for the mesh are relative to measured height at that point.

Generally you use the middle of the bed cause that’s where most people print but some people have special reasons to use another spot. Like an endstop location the nozzle touches outside the bed. Hence the XY offset.

Does that answer your question or am I misunderstanding something?

https://www.klipper3d.org/Bed_Mesh.html#configuring-the-zero-reference-position

In this configuration it is possible offset the mesh so that the (X, Y) reference position applies zero adjustment. The reference postion should be the location on the bed where a Z_ENDSTOP_CALIBRATE paper test is performed.

If the coordinate lies outside of the mesh then the coordinate will be probed after calibration

In other words, if you use a specific point that’s outside of your bed to home your Z axis then you’d specify that as your reference and it re-homes to that point after it’s done and uses that as your Z location.

Which is equivilent to saying it just homes Z again

Well the essential question is of why the heck is my printer not working properly, but the question to the board has been adequately answered. :slight_smile:

I didn’t spot this bit in the instructions, but it was actually what I was driving at.
If I want the zero point to probe at 100, 100 I have to set the zero point at 102, 50, because that is where the nozzle is when it probes that point.

Where is this note from?

It’s under the [bed mesh] option in the config reference

https://www.klipper3d.org/Config_Reference.html#bed_mesh

#zero_reference_position:
#   An optional X,Y coordinate that specifies the location on the bed
#   where Z = 0.  When this option is specified the mesh will be offset
#   so that zero Z adjustment occurs at this location.  The default is
#   no zero reference.
1 Like

Now I remember. :blush:

1 Like

How so? The note in the configuration makes no reference to the probe. It tells you to specify the coordinate on the bed that Z should be equal to 0.

This is not correct. The tool coordinates will be adjusted so the probe is moved to the zero_reference_position, assuming its outside of the mesh. If its inside the mesh no additional probe is necessary. In other words, the zero_reference_position behaves the same way mesh_min and mesh_max do.

The best way to think about it is this: the bed_mesh module will always adjust specified coordinates for you, whereas the other calibration modules do not. It would probably be useful to be consistent here, however making that change would break 1000s of existing configurations.

If that is the case, then what is it doing at the end of a BED_MESH_CALIBRATE command?
Because mine moves the tool to the coordinates specified as the zero point, and probes. That puts the probe at the zero point plus the offset… or is it minus the offset? I can never remember…

The zero_reference_position is only probed if its outside of the mesh. Its done last as it isn’t part of the mesh. The probe will be positioned over the zero_reference_position. The actual tool position will be (zrp.x - x_offset, zrp.y - y_offset).

The answer to that might just be because I’d loaded it with PETG without noticing…

1 Like

I can feel with you - Nasty situation…

2 Likes

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.