← How-Tos
3d-printing 47 min ago ◯ 7 min read

Calibrating a Delta 3D Printer: Trammel, Diagonal Rod Length, and Endstop Offsets

delta printerkosseltrammelcalibrationendstop offsetdiagonal rodfirmwareklippermarlin

Delta printers are a small but stubborn minority in a market dominated by CoreXY and bed-slinger machines, and Kossel-style builds, SeeMeCNC Rostocks, and a handful of commercial deltas are still running in plenty of shops. Our kinematics explainer covers why delta's three parallel towers and diagonal rods move a nozzle the way they do, but it stops short of the question anyone who actually owns one eventually has to answer: why is the first layer thick in the middle and thin at the edges, or thin in the middle and thick at the edges, even after a dozen bed level attempts? Delta geometry calibration is a different discipline from bed-slinger or CoreXY tuning, because a single wrong number — rod length, tower radius, or a steps/mm error — distorts the entire print volume in a dome or saddle shape rather than causing a simple parallel offset. This guide walks through the calibration sequence in the order that actually fixes problems instead of chasing them in circles.

Why Delta Calibration Is Different

On a Cartesian or CoreXY machine, X, Y, and Z motion map directly to motor steps on independent axes. On a delta, every nozzle position is computed from the combined position of three towers using trigonometry — the nozzle's X/Y/Z coordinates are a function of all three tower carriage heights simultaneously. That means a single bad parameter doesn't just shift one axis; it warps the shape of the entire calculated print surface. A bed that reads "level" with a single-point check can still produce a bowl-shaped or dome-shaped first layer because the firmware's model of the printer's geometry — not the physical bed — is wrong.

The parameters that actually matter, roughly in the order you should tune them, are: endstop offsets (where each tower thinks Z=0 is), delta radius (the horizontal distance from the center of the bed to each tower's effector pivot), diagonal rod length (the physical length between the carriage and effector joints), and tower angle offsets (correcting for towers that aren't mounted at exactly 120° from each other). Steps/mm for the towers also has to be correct before any of this works, since Marlin and Klipper both assume accurate vertical tower movement as the starting point for the delta kinematics math.

Mechanical Trammel Before Touching Firmware

Before any software calibration, get the frame itself square. "Trammeling" a delta means confirming the three vertical extrusions are parallel to each other and perpendicular to the bed, and that the top and bottom triangular frame plates are true equilateral triangles with each tower at exactly 120°.

Any of this that's wrong physically will show up as calibration numbers that never converge, or that converge to a value far from the printer's nominal design figures. If your delta radius calibration keeps landing 8mm away from where the frame geometry says it should be, go back and recheck the mechanical trammel rather than trusting the software fit.

Endstop Offset Calibration

Endstop offsets set where each tower's carriage is when the firmware considers it "homed" — effectively, how far the nozzle sits below the physical point where the carriage triggers its endstop switch. Get this wrong and the nozzle crashes into the bed on one side while hovering too high on the other, even if every other parameter is perfect.

FirmwareParameter(s)Calibration method MarlinM666 per-tower endstop adjustments, saved with M500Home, then jog each tower individually to just touch paper-drag resistance on the bed at the center, adjust M666 X/Y/Z offsets iteratively Klipper[delta] section position_endstop, PROBE_CALIBRATE / DELTA_CALIBRATE routineAutomated: run DELTA_CALIBRATE with a probe (BLTouch or inductive) attached; Klipper probes multiple points and computes a least-squares fit for endstop offsets, delta radius, and rod length together

If you have a probe, Klipper's automated DELTA_CALIBRATE macro is dramatically faster and more accurate than manual paper-test tuning, because it fits all four major parameters (endstop offsets × 3, radius, rod length, and tower angle corrections) simultaneously using a proper least-squares solver instead of a human iterating by feel. If your delta has no probe, this is the single best upgrade to make before investing more time in manual calibration — a $10 inductive probe or a BLTouch pays for itself in calibration time alone.

Delta Radius and Diagonal Rod Length

Once endstops are close, the next failure mode to diagnose is bed shape: print or probe a grid across the bed and look at the pattern.

On Marlin, M665 sets delta radius (R), diagonal rod length (L), and tower angle trims (XA/YA/ZA) directly; without a probe, tuning these by hand means printing a calibration object like a flat single-layer disc, measuring where it bulges or dishes, and nudging values in small increments, reprinting, and comparing — a slow process that can take a dozen iterations. With a probe and Marlin's G33 auto-calibration (if your build enables DELTA_AUTO_CALIBRATION), the process mirrors Klipper's automated routine and converges in a few minutes.

Bed Mesh and Final Verification

After radius, rod length, and tower angles converge, run a final bed mesh (Klipper BED_MESH_CALIBRATE or Marlin's equivalent UBL/ABL mesh) to catch any remaining small-scale bed warp or build-plate unevenness that global kinematic parameters can't model. This mesh is a correction layer on top of correct kinematics, not a substitute for it — meshing over badly-calibrated delta radius just means the mesh has to apply large, uneven corrections across the bed, which shows up as visible first-layer banding even though the mesh is technically "compensating."

Print a large single-wall calibration ring or a full-bed-size single layer and inspect squish consistency from the center out to each of the three tower corners. Consistent first-layer squish across the full radius, not just the center, is the real pass/fail test — a delta that only looks good in the middle 60% of the bed still has a radius or rod length error you haven't fully chased out.

Delta calibration rewards patience more than any other common printer type: because every parameter interacts with every other one through the kinematics math, chasing a single number in isolation without first confirming mechanical trammel wastes time at every stage. Get the frame physically square and the rod length measured accurately first, lean on an automated probe-based calibration routine if your firmware supports one, and treat the final bed mesh as a fine-tuning step rather than a fix for an uncalibrated machine.