Buried and Blind Vias

I can’t seem to find any mention or sign of these features. Are these at all supported (even with workaround)?

If not, do you have any plan to support them?

No and there is no viable workaround I can think of.

Yes, it’s on the list of the next things to do as it’s one of the few features missing that you can’t live without if you need them.

I didn’t bother implementing them initially since I deemed that people who spend the money on blind vias will probably use a more mature PCB layout tool. But now that Horizon EDA has been around for almost six years and blind via PCBs will only get cheaper over time, it’s about time to take this step.

If you have any suggestions for how the interaction around blind/buried vias should look like, let me know.

As someone who has never designed a PCB with blind vias, here’s my interaction design :laughing: :

From what I can see, there are two ways of placing vias:

  1. When routing tracks.
  2. Using Place Via tool.

Routing Track

When v is pressed to enable via placement while routing tracks, number keys 1-6 let the user choose where the landing/target layer will be after clicking to place the via. 1 is top layer, 2 is first inner layer next to the top layer and so on. If/when designing 10+ layer boards is possible in Horizon, user will enter two digit number to choose the target layer.

[1..6] target layer is shown next to [v] toggle via in the help bar, and only when via mode is on. For two layer boards, it’s hidden.

To prevent users who do not wish to use buried vias from placing one by mistake, buried via functionality can be an option that can be enabled per board.

Via Tool

When Via Tool is selected and after the user has picked the net, the user can change which two layers will be connected by the via. This is done by pressing L which opens up a dialog showing a numbered drawing of cross section of the board with all the layers (like below). Pressing digits 1 to 6 (depending on the stack-up), moves one end of the drawing of the desired via to the given layer. Pressing another digit will move the other end to the next layer and so on. For example, if the user wants to connect the top and inner layer 2 in a 4 layer board, they will press 1 and 3 regardless of what is selected already. Similarly if they want to connect top and bottom, they press 1 and 4 (or double of any digit to connect all layers).

Screenshot from 2022-12-01 04-37-55

In full, to place a buried via between inner layers of a 4 layer board using the Via Tool:

  1. Click the Via Tool.
  2. Select a net.
  3. Press L.
  4. Press 2 and 3.
  5. Press Enter to close the dialog.
  6. Click on the location to place via.

This would be great.

What are the implementation and architectural challenges?

I also like the suggestions here Feature request: Blind and buried vias · Issue #660 · horizon-eda/horizon · GitHub where you would press v multiple times to cycle through eligible via types.

I forgot to add that here, but I actually started implementing blind and buried vias: GitHub - horizon-eda/horizon at blind-buries-vias-3

There’s still some stuff missing such as defining allowed via spans and better integration with the router. Fabrication output, 3D preview, router and DRC are already aware of blind and buried vias and do the right thing.

Right now, I’m busy with a couple of electronics projects. I guess I’ll have blind & buried vias completed within 1…3 months.

1 Like

Goodness! It’s already quite functional and impressive!

Something to keep in mind, which came from the late Philway board house:

“If the blind and buried vias overlap the same layers. For example, say you have an 8-layer board, and you have blind vias from layers 1-4, and 5-8, and buried vias from 3-6, we are not able to do that since the blind and buried involve the same layers.”

Might want to prevent that or at least add a warning. It has to do with the physics of the drilling rather than being board house specific.

In the final implementation, there’ll be be a rule to set the allowed spans that’ll look something like this. It’s expected that users will enter the via spans their stackup allows.

1 Like

Thanks so much for completing this feature. Amazing! It’s a big one.

1 Like