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

Conventions: Library organization #5

Open
hephaisto opened this issue Apr 4, 2018 · 5 comments
Open

Conventions: Library organization #5

hephaisto opened this issue Apr 4, 2018 · 5 comments

Comments

@hephaisto
Copy link

I would suggest one base repository which only includes abstract objects like "OpAmp Gate Symbol" and standard packages, and no actual devices. Most custom objects should reference these instead of creating their own.

@dbrgn
Copy link
Member

dbrgn commented Apr 5, 2018

Or maybe more generally, how do we want to split up libraries?

KiCad has this convention:

Rather than grouping components (e.g. symbols, footprints) by their manufacturer, KiCad libraries are organized by component functionality. This grouping strategy has a number of key benefits:

  • Similar components are grouped together, allowing alternative parts to be easily substituted

  • Symbol aliases for pin-identical symbols can be used to reduce library size

  • Generic parts which are produced by multiple manufacturers are supported

@ubruhin
Copy link
Member

ubruhin commented Apr 5, 2018

My suggestion:

  • LibrePCB Base
    • All component categories
    • All package categories
    • All standard packages
    • Commonly used symbols (resistor, capacitor, ...)
    • Commonly used generic components (resistor, capacitor, ...)
    • Commonly used generic devices (R-0603, C-0805, ...)
  • LibrePCB Connectors
    • Symbols of generic connectors (pin headers, D-Sub, USB, ...)
    • Packages of generic connectors (pin headers, ...)
    • Components of generic connectors (pin headers, D-Sub, USB, ...)
    • Devices of generic connectors (pin headers, ...)
  • LibrePCB Integrated Circuits
    • Symbols of generic ICs (OpAmp, 555, ...)
    • Components of generic ICs (OpAmp, 555, ...)
    • Devices of generic ICs (OpAmps, 555, ...)

So far, generally without specific parts of specific manufacturers. Then for each manufacturer I would create one or more libraries per manufacturer, for example:

  • Texas Instruments
    • Symbols, Packages, Components and Devices of TI-specific parts
  • STMicroelectronics
    • Symbols, Packages, Components and Devices of ST-specific parts

and so on.

Of course sometimes it's hard to decide in which library something should be placed. For example a 555 IC is quite generic, but available from different manufacturers. Such things I would probably put into the "LibrePCB Integrated Circuits" library as it's not strongly related to a specific manufacturer.

KiCad has this convention:

Yeah but KiCad has the problem that the library browser directly shows the structure of the libraries, so it's very important to have a meaningful library structure. But in LibrePCB we have categories, so the library browser does not depend on how the libraries are organized. So we can focus on other aspects of library organization.

@ubruhin ubruhin changed the title Which library items should go in the base repository? Conventions: Library organization Apr 5, 2018
@dbrgn
Copy link
Member

dbrgn commented Apr 5, 2018

Sounds good to me!

@rnestler
Copy link
Member

Should we document this in the https://docs.librepcb.org/#libraryconventions? I guess this is the reason this issue is still open?

@ubruhin
Copy link
Member

ubruhin commented Jun 26, 2019

@rnestler Yes, would be nice to have this documented 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

4 participants