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.
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 type is "footprint", version is "v1". The unique identifier should be the name of the footprint.
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:
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. |
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. |
Any PCB editor attempting to load a tEDAx footprint needs to understand and support at least the following concepts:
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