pcb-rnd knowledge pool


Internal connections in footprints and subcircuits

intconn by Tibor 'Igor2' Palinkas on 2013-09-01

Tags: howto, intconn, internal, connection, footprint, subcircuit, menufile

node source



Abstract: n/a

  There are parts with internal connections (e.g. pin 2 and 4 of a SO8 package are internally connected). gEDA/PCB) can not handle this, leaving the following options:

The patch introduces a new pin flag intconn(g) which marks the pin to have internal connections in group g . If there are multiple pins using the same g value within a single element, they are internally connected. In other words, g is a group (or net name) within the element and pins can join to one of the numbered groups (or internal nets). The value of g shall be between 1 and 255, 0 means no internal connection (equivalent to the case when intconn(0) is omitted).

When pin numbers are displayed (key 'd'), internal connection groups are written in square brackets, e.g. "2 [9]" means "pin 2, internally connected to group 9".

Combined with the [ nonetlist ] patch, this solves the "0-ohm 1206 jumper" problem: the element should be marked as nonetlist, with both pins set intconn(1) - this will result in a 2 pad element, pads internally connected, that can be part of any one network without causing short.


The first image depicts crossing traces, a common problem encountered when rats nesting a new layout from a netlist. One method to resolve such issues is to use a zero ohm jumper resistor that allows one signal trace to 'jump' across another.

The second image shows the layout routing the nonconflicting rats and a open unrouted point where the rat would require one trace to cross another.

In the third image a 1206 SMD footprint for a 0 Ohm 1206 resistor called J1 is placed with an intconn between the two pads which resolves the final rat line.

[Layout with resistors and rat lines]

[Layout with one remaining rat line]

[Layout with jumper completing net]

lihata example and attribute howto

As demonstrated in a manipulated dip(8) footprint, having an internal conenction between two pins of a subcircuit can be done by adding the same "intconn=42" attribute to the affected terminals. This can be done by using the property editor over the terminal, prior to converting to subcircuit or in the subcircuit editor (e.g. opening the subcircuit file directly).

Press 'f' over pin 1 or pin 3, and both pin 1 and pin 3 will be highlighted: the internal connection makes an invisible connection between them. No other pins are affected in this example.

The value 42 is an arbitrary integer. Multiple groups of pins can be formed using different integers.

save/load and compatibility with gEDA/PCB

This patch introduces a new pin flag. In the following example pin 2 and 4 are connected internally as group 9, while pin 3 does not have any internal connections:

Pin[40000 60000 6000 3000 6600 2800 "2" "2" "square,intconn(9)"]
Pin[40000 50000 6000 3000 6600 2800 "3" "3" "square"]
Pin[40000 40000 6000 3000 6600 2800 "4" "4" "square,intconn(9)"]

gEDA/PCB will load the design ignoring internal connections - this may introduce new rats.

gEDA/PCB doesn't save intconn() and elements are embedded in the file - once the design is loaded and saved with gEDA/PCB, internal connection info is lost.

save/load and compatibility with other EDA software

No other file format supports this feature.

see also

This feature is used together with the nonetlist feature for jumper subcircuits not drawn on the schematics (e.g. 0 ohm resistors).

Complementer features is intnoconn , that breaks an existing copper connection within a subcircuit.