vias module#

class JLCPCBVias[source]#

Various via definitions provided by JLCPCB. By default when using one of the substrates in this package, all vias will be available for use, be aware that some may incur an extra cost.

The StdViaPreferred and StdViaTentedFilled vias are options for all boards, and as of 10/23/2024 do not have any up-charge for processing.

class StdVia[source]#

Bases: Via

Standard Via with minimum pad size

name = 'Standard Via Aggressive - No Extra Cost'#
start_layer: ClassVar[int] = 0#

Starting layer for the via. Setting this to a layer index other than the top layer allows for creating buried or blind vias.

stop_layer: ClassVar[int] = -1#

Ending layer for the via.

diameter: ClassVar[float | ViaDiameter] = 0.4#

Pad diameter of the via, in mm. Can be overridden on a per-layer basis by diameters.

hole_diameter: ClassVar[float] = 0.3#

Drilled or laser-cut hole diameter for the via, in mm.

type: ClassVar[ViaType] = 1#

MechanicalDrill or LaserDrill.

Type:

Type of via drilling method

via_in_pad: ClassVar[bool] = False#

Whether the via is allowed to be placed inside a component’s pads.

class StdViaPreferred[source]#

Bases: Via

Standard Via with preferred pad size (larger)

This via definition uses the preferred +0.15mm for the pad diameter which JLC-PCB recommends

name = 'Standard Via - No Extra Cost'#
start_layer: ClassVar[int] = 0#

Starting layer for the via. Setting this to a layer index other than the top layer allows for creating buried or blind vias.

stop_layer: ClassVar[int] = -1#

Ending layer for the via.

diameter: ClassVar[float | ViaDiameter] = 0.45#

Pad diameter of the via, in mm. Can be overridden on a per-layer basis by diameters.

hole_diameter: ClassVar[float] = 0.3#

Drilled or laser-cut hole diameter for the via, in mm.

type: ClassVar[ViaType] = 1#

MechanicalDrill or LaserDrill.

Type:

Type of via drilling method

via_in_pad: ClassVar[bool] = False#

Whether the via is allowed to be placed inside a component’s pads.

class MultiLayerVia1[source]#

Bases: Via

Multi-layer (6+) via with extra cost + 1.

There are multiple levels of extra cost that JLCPCB supports for smaller vias. This is the first layer. This via definitions uses the standard +0.1mm for the pad diameter

name = 'Multi-Layer Via Aggressive - Cost + 1'#
start_layer: ClassVar[int] = 0#

Starting layer for the via. Setting this to a layer index other than the top layer allows for creating buried or blind vias.

stop_layer: ClassVar[int] = -1#

Ending layer for the via.

diameter: ClassVar[float | ViaDiameter] = 0.35#

Pad diameter of the via, in mm. Can be overridden on a per-layer basis by diameters.

hole_diameter: ClassVar[float] = 0.25#

Drilled or laser-cut hole diameter for the via, in mm.

type: ClassVar[ViaType] = 1#

MechanicalDrill or LaserDrill.

Type:

Type of via drilling method

via_in_pad: ClassVar[bool] = False#

Whether the via is allowed to be placed inside a component’s pads.

class MultiLayerVia1Preferred[source]#

Bases: Via

Multi-layer (6+) via with extra cost + 1.

There are multiple levels of extra cost that JLCPCB supports for smaller vias. This is the first layer. This via definitions uses the preferred +0.15mm for the pad diameter

name = 'Multi-Layer Via - Cost + 1'#
start_layer: ClassVar[int] = 0#

Starting layer for the via. Setting this to a layer index other than the top layer allows for creating buried or blind vias.

stop_layer: ClassVar[int] = -1#

Ending layer for the via.

diameter: ClassVar[float | ViaDiameter] = 0.4#

Pad diameter of the via, in mm. Can be overridden on a per-layer basis by diameters.

hole_diameter: ClassVar[float] = 0.25#

Drilled or laser-cut hole diameter for the via, in mm.

type: ClassVar[ViaType] = 1#

MechanicalDrill or LaserDrill.

Type:

Type of via drilling method

via_in_pad: ClassVar[bool] = False#

Whether the via is allowed to be placed inside a component’s pads.

class MultiLayerVia2[source]#

Bases: Via

Multi-layer (6+) via with extra cost + 2.

There are multiple levels of extra cost that JLCPCB supports for smaller vias. This is the second layer. This via definitions uses the standard +0.1mm for the pad diameter

name = 'Multi-Layer Via Aggressive - Cost + 2'#
start_layer: ClassVar[int] = 0#

Starting layer for the via. Setting this to a layer index other than the top layer allows for creating buried or blind vias.

stop_layer: ClassVar[int] = -1#

Ending layer for the via.

diameter: ClassVar[float | ViaDiameter] = 0.3#

Pad diameter of the via, in mm. Can be overridden on a per-layer basis by diameters.

hole_diameter: ClassVar[float] = 0.2#

Drilled or laser-cut hole diameter for the via, in mm.

type: ClassVar[ViaType] = 1#

MechanicalDrill or LaserDrill.

Type:

Type of via drilling method

via_in_pad: ClassVar[bool] = False#

Whether the via is allowed to be placed inside a component’s pads.

class MultiLayerVia2Preferred[source]#

Bases: Via

Multi-layer (6+) via with extra cost + 2.

There are multiple levels of extra cost that JLCPCB supports for smaller vias. This is the second layer. This via definitions uses the preferred +0.15mm for the pad diameter

name = 'Multi-Layer Via - Cost + 2'#
start_layer: ClassVar[int] = 0#

Starting layer for the via. Setting this to a layer index other than the top layer allows for creating buried or blind vias.

stop_layer: ClassVar[int] = -1#

Ending layer for the via.

diameter: ClassVar[float | ViaDiameter] = 0.35#

Pad diameter of the via, in mm. Can be overridden on a per-layer basis by diameters.

hole_diameter: ClassVar[float] = 0.2#

Drilled or laser-cut hole diameter for the via, in mm.

type: ClassVar[ViaType] = 1#

MechanicalDrill or LaserDrill.

Type:

Type of via drilling method

via_in_pad: ClassVar[bool] = False#

Whether the via is allowed to be placed inside a component’s pads.

class MultiLayerVia3[source]#

Bases: Via

Multi-layer (6+) via with extra cost + 3.

There are multiple levels of extra cost that JLCPCB supports for smaller vias. This is the third layer. This via definitions uses the standard +0.1mm for the pad diameter

name = 'Multi-Layer Via Aggressive - Cost + 3'#
start_layer: ClassVar[int] = 0#

Starting layer for the via. Setting this to a layer index other than the top layer allows for creating buried or blind vias.

stop_layer: ClassVar[int] = -1#

Ending layer for the via.

diameter: ClassVar[float | ViaDiameter] = 0.25#

Pad diameter of the via, in mm. Can be overridden on a per-layer basis by diameters.

hole_diameter: ClassVar[float] = 0.15#

Drilled or laser-cut hole diameter for the via, in mm.

type: ClassVar[ViaType] = 1#

MechanicalDrill or LaserDrill.

Type:

Type of via drilling method

via_in_pad: ClassVar[bool] = False#

Whether the via is allowed to be placed inside a component’s pads.

class MultiLayerVia3Preferred[source]#

Bases: Via

Multi-layer (6+) via with extra cost + 3.

There are multiple levels of extra cost that JLCPCB supports for smaller vias. This is the third layer. This via definitions uses the preferred +0.15mm for the pad diameter

name = 'Multi-Layer Via - Cost + 3'#
start_layer: ClassVar[int] = 0#

Starting layer for the via. Setting this to a layer index other than the top layer allows for creating buried or blind vias.

stop_layer: ClassVar[int] = -1#

Ending layer for the via.

diameter: ClassVar[float | ViaDiameter] = 0.3#

Pad diameter of the via, in mm. Can be overridden on a per-layer basis by diameters.

hole_diameter: ClassVar[float] = 0.15#

Drilled or laser-cut hole diameter for the via, in mm.

type: ClassVar[ViaType] = 1#

MechanicalDrill or LaserDrill.

Type:

Type of via drilling method

via_in_pad: ClassVar[bool] = False#

Whether the via is allowed to be placed inside a component’s pads.

class StdViaTentedFilled[source]#

Bases: Via

Standard Tented and Filled Via

This via is suitable for via-in-pad applications and use the preferred +0.15mm for the pad diameter which JLC-PCB recommends

name = 'Tented/Filled Standard Via'#
start_layer: ClassVar[int] = 0#

Starting layer for the via. Setting this to a layer index other than the top layer allows for creating buried or blind vias.

stop_layer: ClassVar[int] = -1#

Ending layer for the via.

diameter: ClassVar[float | ViaDiameter] = 0.45#

Pad diameter of the via, in mm. Can be overridden on a per-layer basis by diameters.

hole_diameter: ClassVar[float] = 0.3#

Drilled or laser-cut hole diameter for the via, in mm.

type: ClassVar[ViaType] = 1#

MechanicalDrill or LaserDrill.

Type:

Type of via drilling method

tented: ClassVar[set[Side] | Side | None | bool] = True#

Whether the via is tented on Top, Bottom, or both sides. Untented sides will have a solder mask opening.

filled: ClassVar[bool] = True#

Whether the via is filled.

via_in_pad: ClassVar[bool] = True#

Whether the via is allowed to be placed inside a component’s pads.