Best practice in homing, z-tilt and bed-meshing

Hi everybody,

I’m wondering what the best strategy in using the capabilities of Klipper’s bed leveling tools might be.

I’ll show here what I currently do and try to explain my thoughts, why I do it this way. I’d like to invite you to add your experience and insights in finding the best practice in homing, z-tilt an bed-meshing as mentioned above.

I show a snippet of my [gcode_macro START] to show the order of my steps.

    BED_MESH_CLEAR                  ; clear mesh profile
    G28                             ; home Axes
    Z_TILT_ADJUST                   ; automated bed leveling
    BED_MESH_PROFILE LOAD="default" ; load mesh profile
    G28 Z                           ; home Z-axis again

Steps and thoughts in detail:

  1. First of all, i clean the mesh profile to start with the characteristics of the bare metal and avoid leftover settings which may interfere.
  2. Second I home the axis, since this is the beginning at all.
  3. Next I perform a Z_Tilt to get the bed levelled, depending on the bare metal characteristics also.
  4. Now I load the bed mesh to have the ‘software’ corrections applied.
  5. To my observations the loading of the bed mesh changes the z-height at the spot, where the z-axis is homed, so I do it again to reach my intended height.

That looks o.k. on first sight, but I observe deviations in the appearance of the first layer indicating slight inconsistencies. Unsure where this deviations really occur i have the accuracy of the probe in mind. The procedures of measuring the bed mesh and z-tilting use a bunch of samples (five in my case) to minimize accuracy deviations, but the z-homing doesn’t! So this step might apply the maximum errorlevel the probe can deliver.

My questions are:

  • Might it be better to load the mesh in advance to Z_TILT and not to home again?
  • If not, is it possible to make the final homing procedure to use multiple samples?
  • Or, just not use the final homing and create a Z-offset (mine depends on bare metal after Z_TILT measured at homing position now) for the intended height, after the procedure has finished and apply that afterwards in general?

Wow, did I jump into a black hole with my question?
Really nobody around, sharing his insights and/or thoughts?

I’m not an expert on bed mesh usage and I yet can’t say whether it needs to be loaded before or after the final Z homing.
I tend to the latter though…

Your sequence otherwise looks right to me.
Homing → Z-tilting and homing of Z again.
Z homing with slower second pass will increase accuracy.

Key for the Z tilt to work properly are exact measurements of the joint points and the respective probing points!
Check this with following posts:

However good practice is having bed meshes for the used bed temps.
You can perform this and store it in different mesh configs if needed.

Yes, and symmetry rules!

Yes, I already do that. But having a calculation out of five of those values would be pleasant.

To be honest, I just commented out the final homing sequence for experimental purpose. What should I say - it works for me. Everything looks quite more consistent on the first layer now.

I’ll keep that until something comes up to make me change it again.

Then maybe the final Z offset was wrong.
But if it works stay with it! :slight_smile:

How is that meant?

My final Z offset is the same as for the initial one and the Z_TILT.

Although Z=0 means the nozzle is barely touching the bed surface you might need an additional Z offset for proper printing and perfect model height.

The Z homing after the performed Z tilt might adjust the Z=0 in reference to the bed again.
In a perfect world where the nozzle is your probe it should not make a difference for homing Z before and after Z tilting as the beds pivot point should be in its center where the nozzle should be located during Z homing sequence too.
But as we often use probes with offsets in X and/or Y this will make a difference.
Hence you should perform a final Z homing and adapt necessary offsets to this reference then.

Yes, that is exactly what i did quite for a while, approaching to the ‘sweet’ hight my printer likes best. I figured it out to the 1/40 of a mm!

But in result the first layer depends one and only on the last homing. So if my probe delivers a large deviation in this final run, this is responsible in a large deviation compared to my ‘sweet’ height.

@koconnor
So, my proposal is to add the option to use multiple samples with the homing procedure (or create a separate function for ‘final homing’).

Do you know if it is possible to do a single probe per Z Tilt points, but have multiple probes per bed mesh probe points?

If so, I would like to do a single probe sample on each side of the bed for the tilt, but when I go to calibrate bed mesh, I would like to do 5 probe samples per point to get an average number.

I assume this could be accomplished with a macro, but I dont know where to start. I am hoping someone already has one made up that I could adjust the parameters for my dual Z setup.

My OEM ender5plus seemed to depend on the motors volunteering to stay synced. No couple belt, so it the process of rebuilding it, one of the things I added was a coupling belt, located about 15 mm above the base housing, between 2 ea 20 tooth sprockets, with the individual spans of 6mm belting each having its own tensioner, which by adjusting each can cause a difference in tilt, which can be adjusted to be pretty close to zero. One of the OEM motors is unplugged and the other replaced with the next size taller for a little more power since it is now doing ALL the work. Current adjusted to about the error in reading a mitotuyo digital caliper, future fine tuning by observing the bed mesh gfx for tilt. One solution to consider…