Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add dev for standard THT transistors BC5xx #126

Merged
merged 1 commit into from
Oct 3, 2024
Merged

Conversation

ubruhin
Copy link
Contributor

@ubruhin ubruhin commented Oct 6, 2023

SUMMARY

Adding the good old THT transistor devices from the BC5xx family, including MPNs:

image

DATASHEETS / REFERENCES
OPEN QUESTIONS / UNRESOLVED ISSUES

Many many questions 🙈

  1. Normally we do not add devices of specific parts to the base library since they belong to the manufacturer-specific library. However, the BC5xx transistors might be considered as generic enough to add them as devices here (Wikipedia even says those are somehow standardized, see links above). Especially from the user point of view, I'd expect those transistors to be available when installing just the base library (what could be considered as base if not those transistors?). Or in other words, it would be a bit surprising to install the base library and still don't have such basic transistors available.
  2. Given we agree on 1. to add these devices to the base library, the question arises whether we should actually add MPNs to them or not. Somehow it feels unnecessary (those transistors are mostly used by hobbyists having them in stock and probably not needing an accurate BOM; in addition, it turned out that tons of MPNs are considered as obsolete, not sure how long those will still be sold). On the other hand, adding them shouldn't hurt (except that it is time consuming).
  3. Should we really add all those transistors? At least a few of them are not even available on Digikey anymore (but still listed as "active" on Octopart).
  4. Most of these transistors are sold in a 1.27mm pitch TO-92 as well as in a 2.54mm pitch TO-92 (bent legs). Thus I added two devices for each transistor type, the 1.27mm variant called "bulk" since according datasheets all those transistors are packaged as bulk instead of tape&reel/ammo. Here also the question arises whether this is overengineered or not?
  5. One might even consider adding just 4 devices in total, called "BC546..550 [(bulk)]" (NPN) and "BC556..560 [(bulk)]" (PNP) and distinguish the exact type just by the MPNs. However, I think having explicit devices is useful for hobbyists since it allows just to add a "BC548" without requiring to choose an exact MPN.

A completely different approach would be to add only very generic transistors to the base library (without MPNs, only one pitch variant) and add the same transistors to the manufacturer-specific libraries as well, with MPNs etc.

Maybe @dbrgn has any opinion about that? 🙂

Btw, the same questions arise for other very generic devices, for example an 1N4007 diode I'd expect to be available after installing the base library. Probably there exist many more such devices (Zener diodes, NE555, ...) which makes it hard to decide where to draw the line between generic devices and specific devices 😭 Generally it might still be a solution to decide against this convenience, requiring people to install manufacturer-specific libraries for such devices.

CHECKLIST
  • I have read and followed the library conventions¹.
  • For packages, I followed IPC7351C (see details in library conventions).
  • For modified elements, I bumped their version number².
  • I already used the new library elements in a design and verified their correctness (optional).
  • I'm the copyright owner of the added content (i.e. the changes are made by myself, not copied/imported from somewhere else).
  • I agree to publish all my changes under the CC0 Public Domain License³, allowing everyone to use and modify the content without any restrictions.

¹ Library Conventions: https://docs.librepcb.org/#libraryconventions
² Minor version bump if only metadata was modified (e.g. "0.1" -> "0.1.1"), major version bump if functional changes were made (e.g. "0.1" -> "0.2")
³ CC0 Public Domain License: https://en.wikipedia.org/wiki/CC0

@ubruhin ubruhin added addition New library element. ready for review Waiting for review by maintainers. labels Oct 6, 2023
@ubruhin ubruhin marked this pull request as ready for review September 19, 2024 13:17
@ubruhin
Copy link
Contributor Author

ubruhin commented Sep 19, 2024

Considering how many "complaints" we get about missing basic library elements, I think we should do add these generic transistors (including MPNs, as they do provide a benefit). Adding them doesn't hurt anyway, if we ever decide against such generic devices we can safely remove them as nothing breaks when deleting devices.

Though probably I wouldn't go too far with adding generic devices. Let's add things like 1N4007 as well (the really basic things for hobbyists), maybe also generic OpAmps but not more specialized ICs like NE555.

@ubruhin ubruhin self-assigned this Sep 19, 2024
@dbrgn
Copy link
Contributor

dbrgn commented Oct 2, 2024

Both options (this PR and fully generic devices) seem valid choices to me. If you want to discuss it in more detail, we could do that at Coredump sometime.

@ubruhin ubruhin merged commit 49e821d into master Oct 3, 2024
2 checks passed
@ubruhin ubruhin deleted the tht-transistors branch October 3, 2024 08:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
addition New library element. ready for review Waiting for review by maintainers.
Development

Successfully merging this pull request may close these issues.

2 participants