Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Post History

60%
+1 −0
Q&A What are some best practices for library management?

As the others said, there is no definite answer to this. But here is how we do it: There is a global schematic library and a global footprint library. They have the components we use and have the ...

posted 7mo ago by H_H‭  ·  edited 7mo ago by H_H‭

Answer
#2: Post edited by user avatar H_H‭ · 2023-10-04T13:08:28Z (7 months ago)
  • As the others said, there is no definite answer to this. But here is how we do it:
  • There is a global schematic library and a global footprint library. They have the components we use and have the necessary details (like references to the ERP system). But there is still only one symbol for different values (i.e. 1 kΩ resistor and 470 Ω resistor use the same symbol). All symbols and footprints are our own footprints. The libraries are text based (KiCad) and are tracked with git. There is a single person that is responsible for the library. Since we don't have too many different parts, we can keep all in the same library. Similar with 3D models. All global 3D models are in a single folder.
  • Next to that, a project may have its own schematic and footprint library with its own 3D models. In this libraries are parts that are specific to this project, for example a case maybe inside a "footprint", and that case can be specific to a PCB. A other reason to have some parts in a local library is to have a symbol with a different pin layout without everything going into the global library.
  • > How to deal with footprints of the same type (e.g. QFN64) but with slightly varying dimensions as a result of manufacturer guidelines?
  • Do they have to be different? Most of the time, the datasheet only has suggestions for a footprint but that doesn't mean you have to follow this.
  • If you really need different footprints, create a new name, like `SO8` and when you later need to add a different footprint also for a `SO8` component, you may name it `SO8_small`.
  • As the others said, there is no definite answer to this. But here is how we do it:
  • There is a global schematic library and a global footprint library. They have the components we use and have the necessary details (like references to the ERP system). But there is still only one symbol for different values (i.e. 1 kΩ resistor and 470 Ω resistor use the same symbol). All symbols and footprints are our own footprints. The libraries are text based (KiCad) and are tracked with git. There is a single person (to be fair, there is only a single person in our electronic design team) that is responsible for the library. Since we don't have too many different parts, we can keep all in the same library. Similar with 3D models. All global 3D models are in a single folder.
  • Next to that, a project may have its own schematic and footprint library with its own 3D models. In this libraries are parts that are specific to this project, for example a case maybe inside a "footprint", and that case can be specific to a PCB. A other reason to have some parts in a local library is to have a symbol with a different pin layout without everything going into the global library.
  • > How to deal with footprints of the same type (e.g. QFN64) but with slightly varying dimensions as a result of manufacturer guidelines?
  • Do they have to be different? Most of the time, the datasheet only has suggestions for a footprint but that doesn't mean you have to follow this.
  • If you really need different footprints, create a new name, like `SO8` and when you later need to add a different footprint also for a `SO8` component, you may name it `SO8_small`.
#1: Initial revision by user avatar H_H‭ · 2023-10-02T12:03:39Z (7 months ago)
As the others said, there is no definite answer to this. But here is how we do it:

There is a global schematic library and a global footprint library. They have the components we use and have the necessary details (like references to the ERP system). But there is still only one symbol for different values (i.e. 1 kΩ resistor and 470 Ω resistor use the same symbol). All symbols and footprints are our own footprints. The libraries are text based (KiCad) and are tracked with git. There is a single person that is responsible for the library. Since we don't have too many different parts, we can keep all in the same library. Similar with 3D models. All global 3D models are in a single folder.

Next to that, a project may have its own schematic and footprint library with its own 3D models. In this libraries are parts that are specific to this project, for example a case maybe inside a "footprint", and that case can be specific to a PCB. A other reason to have some parts in a local library is to have a symbol with a different pin layout without everything going into the global library.

> How to deal with footprints of the same type (e.g. QFN64) but with slightly varying dimensions as a result of manufacturer guidelines?

Do they have to be different? Most of the time, the datasheet only has suggestions for a footprint but that doesn't mean you have to follow this.
If you really need different footprints, create a new name, like `SO8` and when you later need to add a different footprint also for a `SO8` component, you may name it `SO8_small`.