Cannot connect trace to through-hole on DVI connector

Hello, I’m trying to route TMDS pins on a DVI connector, and have found that I cannot create traces between the rows of pins for the inside row of pins. The image belows shows an example of what’s happening.

I’ve tried making trace width the minimum 7.9mil but that still does not let me route the trace around the pins. Any suggestions for how I can solve this would be great thanks!

As far as I can see it’s impossible to get any kind of track between those pads. The clearance lines of the pads overlap. If that pad clearance is also as small as the manufacturer allows, the situation is impossible.

There are a couple of things you could do.

First, make the pads smaller if possible.

Second, is 7.9mil really the minimum which your board manufacturer can do? It’s pretty large, even cheap manufacturers can often do 6mil. (6mil track / 6mil clearance.)

1 Like

This is a DVI footprint from the digikey parts library (p/n 74320-9010). I haven’t changed anything about the pad size because I figured they wouldn’t make the default footprint impossible to route.

I tried changing the trace width but on KiCAD it says the minimum is 7.87 mil for me

I checked the footprint and it can be routed with 0.16mm clearance/0.16mm track.

Minimum track width can be changed in Board Settings -> Design Rules.

1 Like

I have not looked at the real footprint, just at the screenshot, and I find the yellow clearance markers weird. I would have expected a regular pattern, but sometimes the clearances just touch each other, which means no track can go in between, and other times there are different amount of space in which a track might fit.

It also looks like a poorly designed footprint, with so small a clearances.

I would probably change at least the pads of the outer rows of the pads from “round” to “oval”. A copy of the footprint is maintained in the KiCad-pcb file itself. You can hover the mouse over it and press [Ctrl + e] to edit it in the footprint editor. Then, in the footprint editor hover over a pad and press e to edit the properties of that pad. Set “Shape” to Oval, and reduce either “Size X” or “Size Y” for that pad.

When finished editing just close the Footprint Editor. It will ask you whether you want to save the changes (directly into) the PCB file.

If the clearance of the footprint is left to 0 it inherits the clearances of the nets. There’s nothing wrong with that. In this case the net clearance must be 0.17 or 0.16mm anyways to allow routing between the pads.

1 Like

Just for fun I downloaded and installed the Digikey libraries.
On first sight the DVI footrpint I used ( 74320-9004 ) looks decent. so the comments I made from the screenshot were premature.

Then I edited the footprint, as I suggested earlier. The default pads were round with a “Size X” of 1.4mm and I changed them to “Oval” with an “Size X” of 1.25mm. I did not change “Size Y”, so it’s left at 1.4mm.

With these pad sizes you can route a default track (0.25mm width with 0.2mm clearance) between the pins. The difference for the pads is minimal, and it may be a better option than reducing track widhts and clearances.

Also, On this forum I recently read that apparently it’s sort of “default” for 2 layer boards to have a 8 mill “capability” and 3.5mill for multi-layer boards. In the end it means you should consider the capabilities of your board manufacturer before finishing the PCB design.

1 Like

I would hope that for DVI this is at least a 4-layer board (no reason not to these days, they are so cheap).
All of the cheap prototyping fabricators I have used recently have 6 mil trace/space as standard. I use 8 mil as default trace size and go down to 6 mil when breaking out BGAs and other things that 8 mil can’t fit through.

1 Like

Can you try with the 74320-9010 instead? That’s the one I need to use because it is a DVI-I.

Hello, thank you for trying that. I also changed the design rules and lowered the trace thickness all the was to 6mil but was still unable to route it. Were you using the 74320-9010? Is it possible i made a change to the footprint somehow or that I need to change another setting about the footprint or trace clearance?

This is a 4-layer board yes. One of the board functions is converting an HDMI input to this DVI output and as a result some of the TMDS pairs cross and I will have to use Vias. Any tips on best practices for that?

Sure:

  • Set up your stackup if possible so that both inner layers are GND and your diff pairs are routed on the outer layers.
  • Use the smallest standard via size (drill and pad size) allowed by your fabricator, so that you may:
  • Keep the spacing between the vias of the diff pairs close, to minimize the amount that the pair is uncoupled (since in general the vias will need to be farther apart than the trace-to-trace spacing required for the impedance of the diff pair to be correct)
  • Use stitching vias to tie together the two GND layers near your signal vias, ideally at least one GND via per signal via
  • Use as few vias as possible in your diff pairs, and keep your diff pairs symmetric (for example, never add an extra via to one of the lines in a diff pair but not the other)

If you cannot dedicate both inner layers to GND planes underneath your high-speed signals, you’ll also want to make sure you have bypass capacitors between the GND plane and whatever power plane you use, since on one of the outer layers, your signals will be referenced to that power plane instead of to GND. You’ll especially want some of those caps near where the reference plane switches (i.e. where your vias from L1-L4 are). Use the smallest package size capacitors you can (I normally use 0402 for hand soldering), and keep the distance from the capacitor pad to the via connecting to plane to a minimum.

1 Like

I saw too late that you posted the type number. If I had saw that earlier I would have used the 9010 variant. Except from the analog pins both DVI connectors seem to be identical, so you should be able to change the pads in the Footprint Editor without trouble.

This is so far the best simple & readable guide for high speed layout I have found: https://docs.toradex.com/102492-layout-design-guide.pdf.

1 Like

Sounds good thank you. Will changing the pads effect the function of the connector at all? How will I know if I’ve made too drastic of changes to the pads

Wow thank you that is very helpful. I will keep those tips in mind as I do this!

I am definitely not an expert in this. For SMT the size of the pads (and more accurate the size of the holes in the stencil) directly influence the amount of solder paste, and therefore the solderability of the components.

THT components in automated processes are usually done with wave soldering. For your connector, the tips of the pins get dipped into solder, and capillary forces such the solder into the hole. You can even get away with very small annular rings on the pads.

For handsoldering sometimes larger pads are made, see for example the “longpads” examples in KiCad’s libraries. Pads for handsoldering are big, because you want to heat the pad with your soldering iron on one side, and apply solder to the other side of the pin. If you apply solder directly to the soldering iron, the flux will burn off before it can do it’s job of cleaning the pad (which is a mistake beginners often make).

The amount I made the pads narrower is almost certainly negligible. The change to the pads is only from 1.4mm, to 1.25mm. which is about 10% Adding those 0.15mm to the track width almost doubles the room available for the tracks.

Do you know if there are any IC’s that can help with this? My plan was to just wire straight from the DVI connections to the HDMI connections but I’m now wondering if there are IC’s that can help take out the variables caused by the differential pairs being routed differently or through vias etc

Can you say more about what you are trying to do with this board? Is it just an adapter between the two connectors, or is there other circuitry involved? Any IC that you put in-between has the potential of adding more layout and signal integrity headache, so I don’t think it’s a good idea unless that IC would also be doing something useful for your signal in some way.

Is it possible that you can get away from the need to cross the pairs by flipping around one of the connectors in some axis?

Go read the Toradex document eelik linked to. It’s only 40 pages of maintaining integrity for High speed signals on PCB’s.

Edit: After a refresh I see a “1” after the document. Did you miss it?