(V6) Via Instead of PlatedThoughHole?

A friend of mine sent me a project of his. Interstingly, as he uses Altium at work, his first method to create a mounting hole in KiCad was to use a VIA. I’m wondering what others think about this concept.

First, a couple of screen grabs:


What I realize, as I type this, is that I have no idea how the gerbers are going to end up. This individual VIA can not be un-tented with the Plot Tool. However, a solder mask circle has been added to the center of the VIA with a desired line thickness to create a ground ring for mounting (purple ring).

In V5, mounting holes and fiducials were not well handeld. Just wondering if in V6 if this might be a workaround for already known issues???

In KiCad, you should use Footprints (or Footprint pads) for mounting holes, there are several already build-in for various screw sizes. Version 7.0 is scheduled to have more via settings, which might make them more useful for creating mounting holes and other stuff, but in v6 it’s similar to v5.

That said, creating a huge via and putting a solder mask circle over it will probably result in okay Gerber files. It’s just more annoying to create and adjust than a footprint pad.

Beware of tolerances. IPC-class 600 allows for quite big negative tolerances on via hole diameters. (Class 1 is -50% if I remember well.) Fabricators follow this, and havequite big negative tolerances in via; some put it on their website, for example, Tolerances on Printed Circuit Boards - Eurocircuits. Quite logical, if a via hole is indeed a via hole the diameter is not terribly important.
The Gerber tells it is a via, so it tells you are OK with the high tolerance, and whatever they do with vias.

I would not say it is a via when it is not.

6 Likes

In general, no fab I have used has treated vias and PTHs differently in terms of the Gerber data. If they apply different tolerances to vias vs. PTHs, they tell them apart based on the drill size (big holes vs. small holes), not based on some kind of attributes in the files. In Altium, both free vias and footprints with PTH pads can have custom pad stacks, so there is not a lot of benefit to using one or the other (except that you would typically want to use a library of footprints if you use standard sizes of mounting hardware frequently).

@Frederik @craftyjon

Thank you both for your feedback.

Not so. Sometimes current through VIAs can not be avoided. The VIA hole diameter is effectively the same thing as trace width.

@Sprig
Your remark about the via diameter is true. But the IPC spec is what it is. If you require a min via diameter you must either specify a higher IPC class, or a big via diameter to begin with so that even taking into account the tolerances you are still OK, I guess.

@craftyjohn
You cannot really tell via’s and component holes apart based on diameter alone. There are very small component holes, 0.3 I believe, and quite big via holes.
IMHO the fabricator is allowed to use the information in the Gerber file, and it makes no sense to confuse him by telling a hole is a via when it is not.

AFAIK there isn’t anything in the gerbers that state what the different size holes are for.

I just checked a small board that I made that has NPTH mounting holes, a PTH mounting hole, lots of PTH holes for component pins, and several PTH vias. (This board doesn’t have any NPTH index holes for positioning pegs on a component, common on some connectors.) I looked through the gerber (and excelon) files in a text editor and of the PTH holes I couldn’t determine the purpose of any of them, other than the purpose of having a hole that is plated from top to bottom.

If a gerber viewer/editor can determine a via from a hole for a component pin from a plated mounting hole, it is only doing by guess work. The guesses might be quite clever looking at other board features, or a dumb size range guess. So, a designer using a via and putting solder mask over it would at the gerber level look identical to using a PTH mounting hole footprint, or built-in mounting hole element (something KiCad doesn’t have).

There are aperture attributes in Gerber to define the function of a drill tool. So you must look around the aperture definition, not around the holes themselves. KiCad outputs these attributes, AFAIK.
Were it KiCad Gerbers you looked at?

Yes, they were KiCad Gerbers… Although old Gerbers. (From back in KiCad’s BZR days.) But still valid Gerbers. And the drill files were Excelon drill files, not Gerber drill files (just to be pedantic about it)…

For reference, here is that drill file for the PTH holes. Except for looking at the drill size, there is no indication of function of these holes.

M48
;DRILL file {kicad (2015-01-30 BZR 5397)-product} date 2015-02-25 23:45:26
;FORMAT={3:3/ absolute / metric / keep zeros}
FMAT,2
METRIC,TZ
T1C0.381
T2C0.508
T3C0.670
T4C0.700
T5C0.701
T6C1.049
T7C2.438
%
G90
G05
M71
T1
X015240Y-024892
X016256Y-023368
X021590Y-012700
X029210Y-007620
X066040Y-024892
X067310Y-023749
X068580Y-022606
X086360Y-028194
X088900Y-028194
X091440Y-012700
X093980Y-028194
X096520Y-007620
X096520Y-028194
X099060Y-007620
T2
X004826Y-001016
X004826Y-003810
X004826Y-006604
X007620Y-001016
X007620Y-006604
X010414Y-001016
X010414Y-003810
X010414Y-006604
T3
X016510Y-019050
X016510Y-026670
X019050Y-019050
X019050Y-026670
X021590Y-019050
X021590Y-026670
X024130Y-019050
X024130Y-026670
X026670Y-019050
X026670Y-026670
X029210Y-019050
X029210Y-026670
X031750Y-019050
X031750Y-026670
X034290Y-019050
X034290Y-026670
X083820Y-019050
X083820Y-026670
X086360Y-019050
X086360Y-026670
X088900Y-019050
X088900Y-026670
X091440Y-019050
X091440Y-026670
X093980Y-019050
X093980Y-026670
X096520Y-019050
X096520Y-026670
X099060Y-019050
X099060Y-026670
X101600Y-019050
X101600Y-026670
T4
X045720Y-019050
X048260Y-019050
X050800Y-019050
X053340Y-019050
X055880Y-019050
X058420Y-019050
X060960Y-019050
X063500Y-019050
X066040Y-019050
T5
X012700Y-019050
X012700Y-021590
X080010Y-019050
X080010Y-021590
T6
X002540Y-005080
X002540Y-007620
X002540Y-010160
X002540Y-012700
X002540Y-015240
X002540Y-017780
X002540Y-020320
X012700Y-002540
X012700Y-005080
X012700Y-007620
X012700Y-010160
X012700Y-012700
X012700Y-015240
X025400Y-002540
X025400Y-005080
X025400Y-007620
X025400Y-010160
X025400Y-012700
X025400Y-015240
X038100Y-002540
X038100Y-005080
X038100Y-007620
X038100Y-010160
X038100Y-012700
X038100Y-015240
X050800Y-002540
X050800Y-005080
X050800Y-007620
X050800Y-010160
X050800Y-012700
X050800Y-015240
X063500Y-002540
X063500Y-005080
X063500Y-007620
X063500Y-010160
X063500Y-012700
X063500Y-015240
X076200Y-002540
X076200Y-005080
X076200Y-007620
X076200Y-010160
X076200Y-012700
X076200Y-015240
X088900Y-002540
X088900Y-005080
X088900Y-007620
X088900Y-010160
X088900Y-012700
X088900Y-015240
X101600Y-002540
X101600Y-005080
X101600Y-007620
X101600Y-010160
X101600Y-012700
X101600Y-015240
X111760Y-005080
X111760Y-007620
X111760Y-010160
X111760Y-012700
X111760Y-015240
X111760Y-017780
X111760Y-020320
T7
X007620Y-003810
T0
M30

Ok. I just generated an Excelon drill file for another sample board using KiCad v6.0.1 and found those aperture attributes. They seem to be commented out to not confuse older equipment/software that don’t support them.

; #@! TA.AperFunction,Plated,PTH,ViaDrill
T1C0.0150
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T2C0.0315
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T3C0.0394
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T4C0.0433

So I stand partially corrected.

If you generate the drill files in Gerber format, you will see the same attributes, also commented out. In the top & bottom copper layer the file will of course say nothing about the drill holes, as they are not there, but they will indicated which pads are via pads, which gives the same information. All commented out.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.