Track length out of range
The KiCad Design Rule Checker (DRC) emits the `length_out_of_range` violation when a routed track or differential pair falls outside the minimum and maximum length bounds specified by custom constraints. This diagnostic ensures signal integrity by strictly enforcing propagation delays and physical trace lengths.
The "Track length out of range" (or "Trace length out of range" in KiCad 8 and earlier) diagnostic indicates that the physical routed length of a net, track, or differential pair fails to meet the explicit `length` constraints applied to it in the board's design rules. When designing for high-speed signal integrity, interfaces such as DDR, PCI Express, or Gigabit Ethernet strictly require tracks to have exact propagation delays, enforced by length minimums and maximums [1]. The Design Rule Checker (DRC) engine evaluates the physical copper length of the routed net against these boundaries. If the measured length falls short of the `min` constraint or exceeds the `max` constraint, KiCad flags the `length_out_of_range` violation to prevent timing mismatches on the manufactured board.
This error is triggered when the layout engineer applies custom design rules (for example, `(constraint length (min 20mm) (max 25mm))`) to a net or net class, but the actual routed copper trace distance does not fall within that specified window [2]. It commonly occurs when a required minimum length constraint is established, but the physical connection between components is direct and short, lacking the necessary tuning meanders. Conversely, it triggers on the maximum bound when a trace takes an overly tortuous path across the PCB. Additionally, KiCad's DRC includes the component's internal package delay (pad-to-die length) when evaluating total track length constraints. If a footprint specifies pad-to-die lengths, and those lengths are not accounted for in the custom length constraints, traces that visually appear correct on the canvas may still fail the rule check because the internal package length extends the total electrical trace length beyond the maximum bound [2].
(version 1) (rule "strict_length_tuning" (condition "A.NetName == 'TUNED_NET'") (constraint length (min 20.0mm) (max 25.0mm)) (severity error) )
Resolve the violation by using the single-track or differential-pair length tuning tools to add meanders to short tracks, rerouting overly long tracks, or correcting your custom DRC constraints to properly account for internal pad-to-die lengths. ```Lisp (version 1) (rule "strict_length_tuning" (condition "A.NetName == 'TUNED_NET'") ;; Adjusted minimum length constraint to accommodate the physical 10mm direct routing (constraint length (min 9.0mm) (max 25.0mm)) (severity error) ) ```
kicad-cli propagation delay tuning fails DRC while GUI passes (#23868)
Pad to die length not accounted for in DRC custom rule trace length (#16724)