This Request for Enhancement has seemingly been popping up forever, as an impediment to newcomers and a PITA for the experienced - yet it never seems to get past the “it works for me the way it is, why would anyone want things to be different?” stage:
- kicad doesn’t support the concept of symbols that are associated with a set of footprints.
Today, in a schematic, the designer focuses on Symbols, while the layout designer lives and dies by Footprints. Both are constrained by reality - products rarely make it to market when they depend on unobtanium components or imaginary packages. There is a missing third person in the kicad universe - the library maintainer / component designer who decodes those pesky data sheets that tell us exactly which footprints to use for a particular component that incorporates the symbol(s) used in the schematic.
That’s the workflow disconnect. Going from Symbol to Footprint is a multi-step journey: Is my “R” a singleton or part of a SIP/DIP? What Footprints are valid for this IC Symbol? CAD programs should work to make it easy to produce high quality results by taking care of the “fiddly bits”.
IMO, KiCad needs to articulate the concept that “A Symbol is associated with a set of Footprints”. There are only a few footprints that are appropriate for a specific symbol - think ICs where the data sheet specifies the footprints being produced, DIP, SIP, SOP, SSOP, TSOP, MSOP, QSOP, SOIC, QFP, TQFP, BGA, etc, in reflow, wave and hand solder variations. Resistors come in 1w, 1/4w & 1/8w PTH, as well as 0805, 0603 (…) SMT footprints, but not in SOT or QFP…
If there is an appetite to address this, consider leveraging the real world concepts of “package” and “component”: Components map [a set of equivalent Symbols] to [a set of Packages], while Packages map a Component’s Symbol’s Pins to the Pads in a specific Footprint, something that is hard coded today in KiCad.
The motivation is threefold:
- KiCad projects are higher quality: The kicad library creator can produce validated components that associate a Symbol with all the Footprints that it comes in - addressing the problem of “what is actually available?”
- KiCad users are more productive: The various project designers (Electrical engineer, Layout expert, inventory manager…) can confidently manipulate their part of the project, starting with the EE’s “need to make it work”, moving on to the Layout engineers “need to make it fit” and finishing up with the operation beancounter’s “need to use the lowest cost item in inventory”. With the addition of the component and package concepts, each of these three dimensions can safely operate alongside the others, and be confident that the result won’t end up being yet another coffee coaster.
- KiCad maintainers have more work to do : Duplication and bloat in KiCad’s existing libraries could be reduced (US-vs- EU Symbols, footprint variations…)
I’m not sure KiCad can make a change as pervasive as this, given the inertia of the installed user base…