PCB editor: Assign footprint from 'update PCB with changes'

Before I open a feature request (I have run into this usability issue in KiCAD v8, v7 and I think v6), I thought I’d float the idea here first. Let me know what you think:

As a user, when I press ‘Update PCB changes from schematic’ I want to be able to be able to open the properties for a symbol that causes an error preventing the layout from being updated.

For example, suppose I forget to assign a couple of footprints, I get 4 errors. I have to alt+tab back to the schematic editor, locate the offending symbol, edit the properties, assign the footprint, and then re-run update again.

While this specific use case might be brushed aside with “just use the footprint assignment dialog before updating the schematic”, if it is a process I need to do every time, that should probably be automated. But I think this way is a better way of dealing with errors, because it permits handling other error types that prevent the layout from being updated, without needing to do a bunch of other actions.

I can see it being a bit trickier for certain errors, such as duplicate references, but perhaps right clicking the error and having a choice of screens to go to (such as the annotation screen, and the footprint assignment wizard) is one way to handle other scenarios.

BR,

Adam

Hello and welcome @carneeki

It is not a case of brushing aside, it is a case of no footprint, no PCB, and the error tells you what you have forgotten.

Assigning footprints to symbols is a process that must be carried out for each schematic. Seasoned users generally use personal libraries which contain footprints already assigned to symbols to prevent these sort of problems.

Which footprint should automatically be assigned to a resistor or capacitor symbol?

There is a one click tool in “tools” to prevent this. Use it before “Update PCB”.

Kicad, like any other CAD, has a flow sequence, as laid out in the “Getting Started…” guide. If you follow the sequence, all ends well. If you decide on a different sequence, problems occur.

I’m sorry, and I do not mean to be harsh and I’m certainly not trying to be offensive, but you need to tell Kicad many things, it is a computer program and not a mind reader.

1 Like

I also do not understand how this would be an improvement. Take your example with 4 missing footprints. What use is it then to open the properties of one (or all?) of those schematic symbols? Opening the footprint assignment tool (or Schematic Editor / Tools / Edit Symbol fields) are more efficient tools to assign (multiple) footprints.

In general I like the Idea of right clicking on an ERC violation and then having an option to directly open the tool that can be used to fix that violation. But it’s not that simple. There are multiple tools that can be used to fix missing footprints for example. Listing them all would make the menu’s too big.

1 Like

This was a feature request, not a request for assistance. Please understand I am suggesting a better way to handle errors.

Pretend you’re done making changes in the schematic and you think you have done everything correctly but there is something that throws an error during the Update PCB from Schematic screen (not necessarily a missing footprint). The steps to go back and fix a small mistake are more than they need to be:

  1. Close the Update PCB from Schematic window.
  2. Find the problem causing the error.
  3. Fix the problem.
  4. Go back to the PCB Editor
  5. Re-open the Update PCB from Schematic tool
  6. Re-run

What if it could be:

  1. Right click on the error
  2. Click on menu item to be taken to a window/tool
  3. Fix the error
  4. Click re-run

Items 1, 2, 4 and 5 are removed from the original process.

… and I recognise I said a “small mistake”, bigger mistakes would still probably be be handled as they are now.

In the interest of keeping the menu succint, the menu would be specific to each error type.

For the missing footprint example I chose, the two or three most common footprint tools would make the most sense. If I’m presented with a single missing footprint, then the symbol properties makes sense. If I’m presented with multiple missing footprints, I might choose the footprint assignment tool instead.

This also has the advantage of being able to address other errors (including errors of other types) without having to close the Update PCB tool.

Thanks!

Maybe update errors should be funneled into an ERC style report with markers.

Or perhaps there should be a pre-update check which will catch missing footprints and bring up the footprint editor.

1 Like

I think I (still) do like the Idea.

A bit of nitpicking, this step is not needed:

The Update PCB from Schematic [F8] is available from both the Schematic and PCB Editors, and available under the F8 key.

Nitpicking 2:
I guess there are about 6 different ways to assign a footprint to a schematic symbol

A part of the problem is the window blocking system implemented in KiCad. I do find this one of the bigger nuisances in KiCad (For example when a symbol properties window is open, you can’t edit the schematic, or open another symbol properties window, etc. I would like to see this system disappear completely. Very often I open some kind of sub window to make a screenshot for this forum, then switch to for example the PCB editor (which is drawn over the other window I had forgotten) and then I can’t even close KiCad. I have to go hunting for where that blocking window is and close that first. It is of course known that this blocking stuff is a nuisance, but it’s done for simplicity’s sake. Without it, it would become very confusing when which window has “precedence”. This blocking window thing is also quite common in other programs. For example when a “print” dialog window is open, it usually blocks all other activity of that program. The reason it’s more of a nuisance in KiCad is because it has so many of such windows. (And probably also of my non-standard use, in which I make a lot of screenshots to post on this forum, and by the time a post is finished, I’ve already completely forgotten that open KiCad window I made the screenshot from (and it’s of course also buried underneath my web browser).

Your Idea is not compatible with these blocking windows in KiCad. It would necessitate opening some other window, while the Update PCB from Schematic [F8] is still opened. I wonder what sort of nightmare scenario this could become for the software developers. My first guess would be that it’s not going to be implemented (for a long time) because of this.

And of course this will also not stay limited to Update PCB from Schematic [F8]. The next feature requests will be to implement this both in ERC and DRC too. :slight_smile:

Here’s the first (if I remember correctly) bug report I wrote for KiCad, the beginning of my career. :slight_smile:

2 Likes

@eelik

That’ll teach you!

You should have started with something simple: given them a false sense of security so they would unknowingly just jump in to fix it.
Hitting them with that, first up: biggggg mistake.

No wonder it is still in the “too hard” bin. :roll_eyes:

1 Like

Quite a career.
I felt a small tinge of pride that I had created my 100th issue on github a few days ago. Turns out your current count is 206:
image
(KiCad source code only, no libraries, documentation, etc)

Turns out I already commented in that issue back in 2021, but it’s worth mentioning here. It also has a comment from the big Wayne Himself:

Wayne Stambaugh @stambaughw · Nov 5, 2022, 6:42 PM

I think this is too risky particularly for Linux systems where every WM seems to handle raising windows differently. I suspect any changes we make in this regard will have a long tail on Linux systems so we should push it off to V8. We can always cherry pick it back to V7 once we have some testing miles on it.

Well, KiCad V8 has arrived now, and there is still no lack of issues that need to be fixed :slight_smile: