It would be so nice if SCREWS_TILT_CALCULATE has an option to:
Home all axis.
Measure the height above each manual bed tilt screw.
Move the print head to the first manual bed tilt screw that require adjustment. (lower or higher than Z0)
3a. If lower than Z0
Move print head to (Z0 + Z offset) ask the user to turn the knob until the probe triggers.
3b. If higher than Z0
Move print head down until the probe triggers and move it up again and repeat.
Stop moving up and down if the probe doesn't trigger anymore before (Z0 + Z offset).
Ask the user to lower the bed corner until moving up and down stops.
When moving up and down stopped, go into the 3a routine.
Repeat this process for every manual bed tilt screw that require adjustment.
Marlin has this feature (LEVEL_CORNERS_USE_PROBE) for a while now and it saves quite some time on corner leveling.
Here’s a temporary macro that may work until this feature is added. This is just a macro for 1 screw, so you’ll need to add multiple of these for each screw and change it accordingly.
It will:
Home all axis
Bring probe above screw, at a Z height of 10
Deploy probe
Move down to a Z height of 3.8
At that point you should be able to tram your bed, and the light on the BLtouch will turn red when in a ‘triggered’ state, and have no light when not triggered.
(Remember to change the coordinates to your own screw coordinates and make sure Z height for tramming is okay).
Because the goal is only to tram the bed, or to make it ‘level’, then the actual Z height doesn’t need to equal your actual probe Z-offset. I used 3.8 because it is just above my Z-offset, allowing me to tram with minimal adjustments.
[gcode_macro BedScrew1]
description: bed screw tram using BLtouch
gcode:
G28
G1 X75 Y43 Z10 F5000.0 # Move 10mm above screw1 to allow probe to deploy
BLTOUCH_DEBUG COMMAND=touch_mode
BLTOUCH_DEBUG COMMAND=pin_down #Deploy the BLtouch probe
G1 Z3.8 #Move down to a Z height just above the probe 'trigger' point