Autorouter clearance adjustment

I’ve been using freeroute.jar for auto-routing, with modest success. I have some design rule issues.

  • I have a board that has one fine pitch component, an SOT-23-6 package.The pads on the component are so close together that the track clearance of any connection to that part has to be reduced to 0.14 to pass DRC or autoroute. Because it connects to both GND and PWR, those nets now have a tiny clearance everywhere. Is there some way to have a bigger clearance for trace-to-trace and pad-to-trace than for pad-to-pad?

  • Auto-routing will put a top-side trace under the middle of a SMT resistor. That’s pretty aggressive. Is there some way to add a keep-out area to a footprint?

The board design is on Github, here: https://github.com/John-Nagle/ttyloopdriver

If there is enough space why not? I have lots of tracks in this space.
(And the official kicad resistors where designed to have as much space between the pads as possible. At least they have been this way half a year ago. The pads where to small for my taste so i made my own footprints.)

I think currently this feature does not exist. But i think they at least plan to include more options in future releases of kicad.

It’s possible to specify a clearance for specific pads in the footprint editor. But it doesn’t help.
I tried changing the clearance for the middle pads in a 6-pad footprint… But if a track with a larger clearance is attached to the pad, the pad still acquires the larger clearance of the track. The per-pad clearance doesn’t override the clearance from the track’s net. There seems to be no way to create a footprint where the pads are closer together than the clearance of the tracks which connect them.

I have heard many discussions, debates, and arguments about this practice (running traces between pads of a two-terminal SMD part, such as an 0805 resistor). I don’t recall any conclusive evidence to either support or discourage it; the question is sometimes settled by imposing a “house rule” that it shall not be done.

On one hand, if the clearance is adequate, it is a ready-made solution for dealing with nets that must cross over each other.

The opposing argument is more complicated and based on manufacturing processes. The two end pads will be exposed copper, rising above the board’s substrate material by some distance related to the “weight” of the copper foil. The trace passing between the pads will be this thickness, plus a small distance due to the solder mask material. This creates a situation where the component is supported only at its center point, without actual contact at the pads.Of course, we are speaking of very small gaps here - less than 0.1mm (4 mils) worst case. You would expect the wetting behavior and capillary action of the liquid solder to fill that gap, but manufacturing engineers insist that occasionally a dry joint occurs.

(They point out that the automated soldering process transfers vibration to the board assembly, causing the components to jiggle in the vertical direction (“teeter-totter”) and fail to create an acceptable solder joint on one end. Dry joints are especially insidious because there may, indeed, be a physical contact to the pad when the assembly cools after soldering. This passes electrical tests immediately after assembly but over time, as thermal cycling and oxidation take their toll, the connection becomes intermittent.)

Dale

1 Like

I would counter that:

  1. if you got copper fill the same will happen
  2. the solder paste height is not zero
  3. the pads of the SMD devices more often than not extend past the package underside

So, to avoid all of that quite a lot of rules have to be set besides “don’t run tracks under ‘special’ SMD devices”.

1 Like

I found myself juggling parameters to try to get the autorouter to play nicely. With only one type of clearance, and no way to create keepout zones in footprints, KiCad lacks some refinements found in other tools.

I tried placing a pad in the gap to act as a keepout, this prevents the autorouter but the DRC flags errors, and may defeat the object.

Found a solution of sorts. The pad clearance can be increased until the pad clearance rectangle of one pad reaches the other pad. The pad clearance rectangles now overlap, but that’s OK. This allows an 0.28mm clearance between pads. This seems to allow an 0.28mm track clearance and an 0.6mm track. That’s OK for the low voltage signals. DRC is happy and the autorouter does a good job.

The KiCad SMD 0603 resistor pads are unusually widely spaced, too much so for my liking and prone to missing the pad at one end and ending up with a dry joint.
The IPC pads are much closer, some are too close to allow a track between them


Personally I use the IPC options that do allow a track, but allow the resistor to sit sensibly above both pads