I’m working on a board (VESC derivative) where the front side is pretty much completely covered with components. The backside will have parts that need careful placement between all the existing vias. A problem I’m experiencing is that KiCAD seems to always prioritize selecting the top parts, even when having the back copper layer as active. The screenshot shows this (I tried to select the QFP, but got the underlying FET):
It seems this only goes away when completely hiding the front side parts and copper, making placing parts hard and adding vias near impossible. Is there some better way of working with this kind of PCB?
Which version of kicad are you using ?
At least in version 5 and earlier the high contrast mode ensured that one can basically only select things that are on the active layer. So this might be an option.
If you right click in the “Layers Manager” you can choose to show only the front or only the back side layers.
Another option is to turn on B.CrtYd and click on the courtyard edge.
I tried the “Show Only Back Layers” and similar options. They do fix the selection issue, but at the cost of making routing nearly impossible, as there’s no way to see where vias end up.
Workaround would be to lock footprint for your FET, then turn off “Locked items” in the selection filter.
Other solution would be to “Force disambugate” (Ctrl+click LMB in Windows, Alt+click LMB on Linux).
Don’t know where do you actually click, but if there are overlapped footprints KICAD should IMO display the “Disambugation” (“What do you want to select?” menu). If you can create minimal test case, IMO it should be reported to check what happens in the code.
Why do you want to select footprints if you want to route to pads?
I just did a little text by placing an SMT resistor on the top and one on the bottom at the same location. When I start drawing a track on the front layer, it connects to the resistor on the front, and when I start drawing a track on the bottom, it connects to the resistor on the bottom.
I generally switch around between different view modes depending on what my current task is. Which means I use single sided view (or high contrast depending on current mood) for moving footprints and then switch to some other view for handling traces. For that i display copper and fab of the layers that are not only for planes and sometimes also switch to outline mode if it gets too crowded otherwise.
And i generally always hide silk unless i am at the very end of the design process (so my last step is to make silk pretty which is the only time when i show it).
As a followup to @Rene_Poschl’s advise, I use the CTRL-H hotkey a lot when things get dense to quickly toggle High-Contrast mode.
What is the relative size of the footprint on the back layer vs. front layer?
High contrast mode is a helper as it will disable selection of anything on a layer other than the active layer, but we could probably still improve the behavior with HC mode off. Right now there is some logic that tries to guess which thing to select based on relative sizes, but that might be less useful now that we have the selection filter.
Selection filter should not be considered a replacement for “smart” selection. Knowing what exactly happens in OP’s case could help us fine-tune the Guesser algorithm. Maybe objects on currently selected layer could get some “better scoring” (easier to select in case of a doubt)?
@StefanHamminga could you provide screencast to show what you do and what happens?
It can be a replacement to aspects of it. Previously the selection logic had a lot of “smarts” – so much that it is hard to predict how it works. A simpler system may work better now that there is an obvious way to tell KiCad that (for example) you only want to select footprints, not pads.
The board I’m working on is a quite compact ESC, in 4 layers. The high-current and high voltage stuff is all on one side of the board and covers quite a percentage of the board area:
The backside is pretty sparsely populated, but to not have to use blind / burried vias (which drive up the board price massively) both placement of components and their signal vias requires a lot of adjusting, often requiring moving a (backside) component during routing when things just don’t fit (and re-doing part of the routing subsequently, of course). For this process to be somewhat less painful it’s important that I can see where vias would not disrupt the high-current flows on the top side much. And not ending up in a pad, of course.
Have you tried flipping the board view? No idea if that will help selecting backside components first but they will be on “top”.
I tried that. It didn’t do anything for the selection, just mirrored the view left-right it seems.
Here we have footprint vs footprint select issue. The area of the QFP is almost fully covered with mosfets, capacitors and resistors. So currently “selection filter” is not much of a help, unless we’ll be able to filter “Current layer items only”. This is done when using the “High constrast” mode, but the actual “High contrast” display may interfere with the visibility / full project overview.
So I see these options:
- improved guesser (which will be hardest to do, as there will be plenty of use cases and each would prefer different solutions),
- give up guesser in case of “doubtful” situations, and display “Selection disambugation” to let the user make a choice,
- add “Current layer items only” to filter scope,
- require users in such situation to override the issue with currently available tools (HighContrast mode, forced disambugation, careful choice of selection point).
@StefanHamminga use the “Ctrl+LMB” / “Alt+LMB” to manually choose what you want to select, this will be the fastest solution.
Ctrl+LMB is a good tip, thanks! That does make things quicker.
This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.