"Multiple footprint" and "no footprint" error one same component at same time

Brand new to KiKad. Spent some time building up schematic. Everything was going well with the following process: add more to schematic, save, [open PCB in board editor] button, [update PCB with changes made to the schematic], [annotate], then work on the PCB layout; and repeat the whole process. This was going smoothly.

Now, [annotate] throws the following error and stops me in my tracks: “Error: Multiple footprints found for ‘U66’.” Ok, so, back on Schematic, double click on the offending chip, and there’s just one footprint listed. Maybe something got corrupt?
Troubleshoot 1) I re-assigned the footprint by clicking the little library icon, then re-choose the footprint I need. Result: Same error.
Troubleshoot 2) Maybe there was a second footprint link hiding in the field on the next line or something? Went back into Symbol properties, used the cursor to move around in the Footprint field, and well, there’s only one value in there just as there should be. There’s not a new line or carriage return anything else that might make it appear like two or multiple entries.
Troubleshoot 3) Ok, let’s just delete the footprint value from the footprint field. Surely there can no longer be multiples if there’s none at all, right? Now the error changed: there are now two errors, not just one. They are:
Error: Multiple footprints found for ‘U66’.
Error: Cannot update U66 (no footprint assigned).
And just like that, it’s now possible to have multiples of something, and nothing of that same something, all at the same time.
Troubleshoot 4) Set aside the .kicad_pcb and make a new one. This solved the problem. But it also got rid of a dozen hours of tedious PCB layout work.
Any suggestions to fix the original .kicad_pcb file once I bring it back in? Any pointers are appreciated!

Hi @KylesKad

What Kicad version?

Go to Help > About Kicad… click top LH box “copy version”, Paste in forum.

You should also read this in the FAQ to promote yourself to place attachments in this forum. :slightly_smiling_face:

Normal? Kicad way is to:
Draw schematic, annotate from “Tools”
“Update PCB from Schematic” from “Tools”
Design PCB
“Update Schematic from PCB” and/or Redraw Schematic, re-annotate.
“Update PCB from Schematic” again.

Re-annotating PCB will have to be followed by “Update Schematic from PCB”

Any suggestions to fix the original .kicad_pcb file once I bring it back in?

generally: if a error says something about an item, try to just delete it. If the item is not there anymore → no error. No need to delete the entire board.

specific: Delete U66-symbol in schematic. If it’s a multi-unit symbol be sure to delete all units. than update board. Than re-add U66 again, assign footprint, annotate symbols, cross fingers and update board a last time.

guesswork if U66 is a multi-unit symbol: you have assigned the footprint not for all symbol-units. Try to use the “Tools–>Assign Footprints” command, this takes care of multi-unit symbols.

If you follow the advice from jmk and get the next user-level (basic user) on the forum: you could attach the project → it’s easier to spot big/little mistakes if we cann look at the project. (in this case use the Kicad-manager–>Archive function, this includes the complete project-settings which are necessary for judging some problems)

I think it is not possible. So the question arises: Are we sure it is for ‘the same something’?
May be some way you have two things identified as U66.

Do you really re-annotate PCB?
What is the main reason to do it?

Re-annotate the re-drawn Schematic… if required, not the PCB.

I haven’t tried it, but it may cause problems if you re-annotate a modified PCB then try to update that PCB from a Schematic that hasn’t been updated from the modified PCB… Points if anyone can follow this :grin:
That seems to be one way of interpreting the OPs post.

I was reading too fast :slight_smile:
I understood that you are writing about annotating the PCB to have reference numbers according to location at PCB. But I see that I just should read few more times to understand.

I have never used “Update Schematic from PCB” and seeing it I supposed that you give all elements the new symbols at PCB and then update it at schematic.
I don’t know where from the subject of “Update Schematic from PCB” that I can’t read in OP’s post.

True. That may be the problem. As I mentioned above, annotate the PCB without updating the Schematic then going back into the Schematic, making more changes then updating the PCB again seems like trouble.

What do you mean with:

It appears you’re doing the annotation in the PCB Editor, while normally the annotation is done in the schematic.

In KiCad, the schematic is normally the reference.

  1. Draw the schematic.
  2. Assign footprints to schematic symbols.
  3. Schematic Editor / Tools / Update PCB from Schematic [F8] to put everything on the PCB.
  4. Draw the PCB.

And that should be your global workflow too. I’ve skipped lots of details (ERC / DRC, etc) and there are lots of ways to deviate from this, but that should be the main workflow. Always maintain the schematic as the primary reference.

This also does not add up:

In KiCad you simply have to do the annotation before you Update the PCB. If the schematic is not fully annotated, it refuses to update the PCB and gives you some error messages that the schematic has to be annotated first.

From your wording it appears you have already done this. It’s like buying a new care because you have a flat tire. I assume there is a very small error in your project that can be fixed with a few mouse clicks. But I do find your description fuzzy. I’m not even sure if the problem is in the schematic or in the PCB at the moment.

To others than the original poster, because the OP hasn’t commented:

I suppose the OP means that when the user adds symbols to the schematic and updates the PCB from the schematic, KiCad requires annotation and opens the annotation dialog for the schematic. Not that the annotation is done in the PCB editor.

1 Like

To the Original Poster:

I don’t think KiCad has done this without being told to do so, but you may be unaware of the consequences of some of your actions or have done something accidentally. It would be interesting to know what have lead to this situation, although more important it to learn how to fix situations like this.

The error messages seem to be somewhat misleading, as you said, but it’s possible they may make sense if you know what happens under the hood. There’s some in-depth information in Update PCB from Schematic's match methods. Whether this is useful for you depends on your interests etc.

The first thing to try would in my opinion be to delete the symbol from the schematic (without changing anything else) and update the PCB from the schematic with the option “Delete footprints with no symbols” checked. If there now are footprints which aren’t linked to a symbol, they are deleted. Then you can just add the symbol again, annotate it, give it a footprint and update the PCB again normally.

I suggest creating a backup for the project first.

HI, yes, it’s exactly as eelik suggested, that’s my process.

Thank you everyone for all of the great responses! A great forum. Lots of knowledge shared and things for me to look into.

Version: (6.0.8-1)-1, release build

jmk, interesting, that does sound like it could lead to trouble. In my case, I never did update the schematic-from-pcb, only pcb-from-schematic direction. I draw a chunk of schematic, and after a while, update the pcb to keep an eye on how much raw real estate my parts are gobbling up. Usually I’d just schematic one small section and then update PCB. But at one point I just kept going longer than usual on the schematic, adding about 200 parts. That’s when updating the PCB went south.

I took mf_ibfeew’s suggestion to just delete the offending IC, all of its units, and add it back again. That solved the errors for that component! I just have to do this now to about a dozen other components where this also occurred.

Clearly, I must have some something incorrectly along the way. I was speeding up and ‘getting their hang of it’ and probably clicked a wrong button at some point. So, unfortunately I can’t really backtrack and pinpoint exactly when things went south. If I had to guess, it might have had something to do with copy and pasting sections of schematic, that’s really the only thing I did differently on purpose before the trouble began. Again, I apologizer for not being able to supply more info. My takeaway: update the PCB more frequently rather than less frequently, so I can better pinpoint when I’ve done something wrong on the schematic which the pcb doesn’t like.

Thanks again!

2 Likes

Instead of just deleting the offending parts, try to find out what is the root cause of the problem in the first place. Both the schematic and PCB editors have a find function with [Ctrl + F] and when you find multiple instances of a part you’re closer to the problem.

Building the schematic incrementally and regularly updating the PCB is a good workflow. It prevents you from getting swamped by too many parts on the PCB. On the other side, a project with more then 200 schematic symbols is not a good start for beginners. I’d think it’s better to make a few small PCB’s to begin with, even if it’s just NE555 blinkenlights that you’re never going to manufacture. Going through the whole process from starting a schematic to a workable PCB several times quickly in succession helps with remembering functions and fine tuning your workflow. That works much better than taking on a complex project to start with.

You wrote you copied pats of the schematic. If you have repetitive sections in your schematic, then working with hierarchical sheets and the Replicate Layout Plugin can be a significant productivity boos. But do be careful, trying to learn too many things at once can be counterproductive.

2 Likes

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