Bed mesh and probe offset

Hi dear community,
with my Voron build a few months ago I started using Klipper and all worked well so far.
Because of some changes and such I started to tune my config and setup.
But I have problems getting my first layer consistent.
I tried different probes but even the different heights seems to be read properly the layer is inconsistent and manual checks moving the nozzle to various spots and checking the distance shows differences.
At the moment I am puzzled with the generation of the mesh and its usage during moves because on a Voron the default probe has an Y offset of +25mm of the nozzle.

To test that I created a “bump” in my bed right in the middle at 175,150 which is not very wide, about 2-5mm diameter, and the bed drops about 0.1mm outside.
So the problem is that the configuration of my mesh with mesh_min and mesh_max respect the offset of the probe but later on the offset seems to be disregarded.
Because the mesh contains the bump at 175,175 which is where the nozzle is when the probe is at 175,150.
But this seems to me unexpected because in every output of the mesh there is a difference between the nozzle position and the probe position.

So is that expected? I seems really strange to me defining the mesh in probe coordinate with mesh_min and mesh_max. With a Y offset of +25mm I can’t put in less than 25 for Y in mesh_min because then it tries to move out of boundaries, so the offset is respected there.
But on the other hand is moves the nozzle to the spot, not the probe, the probe is always +25mm in Y direction away, but assigns that probed spot to the nozzle spot.

I am on a recent version of Kilpper, almost up to date…

Any hints? Or am I totally on a wrong the wrong track and this is all expected?

I played with BED_MESH_OFFSET now (used BED_MESH_OFFSET Y=-25) and then I have a much better correction. But in the docs this command is described for use in a different scenario.

Alexander

Hello @Alex9779 !

Can you share the klippy.log?

Hi and thanks for having a look…

Ok here the current log, I reset the config to what I used to have before my experiments, the saved meshes are not created with that config so…

klippy (9).log (54.1 KB)

I’m not sure what you are reporting here.
Generally speaking:

  • Typically probes have an offset to the nozzle but you can generate a mesh manually by using the nozzle as a probe
  • Mesh is generated with the probe, so the coordinates are given WRT the probe to make sure the probe actually can reach the intended positions and are actually on the bed and not beside the bed
  • The mesh is generated from “the point of view” of the nozzle and not of the probe (this makes it very important that the offsets are highly accurate)
  • During printing the nozzle’s Z-value is corrected at exactly the probed position
  • No manual intervention or correction is necessary here

I found I was getting inconsistent first layers using the bed mesh (klicky probe, but that doesn’t matter) as well. It was just behaving differently to what I was expecting, like it was ignoring some offsets and stuff I put in. Then I found the bed_mesh config I had (copied from someone else) was using the relative_reference_index option which was then ‘locking’ the mesh at that reference (in your logs it shows index 0 which would be front left probe point I’d think) to be the same as your z-probe level for nozzle offset calculations (or something to that effect).
I found that by removing the relative_reference_index option entirely from my config first made my mesh look like it was a full half a mm above the z ‘0’ level, but that is fine as in a print it follows the mesh perfectly once I did a probe Z offset and some print-test tweaking to get the probe z offset value absolutely perfect.
So try commenting out/deleting the relative_reference_index entry of your config.

Yea thanks, I stumbled over that relative index too, but I figured that out.
As you have a real Z switch on the Voron with that switch for the nozzle.
So you should use that relative index so that the mesh is all relative to that point.
But for that to work too the relative index spot should be the spot you calculate your nozzle offset to the z switch.
For the Voron they take always the middle of the bed a relative index and and they also tell you to do the “leveling” aka determining nozzle offset to z switch, in the middle. So this comes together though they don’t tell you explicitly that you get problems when you change the relative index.
If you don’t use the relative index then the offset of the probe has to be respected and the Z endstop switch is still needed because of the config for homing but has no influence on the result of the mesh.

Short update, seems I have a damages rail on one side of my printer.
And I had a fault in my configuration, I recently restructured it and somehow I forgot to include the probe parameters file…
I switch to a Klicky probe now because I was not sure if the inductive probe and a SuperPinda worked properly, also I wanted to try that automatic z offset calibration.
This works well now but I still have issues with the bed mesh, I created a mesh with 1717 points and this loos like this:


You can see the waves which start on the left side of the bed. If I use a normal 5
5 or 9*9 then they are not so visible but validating the mesh after creation by moving the nozzle to selected spots and using 0.1mm distance and a piece of paper the nozzle scratches the plate and at other spots it is too far away though the mesh tries to correct that.
As the waves are more visible on the left side I think the left rails has some issues, on the far right side the waves are not visible.
Anyways I am going to change both rails and then check that again.

Thanks again for having a look, consider the topic as misleading, and as solved for now…

Just a small update, I obviously had multiple issues, the waves have been gone after I changed the Y rails.
Then I had a the twist problem because of the dual MGN9 setup on the X axis. I tried to fix that with a dial gauge but gave up after 3 hours of trying.
Switched to the new MGN12 design on X axis with parts I had already printed for a new printer build and now all my issues are gone.