Project specific component library

I want to start a new hobby project with some things in mind:

  1. It’s going to span multiple sub projects (each functional on it’s own), each of which would be a simple PCB and sharing many of the same components between them
  2. I want it to optimize for easy of sourcing components and cost
  3. Sub projects will be added in the future and should ideally reuse components from the limited component list
  4. Will be a collaborative effort from multiple engineers

Main thing I’m going for is ease of buying components, and cost savings from component reuse. With that in mind I was thinking that the project could have a project specific library with all the components used for it and that new PCBs only use components from that project library, only adding new components if really needed.

I was thinking I could achieve this by creating this project specific library by copying components from the bigger library and editing by leaving a single alias for each component. Also associating a specific package to be used in the project. This way, if we use TL072 for the project, for example, there is no chance of someone building it with one of the many equivalent components and this have multiple equivalent but different components come up in the final BOMs.

I have a feeling thou that I may be shooting myself in the foot by doing this, and wanted to know from more experienced people if this is a terrible idea.

I want to avoid a problem that happened to me when building a project someone else built over time, where when I put all the BOMs together, I found that across all the boards there was a mix of smd and THT, different footprints for SMD and THT components, etc. And normalizing that for a minimum set was extremely time consuming.

This doesn’t sound like shooting one’s foot to me. Just add the library folders to your file system, set path variables pointing to them and add components there. But add the libraries to each project’s local library tables, not to the global library table, unless you want to access the libraries for all (non-related) projects. Read also Project and libary setup for sharing and collaboration.

Thanks, that link is exactly what I needed (I had searched the docs with no avail). Project would be managed with a code versioning system and the repository would be exclusive for this project. I think in that scenario it doesn’t make much difference if the library is local to the project or not, but please let me know if I’m wrong, I’m still not very familiar with the software.