Right now during design we’re placing “footprints” in PCBNew. These do have a lots of properties, like RefDef, Value, spatial orientation and… well: footprint.
I understand it’s been this way for a long time, and we’re all used to it. But maybe it could be a good moment to look at the big picture.
IMO what we’re placing on a board are Components (or Parts), and not Footprints. Footprint is just a “stamp” shape of certain package. Which is one of many Component’s properties. If we change the wording to clean it up, things will start to be more intuive to newcomers. We’ll not have to “change footprint of a Footprint”.
My intention is to spark a discussion, here and on Gitlab, as I feel that we’re so used to this awkward situation that no one thinks it’s actually awkward.
Tbh, I don’t see a problem. Trying to make things conceptually perfect is impossible, because natural language does not have the terms specific to what we need. If we invent new terms like “Footprint-instance”, then we have to explain what that means because it is a new term.
Also in future we may be able to place modules or “design blocks” or whatever they will be called.
Is there any evidence that new users are confused about this?
Why look for something weird as “Footprint instance”? Why not call it a Compoent, such as your physical item on an assembled PCB?
My point is, there’s much more in the PCBNew’s “Footprint” object, than a mere Fooprint (PCB package stamp); “Footprint instance” is awkward and too focused on the footprint-ness.
Does the natural name: “Component” have any confusion in itself?
“Module” or “Sub-assembly” for a design block is Okay for me, as a term for “Design block”.
Surely we place components in the schematic editor, which means we do indeed place the footprint in the pcb editor. A SO16 footprint for example can be any number of components.
As I see it, there is no real concept of a “component” in KiCad.
There are schematic symbols and there are Footprints, which get “attached” to schematic symbols and imported into Pcbnew, and therefore i’m quite satisfied with the Footprint name in Pcbnew.
A “Component” in my book would be an abstract entity that defines a “component”. And then both the schematic symbol and footprint would then be metadata of that component. At the moment it’s possible to change the library reference of a schematic symbol, but that is handled in another way then the other metadata of a component. Maybe this concept will get more abstract when KiCad gets some kind of full database integration some time in the future.
A “component” is more than a footprint (to me). Placing components on a board i envision to be full 3D entities with a set of physical properties (dimensions, thermal, electrical propertie etc) including a footprint.
The term “land pattern” is also used in the industry which one could understand to be more accurate than footprint (https://www.7pcb.com/blog/land-pattern-vs-footprint.php). Either way, i cant see this as a substantial issue - bike shedding indeed.
Some might view it as “bikeshedding”, some might view it as “cleanup”.
“Bikeshedding” to me is the situation where the discussion focuses on trivial issue, while there’s important issue to be processed (“escape from tough topic”).
Otherwise, each minor issue could be considered “bikeshedding”.
Regardless, good point @joost about the physical 3d properties. By the way, these can be included as well in Kicad’s “Footprint” (as the STEP 3d model). One more confirmation of the discrepancy between the footprint (in terms of “land pattern”) and “Footprint” as used in Kicad’s PCBNew.
PCB antennas are totally Ok to me as a Component / Part.
Graphic logos as a “Component” - i can live with that, however in fact it’s a workaround (why need to create footprint if one could put some graphics directly? if only there was a tool to place Graphics onto arbitrary layers). But I understand the graphics must be converted to some internal Kicads representation and I’m ok with it.
I replied on the issue before I saw this thread. I agree with @paulvdh that the common definition of a “component” in EDA is wider than the definition proposed by @fred4u because it also extends to the schematic symbol and other metadata (such as simulation models) that might not be needed by PcbNew.
Today, KiCad only partially supports the concept of a component, because all of the possible linking happens on the schematic side: a schematic symbol may be linked to a footprint. This is not as flexible as some other software, where there is a “component” concept that can include a schematic symbol, one or more footprints, and other data. This more flexible model becomes more critical when you have a large library of components to manage - it does not make as much sense to try to store all this data in the schematic symbol library for two reasons:
One symbol can easily be used for many components
Changing meta-data about a component should not necessarily force you to change a symbol in a symbol library.
So in other words, I think “component” / “part” means something different, and KiCad has aspirations to better support components/parts in the future. Because of this, I don’t think we should try to rename “footprint” to one of those words.