Generic Transistor Library? [SOLVED... device.lib]

I have been wondering about the transistor symbols. In general conversation, there seems to be the first statement of “symbols are not connected to actual devices.” Yet in the transistor library, there are a ton of similar symbols named after specific devices (which have different footprints, which I’m sure is the reason).

Is there an issue with making a set of generic transistors?

If the transistors were truly generic, I would expect to see:
(xMOSFET, xFET, xCH, or whichever prefix is ‘standard’)

PMOSFET3 GDS
PMOSFET3 GSD
PMOSFET3 SGD
PMOSFET3 SDG
PMOSFET3 DGS
PMOSFET3 DSG
NMOSFET3 GDS
NMOSFET3 GSD
NMOSFET3 SGD
NMOSFET3 SDG
NMOSFET3 DGS
NMOSFET3 DSG
PMOSFET4 GDSB
PMOSFET4 GSDB
PMOSFET4 SGDB
PMOSFET4 SDGB
PMOSFET4 DGSB
PMOSFET4 DSGB
NMOSFET4 GDSB
NMOSFET4 GSDB
NMOSFET4 SGDB
NMOSFET4 SDGB
NMOSFET4 DGSB
NMOSFET4 DSGB
(Maybe more options with Body connection in different orders.)

With the pin order specified in the symbol name, the symbol can be swapped out at any time, and would still be properly connected in the schematic.

Similarly with BJTs:

PNP BEC
PNP BCE
PNP EBC
PNP ECB
PNP CBE
PNP CEB

NPN BEC
NPN BCE
NPN EBC
NPN ECB
NPN CBE
NPN CEB

And presumably similar for JFETs and other types.

There could be specific transistors where they don’t conform to the standard pins (ICs with multiple units, for example, or more that one collector)

Or maybe just keep the current library and create a new one with IEC symbols ‘transistors_generic’

Thoughts?

This page at wikimedia commons seems like a good start. I forgot about enhancement vs. depletion.

It’d be nice to not have to sort through a ton of similar devices looking for a desired symbol (device type only) when putting down a first draft schematic prior to picking the exact device.

The device.lib library has generic parts, very similar to your post.
I presume transistors.lib is more of a hobbyist origin, you would be surprised how many people complain that they have to figure out which symbol a BC109 is

1 Like

Agreed. I have observed the constant struggle between “generic device” and “where’s my specific device?”

Thanks for the pointer to device.lib. Yes, it is exactly what I was hoping for.

1 Like

The transistor lib like all specialized lib is for specialized (atomic) symbols.
Or at least we hope that in future it will be that way.
Examples would be smart fets from infineon (currently in infineon lib), …
Your example bc109 is not in there (yet) but a lot of other typical tranistors exist. Yes they are not yet quasi atomic. Another lib that needs work. (Sadly the quality of the official lib varies a bit across different libs. But it gets better each day.)

Quasi atomic parts from comment of the github issue:

This class of part is a generic part made by a number of different manufacturers with seemingly equivalent parts, but which don’t share a full MPN for the same pacakage. These part will named using the base MPN followed by a suffix of the base package type.