I did a re-annotate and now I got this error, multiple footprints found.
How can I get rid of the multiple footprints instead of deleting them one by one? And how is this error introduced in the first place?
I did a re-annotate and now I got this error, multiple footprints found.
How can I get rid of the multiple footprints instead of deleting them one by one? And how is this error introduced in the first place?
If you mix designators you should not re-link footprints to schematic by designators.
I use re-link by designators when I replace at schematic some symbols with new ones (with the same designator).
Symbols when placed at schematic got unique identifier and footprint is linked based on that identifier (and not designator). I remember reading about it in KiCad manuals (V4 those time) before I even downloaded KiCad for the first time.
I donât get that. This would make sense if patterns are linked by reference but when patterns are linked by the unique ID, there shouldnât be any discrepancies between the schematic and the layout.
Still the references are mixing up. I would argue that if these unique IDs are removed or changed from the schematic, why are they still present in the layout?
Until you ask KiCad to âRe-link âŚbased on their reference designatorsâ.
When at the project end I reorganize references (I do it by dividing schematic into blocks, that I position far away of sheet, annotate, and then move them back), thanks to everything being linked by uids I can just update pcb and all references are correctly updated.
During years I found that if I forget to do that order in references nothing wrong happens. Computer reading P&P file doesnât protest
Based on what you assume they are changed?
I think they are never changed, but I have never did any experiments to check it and never looked for them in schematic/pcb files.
I changed them earlier on myself in the schematic and now end up with the duplicates in the pcb.
The problem is, I now have many duplicates (C3, C4, C5 etc, see screenshot). I donât know exactly what went wrong. I tried to clean up, no matter what I do (checking Re-link, tried several combinations), I cannot get rid of the duplicates!
There must be some function to fix the PCB especially if the components are linked by a unique ID.
You should be running the Schematic Editor and the PCB layout via the Project Interface ? . . . if you start them directly (rather than from the Project I/F) this kind of thing can happen as they are not properly linked.
It was my question on you writing âif these unique IDs are removed or changedâ.
Now you write that you have changed them.
How did you changed unique IDs?
I donât know the way to do it. May be by using text editor and finding these IDs and changing them randomly.
There must be some function to fix the PCB especially if the components are linked by a unique ID.
I agree with you. I have never met situation when after updating from schematic I had elements doubled.
What always help is to turn back time using yesterday backup.
It was my question on you writing âif these unique IDs are removed or changedâ.
I wasnât quite clear on that, I meant when the symbols with these unique IDs are removed or changed, the appropriate pattern on the PCB should be removed or changed (stay in sync as they are not linked to the reference designators).
Altium also works with unique IDs and never had the problem with syncing schematic <> pcb.
So I wonder what went wrong and what I can do to fix it. I will share the project.
@RaptorUK i opened all from the main project interface and also when selecting components they correspond over the schematic and pcb editor.
Are you able to share this project ? You can ZIP it up from the project I/F and attach it here.
It crashed when I tried to save, second time within a few days. Attached the log file as well.
Anyway, see the project attached.
IsoDap.zip (862.7 KB)
How can I get rid of the multiple footprints instead of deleting them one by one? And how is this error introduced in the first place?
The first question is easy to answer. The second one is more difficult.
First: you are now having (in the state which you uploaded the zip file) for example two C4 capacitors in the PCB. You are trying to âRe-link footprints to schematic symbols based on their reference designatorsâ.
For KiCad this means itâs trying to ignore old UUIDs and create new UUDIDs, using for example âC4â as the link between the schematic and the PCB. Now it doesnât know what it should do with two C4 footprints. The situation is impossible to handle automatically. Because you seem to have no PCB yet, only the randomly placed footprints, the easiest way to fix this is delete everything and do the update with correct settings.
Normally the âcorrect settingsâ are without the âRe-linkâ option. That option is reserved for some special situations. See more about this in Update PCB from Schematic's match methods - #2 by eelik.
From the information you have given I can only guess an answer for the second question. You have imported from Altium something: maybe the schematic only? But you have footprint library called âAltiumImportâ, so I donât know if you have imported only the library and started the schematic from scratch in KiCad. Itâs difficult for me to follow the previous comments in this thread. The current state of the project doesnât tell how the situation emerged. If you tell all the steps which you did in order, we may be able to tell. But maybe you understand it already if you read the FAQ article.
the easiest way to fix this is delete everything and do the update with correct settings.
For now, I done this and this is okay. What if one spent days on a layout and find out later? Then itâs not realistic to delete all the components. How hard can it be to show a dialog to delete abundant components? All discrepancies can be easily solved when the user does an âimport from SCHâ.
Normally the âcorrect settingsâ are without the âRe-linkâ option. That option is reserved for some special situations. See more about this in Update PCB from Schematicâs match methods - #2 by eelik .
I did change that option to see if it would fix the problem. I understand the way the symbol linking works, the UID is similar to what Altium uses. With Altium itâs possible to automatically match or do manual (per component matching. I never had any issues here and used automatic matching 95% of the time.
You have imported from Altium something: maybe the schematic only? But you have footprint library called âAltiumImportâ, so I donât know if you have imported only the library and started the schematic from scratch in KiCad.
The schematic was built from scratch and I used symbols from my Altium library.
I think itâs not hard to come up with a better and more user-friendly matching flow which solves all mismatches either by prompting or default setting.
Symbol ID match > OK
Symbol ID match but properties donât > (prompt for) update
Symbol ID exist at SCH but not at PCB. Is reference designator present at PCB?
Symbol ID exist at PCB but not at SCH > (prompt to) add to SCH. Is reference designator present at SCH?
This way syncing can work both ways easily.
I made a quick demo to show how things can be easily and very user friendly solved:
KiCad - Sync with schematic
What if one spent days on a layout and find out later?
I just canât see how this could be possible. You noticed the problems right away, right? Who would do layout with doubled components for a day without noticing it, especially when KiCad actually told about the problem?
All discrepancies can be easily solved when the user does an âimport from SCHâ.
Not all. If you have in one way or another created a situation where there are doubled footprints and try to Re-link by refdes, KiCad canât decide which of the footprints are to be deleted.
The flow should be:
Symbol ID match > OK
Yes, it happens already, when using the default matching method (by UUID).
Symbol ID match but Reference designator doesnât > prompt for update
It doesnât need to prompt when using the default matching method, it just updates the refdes.
Symbol ID exist at SCH but not at PCB > (prompt to) add to PCB
KiCad does that without prompting when using the default matching method.
Symbol ID exist at PCB but not at SCH > (prompt to) add to SCH
Iâm not sure you have understood how KiCad works in this respect. When doing Update PCB from Schematic, KiCad updates only the PCB, and thatâs what it must do. Thereâs Update Schematic from PCB which is a different function and it canât work as a mirror compared to Update PCB.
In KiCad itâs possible to create situations which are unsolvable without user intervention, and they require some user knowledge about what should be done to fix the situation. This may not be ideal or optimal, but behind it is the logic that the schematic and the PCB arenât tied together tightly and updates donât happen on the fly. The situation is different in for example Eagle where the reference designators are the only link and you canât separate the schematic from the PCB. That logic causes other problems which KiCad avoids.
KiCad could be more user friendly in this respect. A need for an FAQ article often shows some deficiency in usability. I agree that something could be done. But I think your table just doesnât work for KiCad, although it can be used as a checklist for possible situations.
I just canât see how this could be possible. You noticed the problems right away, right?
I worked on LARGE designs with 1000+ components. It can be just one symbol which catches your attention in the last stageâŚ
Not all. If you have in one way or another created a situation where there are doubled footprints and try to Re-link by refdes, KiCad canât decide which of the footprints are to be deleted.
Thereâs at least the option to come up with a prompt which show solutions, for example:
It doesnât need to prompt when using the default matching method, it just updates the refdes.
Yes, it depends on if the user doesnât have to be notified (like a logical action to update the refdes).
Iâm not sure you have understood how KiCad works in this respect. When doing Update PCB from Schematic, KiCad updates only the PCB, and thatâs what it must do. Thereâs Update Schematic from PCB which is a different function and it canât work as a mirror compared to Update PCB.
Yes I understand that, this is exactly similar to Altium. I think Altium lacks a âsyncâ function in this respect too, but at least it didnât give any unsolvable problems.
But I think your table just doesnât work for KiCad, although it can be used as a checklist for possible situations.
I presented it as an idea, it will probably not be rock solid but maybe it can be a source for inspirational motivation / brainstorming / discussion. I am curious tho in what situation it wonât work.
Normally the âcorrect settingsâ are without the âRe-linkâ option. That option is reserved for some special situations. See more about this in Update PCB from Schematicâs match methods - #2 by eelik .
I did change that option to see if it would fix the problem. I understand the way the symbol linking works,
If you used the Re-link option once, the UUIDâs get hussled around, and unchecking the checkbox does not repair the project.
I never had any issues here and used automatic matching 95% of the time.
You should not have used the Re-link option in the first place. If you had left that off, the problem would not have occurred.
KiCad also already has: PCB Editor / Tools / Update Schematic from PCB, and this also has the option to Re-link footprints to schematic symbols based on their reference designators.
Iâm guessing that the biggest problem here is that youâre inexperienced with KiCad, and intuitively attempting to find the exact same functions as you are used to. Also, when you are experienced with a program, you usually have a fixed set of workflows you use from which you know they work. When you are inexperienced in a new software suite and trying things out, youâre much more likely to make mistakes, and also to bump into bugs, as unusual workflows are often less thoroughly debugged.
Itâs nice and enthusiastic and want to help, but get acquainted with KiCad first. You may discover that a lot of your wishes are already implemented (but in a slightly different manner). And if you know KiCad better, you can also come up with ideas that fit better in KiCadâs workflow.
Well, I work with students and LOVE working with them to build tools from an unbiased perspective, since theyâre not used to the application yet. To make it more intuitive, I listen to suggestions and think ideas through to see whether itâs worth improving or changing the tool.
I think my ideas could be valuable at this stage, and Iâd love to share them.
Good ideas never hurt; bad ideas can be easily tested, learned from, and discarded.
Yes, that is definitely also true. People who have used a piece of software for a long time have often gotten so used to the (smaller) quirks that they donât even realize it anymore. And both newcomers and people who have experience with other programs can have good ideas (for improving KiCad). But also: There is no lack of ideas or improvements for KiCad. There are around 1500 open issues on gitlab, and I guess that around 1000 are for new ideaâs or for features not yet implemented. Each month around 300 issues get fixed / resolved, but each month also the around the same number of new issues are added, so the total of open issues has been surprisingly constant for a few years.
I see, and I know a lot has changed as I tried it about two years ago. I see many new features and I really value KiCadâs current state / intuitive workflow. I am positively surprised.
I already mentioned that I donât feel experienced enough to do âsolidâ feature requests at GitLab, but I feel free to share my initial ideas here (thatâs what a forum is for IMHO, unless itâs not appreciated).
When you look at: About - KiCad.info Forums Youâll see that this forum has 16k registered users, and 1k active users in the last month. If they all start posting all the ideas they have, this would be a very busy forum, and there would be a lot of duplicates.
I have created over 100 issues on gitlab myself, some are bug fixes, others are ideas, and when I search gitlab before creating an issue for an Idea, I quite often found a very similar idea was already posted by someone else. The number of ideas is really quite sufficient to keep all of KiCadâs devopers busy for a few years.
If you used the Re-link option once, the UUIDâs get hussled around, and unchecking the checkbox does not repair the project.
I didnât use the Re-link option initially (off by default), I enabled it hoping it should solve the abundant symbols.
I donât know what I did exactly and I am pretty sure itâs due my inexperience that it went wrong. Unfortunately I donât know at what point it failed.
When you look at: About - KiCad.info Forums Youâll see that this forum has 16k registered users, and 1k active users in the last month. If they all start posting all the ideas they have, this would be a very busy forum, and there would be a lot of duplicates.
I understand the concern about volume and duplicates. I did search on duplicates or similar threads before posting, but I may have missed an existing thread. Iâm happy to consolidate or move my posts.