Materials¶
A pcb-material
definition represents a material in a pcb-stackup
layer.
Signature¶
pcb-material mat-name (arg1:Type1, ...) :
name = <String|False>
description = <String|False>
type = <MaterialType>
material-name = <String|False>
; For Dielectric Materials
dielectric-coefficient = <Double|False>
loss-tangent = <Double|False>
; For Conductor Materials
roughness = <Double|False>
The expression name mat-name
uniquely identifies this stackup definition in the current context.
The argument list (arg1:Type1, ...)
is optional and provides a means of
constructing parameterized material definitions.
- Required Parameters
type
- There are two valid values forMaterialType
Conductor
Dielectric
- Optional Parameters
name
- This name is used in the UI as a more user friendly name. If this string is not provided then themat-name
expression is used as the stackup's name.description
- This string is defining more meta-data for the material - such as manufacturer of this material.material-name
- This string label is optional and used only for Kicad Import/Export.Dielectric
Type Optional Parametersdielectric-coefficient
- Relative Coefficient of Permittivity for this material. This value is a unit-less instance of typeDouble
and generally should be 1.0 or greater.loss-tangent
- The Loss Tangent for this material. This value is a unit-less instance of typeDouble
.
Conductor
Type Optional Parametersroughness
- Surface Roughness of the conductor layer. This parameter effects the losses in RF circuits due to the skin effect. This value is in mm.
If you add roughness
to a Dielectric
type or a loss-tangent
to a Conductor
type, the JITX runtime will throw an error.
Example:
Uncaught Exception: Dielectrics can only have dielectric-coefficient and loss-tangent attributes.
Usage¶
The pcb-material
statements create definitions that are primarily used by the pcb-stackup statement. These material definitions provide the properties of each material in the stackup.
Below is a trivial example for a 2-layer board:
pcb-material core-45 :
type = Dielectric
dielectric-coefficient = 4.5
loss-tangent = 0.008
pcb-material soldermask :
type = Dielectric
dielectric-coefficient = 3.2
loss-tangent = 0.012
pcb-material copper:
type = Conductor
pcb-stackup simple-2-layer :
name = "2-layer 1.6mm"
stack(0.019, soldermask)
stack(0.035, copper)
stack(1.5, core-45)
stack(0.035, copper)
stack(0.019, soldermask)
Using Arguments¶
Often times, a family of prepreg materials will come in multiple different constructions. For example, see Isola 370HR. Here is an excerpt from their core data:
We might want to construct a pcb-material
that allows us to label with these different features:
pcb-material isola-370HR (ply:String, Dk:Double, Df:Double) :
name = to-string("Isola 370HR %_" % [ply])
type = Dielectric
dielectric-coefficient = Dk
loss-tangent = Df
val isola-370hr-1080 = isola-370HR("1x1080", 4.04, 0.021)
This structure allows us to build a material spec for any
of the cores in the Isola catalog. The name
for this material will be Isola 370HR 1x1080
which we can use in programmatically generated stackup tables.