Question about update pcb from schematic

Looking for KiCad help, mainly from non-experts!

I had raised a bug… See

Much has come down to the Match Method in this dialog box for updating pcb from schematic:

My problem is that I cannot seem to understand these two options for match method. Testing confirms that there is a big difference. Can anyone offer an alternative explanation (not alternative facts!) which might help me to “get it”? These two methods produce differing results when you are not just “pushing” symbols from the schematic, but rather (for example) if you duplicate a pcb section and try to make it agree with a duplicated schematic section. (Of course the reference designations have been changed between the two sections.)

If you duplicated a section and changed all the references to match. Then match by reference and it will leave that alone.

If you duplicated in schematic then just laid out the components the schematic added. Then match by symbol reference.

Pretty much in case 1 it will assume the reference is the coreect thing to follow.
In case 2 it is a timestamp identifier that the footprint gets when added. Duplicating a compinent still keeps this same identifier so it will try and set it back to the reference it was imported as. This is tmy preffered way if your not to upset by deleting then readding your duplicated sections. As it makes updates a little cleaner in my opinion

Hi, Rerouter

Thanks for your attempt, but only one of the two dialog box options says anything about matching. And both of your choices say matching by reference, more or less. What is the difference between “reference” and “symbol reference”? Yeah…OK it is the word “symbol”. But that does not help me…

1 Like

I think Jeff wrote that in response to BobZ’s questions in a bug report, https://gitlab.com/kicad/code/kicad/-/issues/4012. Jeff’s post in the forum is concise and correct but not necessarily adequate for all.

Reference means component reference. E.g. C46
Symbol reference is a now hidden unique identifier which used to be called timestamps

When you change c46 to c95 you update the component reference
When you import a new symbol for the first time it is assignrf a symbol reference that you cannot change and is duplicated when you duplicate a component. Meaning c46 and a duplicate c95 are treated the same and the software wants to set c95 back to c46.

Not the best at explaining it. But hope that helps.

1 Like

Here’s the corresponding dialog from KiCad V5.1.5
image

I find this easier to understand, at least if you know that the existing symbol to footprint associations are not done by the “Reference”, but by the “unique ID”, which was previously called “Timestamp”.

image

So:
"Reference" is an editable field in the symbol properties.
"Symbol Reference" is what was previously called “Unique ID” or “Timestamp” before that. (At the bottom of the 3nd screenshot).

I understand BobZ’s confusion. To me “reference” is a very generic word and because of that it looses most of it’s meaning. “Oh, this is done by some kind of reference…”. Also, “Reference” and “Symbol Reference” are much to close together. I liked the “Timestamp” or “Unique ID” much better. Those words have clear meanings to me.

On a more general sense:
A bunch of names in KiCad are different from what has been (mostly) standardized for some 40+ years. I suppose these changes originate in the french roots of KiCad.

Examples:
Reference versus Reference designator (RefDes)
Front & Back versus Top and Bottom
Track versus Trace

Using the more standardized terms very likely gives KiCad a more “professional feel” to new users who have previous experience with PCB design programs.

Where do you see the word combination “Symbol Reference”? There’s no such thing anywhere in the UI.

I have said this before somewhere, but I say it again: don’t read the tooltip of the Match Method in 5.1.5 at all, it can only confuse because it’s utterly patently logically completely wrong in so many ways.

image is in the first screenshot BobZ posted. Presumably from KiCad V5.99 ?

Ah, yes! But still it doesn’t mean the ID. It means that if you change the reference designator in the schematic, the reference designator will be changed in the PCB, too. Matching (finding symbol/footprint connection) is done by the ID.

@JeffYoung, could you read the posts above. We had an intense discussion about the UI texts in an old bug report which led to these changed texts, but now I feel the result isn’t adequate. I have felt so even before these more recent discussions.

When the schematic and the PCB are kept in sync by using the “Update PCB from Schematic” dialog, there are two ways to find the connections between symbols in the schematic and footprints in the PCB. They are under the “Match Method” in the “Update PCB from Schematic” dialog.

image

image

  • The first, the default way: take the internal UID of the symbol and find the matching UID (actually “path” because the sheet name is prepended) in the footprints. Other properties of the footprint, like the reference designator and the value, are taken from the symbol and updated.
  • The second, the special case: take the reference designator of the symbol and find the matching reference designator in the footprints. Other properties and the UID/“path” of the footprint are updated.

The first, the default, way is used normally when you add new parts to the schematic and/or re-annotate some or all symbols.

The second way is used if you add footprints directly to the PCB, add symbols to the schematic and need to connect those two. Then you have to re-annotate both manually to match and after that to update the PCB from the schematic using the second option which finds the matches by the reference designators and updates the footprints’ UIDs/paths.


See also the longer explanation which I added to the already mentioned bug report: https://gitlab.com/kicad/code/kicad/-/issues/4012#note_302985104.

Here’s the older discussion about the UI texts in this dialog: https://gitlab.com/kicad/code/kicad/-/issues/3149.

I know how it works, learned it over the last few years.
However, I find the text in V5.99 very confusing:
image

It would be clear that some kind of “reference” must be used during “matching”, but I have no comprehension of what a “footprint reference” is.

Suggestion:

Schematic to PCB mapping:
( ) Match by UUID (normal)
( ) Match by RefDes.

Remark:
Ever more people know what an UUID is, and if they don’t, a short explanation in the tooltip would suffice.

I know that KiCad does not use RefDes, but “reference” is to generic a word. What is referenced and to what?
Try to find on google / DuckDuck/ Yahoo / etc what a “reference” is in context with a PCB. Compare that with “RefDes” even without the PCB context.

https://duckduckgo.com/?q=reference+pcb&t=h_&ia=web
https://duckduckgo.com/?q=refdes+pcb&t=h_&ia=web

Refdes is just a 40+ year old and accepted naming convention, which brings it back to the old translations from French I mentioned earlier. Using different words in KiCad will (slightly) annoy experienced designers who are not familiar with KiCad and want to try it.
Even searching this forum for “refdes” brings up lots of results.
https://forum.kicad.info/search?q=refdes

My explanation wasn’t meant for you. I wrote it because I’m in the process of trying to find out a good explanation which could be understood by everyone. BobZ asked about it and some others have been perplexed about this, too. Including me.

If you read the issue 4012 above you’ll notice that some people want to avoid using techical words, especially if they refer to internals of KiCad. I can understand that. “UUID” would reveal the internals of KiCad through this UI text and it’s not even accessible or visible in any way in the PCB side for the user.

But avoiding this word may cause even more problems.

Yes, I agree that we should talk about “refdes” or “reference designators”, not just “references”.

Why change “matching” to “mapping”?

How about:

Match Method Between Symbols and Footprints:

  • Match by UUID, update reference designators of footprints
  • Match by reference designator, update UUIDs of footprints

Or would it be enough to have even only

  • Match by UUID (default)
  • Match by reference designator

and have more lengthy explanation in the tooltip?

I’m not a native english speaker,
“matching” A to B Which one is changed?
“mapping” A to B Which one is changed?
However, because the whole title of the dialog is “Update PCB from Schematic” it is still unambiguous.

I very much prefer short descriptions such as “Match by UUID”, and then with a longer explanation in the tooltip.
The reason I prefer short descriptions is because I read them a lot during working with a project, just to ensure the settings are still right.
Your last proposal still has 3 times the word “match” in it. What about:

Match Method Between Symbols and Footprints:

  • UUID (default)
  • reference designator

Spelling out “reference designator” seems a brilliant (and yet so trivial) idea to me. It seems a very acceptable intermediate between the very short “refdes” which is too cryptic for beginners and “reference” which is a far to general word.

It’s really hard to find concise and unambiguous descriptions.
A problem with the word “Footprint” is that it can be interpreted as the footprint field in a schematic symbol, or the Footprint itself on the PCB.
The title of the whole dialog “Update PCB from Schematic” should be enough to make it unambiguous.

In gitlab/4012 Wayne requested to avoid technical jargon in the FAQ. Which is much different from use in a dialog window. The whole idea of “technical jargon” is that it is both concise and unambiguous at the same time. Therefore good for regular users, but it may increase the learning curve for beginners. Good tooltips and FAQ’s are to help ease the learning curve for beginners.

About the tooltips. In gitlab/3149 you wrote: "Quite many software users try things without reading tooltips " and I’m guilty of that, but mostly because most tooltips are pretty useless. I also agree they can be life savers. Tooltip suggestions:

  • UUID Tooltip:
    This updates the PCB footprint and reference designator in the PCB for components for which the UUID match between schematic and PCB.
  • Reference Designator Tooltip:
    If Footprints are added to the PCB by hand, then the Schematic and PCB are out of sync. In this case the Reference Designator can be used to restore the link between the schematic symbols and PCB Footprints.

First I want to thank everyone for contributing to this discussion. Trying two options is not such a big deal, but I was hoping to initiate a discussion to help explain the dialog box. That much seems to have succeeded. One quick take-away: I had not realized that the dialog box had tooltips associated with this choice!

If you have designed a new user interface for a TV set, you don’t want to limit your testing to electronic engineers. You also want to have it tested with Grandma, Grandpa, and some 8 year old kids. (Although in this case Grandpa is also an EE.) It is somewhat in that spirit (and out of curiousity) that I have volunteered to test some recent nightly builds.

Thank you. To me, “reference” by itself means “reference designation” (such as “C46”)…full stop. “Symbol reference” to me means the same. I was not familiar with UUID but I knew that I did not know that, and found it easily (I think on Wikipedia?). Perhaps I should not be forcing a direction based upon my being a native English speaker, but I think that added clarification is needed any time we discuss some sort of designator which I cannot see.

No, before this whole discussion (and bug report) began I did not know that.

Thanks for agreeing that this issue is confusing to at least some of us.

Thanks. I am beginning to understand. But if I have a group of footprints (and interconnecting tracks) which I then duplicate to save layout work, do I now have two groups of footprints with the same UUIDs? (I think the answer is “yes”.) When I duplicated the group of (footprints + tracks), then changed the reference designations for one group on the pcb, and then updated pcb from schematic, KiCad undid my pcb reference designation changes so that I had two groups of footprints with the same reference designations. Not what I wanted!

Is this any different if I duplicate footprints on the pcb (which I did and sounds more likely) rather than individually adding them?

Yes. To me, there is only reference designation such as C14. Any other meaning must be very explicit.

I agree. Sometimes it is hard to replace technical jargon. It is not a serious problem if it can be easily “looked up” and is not a source of confusion.

I would add words like “first” and “second”, or “first” and “and then”.

Yes I like it.

See https://gitlab.com/kicad/code/kicad/-/issues/4041.

If a footprint is added by “Add a footprint” or Place->Add Footprint, it doesn’t have UUID.

If footprints are copied and pasted or duplicated, they will have duplicated UUIDs. This is unfortunate and IMO shouldn’t be so.

Thanks

Please clarify your text in your bug report (I think I know what you intended)

“I have found one, dubiously useful, use case for having identical paths. I can add an alternative or an extra part on the board without need for adding it on the board. For example alternative resistor size or duplicated bulk capacitor.”

Done, thanks. ,