<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}
/>
)
Properties
| Property | Type | Default | Description |
|---|---|---|---|
| fromLayer | string | "top" | Starting layer for the via |
| toLayer | string | "bottom" | Ending layer for the via |
| holeDiameter | number | string | "0.4mm" | Diameter of the plated hole |
| outerDiameter | number | string | "0.8mm" | Outer diameter of the copper annular ring |
| pcbX | number | 0 | PCB X position of the via |
| pcbY | number | 0 | PCB Y position of the via |
| netIsAssignable | boolean | false | Marks 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.
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>
)
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.