Skip to main content
Built-in Elements

<via />

Overview

A via is a plated hole that connects different layers of a PCB. Vias are commonly used to route traces between layers and for thermal management.

Vias do not have a schematic representation.

You generally do not need to manually create vias, they will be handled automatically by the autorouter.

export default () => (
<via
fromLayer="top"
toLayer="bottom"
outerDiameter="0.8mm"
holeDiameter="0.4mm"
pcbX={10}
pcbY={10}
/>
)
PCB Circuit Preview

Properties

PropertyTypeDefaultDescription
fromLayerstring"top"Starting layer for the via
toLayerstring"bottom"Ending layer for the via
holeDiameternumber | string"0.4mm"Diameter of the plated hole
outerDiameternumber | string"0.8mm"Outer diameter of the copper annular ring
pcbXnumber0PCB X position of the via
pcbYnumber0PCB Y position of the via
netIsAssignablebooleanfalseMarks the via as prefabricated so autorouters like laser_prefab can claim it for any compatible net

Prefabricated vias for laser routing

The laser_prefab autorouter is designed for fabrication flows that combine laser ablation with pre-drilled or templated vias. These workflows start with a "biscuit" carrier board that already contains a precise matrix of holes. Copper is laminated onto the carrier and a laser ablates the top copper to define traces before the template's vias are filled or re-plated.

When you mark a via with netIsAssignable, the autorouter exports an assignable obstacle so the router can reuse the via for whichever net needs to cross layers during routing. This lets you place a library of vias ahead of time while still giving the autorouter flexibility to finish the layout. You can still pre-assign a net to the via in your design; the autorouter only replaces that assignment if a different trace claims the via.

tip

Group all of the prefabricated vias together—usually in a separate subcircuit or component library—so you can reuse the same biscuit template across multiple projects. The netIsAssignable flag prevents unused vias from shorting random nets while remaining available to complete new connections.

export default () => (
<board width="10mm" height="10mm" autorouter="laser_prefab">
<testpoint name="TP_TOP" footprintVariant="pad" pcbX={0} pcbY={4} layer="top" />
<testpoint name="TP_BOTTOM" footprintVariant="pad" pcbX={0} pcbY={-4} layer="bottom" />
<via
name="V_ASSIGNABLE"
pcbX={0}
pcbY={0}
fromLayer="top"
toLayer="bottom"
holeDiameter="0.3mm"
outerDiameter="0.6mm"
netIsAssignable
/>
<trace from="TP_TOP.pin1" to="V_ASSIGNABLE.top" />
<trace from="V_ASSIGNABLE.bottom" to="TP_BOTTOM.pin1" />
</board>
)
PCB Circuit Preview

When the board renders, any assignable via that remains unused keeps its original net assignment. Otherwise, the autorouter replaces its net with the one required for the completed connection. For an end-to-end workflow, read the Biscuit Board Laser Ablation guide.