Bed Coating Settings with Z-Probing and Z-Max Homing

I have a setup with Z-Max homing and z-probing. I have set Z_PROBE_Z_OFFSET_MODE to 0.
When setting the coating height and after running G32 S2 the Z_MAX_LENGTH ist updated accordingly (actually the wrong way around), but does not have any effect on the print height.
If I set the coating height to 0.5mm the Z_MAX_LENGTH changes from e.g. 140.0 to 140.5
Am I missing something?


  • In BedLeveling.cpp runZProbe we have this code:

    #if Z_PROBE_Z_OFFSET_MODE == 1
    distance += Printer::zBedOffset; // We measured including coating, so we
    // need to add coating thickness!
    // homig will go Printer::zBedOffset in addition, so correct here as well
    distance -= Printer::zBedOffset; // We measured including coating, so we
    // need to subtract coating thickness!

    Printer::zBedOffset is bed coating. So measunring distance to bed gets reduced by that value for at least G30 probes.

    For G32 there is this extra rule:
    #if Z_PROBE_Z_OFFSET_MODE == 1
    currentZ -= Printer::zBedOffset;

    so no change in that case. The computation is

    float zall = Printer::runZProbe(false, false, 1, false);
    if (s >= 1) {
    float zMax = Printer::runZMaxProbe();
    if (zMax == ILLEGAL_Z_PROBE) {
    return false;
    zall += zMax - ENDSTOP_Z_BACK_ON_HOME + plane.z(Printer::currentPosition[X_AXIS], Printer::currentPosition[Y_AXIS]) - plane.z(0, 0);
    Printer::zLength = zall;

    So from this I would say increasing coating to positive reduces z max/z length. This is for latest version - as there were many errrors regarding autoleveling in past, older versions might behave different.
Sign In or Register to comment.