Open evanshultz opened 5 years ago
Edit: Somehow pressed a keyboard key and submitted this early. Oops.
To clarify this is about a subsection of S2.1 that was touched in https://github.com/KiCad/kicad-website/pull/407
The wording before the KLC change:
SOIC
)My original suggested wording:
L78L05_TO92
)Wording suggested by evan:
L78L05_TO92
)The problem: It seems the example listed (which was one of the original reasons why this rule even exists) would violate the rule by evan (and probably also the original wording)
And maybe stating the obvious: If the current wording is kept (yes it got merged) then we have quite a few symbols to rename for v6.
And if we already go this far why not get rid of this exception as it only creates more work for us and is not really well liked anyways.
I think we're on the same page that this is hacky and it would be nice if we found a better way. I noted a fully-defined example above where we could use an ALIAS to capture two identical PNs. Kind annoying to have to maintain two identical DCM entries, but this doesn't happen often and fully-specified may be the best method for KiCad library users. Food for thought...
The discussion from https://github.com/KiCad/kicad-website/pull/407 has shown (I think) that narrowing the exception down to just suffixes makes it basically useless because it would only apply to a handful of parts (e.g. 6N137). Broadening it to "base MPNs" makes it wishy-washy because it is not always clear what the easily recognizable "base MPN" is supposed to be when prefixes and possibly more differ. It seems to me that going with aliases and actual package suffixes makes everything cleaner and clearer.
Some examples:
Current symbol: L78L05_TO92 (ST prefix but covers ON, TI and many more) Alternative: L78L05xxZ (ST), alias MC78L05xxP (ON), alias UA78L05xxLP (TI), more as required
Current symbol: 6N137 (no suffix, alias of HCPL-261A, specified for DIP-8) Alternative: 6N137 (Vishay, Broadcom), alias 6N137xM (ON)
Current symbol: 74HC04 (generic) Alternative (SOIC-14): 74HC04D (Nexperia), alias MC74HC04AD (ON), alias SN74HC04D (TI)
Pro: Rule is always clear
Con: Package suffixes might conflict A lot of work
Edit: Would be easier with a future lib format supporting optional inheritance (FP, DS link, description).
The logic libs (your 74HC04 example) do not have footprints assigned so they are considered generic symbols and are not covered by this rule for this reason.
We can make the fully specified but well lets say i am not optimistic that we will find a volunteer for this thankless task (we could not even find enough manpower for fixing the hidden power pin problem)
I know it's probably not going to happen soon, but all the parts covered by S2.1.3 and by my examples are basically generic (in that they have several manufactures using the same "base MPN"), so my suggestions would mean fewer rules and, more importantly, fewer exceptions. Or is there a particular reason for keeping generic libs at all, except for the lack of manpower?
We will always have some generic libs where it makes sense. Connectors for example make no sense to be made fully specified. Same with standard passives.
Edit: we are also currently looking into allowing easier more generic button/switches and relays.
I thought the context implied we're talking about ICs here. And in that realm, I fail to see the real difference between 4000 series, 7400 series, 78/79xx regulators, "generic" op amps and so on.
Picking off a conversation from https://github.com/KiCad/kicad-website/pull/407 about KLC clause S2.1. I believe the idea was originated at https://github.com/KiCad/kicad-library/issues/1398#issuecomment-316121470. @poeschlr mentioned making an issue for discussion at https://github.com/KiCad/kicad-website/pull/407#discussion_r322583378. Here it is.
The discussion is about naming parts that can be used equivalently but don't share exactly the same MPN. Further complicated if the part comes in multiple packages. The topic is currently covered by KLC S2.1.
My original thought was that rule applies if the suffix for the packaging differs. And only the suffix. If a prefix is missing or changed then it's not as obvious that it's an equivalent part. So MC78 and UA78 and whatever else could be a different symbol than L78*. So to me, the text I submitted at the website PR is more clear and the example works (but maybe there are better ones?).
I have suggested a change to
If multiple manufacturers produce equivalent parts where the part number is the same except for the suffix that specifies the package, then the common base part number is kept and suffixed with a simplified footprint name (e.g. L78L05_TO92)
. Sorry if that sounds self-serving to create this issue.That was my intent. But it doesn't mean it's the best solution. If the library moves toward being full specified we will then have, for example,
MC33078N
with an ALIAS ofMC33078P
and both have a unique entry in the DCM file. I'm not sure if there's a better way.I always understood KLC as reflective of what is getting merged rather than what is already in the library. Rene certainly has supported changing the "rules" and then accepting PRs based on the change, even if the change was informal (not in KLC). But I do think it's nice to have things documented yet not over-documented.
So... is the existing KLC clause good and salient? Add or remove anything? Change anything?
BTW, no need for cursing here. I'm not trying to beleaguer work being accomplished, especially volunteer work, but trying to find the best solution. And not with malice.