EmbeddedEra EmbeddedEra

← Notes from the bench.

Why KiCad DRC says USB-C pads A4 and B9 are shorted

Nov 4, 2026kicadusb-cpcb-designDrafted with AI assistance, reviewed and edited by our engineer.

You drop a USB-C receptacle into a KiCad board, run DRC, and get two short-circuit errors between pads A4 and B9, and between A9 and B4. The nets have names like unconnected-(J3-VBUS-PadA4). You did nothing unusual. You picked a stock symbol and a stock footprint.

This is not a bug in your board, and it is not a bad connector. It is a mismatch between two library files that were never told about each other. It is easy to fix once you see it, and worth fixing properly, because the usual shortcut hides a real problem.

What is actually happening

A USB-C receptacle is rotationally symmetric so the plug can go in either way. The pins that carry power and ground are mirrored across the connector. Pin A4 sits opposite B9, A9 opposite B4, and the ground pins pair up the same way. The connector specification defines the assignments, so confirm them against the release you design to in the USB Type-C specification.

Many connector makers put each mirrored pair on one shared contact. Footprint authors then have two choices: draw one pad per physical contact, or draw both pad numbers at the same spot so the footprint matches the 16-pin symbol.

The KiCad library footprint USB_C_Receptacle_G-Switch_GT-USB-7010ASV takes the second route. Its library file places A4 and B9 at identical coordinates on the same copper layer. A9 and B4 are stacked the same way, as are A1 with B12 and A12 with B1. Two pads of the same size at the same position are one piece of copper. They are shorted by construction.

That is fine if both pad numbers belong to the same net. The trouble starts in the schematic.

Why the schematic makes it worse

Some USB-C symbols stack the mirrored power pins on top of each other, with one pin visible and the other hidden behind it. The KiCad schematic editor treats stacked pins as one connection. The KiCad schematic editor manual says stacked symbol pins are normally connected to the same net. It then adds that if a no-connection flag is placed on the stacked pins, they are connected to separate nets instead.

Put those two facts together:

  1. The symbol has stacked VBUS pins, and you have nothing to power from VBUS in this design, so ERC reports an unconnected pin.
  2. You place a no-connect flag on it to clear the warning, which is the normal thing to do.
  3. KiCad now splits A4 and B9 onto two separate auto-generated nets.
  4. The footprint puts both pads in the same spot, so DRC reports two nets sharing copper.

Each file is internally consistent. The schematic says the two pins are separate, and the footprint says the two pads are one piece of copper. The error is real. KiCad has correctly noticed that the pair disagrees about the electrical truth.

The KiCad forum thread where this came up on November 1 ends without a single accepted fix. It does list several workable options, and the right one depends on the board.

Four ways to fix it

1. Wire the pair to one net. If VBUS is used on your board, which is the normal case for a device powered over USB, connect A4 to your VBUS net. Because the pins are stacked, B9 follows. There is no short anymore, because both pads are on the same net. This is what the footprint’s author intended. The two pins share a net, and that is correct.

2. Match the pair. Use a symbol and footprint that agree. Either unstack the symbol so every pin has its own visible pin, and wire them together on the sheet, or use a footprint with one pad per physical contact. The KiCad library does not link a generic USB-C symbol to a specific footprint, so keeping the two consistent is your job. For a connector you will build more than once, make a project library entry that holds both and note which connector part it matches.

3. Delete the duplicate pad. Remove the B9 pad and pin, and enlarge the A4 pad so the copper area still matches the connector’s contact. This is a footprint edit, so do it in a project-local copy. Do not edit the shared library in place, because the next library update will overwrite it or leave your projects inconsistent.

4. Add a DRC exception with a note. KiCad lets you mark an individual violation as excluded. The PCB editor manual also lets you set a whole rule’s severity to ignore, with a warning to use that with caution. Excluding the single violation with a written reason is acceptable. Turning off the shorting check for the whole board is not. The check you would be disabling is the one that catches the short you did not intend.

One option from the thread we would avoid: adding a test point to VBUS only so the pins land on a net. It silences the error, but it puts a part on the board that exists to satisfy software.

The checks to run afterward

Clearing DRC is not the same as being right. After the fix:

  • Open the netlist, not just the markers. Confirm A4, B9, A9 and B4 all sit on your VBUS net, and the mirrored ground pins all sit on ground. A split that DRC no longer reports can still leave one pad of a pair floating on a stray net.
  • Check the CC pins separately. The configuration channel pins, A5 and B5, are not part of the stacked pairs. A sink needs both handled correctly, and a mistake there is the usual cause of a board that charges from an old USB-A cable but not from a C-to-C cable. We cover that in why a USB-C board works on USB-A but not C-to-C.
  • Compare the footprint to the datasheet for the part you will buy. A library footprint is a convention that someone drew from one manufacturer’s drawing. Your assembler needs the pad and hole pattern of the exact connector on your bill of materials. A lookalike connector from another maker can differ in the shield tabs, the mounting holes, or which contacts are shared.
  • Run ERC again after any symbol edit. If you unstacked pins, make sure no pin you rely on is now flagged as unconnected or as a conflict. KiCad’s ERC pin conflict map is configurable, so check that your project settings are what you think they are.

Why this is worth ten minutes

A stacked-pin mismatch looks like a nuisance, but it is a small version of a bigger problem: the symbol and the footprint are two separate files, and nothing forces them to agree. The same gap lets a wrong pin number through on a connector that has no stacked pads at all. The fix is to treat the pair as one reviewed unit, not as two parts you picked from separate search boxes.

If you are building a library for a product line, check each new connector against its datasheet once, store the matched pair, and record the reason for any exception beside it. That turns a recurring DRC argument into a note in the library.

How we approach it

When a board comes to us with a connector that fails DRC or ERC, we read the symbol, the footprint and the manufacturer’s drawing together and fix the pair at its source. Send the KiCad project, the exact connector part number, and the DRC report, and we will tell you which of these four fixes fits your board.

If your USB-C connector passes ERC but fails DRC, we would audit the symbol and footprint pair and fix the library entry before it reaches a fab.

ENGINEERING NOTES

One note a week on PCB design, firmware and getting hardware built. No sales email.

Double opt-in. Unsubscribe in one click.