Running into an issue with keepout zones. I have an area on my board with some sensitive supporting passives for some analog circuitry. I have a keepout around those components and a fence. Keep out tracks and pours is selected, but not vias, since I need to drop down and connect these components to the IC below.
I can start a trace on the front layer, and then when pressing ‘V’ or selecting to send a buried via to layer 5 or bottom, it just doesn’t do it. It will snap my cursor to the edge of the keepout, and hit a wall (the fence). So I’m stuck. I can, however, manually place an individual via and set it up.
Thanks for the point @iabarry. The keepout is not present on the front, In5, and bottom layers. So, checking the logic here… I should be able to route traces on front, and drop a via (and via only) to either In5 or bottom, and then route on those layers (and those layers only). Am I misunderstanding the feature?
The use case here, just to elaborate, is that In1 is 1V8, In2 is digital signal, In4 and 5 are ground, and In6 is 5V. In5 is analog signal, hence why it is permitted.
Maybe, under the hood, KiCAD can only allows a via if tracks are allowed as well? Is a via classed as a track, somehow? I’ll need to test that out tomorrow.
@iabarry do you know a workaround, perhaps? Currently, my strategy is to route the rest of the board with these keepouts, and then at the end remove the trace keepout and get this part of the board done. I must have copper pours kept out as this region is noise sensitive.
Blind via exists an outside and internal layers, but it still exists on All intermediate layers. A via from layer 2 to 6, will also exist on 3,4,5. This is necessary as the pcb is fabricated as multiple 2 layer boards and glued together. Each 2 layer board needs to have pads to allow for a plated through hole.
Just checked the hotkeys and the “V” key is explictly for placing a via at the end of a track (v5.99 has improved description).
So the issue is more you can’t track within the zone (because of the keepout) to place the via.
I do believe now that it is a bug. And I found another one with the feature: The keep out for traces does not block if the trace does not have a net associated. Very minor cause I can imagine that doesn’t come up much.
Anyway, back to the issue with vias. @Naib Only way I could get a via to place is manually with the toolbar “Add vias” button. Nothing else works: hot keys, right-click menu, etc.
@Naib, to your second point, shouldn’t I be able to track on the layers which do no have keepout zones? I should be able to start a trace on the front layer, drop a blind via to In5, and continue to route. In this scenario, only vias are present on the keepout layers, which should be legal.
I think it must be some bug where, since I am trying to place the via while in the routing tool, it classes the via as a conflicting “trace” and rejects it.
Playing with it this morning, unchecking the “keep out traces” attribute allows me to tie non-kept-out layers together with blind vias. I can use this as a workaround for now, and just be mindful not to route things through that zone.
If you are placing a Via NOT attached to a track, you are doing it wrong. The Via will not be associated with a net and it will be impossible to attach a trace without changing the net name of the Via.
In Kicad you route Traces by starting on a component pad, which has a net. Then you route to other pads on the same net.
Your statement above indicates you are attempting to place traces and vias independent of nets. This is bad practice at a minimum and is prohibited when Enforce DRC While Routing" is enabled.
I don’t think there is a bug, you just aren’t using the tool correctly.
If you place a via by itself, it will have no net or the net of the fill zone in which you have placed the via.
Correct but it doesn’t work even though I’m specifying a valid layer. Nothing works if I try to drop a via while I’m in the trace tool. I’ll try to put together a test case board in 5.1.10 and post a bug report. I’ll submit a write up on gitlab tomorrow for the devs.