Jump to content
  • 0

Auto z-offset issue - first calibration is always way off


DennisM
 Share

Question

I'm using protoloft's auto Z height code and I thought it's been working out.

But for some reason, the very first calibration is always way off -- often it thinks the calculated offset is 0, or negative numbers. Here's an example of running it 3 times in a row:

Z-CALIBRATION: ENDSTOP=2.230 NOZZLE=2.223 SWITCH=10.242 PROBE=7.185 --> OFFSET=-1.223500
Z-CALIBRATION: ENDSTOP=2.230 NOZZLE=2.228 SWITCH=10.240 PROBE=9.456 --> OFFSET=1.053000
Z-CALIBRATION: ENDSTOP=2.230 NOZZLE=2.235 SWITCH=10.738 PROBE=9.945 --> OFFSET=1.052000

The second and third ones seem correct, and when actually printing a test print I've confirmed they work and provide the right printing nozzle height. Has anyone come across this?

I think it's possible it might have something to do with my G32 macro, which I crafted together to grab the probe and do both the QGL and the Z calibration in one group, then stow the probe. Here's that macro:

#####################################################################
##   Full calibration macro G32
#####################################################################

[gcode_macro G32]
##  modified to support euclid probe and the new z calibrate klipper plugin
##  https://github.com/protoloft/klipper_z_calibration
gcode:
    SAVE_GCODE_STATE NAME=STATE_G32
    G90                           ; absolute positioning
    G28                           ; auto home X Y Z
    M401                          ; deploy euclid probe
    _QUAD_GANTRY_LEVEL_ORIGINAL   ; QGL macro without probe deploy
    G28                           ; auto home X Y Z
    BASE_CALIBRATE_Z              ; calibrate Z height without probe deploy
    G28 Z                         ; home Z one last time
    M402                          ; stow euclid probe, we're done
    G0 X150 Y150 Z40 F3600        ; move to center of bed
    RESTORE_GCODE_STATE NAME=STATE_G32

Note that the euclid.cfg file renames the original QGL to the one I used above. I don't want to use QUAD_GANTRY_LEVEL in the G32 as it includes the M401/M402 probe steps.

[gcode_macro QUAD_GANTRY_LEVEL]
rename_existing: _QUAD_GANTRY_LEVEL_ORIGINAL

I'm working on a newly built 2.4r2 300mm with a Euclid probe.

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0
On 9/24/2022 at 12:18 AM, DennisM said:

The second and third ones seem correct, and when actually printing a test print I've confirmed they work and provide the right printing nozzle height. Has anyone come across this?

Have the same with my Voron 2.4 and Euclid probe. Seeing the same results no matter what probing I do (QGL, Bed Mesh, Z-Offset) I have stopped worrying about it as the Z-Offset calibration seems to work very well and getting consistent first layer heights despite this little "quirk"

  • Like 1
Link to comment
Share on other sites

  • 0

[gcode_macro PRINT_START]
#   Use PRINT_START for the slicer starting script
gcode:
  G90 #set absolute positioning
  M107 #turn off parts fan
  G28 #home all axis
  
  Attach_Probe_Lock #prevent probe docking until unlocked, from klicky 
  #Z_TILT_ADJUST #Trident *or* 
  QUAD_GANTRY_LEVEL #V2.4
  
  #CLEAN_NOZZLE #requires brush/purge bucket, from decontaminator
  #G28 Z #rehome Z axis 
  CALIBRATE_Z #automatic Z offset, from klipper z calibration  
  BED_MESH_CLEAR
  #BED_MESH_PROFILE LOAD=default #load saved mesh *or*
  BED_MESH_CALIBRATE #generate new mesh
  SET_SKEW  
  Dock_Probe_Unlock #removes probe lock

 

this is what I use and its been flawless

 

P.S - no homing after the last calibrate....

 

 

[gcode_macro BED_MESH_CALIBRATE]
rename_existing: _BED_MESH_CALIBRATE
description: Perform Mesh Bed Leveling with klicky automount
gcode:
    {% set V = printer["gcode_macro _User_Variables"].verbose %}
    {% if V %}
        { action_respond_info("Bed Mesh Calibrate") }
    {% endif %}

    _CheckProbe action=query
    G90
    Attach_Probe
    _KLICKY_STATUS_MESHING

    _BED_MESH_CALIBRATE {% for p in params
           %}{'%s=%s ' % (p, params[p])}{%
          endfor %}

    Dock_Probe

   

Edited by j.walker
Link to comment
Share on other sites

  • 0

So I may not have mentioned it above but this has been working for me for months. I do a single G32 to deploy the probe, QGL, calibrate_z, then stow the probe and it works every time and is very accurate.

Here's what my G32 looks like, and keep in mind in other locations I rename the original QGL to "_QUAD_GANTRY_LEVEL_ORIGINAL" to call below.

Also, it's called "All_Calibrate_G32" so it shows up first in the list of macros on my Klipperscreen macro menu. Easy to find that way.

 

#####################################################################
##   Full calibration macro G32
#####################################################################

[gcode_macro All_Calibrate_G32]
##  modified to support euclid probe and the new z calibrate klipper plugin
##  https://github.com/protoloft/klipper_z_calibration
gcode:
    #SAVE_GCODE_STATE NAME=STATE_G32
    {action_respond_info("Starting full calibration G32")}
    G90                           ; absolute positioning
    G28                           ; auto home X Y Z
    M401                          ; deploy euclid probe
    _QUAD_GANTRY_LEVEL_ORIGINAL   ; QGL macro without probe deploy
    G28                           ; auto home X Y Z
    M400                          ; wait for moves to complete from homing
    BASE_CALIBRATE_Z              ; calibrate Z height without probe deploy
    M402                          ; stow euclid probe, we're done
    G0 X147.5 Y252 Z40 F3600      ; move to finish location

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...