Klipper module for automatic z-offset configuration on Voron TAP
NOTICE: It may not be possible for this to work on versions of tap besides ChaoticLab's CNC Tap. If you decide to try this anyway, please share your results in Issue 5 so we can try to fix this problem.
This module is under development: Please ensure the calculated offset seems reasonable for your printer! See Validate Results for how to validate the offset.
This module calculates the distance your toolhead lifts to actuate TAP.
Doing this enables automatic z-offset calculation. i.e. make G0 Z0.2
put the nozzle at 0.2mm above the bed.
This is a fairly slow process since the toolhead needs to move by step (0.005), check if the endstop is still triggered, and repeat.
Check how it works for more information.
On textured PEI, the offset may need to be slightly lowered to get proper first-layer squish. YMMV.
This is only known to work on QGL based printers, namely the Voron 2. If you use a different printer and want to help add support, please create an issue, and/or send a message on discord. Please include Auto TAP's console output so I can try to fix the issue.
abs(probe z - measure distance)
TAP_VERSION
To install this module, you need to clone the repository and run the install.sh
script
cd ~
git clone https://github.com/Anonoei/klipper_auto_tap.git
cd klipper_auto_tap
./install.sh
cd ~
git clone https://github.com/Anonoei/klipper_auto_tap.git
cd klipper_auto_tap
ln -sf ~/klipper_auto_tap/auto_tap.py ~/klipper/klippy/extras/auto_tap.py
sudo systemctl restart klipper
[update_manager klipper_auto_tap]
type: git_repo
path: ~/klipper_auto_tap
origin: https://github.com/anonoei/klipper_auto_tap.git
primary_branch: main
install_script: install.sh
managed_services: klipper
To configure auto tap you need to specify which version of TAP you are running Name | tap_version | Validated | Modification |
---|---|---|---|
ChaoticLab CNC Tap | CL_CNC | True | * 2 |
Voron Tap R8 | R8 | False | * 10 + 1 |
Voron Tap R6 | R6 | False | * 23 |
VITALII MetalTap | VITALII_CNC | True | * 21.5 |
If your version of tap is not validated, please make sure you validate results before using the calculated offset, and let me know if it worked for you!
Then, place this in your printer.cfg
[auto_tap]
tap_version: <your tap_version>
The values listed below are the defaults Auto TAP uses. You can include them if you wish to change their values, or run into issues.
[auto_tap]
tap_version: <your version> ; Set during the first part of configuration
x: Unset ; X position to probe, Defaults to the middle of the x axis `(max - min)/2`
y: Unset ; Y position to probe, Defaults to the middle of the y axis `(max - min)/2`
z: 10 ; Z position to park
probe_to: -2 ; Lower probe until it triggers, or reaches this value
set: True ; Set probe offset after calculation
settling_probe: True ; Perform a dummy probe before starting
stop: 2.0 ; Lift Z up to this amount for TAP to de-actuate
step: 0.005 ; Lift Z by this amount each check
samples: Unset ; Number of samples to take, Defaults to your config's probe sample count
retract: Unset ; Lift up by this amount at end, Defaults to your config's probe retract distance
probe_speed: Unset ; Probe at this speed, Defaults to your config's probe travel speed
lift_speed: Unset ; Retract at this speed, Defaults to your config's probe lift speed
travel_speed: 1000 ; Speed for travel to park position
Run the klipper command AUTO_TAP . You can also use the arguments below
Argument |
Default | Description |
---|---|---|
TAP_VERSION | Unset | Defaults to the configuration value. You can use this to try other offsets. |
X | Unset | X position to probe, Defaults to the middle of the x axis (max - min)/2 |
Y | Unset | Y position to probe, Defaults to the middle of the y axis (max - min)/2 |
Z | 10 | Z position to park |
PROBE_TO | -2 | Lower probe until it triggers, or reaches this value |
SET | 1 | Set probe offset after calculation |
SETTLING_PROBE | 1 | Perform a dummy probe before starting |
STOP | 2.0 | Lift Z up to this amount for TAP to de-actuate |
STEP | 0.005 | Lift Z by this amount each check |
SAMPLES | Unset | Number of samples to take, Defaults to your config's probe sample count |
RETRACT | Unset | Lift up by this amount at end, Defaults to your config's probe retract distance |
PROBE_SPEED | 1.0 | Probe at this speed |
LIFT_SPEED | Unset | Retract at this speed, Defaults to your config's probe lift speed |
TRAVEL_SPEED | 1000 | Speed for travel to park position |
FORCE | 0 | Force AUTO_TAP to run, even if it was calculated previously |
If you set values under Configuration, those will become the defaults.
If you run AUTO_TAP
again, it will set the z-offset to the last calculated value unless you run AUTO_TAP FORCE=1
.
After AUTO_TAP
is run, by default it will apply the calculated offset.
G0 Z
(first layer height)
G0 Z0.25
AUTO_TAP FORCE=1
, and re-validateOne and done:
AUTO_TAP
, and validate the offsetZ_OFFSET_APPLY_PROBE
to save the offset.Before starting print:
PRINT_START
macro, add AUTO_TAP
after homing and leveling have been completeThanks for your interest in testing Auto TAP! There are a few macro arguments that aren't included in the above documentation. If you're having issues with Auto TAP and want to see if different values work better for you, here they are!
Run AUTO_TAP FORCE=1 TAP_VERSION=DEV
with any of the following arguments
DEV_MULTIPLE
- Value to multiply the travel distance by to calculate offset. The defaults are listed above next to tap_version (after *)DEV_ADDER
- Value to add to the calculated offset. The defaults are listed above next to tap_version (after +, 0 if not listed)DEV_FUNC
- Method to 'tap'
simple
- Previous default, simply probes, and lifts the toolhead until the endstop is openrev hop
- Before each step, hop down to probe position then move upIf you want to check Auto TAP's variables, run AUTO_TAP FORCE=1 PRINT_CONFIG=1