This repository contains a KiCad library for symbols, footprints and 3D-models including mouser material numbers to auto-generate BOMs (bill of materials) by using KiCost.
Features:
- Reviewed symbols and footprints trough pull-requests,
- all symbols are hard linked to a footprint, this avoids miss matching symbol and footprint,
- symbol names follow a type code, for improved searchability,
- symbols containing mouser material numbers to auto-generate a BOM using KiCost,
- using KiCost together with this library can make requests to mouser, to see if all PCB components are on stock.
Add this library to your project. Make sure that you use exactly the same Nicknames
as shown here:
Preferences
->Manage Symbol Libraries
-> Project Specific Libraries: Nickname:LEA_SymbolLibrary
, Library Path:your/path/LEA_KiCad_Library/LEA_Symbol_Library/LEA_Symbol_Library.kicad_sym
Preferences
->Manage Footprint Libraries
-> Project Specific Libraries: Nickname:LEA_FootprintLibrary
, Library Path:your/path/LEA_KiCad_Library/LEA_Footprint_Library.pretty
It is also possible to add both libraries to the Global Libraries
.
In the KiCad main menu, first select Preferences
and then Configure Path
.
Replace the environment variable MODEL_3D
with the current location of the 3D-models, e.g. /path/LEA_KiCad_Library/LEA_3D_Models
. This should be the 3D-models for the LEA_KiCad_Library
repository.
Note: if there is a variable KICADx_3DMODEL_DIR
, ignore this variable and add MODEL_3D
as mentioned above.
The main branch is protected. To add new components, open a new separate branch
git branch my-new-branch
Open KiCad, add your new symbols and footprints to the library. Each symbol should have the keys Manufacturer
, manf#
(manufacturer order number) and mouser#
(mouser order number). Link the footprint and the 3D model. The 3D-model file path needs to be a relative path with the above mentioned environment variable. The 3D file path is e.g. ${MODEL_3D}/my3dmodel.stp
. Run git status
to see your changed files. Add the example files symbolfile
and my3dmodel.stp
to the staging area and commit the changes. Afterwards, use git push
to publish the changes to the new branch.
git add symbolfile my3dmodel.stp
git commit -m "add new component xyz and 3D-model"
git push
Open the GitHub page, choose your branch and create a pull request
.
The component library is aligned to use the add-on KiCost. Therefore the above mentioned keys Manufacturer
, manf#
and mouser#
are mandatory in the symbol. In the schematic, navigate Tools
-> create BOM
and run a random one, e.g. bom_csv_grouped_by_value
. Install KiCost, navigate via terminal to your KiCad project folder and enter kicost
to your terminal. As input file, choose the .xml
file what was created by the BOM command. After that, the KiCost BOM will be created. To get the prices and stock information from Mouser, create a Mouser API key on the Mouser homepage and enter it into the configuration file.
- All pins should be
passive
(nopower
orbidirectional
, as the usage changes from schematic to schematic)
For a better findability and sorting of the many components, it is necessary to use a type code. Some examples are given here.
Differences:
- Type:
SMD
/THT
- Values:
_100R
/__4R7
/0R001
- Size:
0603
/0704
/0403
- Technology: Thin film
_THIN
/ Thick filmTHICK
HINT
: e.g.SHUNT
- Derivation in percent:
_1P
/_5P
/10P
/20P
- Voltage:
75V
/100V
Examples:
R_0805_100R__THIN_20P_150V
R_0603_100R__THIN__1P__75V
R_0403__4R7_THICK_10P__50V
Differences:
- Values:
_100R
/__4R7
/0R001
- Size:
0603
/0704
/0403
- Derivation:
_1P
/_5P
/10P
/20P
- RM:
_RM5
/RM10
/RM12
HINT
: e.g.SHUNT
Examples:
R_THT_0704__RM5_10P____1k
R_THT_0704_RM10__1P_0R001_SHUNT
- Type:
SMD
/THT
- Values:
100u
/4u7
/10n
- Size:
0603
/0704
/0403
- Voltage:
25V
/100V
/600V
Examples:
C_SMD_0603_100V__1u0
C_SMD_0805__25V__10u
C_SMD_1206__16V__4u7
- Start with
D_
- Housing:
0603
/0704
/0403
/SOD
/DFN
/SMB
/ ... - Current capability:
1A0
/0A125
/ ... - last key: exact type, e.g.
B140HW-7
/TS4448_RGG
/ ...
Examples:
D_0603_0A125_TS4448_RGG
D_SOD_1A0_B140HW-7
Hard to find general rules.
- Channels:
Single
/Dual
Examples:
- Driver_Dual_TI_value
- Driver_Single_TI_value
- Driver_Single_TI_value
Examples:
uC_FPGA_
Examples:
ST_6CH_CMOS_SOIC14_MC74HC14ADG
- generate BOM, check if all components are available using KiCost
- all potentials have a NetClass
- free of failures and warnings using Electrical Rules Checker (ERC)
- fiducials (2 on top layer, 2 on bottom layer)
- spacing rules generation using KiClearance
- free of failures and warnings in Design Rules Checker (DRC)
- For double-sided SMD assembly: Two edges should each have
2 mm
space so that the PCB can be placed in the corresponding holder during the vapor phase.
- Stencil: Pad reduction of
10 %
- Stencil: The edge of the stencil must be 30 mm on both sides to ensure that it can be clamped in the stencil printer.