[BUG] Track nets are merged in PCB Editor when routing tracks under annular rings/pads(Kicad 6)

I believe I have run into a bug… Or at least I can’t find a way around it.

I have a Through-Hole pad which is connected on L1 and L4. The pad is non-existent on L2 and L3.

Now I paste a ring into L2 and L3 that (with no net assigned). All clearances are followed since the ring and pads are on different layers.

I select a piece of the ring and hit ‘U’ to select the entire node. This somehow selects all the connected copper traces also on L1 + L4 including vias. But that is no problem. These parts all should be the same node anyway. I hit ‘E’ and assign the node of the Guard ring.

Then I get a pop-up that this action wants to completely reliable the inner node too. (That is the node which is unconnected to the guard node and contains copper only on L1 and L4.

If I go on, the end result is that the inner OUT+ node is completely erased and replaced by the Guard node This is obviously not what I want or what makes any sense whatsoever as these two nodes are entirely separate copper which follow all clearance rules:

One remedy is assigned the guard node to the ring before pasting it into L2 and L3. However, this gets tentatively reset, whenever the engine decided to push some automatic node updates. In that case I end up with either the OUT+ node or the Guard node disappearing. And I don’t even notice as no popup or query is generated.

As soon as I remove the intersecting ring on L2 + L3 the correct nodes are re-assigned to the ‘OUT’ and the Guard nodes, respectively.

1 Like

could you share the PCB design (or PM it)?

T.

1 Like

I made a minimal demo.

Go to PCB and try to assign the guard ring on L2 to net ‘/B’. This will erroneously erase net ‘A’ although the latter is in no way connected to B.

padtest.zip (38.2 KB)

1 Like

Confirmed. There’s also a similar issue. When the tracks are already assigned to the correct net B and you disconnect them from the B pad, they automatically switch their net to A for which there is no reason.

2 Likes

So is there a remedy, which excludes certain nodes from the automatic netname updates ? As I see it now, I the only way I can finish my project (and have faith in the result), is routing the guard rings all around the would-be annular ring areas on the inner layers

I want to add, the ability to omit inner layer annular rings is a feature that I really much appreciate for dense designs…

In general, GitLab is the preferred platform for reporting bugs in KiCad.
In KiCad, use Menu Help > Report Bug.

@twl I’ve got a fix for this. (Essentially moving CN_VISITOR from HitTest() logic to Collide() logic.)

3 Likes

I suspect 6.0.2 may be a very short lived release
This one is a serious bug

1 Like

Note that the fix right now is only in the 6.99/7.0 branch. I’m not sure how feasible it is for 6.0.3 as the code change isn’t trivial and the fix might have created other more serious bugs.

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