Focus is on providing a common-minimum layer stackup representation.
The stackup consists of physical layers, global ("all") layers and virtual layers. Each layer has a name, location, type and a set of properties. Storing/saving/loading layer properties is optional. Layer name is case sensitive.
The layer name is human readable name that may also consists of alphanumeric characters, underscore ("_"), dash ("-") and period ("."). The maximum length of the name is 64 characters. The name may be empty, which is indicated by the special value: a single dash. Layer name is also used for referencing the layer from other objects, thus the name must be unique enough for that.
The layer location (lloc) is one of:
Layer types (ltype) vs. location (combination validity table):
ltype | top, bottom | inner | all | virtual | description |
---|---|---|---|---|---|
copper | ok | ok | BAD | BAD | copper film |
insulator | BAD | ok | BAD | BAD | insulator layer, e.g. substrate, prepreg |
silk | ok | BAD | BAD | BAD | silk-screen graphics |
paste | ok | BAD | BAD | BAD | solder paste |
mask | ok | BAD | BAD | BAD | solder mask cutouts; negative layer: the layer is a solid fill by default and objects drawn on it are clearing the solid fill |
umech | BAD | BAD | ok | BAD | unplated mechanical layer (drills, slots, routed contours) |
pmech | BAD | BAD | ok | BAD | plated mechanical layer (drills, slots, routed contours) |
vcut | BAD | BAD | ok | BAD | unplated V-cut |
doc | BAD | BAD | BAD | ok | human readable documentation |
The stackup is specified in order from top to bottom, that is layers with lloc=top should be listed first, then layers lloc=inner then lloc=bottom, then lloc=all and finally lloc=virtual. Order of layers within an lloc group matters only in case of lloc=intern.
Except for virtual layers and inner copper layers, each type/lloc combination must have zero or one layer - multiple layers are not permitted. Explicit insulator layers must be present between every two copper layer.
Layers are always drawn positively - there is no negative drawn, subtract, clearing layer. The physical interpretation of some layers are inverted, tho: mask layer objects specify cutouts on the final solder mask material, pmech, umech and vcut layers represent material that are removed (drilled, routed) from the final board.
Properties are optional key value pairs from the following table:
key | value | valid on |
---|---|---|
thickness | integer value in um | ltype=copper or ltype=insulator |
material | human readable text | ltype=insulator |
dielect | dielectric constant (er); unitless decimal number (e.g. 4.4) | ltype=insulator |
thermk | thermal conductivity (k) | any |
display-color | #rrggbb | any |
fab-color | human readable text | lloc=top, lloc=bottom |
Block type is "stackup", version is "v1". The unique identifier should be the human readable name of the stackup.
command | parameter names | explanation |
---|---|---|
layer | name lloc ltype | Create a new layer in the layer stack |
lprop | name key value | assign a new layer property to an already existing layer |
Any PCB editor attempting to load a tEDAx stackup needs to understand and support at least the following concepts:
tEDAx v1 begin stackup v1 1-layer-copper-only layer circ top copper layer mech all umech end stackup
tEDAx v1 begin stackup v1 2-layer-hobby layer TOP top copper layer in1 inner insulator lprop in1 thickness 1600 layer BOT bottom copper layer holes all umech end stackup
tEDAx v1 begin stackup v1 4-layer-digital layer tpaste top paste layer tmask top mask lprop tmask fab-color green layer tsilk top silk lprop tsilk fab-color white layer tsignal top copper lprop tsignal thickness 35 layer in1 inner insulator lprop in1 thickness 500 layer pwr inner copper lprop pwr thickness 70 layer in2 inner insulator lprop in2 thickness 500 layer gnd inner copper lprop gnd thickness 70 layer in3 inner insulator lprop in3 thickness 500 layer bsignal bottom copper lprop bsignal thickness 35 layer bsilk bottom silk lprop bsilk fab-color white layer bmask bottom mask lprop bmask fab-color green layer bpaste bottom paste layer uplat all umech layer plat all pmech layer comments virtual doc end stackup