Voron Trident Z Tilt — Full Calibration and Setup Guide
Trident Calibration Z-Axis Klipper
The Voron Trident's key differentiator from the V2.4 is its three-point Z drive system. Three independent Z stepper motors — one at each corner — allow Klipper to perform automatic Z tilt adjustment (Z_TILT_ADJUST) to tram the gantry perfectly parallel to the bed. This is one of the most powerful features of the Trident design, enabling reliable first layers across the entire build plate without manual leveling. This guide covers the full Z tilt setup, from hardware prerequisites through Klipper configuration, calibration procedure, and advanced troubleshooting.
How Trident Z Tilt Works
The Trident has three Z motors arranged in an L-shape: one at the front-left corner (stepper_z), one at the rear-left (stepper_z1), and one at the rear-right (stepper_z2). Each motor drives a leadscrew that lifts or lowers its corner of the bed carriage independently. Klipper's Z_TILT_ADJUST probes multiple points on the bed surface, measures the relative height differences, and calculates the adjustments needed to bring all three corners to the same Z height.
Unlike a V2.4 quad gantry level (QGL) which levels the gantry itself, Z tilt on the Trident levels the bed relative to the gantry. This distinction matters: the Trident gantry is fixed (it only moves in X and Y on the gantry extrusions), while the bed moves up and down on the three Z leadscrews. Leveling the bed means the gantry does not need to be level — it only needs to be rigid and square.
Hardware Prerequisites
Before you can run Z tilt adjust, ensure the following hardware is correctly installed and functional:
- Three Z stepper motors: All three must be wired and configured as independent steppers. Each motor needs its own driver (TMC2209, TMC2240, or similar). The stock Trident kit from Formbot, LDO, or Fysetc ships with three motors and three drivers on the mainboard.
- A working bed probe: Z tilt adjust works by probing the bed surface. You need an inductive probe (usually PL-08N or TL-Q5MC2), a Klicky/Unklicky probe, Euclid probe, TAP, or a Beacon contactless probe. The probe must be accurate to at least 0.01mm repeatability for reliable Z tilt.
- All three Z couplers tight: Loose couplers between the stepper motor shaft and the leadscrew introduce mechanical slop that Z tilt adjust cannot compensate for. Check that all three Oldham or helical couplers are snug and the set screws are torqued with threadlocker.
- Z leadscrews clean and lubricated: Dirty or dry leadscrews create inconsistent friction that can make adjustment values unreliable. Clean the leadscrews with isopropyl alcohol and apply a thin coat of PTFE or lithium grease.
Klipper Configuration for Z Tilt
The Klipper configuration for Trident Z tilt requires three stepper sections and a [z_tilt] section. Here is a complete example for a 250mm Trident:
[stepper_z]
step_pin: PB4
dir_pin: !PC5
enable_pin: !PB3
microsteps: 16
rotation_distance: 8
full_steps_per_rotation: 200
endstop_pin: ^PA7
position_endstop: 0.0
position_min: -4
position_max: 250
homing_speed: 10
second_homing_speed: 3
homing_retract_dist: 5
[stepper_z1]
step_pin: PB5
dir_pin: !PC6
enable_pin: !PB2
microsteps: 16
rotation_distance: 8
full_steps_per_rotation: 200
[stepper_z2]
step_pin: PB6
dir_pin: !PC7
enable_pin: !PB1
microsteps: 16
rotation_distance: 8
full_steps_per_rotation: 200
[z_tilt]
z_positions:
-125, -108 # Front-left corner (stepper_z)
-125, 108 # Rear-left corner (stepper_z1)
125, 108 # Rear-right corner (stepper_z2)
points:
50, 50
200, 50
50, 200
200, 200
speed: 150
horizontal_move_z: 10
retries: 5
retry_tolerance: 0.02
Parameter Breakdown
z_positions: The XY coordinates of each Z motor's leadscrew relative to the bed center. The first entry corresponds tostepper_z, the second tostepper_z1, and the third tostepper_z2. These values are specific to your Trident build size — measure from your CAD model or use the standard Voron spec values.points: The XY coordinates where the probe will measure bed height. At least four points are recommended for a Trident (one near each corner plus the center). More points give a better average of bed tilt. Five to seven points is a good balance.speed: The XY travel speed between probe points in mm/s. 150mm/s is safe. Do not exceed 200mm/s as the toolhead may overshoot the target position.horizontal_move_z: The Z height at which the toolhead moves between probe points. 10mm is sufficient to clear most bed clips and parts.retries: The maximum number of adjustment iterations. Klipper re-probes and adjusts up to this many times. Five retries is enough even for severely misaligned beds.retry_tolerance: The maximum deviation allowed in millimeters. 0.02mm is tight but achievable. If your probe has less than 0.01mm repeatability, loosen this to 0.03mm or 0.04mm to avoid infinite retry loops.
Z Tilt Calibration Procedure
Follow these steps to perform your initial Z tilt calibration:
- Pre-heat the chamber. Heat the bed to your typical printing temperature (100-110°C for ABS) and let it soak for 10-15 minutes. Thermal expansion causes the frame and bed to shift — Z tilt adjust performed on a cold bed will be incorrect once the printer reaches operating temperature. The difference can be as much as 0.05-0.10mm between cold and hot.
- Home all axes. Run
G28to home X, Y, and Z. The Trident uses the Z endstop (usually on the front-left corner) for the initial Z home, then relies on Z tilt adjust for fine tramming. - Run Z_TILT_ADJUST. Execute the command
Z_TILT_ADJUSTvia your console (Fluidd, Mainsail, or KlipperScreen). Klipper will probe all defined points, display the corrections for each Z motor, and apply them automatically. - Verify with a second run. Run
Z_TILT_ADJUSTagain immediately. The correction values should be very small (under 0.02mm difference between corners). If the second run shows large corrections, something is mechanically wrong — check your couplers, leadscrew nuts, and bed carriage bearings. - Save the configuration. If the results are satisfactory, save the Z motor positions to your config with
SAVE_CONFIG. This writes thez_calibratevalues into your printer.cfg so the adjustments persist across power cycles. - Test with a first-layer print. Print a large single-layer square (180mm x 180mm or larger) at 0.2mm layer height. Inspect the first layer across the entire surface — it should be uniform with no thin or thick areas.
Integrating Z Tilt Into PRINT_START
For fully automatic operation, add Z_TILT_ADJUST to your PRINT_START macro. Here is a recommended sequence that includes bed heating, soak, Z tilt, and bed mesh:
[gcode_macro PRINT_START]
gcode:
# Parameters
{% set BED_TEMP = params.BED_TEMP|default(105) %}
{% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(245) %}
# Heat bed and soak
M140 S{BED_TEMP}
M106 S255 # Part cooling fan off
G28
M190 S{BED_TEMP}
G4 P600000 # 10-minute soak (600,000ms)
# Z tilt adjust
Z_TILT_ADJUST
# Mesh bed leveling
BED_MESH_CALIBRATE
# Heat hotend
M109 S{EXTRUDER_TEMP}
# Final Z homing for accurate first layer
G28 Z
G1 Z5 F300
Note the 10-minute bed soak before Z tilt. This is critical — probing a thermally stable bed gives repeatable results. Skipping the soak means your first layer may be perfect initially but drift as the bed reaches equilibrium 20 minutes into the print.
Troubleshooting Common Issues
Z Tilt Adjust Fails with "Probe triggered prior to movement"
This usually means the probe is triggering on the bed surface during the initial approach. Lower your horizontal_move_z to 15-20mm temporarily, or check that the probe is mounted at the correct height (trigger point should be approximately 2-3mm above the nozzle tip).
Corrections Get Larger with Each Retry
The Z tilt adjust algorithm should converge — each retry should produce smaller corrections. If corrections are oscillating or increasing, you likely have mechanical binding in one of the Z leadscrews. The adjustment assumes linear and consistent movement per step, but a binding leadscrew may not move at all until a threshold of force is reached, then jump suddenly. Disconnect the leadscrew from the carriage and verify it spins freely through its entire range.
Different Z Tilt Results Between Cold and Hot
This is normal to some degree. The aluminum frame expands approximately 0.023mm per meter per degree Celsius. A 300mm frame heated from 25°C to 65°C chamber temperature expands by approximately 0.28mm in height — but unevenly if one corner of the frame gets more heat than another. Minimize this by always running Z tilt adjust at printing temperature, and by ensuring good airflow circulation in the chamber.
Z Tilt Adjust Succeeds but First Layer Is Uneven
If Z tilt reports 0.01mm or better deviation but your first layer is visibly uneven, check for a warped bed surface. Trident MIC6 aluminum build plates are generally flat to within 0.05mm, but the magnetic PEI sheet may have thickness variations. Use BED_MESH_CALIBRATE with at least a 5x5 grid to compensate for local irregularities. Z tilt handles global tilt (the bed being a plane at an angle), while bed mesh handles local height variations within that plane.
Advanced: Using Z_TILT_ADJUST with Different Probes
Different probes have different requirements for Z tilt adjust:
- Inductive probes (PL-08N, TL-Q5MC2): These have a 2-4mm sensing range and are affected by bed temperature. The sensing distance decreases as the metal bed heats up (approximately 0.01mm per 10°C). Calibrate your probe's
z_offsetat printing temperature, not cold. - Klicky/Unklicky: These microswitch-based probes are very repeatable (0.005-0.01mm) but require the probe to be docked and attached on every Z tilt run. Ensure your Klicky dock alignment is precise — any variation in how the probe seats changes Z tilt readings.
- TAP: The mechanical probe uses the nozzle itself as the sensing element. It is highly repeatable but requires that the probe trigger force is adjusted correctly. Too light and it triggers on Z hop deceleration; too heavy and it can crash into the bed.
- Beacon/Eddy: Contactless inductive sensors with high repeatability (0.003mm). These are ideal for Z tilt as they do not wear over time and work at any temperature. However, their offset relative to the nozzle must be calibrated precisely.
Whichever probe you use, validate its repeatability before relying on Z tilt adjust. Run this simple test in the Klipper console: probe the same point 10 times with PROBE and check the standard deviation. It should be below 0.01mm. If it is not, your Z tilt adjust will never converge reliably.