makeIRLPCB engineering field guide

KiCad 9 DRC & ERC rules

KiCad diff_pair_uncoupled_length_too_long DRC: meaning and fix

Understand KiCad 9's diff_pair_uncoupled_length_too_long DRC rule, its MakeIRL S2 gate class, why it fires, and how to fix and verify it. Includes a practical.

Practical PCB integration · KiCad 9 · Manufacturing gate

What KiCad's diff_pair_uncoupled_length_too_long rule means

drc:diff_pair_uncoupled_length_too_long is a real KiCad 9 rule identifier from the PCB Design Rules Checker. The two nets in a differential pair travel separately for longer than the configured maximum uncoupled length. The identifier is the stable part to use in reports, automation, and severity policy; the human-readable violation sentence can vary with the affected items and KiCad version.

Long uncoupled sections create impedance discontinuity and convert differential energy to common mode, especially around connectors and pin escapes.

Start from the marker’s exact items and coordinates. Cross-probe them in PCB Editor → Inspect → Design Rules Checker, then inspect the surrounding net, footprint, symbol, rule scope, hierarchy, or layer state. Do not begin by changing the global rule or adding an exclusion: that can hide the symptom while leaving the wrong connectivity, fabrication geometry, library data, or schematic intent in place.

KiCad rule IDdiff_pair_uncoupled_length_too_long
SourceDRC
Meaningdifferential pair uncoupled too long
MakeIRL classS2
Explicitly recognizedno — safe S2 fallback
Primary editorPCB Editor → Inspect → Design Rules Checker

Why MakeIRL classifies it as S2

S2 REVIEW REQUIRED with recognized=false: drc:diff_pair_uncoupled_length_too_long is a real pinned KiCad 9 key, but it is not explicitly enumerated in the current taxonomy, so the unknown-rule fail-safe surfaces it instead of guessing or dropping it.

The current taxonomy safely reports this as unrecognized S2 rather than silently clearing a signal-integrity rule.

MakeIRL does not trust the severity label saved in a customer’s .kicad_pro. KiCad can be configured to ignore a rule entirely, so the gate authors a server-owned KiCad 9 reporting policy that forces the real catalog to be emitted and then applies its own rule-ID taxonomy. A project exclusion is recorded as evidence but never lowers the classification. Unknown identifiers also remain visible as S2 rather than disappearing or becoming an unjustified blocker.

S1 is reserved for evidence that a board is actually broken or assembly identity is impossible. S2 means a human engineering decision is required and can be acknowledged; it includes fab margins, many schematic conventions, parity drift, and rules whose intent depends on the product. S3 is advisory library, drafting, text, or silkscreen hygiene. This distinction explains why KiCad’s own “error” or “warning” word is evidence, not the release verdict.

How to fix diff_pair_uncoupled_length_too_long in KiCad 9

  1. 01

    Bring the traces together earlier, improve the connector/pad escape, remove stubs, or set a justified uncoupled-length limit based on the interface and stackup.

  2. 02

    Open PCB Editor → Inspect → Design Rules Checker, select the marker, and cross-probe every reported item before changing a rule or adding an exclusion. Fix the design or library source so the correction survives the next schematic/PCB update.

  3. 03

    Re-run DRC and review every uncoupled region from transmitter to receiver, including vias, connector fields, and test pads.

If the marker came from a library defect, repair the controlled symbol or footprint first and update the schematic/board copy deliberately. If it came from a net class or custom rule, confirm the electrical, timing, safety, or fabrication requirement before changing the number. A narrow, documented rule is safer than weakening the global project to make one marker disappear. For parity findings, compare the exact MPN, symbol pin numbers, footprint pads, BOM, and placement output before accepting either side as authoritative.

Verify the correction before release

Re-run DRC and review every uncoupled region from transmitter to receiver, including vias, connector fields, and test pads.

Save the corrected source files, refill zones when the board contains pours, and rerun the appropriate checker from a clean state. For PCB changes, inspect Gerber, drill, solder-mask, paste, outline, and placement outputs—not only the interactive canvas. For schematic changes, regenerate the netlist/BOM and run Update PCB from Schematic so stale board state cannot survive. Cross-probe the original coordinates and confirm the intended circuit or manufacturing constraint, not merely a zero marker count.

Finally, keep the original finding, the design change, and any remaining engineering acknowledgment in the release record. That gives reviewers a traceable reason why diff_pair_uncoupled_length_too_long is resolved, accepted as a deliberate S2 decision, or retained as an S3 advisory. Silencing the rule in project settings is never the fix because it changes reporting, not the board.

Check the design before fabrication

Run the release gate and review diff_pair_uncoupled_length_too_long with the rest of the KiCad evidence.

Check a KiCad project