Comments (4)
This is strange. The QGL or Z-Tilt should behave the same. So yes, just exchange the QGL routine with the one of the Z-Tilt. It can also be a good thing to home Z again after QGL/Z-Tilt...
from klipper_z_calibration.
Yep, I just needed a G28 Z after Z_Tilt in the macro series to fix the issue.
I also didn't quite have enough buffer set to avoid hitting the switch on the probe, so if it attached slightly to the side it was hitting the trigger on the bedprobe and getting inconsistent results. Must have retested that 50 times before I actually managed to observe it happening, always seemed to happen when I was watching something else.
I was going to do a PR but honestly ctrl+f & replace "QUAD_GANTRY_LEVEL" with "Z_TILT_ADJUST" & add the 'G28 Z' after Z_Tilt sorts it out.
For those googling my issues:
[gcode_macro Z_TILT_ADJUST]
description: Level a flying bed to a stationary gantry
rename_existing: BASE_Z_TILT_ADJUST
gcode:
##### get user defines #####
{% set park_pos = printer['gcode_macro _USER_VARIABLE'].park_bed %}
{% set z_hop = printer['gcode_macro _USER_VARIABLE'].z_hop|float %}
##### get toolhead position #####
{% set act_z = printer.toolhead.position.z|float %}
##### set default #####
{% set park = params.PARK|default('true') %}
##### end of definitions #####
# home all axes if not already
{% if "xyz" not in printer.toolhead.homed_axes %}
_CG28
{% endif %}
SAVE_GCODE_STATE NAME=STATE_Z_TILT_ADJUST
_SET_ACC VAL=HOME
_CG28 RESET_SETTINGS=false
{% if act_z < z_hop %}
G1 Z{z_hop} F900 ; move head up to ensure Probe is not triggered in error case
{% endif %}
ATTACH_PROBE
BASE_Z_TILT_ADJUST
G28 Z
{% if params.CALIBRATE|default('false') == 'true' %}
CALIBRATE_Z RESET_SETTINGS=false
{% else %}
DETACH_PROBE
{% endif %}
{% if params.RESET_SETTINGS|default('true') == 'true' %}
_SET_ACC
{% endif %}
{% if park|lower == 'true' %}
G90
G0 Z{park_pos[2]} F1800 ; move nozzle to z high first
G0 X{park_pos[0]} Y{park_pos[1]} F18000 ; home to get toolhead in the middle
{% endif %}
RESTORE_GCODE_STATE NAME=STATE_Z_TILT_ADJUST
from klipper_z_calibration.
Nice to hear that it works for you!
A second homing is not necessary. The auto calibration is able to compensate this. But, it can be a good advice to do so if the adjustments by the Z-Tilt/QGL are too high. And my probe is mounted to the bed. So, a correct Z is need to fetch it.
Thanks! I will add your macro to the example configuration...
from klipper_z_calibration.
I added the macro to the examples.
from klipper_z_calibration.
Related Issues (20)
- [Feature suggestion] Nozzle wipe on Endstop HOT 3
- Do I need to move xy to a safe position myself after G28? HOT 2
- Tap compatibility HOT 1
- Move out of range during Calibrate_Z HOT 3
- Voron Tap support HOT 3
- Z Calibration Off, Printing Above plate HOT 13
- klippy/extras/z_calibration.py untracked HOT 3
- Bed Distance Sensor Support
- Code issue in clearance variable HOT 4
- calibrate_z crashes printhead into bed HOT 1
- If no Bed Mesh, it uses Z endstop height as Zero Position
- Is it possible to have a dedicated Z Switch pin instead of just using the Probe Pin? HOT 8
- Automatic detection of the offset between nozzles of different tools.
- At end of calibration i get a "unknown command" HOT 1
- [FR] Support for IDM Scanner
- Perform Auto Z at KAMP Center
- Move from clearance to safe_z_home when no [probe] section defined
- Potential issues with oldham couplers
- Z always off
- Disable "Save Z Endstop" and "Save Z Probe" when print completes. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from klipper_z_calibration.