On 3/25/2025 1:02 PM, Don Y wrote:
On 3/25/2025 12:37 PM, bitrex wrote:
I think I'm just gonna use manufacturer PNs for externally-sourced parts; having to consult a table to find out PN 4917485 is just like a bloody 10k 0402 resistor sounds like bullshit to me.
What happens when you outsource its manufacturing?
Will they be REQUIRED to obtain THE part from THE
manufacturer specified? How will they know that they
can substitute an equivalent part, more readily available
(or less costly)?
And, have a different numbering scheme for parts for which YOU are
the "manufacturer?
How will you identify each of your text files (source code and
the procedures to make their derivatives)?
You will still have to be able to "tag" individual part numbers
with appropriate decriptors. E.g., so you can find ALL resistors
(not just the ones that have a textual "description" of "resistor",
"res", "r", etc.) all diodes (which MAY include LEDs -- or, may not),
etc.
Doing a text search is far inferior to having a set of (defined by
you) "tags" that you can assign to part numbers to promote
consistency in the dataset.
E.g., if I look for "source" (as in "C source code", "ASM source code",
etc.) and "whereused = Project1", I get almost 500 hits (i.e., there
are 500 part numbers assigned in the creation of my first project,
not including the relatively few part numbers required for the
hardware components!). There are some 2,000 more for Project2 (different
implementation language so little reuse)
The *kernel* in my current project consumes more part numbers than that!
(let alone all of the other services required to make the product)
IME, hardware consumes relatively few ACTUAL part numbers, regardless
of how large a chunk of the number space you set aside for it. Most
designers tend to favor reusing devices with which they are familiar
instead of trying something new, each time.
The opposite tends to be more true for software; the amount of
reuse possible tends to be sorely limited -- save for certain
things like standard libraries (and, even there, few folks
actually *use* every function in such a library). Each new target
selection means new .o or .so objects have to be created and tracked.
[I build for three platforms in my current design -- to ensure
portability: x86, arm64 and SPARC. So, at least three variants
of each object to create and validate]
[[My "string" library -- <string.h> -- has some 300 part numbers
(individual sources for each function, test cases, scaffolding,
build instructions, etc.) Other libraries are even bigger --> more
part numbers.]]