persistent z-height offset

  • I am working on a core XY printer that uses an IR z-probe for bed detection and levelling. The z-probe presently measures against a layer of blue tape. My config.g is attached.

    The problem I experience is that, whilst when I move the nozzle to z=0 it reliably touches the build plate - as intended. When printing though it always keeps a approx. 3-5mm distance from the build plate.

    I've measured the z-probe's offset a number of times (at the correct bed and nozzle temperatures) and, for a given set of trials the number in config.g is repeatable. Strangely though, if I try the same series of measurements a few days later that number changes by a few mm.

    When trying to calibrate the z-probe's offset the value provided by the z-probe remains the same. I mention this as, when homing the z-axis, the z-probe reading fluctuates quite a bit, without environmental variables (be they related the printer or surrounding lighting) changing at all.

    The above made me wonder if I use the wrong z-probe. The bed is aluminium and I appreciate that picking an IR probe for this arrangement was not the smartest move. This said, I would have hoped the blue tape avoided reflectivity problems.

    Even taken the above into account, it is still the case that the height above the bed at which the nozzle tries to print seems consistent, seemingly independently of the z-trigger height.

    Any comments and suggestions?



  • Moderator

    Please post your homing files and your slicer start gcode.

    Are you using mesh compensation?

    G31 P500 X0 Y0 Z4.32

    You need to measure the X and Y offset of the probe from the nozzle. Have you followed this document yet?

  • Following this, I seem to have the same issue.


    Move to centre

    M564 S0

    Move Z down to nozzle on bed

    G92 Z0

    Move Z +10

    G30 S-1

    Z Offset = 1.92

    Enter in to config.g file and save

    Check no G31 in config override


    The only issue is, after I complete these steps, I start my print and the Z is in the air by a few mm.

    I wouldn't consider myself an expert by any means but I thought I was competent enough to chase this, I am still scratching my head.

    Nothing in my start code that is abnormal either?

  • Thanks for your reply. Mesh compensation is used and I've followed the calibration steps on the website you linked. What confuses me is that, after the calibration steps are completed the nozzle touches the bed at z=0, as you'd expect. it's only for the print that the nozzle is in the wrong place.

    homing files are attached.


    The first few lines of the test print are here (I guess that includes the slicer start code?)

    ;Generated with Cura_SteamEngine 4.4.1
    M140 S90
    M190 S90
    M104 S235
    M109 S235
    M82 ;absolute extrusion mode
    G28 ;Home
    G1 Z15.0 F6000 ;Move the platform down 15mm
    ;Prime the extruder
    G92 E0
    G1 F200 E3
    G92 E0
    G92 E0
    G92 E0
    G1 F1500 E-6.5
    G0 F3600 X164.623 Y154.349 Z0.3
    G1 F1500 E0



  • Moderator

    please post your homeall.g

  • Here's homeall.g


  • Moderator

    Your homeall is using an endstop instead of the probe.

    G1 H1 Z-305 ; then move slowly to Z axis endstop

    Compare that to your homez which uses the G30 to probe the bed.

Log in to reply