Ghost vias in PCB 5.99


As the title suggests, I have 2 vias I can’t get rid of. They don’t move, they cannot be selected, hovering and pressing delete does nothing, move doesn’t work either, etc.
I have tried to upgrade to the latest nightly build, just in case. It doesn’t change anything.
I have tried to look at the file with a text editor and tried to find the vias. I found them. Could an

(via (at 82.5 127.25) (size 0.5) (drill 0.25) (layers “F.Cu” “B.Cu”) (net 151) (tstamp 296b1559-692e-43f3-a8f9-0f6e87d5bf66))
(via (at 82.5 124) (size 0.5) (drill 0.25) (layers “F.Cu” “B.Cu”) (net 151) (tstamp f3767bea-f29c-415f-b5d9-b47a65976c57))

Looking at another via does not seem to be any different except the coordinates.

(via (at 83.75 131) (size 0.5) (drill 0.25) (layers “F.Cu” “B.Cu”) (net 214) (tstamp 2119fc1d-47a2-49dc-85c9-b82daa096040))

Any hint?


Edit: Oops, sorry, I edit my own post. I noticed afterwards that all the vias were “ghosted” and the reason was that I unchecked everything in the selection filter excep the traces in order to set the trace width which was not even in the whole file. Everything works. Sorry for the mess.

Undoubtedly we will get more of these “I can’t select” problems when v6 is released. I have fallen into that one myself a couple of times. It takes some time to get used to the filter and automatically remember to go to it immediately when something can’t be selected.

Ok, so maybe my post wasn’t that useless after all. I was thinking about suggesting to add a panel that says it’s locked, but on the other hand that may become an annoyance in case the filter has been set on purpose… Or setting a few options in the panel, like unlock (remove filter), OK (do nothing), never show again (does what it says).

It could be not that bad idea to have some reminder that current filter setting does not allow to select a particular item, but ONLY if one tries to explicitely select a particular (deselected) item. For ambiguous situations, and for mass-selection (like drag select), there should be no indication at all.

So only if you try to select e.g. a via in the middle of nowhere, while VIAa are disabled in the select filter, some gentle hint could be OK and save time (otherwise spent looking for a solution).

I have similar issues with the fact that when you’re in violation of some rule or another, clicking to place a via (or whatever) does nothing, and doesn’t tell you why.

Only possible solution I’ve dreamed up is some kind of a “hover near the mouse pointer” tooltip that says “your operation didn’t do what you expected because X reason”.

The lack of clear feedback on stuff like this can be very frustrating if you don’t know where to start looking to solve the problem.

1 Like


I have similar issues with the fact that when you’re in violation of some rule or another, clicking to place a via (or whatever) does nothing, and doesn’t tell you why.

That’s right, but after getting caught a few times, you get used to it. And beside this it’s a minor issue. My definition of minor / major issue: major issue is something that would disqualify the software for circuit production. For instance a system that would skip important DRC errors and produce circuits with error. A minor issue is a display or interface issue that does not prevent to generate error-free gerber files for production.

Now I’m sure there are solution with minimal software cost. For instance, as mentioned above by fred4u. I was thinking of a panel like this:
(info string)

  • Never show again (action taken forever, but still configurable in preferences)
  • Never show again in current filter configuration (i.e. until any of the filter is changed)
  • Never show again in this session (i.e. Show again next time the program is used in case of a problem).
  • OK (got it, but show the panel in case of a problem)

That said, I’m not sure the Never show again option is useful. If the panel pops up, it means that
the user made a mistake, and therefore needs this panel.
Or another way to implement it would be an info string in the bottom-most area of the window, left of the coordinates.

I once had a piece of software (Ultiboard, somewhere in the '90ies) that both blinked the monitor and bleeped the speakers every time you attempted to make a connection that it did not agree with. Believe me that this silent refusal is an improvement on that.
(And I paid for that software!)

Another piece of software I paid for (EdWin, EUR150) did not remove a connection from the netlist when a connection in the schematic was deleted. That was a wasted EUR150.

I can think of some solutions…
One solution is to show the via in another color (for example RED) while it is still attached to the mouse and is at a location where it can not be placed.

An extension to that solution is to not put the via at the cursor location, but at the nearest location (if within a certain range) where it can be placed without error, and only show it in a different color if there is no such location within range. The via jumping around while the mouse moves can also cause irritation or frustration however. A configurable distance, (with 0 to disable it) could be a solution that serves all.

Reminds me of

I assumed placing via’s near immovable objects such as pads.

When placing via’s in between tracks then the interactive router should of course just shove some tracks aside to make room for the via.

This can be a bit intrusive if you drag via’s all over the PCB. (Tracks do not always snap back to their original location if a change is not finalized). First thought to get the best of both worlds is to trigger the “Shove tracks aside” function when [LMB] is pressed, and finalize the via placement when [LMB] is released again.


I also noticed that in Kicad, you can chose to leave in the PCB some parts that you have deleted in the schematic. Not sure what it can be used for. Anyway it’s another topic.

It’s called artistic freedom.
You can also place some extra footprints on a PCB.
for example, some prefer to place mounting holes on the PCB only and not show them on the schematic. You have the freedom to do so if you wish, and DRC will keep track of whether schematic and PCB still match.

While this sort of thing would certainly help, the bigger issue for me is, what went wrong? It clearly violated DRC – I figured that out fairly quickly when first learning – but what DRC rule did it violate? A netclass clearance? A clearance set by a custom rule? Something else? If something unexpected happens, it becomes a spelunking session trying to figure it out. Sometimes it’s not the placement that’s wrong, it’s that the rules are set incorrectly.

Of course, it doesn’t help at all that I’m using the nightlies, and the DRC rule engine is still young. It does some strange things from time to time, and they are almost certainly bugs. As soon as I manage to figure out what I’m seeing I’ll submit issues, but for now… :slight_smile:

Differential pair routing is the bane of my existence atm. It should be much easier (and hopefully will be once the kinks are worked out), but it’s not quite there yet in terms of ease of use. :stuck_out_tongue:

Have you used Inspect -> Clearance resolution?

Use it all the time. It doesn’t help in the case where the router won’t put something down for unknown reasons; you have to have something to click on in that position in order to check.

Perhaps if no selection is resolved… selection expansion should be offered automatically.

From what I remember we wanted selection to be a bit less verbose so if you are in text edit mode it might automatically select text instead of footprints if overlapping…

One extreme is to beep the speaker and bring up a dialog box when you try to do something “illegal”. Obviously this is undesirable by many.

The other extreme is to literally do nothing and show no indication that you did something wrong. Believe it or not this is equally undesirable, but by a different group of users.

Inkscape skirts near 2nd choice with a thin Status bar in tiny type that is easily missed. I’d like to see KiCad do a Status bar that perhaps has a red border when you attempt something “illegal”. It shouldn’t be 8 pt type that blends in with the window edges.

Even if it has to be a checkbox “Warn me if I do something stupid”. New users don’t become experienced users unless they stick around long enough! Clicking and nothing happens is not good UI in my opinion.

They missed the “red” part of your request (alternative title: see if you can find it).

But it does appear and eat a bit of canvas area, so it might be easier to notice.

The hard part is to decide when to notify the user. Since it isn’t a dialog, you probably can’t dismiss it with a button and you’d need to go to settings to disable it. And that borders on nagware …

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