Intelligent Arrays, "Via Fill"

In RF designs it’s common to stitch groundplanes together with many vias, spaced ≈1/8 wavelength apart, to prevent resonances in the planes. It’s easy in KiCad to create arrays of vias, but not so easy to integrate them into a layout without a lot of manual effort. You can fill the board with vias before doing any routing and then the vias are always in your way, or you can cover your finished layout with vias and pick out the ones that cause design rule violations, i.e. shorts, by hand. Either way it’s tedious. It would be awesome if the array tool in Kicad had an option that would not drop a via (or whatever) at any location where it would violate design rules. Thoughts?

I completely agree. Using the array feature i still have to try to make find all the vias that landed on a trace.

Agree, but there are many other improvements that could be done to KiCAD to support RF design, e.g.

  • Automatic vias along traces
  • Micro-vias/Buried vias in footprint. This would be a very useful feature for RF design
  • Support for more advanced geometry primitives such as filled circles
  • Boolean operations of geometry

Some of these operations can be handled using some external scripting e.g. in Python, I have my own library that comes quite handy, found here, but it could be a very nice thing if Python geometry generation could be integrated into KiCAD.

Please add a comment in https://gitlab.com/kicad/code/kicad/-/issues/2402.

In 5.99 all shapes (circle, polygon, rectangle) can be filled or outline.

@JuliaTruchsess have a look at the request in https://gitlab.com/kicad/code/kicad/-/issues/2082 (Via Stitching)

It was originally planned for v6 but had to be pushed back to v7 due to the complexity involved. Please “thumbs up” the issue if it is something you are interested in as that way it will be seen as a wanted feature by the community.

Edit: You might also want to look at this plugin by @jsreynaud https://github.com/jsreynaud/kicad-action-scripts which achieves exactly what you want in KiCad v5.1 (not sure if it is working in v5.99 yet but I know Jean Samuel has been working on it.)

1 Like

Have you tried the plugin by @jsreynaud ?

Until v7 comes along it helps for via stitching (i am not sure if is compatible with 5.99)

1 Like

That looks great, thanks @Qbort and @der.ule!

Two years ago (cannot remember KiCad version #) I designed a board that used a bunch of hand-placed vias to “stitch” ground planes together. Got quite a surprise when, upon re-iterating the design, they all disappeared. What I had to do was make sure my schematic was perfect, go forward to the resulting layout-changes and, only then, stitch the board as the final step in layout. I’m not sure if this is something KiCad has perhaps remedied subsequently but beware.

I think at least one problem is that KiCad doesn’t handle vias intelligently, it doesn’t know about their function. Push’n’shove router may move them anywhere in the limits of design rules if you drag even one small track segment.

There is a setting for redundant connections in the interactive router:
Pcbnew / Route / Interactive Router Settings… / Options: Remove redundant tracks

I don’t know what that does with vias though.
Just tried to lock some via’s, and apparently they do get the “locked” status, but it looks like KiCad V5.1.9 ignores this setting while moving via’s, but it does complain about the locked status when I remove such a via.

True. In that old versions the stitching vias did not get the net property. Any rebuild of the zone made them to keep clearance with “their” own zone. Or an update of the netlist could clear all the stitching vias.

These problems were solved time ago.

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