tEDAx - PCB footprints

purpose

Focus is on providing a common-minimum footprint representation. Some details, such as complete pad stacks, are lost in order to keep the model feasible to implement everywhere.

footprint model

A footprint may be placed on different layers of the board, thus the footprint description must be generic in naming those layers. For this, the tEDAx footprint block uses a pair of properties to select a layer: location and type. A layer location (lloc) is one of:

A layer type (ltype) is one of:

block

Block type is "footprint", version is "v1". The unique identifier should be the name of the footprint.

Interpretation of input data

As lines are read, the reader should build an internal model, following the tEDAx geometry considerations. Implementations are free to ignore any detail; users shall especially expect the following details to be ignored by some implementations:

Terminals

command parameter names explanation
term termid pinid type name Specify a terminal. Termid is used to refer to this terminal from the following geometrical constructs. pinid is a pin identifier (string), unique within the footprint. Netlists will refer to the pin using the pinid. The informal type parameter is one of power, signal and mech if known, or a single dash if unknown/unspecified.
Name is the symbolic name (for user display) and is optional. A terminal without drawing primitives connected to it is ignored.
A terminal is a logical construct thus does not have geometry.

Drawing primitives

The termid parameter is optional - when not needed a dash ("-") should be written. When present, the object is part of or related to the terminal with the matching termid.

command parameter names explanation
line lloc ltype termid x1 y1 x2 y2 width clear Round-cap line segment between two points.
arc lloc ltype termid cx cy r start_ang delta_ang width clear Round-cap arc segment with centerpoint, radius, start and end angles specified Start angle is between 0 and 360 degrees. Delta angle is between -360 and +360 degrees. If delta angle or radius is 0 the arc is equivalent to a zero-length line.
fillcircle lloc ltype termid cx cy r clear Filled circle with center cx, cy and radius r.
polygon lloc ltype termid clear numpt x y x y ... Filled polygon with straight line contour. Numpt specifies the number of contour points; each point is specified with an x and an y coordinate. The closing line segment is implicit: the last point does not need to match the first point, or in other words, to draw a triangle only 3 coords are required. There's no requirement on the CW or CCW order of points. The polygon shall not be self intersecting. The number of points is limited only by the tEDAx line length limit.
hole termid cx cy d hints A hole with center cx, cy and diameter d; the hole is plated by default and the diameter is the final diameter (with plating). The hints argument is either a dash or "unplated" to indicate that the hole should not be plated.

minimal support required

Any PCB editor attempting to load a tEDAx footprint needs to understand and support at least the following concepts:

Examples

classic DIP4

Origin is center of pin 1

tEDAx v1

begin footprint v1 DIP4
	term 1 1 signal 1
	fillcircle all copper 1 0.0000 0.0000 1.0160 1.2700
	hole 1 0.0000 0.0000 0.5000 -
	term 4 4 signal 4
	fillcircle all copper 4 7.6200 0.0000 1.0160 1.2700
	hole 4 7.6200 0.0000 0.5000 -
	term 2 2 signal 2
	fillcircle all copper 2 0.0000 2.5400 1.0160 1.2700
	hole 2 0.0000 2.5400 0.5000 -
	term 3 3 signal 3
	fillcircle all copper 3 7.6200 2.5400 1.0160 1.2700
	hole 3 7.6200 2.5400 0.5000 -
	line primary silk - -1.2700 -1.2700 -1.2700 3.8100 0.2540 0.0000
	line primary silk - 8.8900 3.8100 -1.2700 3.8100 0.2540 0.0000
	line primary silk - 8.8900 3.8100 8.8900 -1.2700 0.2540 0.0000
	line primary silk - -1.2700 -1.2700 2.5400 -1.2700 0.2540 0.0000
	line primary silk - 5.0800 -1.2700 8.8900 -1.2700 0.2540 0.0000
	arc primary silk - 3.8100 -1.2700 1.2700 0.000000 180.000000 0.2540 0.0000
end footprint