LibrePCB / librepcb-doc

Official documentation of LibrePCB
https://librepcb.org/docs/
Creative Commons Zero v1.0 Universal
18 stars 16 forks source link

Conventions: Standard Category Hierarchy #6

Closed dbrgn closed 6 years ago

dbrgn commented 6 years ago

We should probably try to come up with a comprehensive and logical hierarchy of standard categories for both components and packages.

Those categories should probably be in the base library, so that all other libraries can reference them.

Coming up with this hierarchy might be tricky, since some concepts might be orthagonal. Maybe we should take inspiration from distributors, e.g. Digikey?

hephaisto commented 6 years ago

Can a part or category have multiple parents in the hierarchy? If yes, that would solve the orthogonality problem very nicely.

dbrgn commented 6 years ago

Digikey first through third level hierarchy (incomplete):

Semiconductors
    Discrete
        Diodes
        Power driver modules
        Thyristors
        Transistors
    Integrated Circuits (ICs)
        Clock / Timing
        Data Acquisition
        Embedded
        Interface
        Linear
        Logic
        Memory
        PMIC
    Isolators
        Digital Isolators
        Optoisolators
    LED/Optoelectronics
        Display Modules
        Electroluminescent
        Fiber Optics
        Lamps
        LEDs
        Touch Screen Overlays
    RF, Wireless
        Attenuators
        Baluns
        RF Amplifiers
        RF Antennas
        RF Transceiver ICs
        RF Transceiver Modules
        RFID
    Sensors, Transducers
        Color Sensors
        Current Transducers
        Dust Sensors
        Encoders
        Float, Level Sensors
        Flow Sensors
        Force Sensors
        Gas Sensors
        Humidity, Moisture Sensors
        Image Sensors
        ...
Passives
    Capacitors
        ...
    Crystals, Oscillators
        ...
    Filters
        ...
    Inductors, Coils, Chokes
        ...
    Potentiometers, Variable Resistors
        ...
    Resistors
        ...
    Thermal Management
        ...
Electromechanical
    Audio
        ...
    Motors, Solenoids, Driver
        ...
    Relays
        ...
    Switches
Power, Circuit Protection
    Battery Products
        ...
    Circuit Protection
        ...
    Line Protection
        ...
    Power Supplies
        ...
    Transformers
        ...
Connectors, Interconnect
    ...

It's quite detailed, probably too detailed for us?

dbrgn commented 6 years ago

We can also use Wikipedia as inspiration: https://en.wikipedia.org/wiki/Electronic_component#Classification

2 Active components
    2.1 Semiconductors
        2.1.1 Diodes
        2.1.2 Transistors
        2.1.3 Integrated circuits
        2.1.4 Optoelectronic devices
    2.2 Display technologies
    2.3 Vacuum tubes (valves)
    2.4 Discharge devices
    2.5 Power sources
3 Passive components
    3.1 Resistors
    3.2 Capacitors
    3.3 Magnetic (inductive) devices
    3.4 Memristor
    3.5 Networks
    3.6 Transducers, sensors, detectors
    3.7 Antennas
    3.8 Assemblies, modules
    3.9 Prototyping aids
4 Electromechanical
    4.1 Piezoelectric devices, crystals, resonators
    4.2 Terminals and connectors
    4.3 Cable assemblies
    4.4 Switches
    4.5 Protection devices
    4.6 Mechanical accessories
    4.7 Other

This is probably too broad.

dbrgn commented 6 years ago

Also, I'm not sure if we should try to create a lot of hierarchy (e.g. Active / Passive / Electromechanical as main parents with subcategories) or rather try to keep the hierarchy flat (maybe 2 max 3 layers)?

ubruhin commented 6 years ago

:+1:

Can a part or category have multiple parents in the hierarchy?

Categories can't, but symbols/packages/components/devices can.

Also, I'm not sure if we should try to create a lot of hierarchy (e.g. Active / Passive / Electromechanical as main parents with subcategories) or rather try to keep the hierarchy flat (maybe 2 max 3 layers)?

I would try to keep the hierarchy flat, but not too flat :) So ~3 levels sounds reasonable for me.

dbrgn commented 6 years ago

Maybe we could brainstorm this together with @rnestler next Monday @ Coredump?

Simply coming up with an initial draft would give us the possibility of further discussion / refinement.

ubruhin commented 6 years ago

I added many categories to the base library in https://github.com/LibrePCB-Libraries/LibrePCB_Base.lplib/commit/a73dc4b0a765c93f1e48b14902b359ad6b36508b.

Component categories (except children of "Integrated Circuits"):

grafik

Children of "Integrated Circuits":

grafik

Package categories:

grafik

At least we have an initial set now. We will see how it works in practice ;)

dbrgn commented 6 years ago

Nice, looks great! How did you assemble this list, did you use an existing one as base?

I'll update the generator to use those existing categories soon-ish.

ubruhin commented 6 years ago

Nice, looks great! How did you assemble this list, did you use an existing one as base?

Yes, component categories are inspired by DigiKey and package categories by Wikipedia ;)

I'll update the generator to use those existing categories soon-ish.

:+1: