diff --git a/README.md b/README.md index 871a2dd..7ea3e3d 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,191 @@ # AidanBrzezinski KiCad Library -Personal KiCad component library for use across all projects. -Used as a git submodule in project repos. +Personal KiCad component library used as a git submodule across all projects. +All symbols, footprints, and 3D models are verified against manufacturer datasheets. -## Structure -- symbols/ — KiCad symbol libraries (.kicad_sym) -- footprints/ — KiCad footprint libraries (.pretty folders) -- 3d_models/ — STEP and WRL 3D models (flat) +--- + +## Usage + +Add to a project as a git submodule: -## Usage in a project ```bash git submodule add https://github.com/AidanBrzezinski/KiCad_Library lib/shared +git submodule update --init --recursive ``` -Then in KiCad, add sym-lib-table and fp-lib-table entries pointing to -${KIPRJMOD}/lib/shared/symbols/ and ${KIPRJMOD}/lib/shared/footprints/ +When cloning a project that uses this library: + +```bash +git clone --recurse-submodules https://github.com/AidanBrzezinski/YourProject +``` + +Register libraries in KiCad using the included `sym-lib-table` and `fp-lib-table` files, +or add manually via `Preferences → Manage Symbol/Footprint Libraries → Project Libraries`. +Always use `${KIPRJMOD}/lib/shared/...` as the path prefix. + +--- + +## Directory Structure + +``` +AidanBrzezinski_KiCad_Library/ +│ +├── symbols/ # KiCad symbol libraries (.kicad_sym) +│ ├── 0_ic_logic.kicad_sym # 74xx, 4xxx series general logic +│ │ # SN74HC193, CD4060, SN74HC138 etc +│ ├── 0_ic_mcu.kicad_sym # Microcontrollers +│ │ # STM32, RP2040, ATmega etc +│ ├── 0_ic_driver.kicad_sym # Motor, HV, gate, LED drivers +│ │ # HV5622, DRV8353, ULN2003 etc +│ ├── 0_ic_power.kicad_sym # Regulators, converters, power management +│ │ # LM7805, NCH6300HV, TPS62172 etc +│ ├── 0_ic_analog.kicad_sym # Op-amps, comparators, ADCs, DACs +│ │ # LM358, MCP3204, TL072 etc +│ ├── 0_ic_rf.kicad_sym # RF ICs, transceivers, antennas +│ │ # CC1101, nRF24L01, SX1276 etc +│ ├── 0_ic_interface.kicad_sym # CAN, RS-422, USB, SPI interface ICs +│ │ # SN65HVD35, TCAN1051, CP2102 etc +│ ├── 0_passive.kicad_sym # Resistors, capacitors, inductors, crystals +│ │ # Generic R/C/L + specific crystals +│ ├── 0_connector.kicad_sym # All connector types +│ │ # Barrel jack, JST, XT60, headers etc +│ └── 0_discrete.kicad_sym # Diodes, transistors, buttons, encoders +│ # TVS, Schottky, MOSFET, tactile SW etc +│ +├── footprints/ # KiCad footprint libraries (.pretty folders) +│ ├── 0_capacitor_smd.pretty/ # SMD capacitor footprints +│ │ └── *.kicad_mod +│ ├── 0_inductor_smd.pretty/ # SMD inductor footprints +│ │ └── *.kicad_mod +│ ├── 0_resistor_smd.pretty/ # SMD resistor footprints +│ │ └── *.kicad_mod +│ ├── 0_diode_smd.pretty/ # SMD diode footprints (SOD, SMA, SMB etc) +│ │ └── *.kicad_mod +│ ├── 0_led_smd.pretty/ # SMD LED footprints +│ │ └── *.kicad_mod +│ ├── 0_transistor_fet.pretty/ # Transistor and FET footprints +│ │ └── *.kicad_mod +│ ├── 0_package_SO.pretty/ # SOIC, SOP, SSOP packages +│ │ └── *.kicad_mod +│ ├── 0_package_QFP.pretty/ # QFP, LQFP packages +│ │ └── *.kicad_mod +│ ├── 0_package_DFN_QFN.pretty/ # DFN, QFN packages +│ │ └── *.kicad_mod +│ ├── 0_package_SOT_TO_SMD.pretty/ # SOT-23, TO-252, TO-263 packages +│ │ └── *.kicad_mod +│ ├── 0_package_SON.pretty/ # SON packages +│ │ └── *.kicad_mod +│ ├── 0_connector.pretty/ # Connector footprints +│ │ └── *.kicad_mod +│ ├── 0_switch_button.pretty/ # Switch and button footprints +│ │ └── *.kicad_mod +│ ├── 0_switching_regulator.pretty/# Switching regulator module footprints +│ │ └── *.kicad_mod +│ ├── 0_interface_uart.pretty/ # Interface connector footprints +│ │ └── *.kicad_mod +│ ├── 0_testpoint.pretty/ # Test point footprints +│ │ └── *.kicad_mod +│ ├── 0_fiducials.pretty/ # Fiducial marker footprints +│ │ └── *.kicad_mod +│ ├── 0_pad.pretty/ # Bare pad footprints +│ │ └── *.kicad_mod +│ ├── 0_net_tie.pretty/ # Net tie footprints +│ │ └── *.kicad_mod +│ └── 0_mousebites.pretty/ # Mouse bite footprints for panelisation +│ └── *.kicad_mod +│ +├── 3d_models/ # STEP and WRL 3D models (flat structure) +│ ├── *.step # STEP models for 3D viewer and MCAD export +│ └── *.wrl # WRL models for photorealistic rendering +│ +├── Datasheets/ # Component datasheets (PDF) +│ └── *.pdf # One PDF per unique part, named by MPN +│ +├── sym-lib-table # KiCad symbol library registration file +├── fp-lib-table # KiCad footprint library registration file +├── CHANGELOG.md # Library revision history +├── LICENSE +└── README.md +``` + +--- ## Conventions -- All symbols copied from KiCad global library retain original drawing -- Fields added: MPN, Digikey_PN, Manufacturer, Datasheet (local path) + +### Symbols +- All symbols copied from KiCad global library retain the original drawing unchanged +- Only fields are modified — never pin positions, body size, or pin length +- Custom drawn symbols follow KiCad standard: 100mil pin length, 1.27mm text size +- Fields set on every symbol: + +| Field | Example | Notes | +|---|---|---| +| Value | `SN74HC193DR` | Full MPN including package suffix | +| Footprint | `0_package_SO:SOIC-16_3.9x9.9mm_P1.27mm` | Points to library footprint | +| Datasheet | `../../Datasheets/SN74HC193.pdf` | Local relative path | +| MPN | `SN74HC193DR` | Exact manufacturer part number | +| Digikey_PN | `296-1191-1-ND` | Digikey part number at time of addition | +| Manufacturer | `Texas Instruments` | Manufacturer name | +| Library_Source | `KiCad 8.0 global 74xx lib` | Where symbol drawing came from | + +### Footprints - All footprints verified against physical datasheet dimensions -- 3D models stored flat in 3d_models/ referenced via ${KIPRJMOD} +- Courtyard, silkscreen, fab, and copper layers all present +- 3D model linked via `${KIPRJMOD}/lib/shared/3d_models/PartName.step` +- Pad numbering matches symbol pin numbering exactly + +### 3D Models +- Stored flat in `3d_models/` — no subfolders +- Named by MPN e.g. `SN74HC193DR.step` +- Referenced in footprints via `${KIPRJMOD}/lib/shared/3d_models/` +- Source noted in footprint description field (SnapEDA, manufacturer, KiCad built-in) + +### Datasheets +- One PDF per unique MPN, named exactly by MPN e.g. `SN74HC193.pdf` +- Symbol Datasheet field points to local relative path +- Do not commit datasheets for parts with stable public URLs if file size is a concern + +### Git Commits +- One component per commit where possible +- Commit message format: `lib: add SN74HC193DR symbol footprint and datasheet` +- Library structure changes committed separately from component additions + +--- + +## Component Index + +| MPN | Description | Symbol Library | Footprint Library | Added | +|---|---|---|---|---| +| SN74HC193DR | 4-bit Up/Down BCD Counter | 0_ic_logic | 0_package_SO | - | +| SN74HC163DR | 4-bit Synchronous Binary Counter | 0_ic_logic | 0_package_SO | - | +| SN74HC138DR | 3-to-8 Line Decoder | 0_ic_logic | 0_package_SO | - | +| SN74HC132PWR | Quad NAND Schmitt Trigger | 0_ic_logic | 0_package_SO | - | +| SN74HC08DR | Quad 2-Input AND Gate | 0_ic_logic | 0_package_SO | - | +| SN74HC74DR | Dual D-type Flip-Flop | 0_ic_logic | 0_package_SO | - | +| SN74HC42DR | BCD-to-Decimal Decoder | 0_ic_logic | 0_package_SO | - | +| SN74HC373DR | Octal Transparent Latch | 0_ic_logic | 0_package_SO | - | +| SN74HC165DR | 8-bit Parallel-In Serial-Out Shift Reg | 0_ic_logic | 0_package_SO | - | +| SN74HC14DR | Hex Schmitt-Trigger Inverter | 0_ic_logic | 0_package_SO | - | +| MC74HC157ADR2G | Quad 2:1 Data Selector/MUX | 0_ic_logic | 0_package_SO | - | +| MC74HC04ADG | Hex Inverter | 0_ic_logic | 0_package_SO | - | +| MC74HC32ADR2G | Quad 2-Input OR Gate | 0_ic_logic | 0_package_SO | - | +| CD4060BM96 | 14-Stage Oscillator + Divider | 0_ic_logic | 0_package_SO | - | +| CD4020BM96 | 14-Stage Binary Ripple Divider | 0_ic_logic | 0_package_SO | - | +| CD4514BM96 | 4-to-16 Latch Decoder | 0_ic_logic | 0_package_SO | - | +| HV5622PG-G | 32-Ch HV Serial Shift Register | 0_ic_driver | 0_package_SO | - | +| NCH6300HV | Nixie HV Boost Converter | 0_ic_power | 0_switching_regulator | - | +| LM7805CT | 5V Linear Regulator | 0_ic_power | 0_package_SOT_TO_SMD | - | +| SMBJ15A | TVS Diode 15V | 0_discrete | 0_diode_smd | - | +| SS34 | Schottky Diode | 0_discrete | 0_diode_smd | - | +| EC11E15244B3 | Rotary Encoder | 0_discrete | 0_switch_button | - | +| B3F-4000 | Tactile Push Button | 0_discrete | 0_switch_button | - | +| PJ-002A | DC Barrel Jack 5.5mm/2.1mm | 0_connector | 0_connector | - | + +--- + +## Projects Using This Library + +| Project | Repo | Submodule Commit | +|---|---|---| +| Nixie Tube Clock | github.com/AidanBrzezinski/Nixie_Tube_Clock | - |