Overview
Symbol library management in KiCad is handled by theSYMBOL_LIBRARY_MANAGER class (source/eeschema/symbol_library_manager.h:27), which maintains working copies of libraries and tracks modifications.
Library Structure
LIB_SYMBOL Class
The core symbol class represents a library component:Symbols can be derived from parent symbols, inheriting properties and graphics while allowing customization. This enables efficient library organization.
Symbol Types
Standard Symbols
Regular components like resistors, capacitors, ICs
Power Symbols
Special symbols for power and ground nets
Derived Symbols
Symbols that inherit from parent symbols
Working with Libraries
Symbol Buffer System
The library manager uses a buffer system to track changes:Library Buffer
Each library has a buffer that tracks all symbols:Creating Custom Symbols
Add Graphics
Draw the symbol body using:
- Rectangles for IC packages
- Circles for discrete components
- Arcs and lines for custom shapes
- Text for labels and values
Place Pins
Add electrical pins with proper types:
- Input, Output, Bidirectional
- Power input/output
- Passive, Open collector/emitter
- Not connected
- Pin number (matches footprint pad)
- Pin name (displayed on schematic)
- Electrical type (for ERC)
- Graphic style (line, clock, inverted, etc.)
Set Properties
Configure symbol metadata:
- Reference prefix (R, C, U, etc.)
- Default value
- Footprint filter patterns
- Datasheet URL
- Keywords for searching
Symbol Variants
Symbols can have alternate body styles (De Morgan representation):Library File Formats
Modern Format (.kicad_sym)
KiCad 6+ uses S-expression format:Library Management
Adding Libraries
Libraries are managed through symbol library tables:Library Adapter
The symbol library adapter provides a tree view interface:Symbol Properties
Required Properties
Reference designator prefix (R, C, U, etc.)
Component value or part number
Associated PCB footprint
URL or path to component datasheet
Custom Properties
Add custom fields for:- Manufacturer part number
- Supplier and supplier part number
- Tolerance, power rating, voltage rating
- Cost and availability information
Symbol Inheritance
Derived symbols inherit from parent symbols:Derived symbols can override specific properties while inheriting graphics and pins from the parent. This is useful for creating symbol families (e.g., resistors with different power ratings).
Embedded Files
Symbols can embed files like datasheets:Best Practices
Pin Numbering
Pin Numbering
- Match physical package pin numbers exactly
- Use standard numbering schemes (DIP: 1-N, QFP: clockwise from pin 1)
- For multi-unit symbols, maintain consistent numbering across units
Graphic Standards
Graphic Standards
- Use IEEE/ANSI or IEC standards for symbol shapes
- Keep symbols visually balanced and readable
- Standard pin length: 100 mils (2.54mm)
- Standard grid: 50 or 100 mils
Property Management
Property Management
- Set visibility appropriately (reference: visible, value: visible, others: hidden)
- Use footprint filters to constrain compatible footprints
- Add comprehensive keywords for searchability
Library Organization
Library Organization
- Group related symbols in dedicated libraries
- Use clear, descriptive library and symbol names
- Maintain separate project-specific and shared libraries
- Version control your custom libraries
Source Code References
Next Steps
Schematic Design
Use symbols in your schematics
Footprint Libraries
Link symbols to PCB footprints