On This Page
Loading Custom Symbols & Footprints
Why the Default Library Has Gaps
KiCad ships with an extensive built-in library covering thousands of generic components: resistors, capacitors, diodes, common logic ICs, and connectors. For a first board this may be sufficient, but once you start working with specific manufacturer parts — a particular LDO with an unusual pinout, a motor driver, a microcontroller in a QFN package — you will find gaps. The built-in library uses generic symbols intended to represent a category of component, not a specific orderable part. It will not have a footprint for your exact package variant, and it will not have a 3D model.
No default library can keep pace with every part from every manufacturer. The real skill is knowing where to look first and when to make something yourself.
Symbols vs Footprints: Why They Are Separate
KiCad separates the symbol and the footprint deliberately. A symbol is a schematic abstraction: it captures the electrical interface of a component (pin numbers, names, and logical grouping) without encoding anything about physical form. The same NPN transistor circuit can be populated with a SOT-23 device or a TO-92 device — the symbol is identical, only the footprint differs.
A footprint is the physical land pattern on the PCB: the copper pads, their size and spacing, the courtyard boundary, and optionally a silkscreen outline and a 3D model reference. It is what the fabrication house and assembler actually use.
Keeping them separate means you can reuse the same schematic symbol across multiple package variants and swap footprints if a part goes out of stock and you need an equivalent in a different package. The association between a symbol and its footprint is stored per-component in the schematic, not hardcoded into the symbol.
KiCad uses specific file extensions for each: .kicad_sym files are symbol libraries, and .kicad_mod files are individual footprints. Footprint libraries are directories with a .pretty extension containing .kicad_mod files.
Finding Community Libraries
Before creating a part from scratch, check whether someone has already done the work. Several reliable sources exist:
- Distributor product pages — Mouser, Digi-Key, LCSC, and Big Component Sales often link a KiCad library directly on the component page. Check the Documents or CAD Models section first.
- SnapEDA — a large community repository indexed by part number. Search by MPN. Downloads come as a zip containing a
.kicad_symand a.kicad_modfile. Quality varies; treat downloaded footprints as a starting point and verify key dimensions against the datasheet. - SamacSys — a similar service with a KiCad plugin for direct import. Sometimes has better coverage for industrial and connector parts.
- Manufacturer websites — large semiconductor companies sometimes publish KiCad libraries for their product families. Check here before going to a community aggregator.
Community libraries are a practical shortcut, but the symbol style will often differ from KiCad's built-in convention, and the data may not have been verified against a real build. Always cross-check critical pad dimensions against the datasheet before releasing a design for manufacture.
Installing a Downloaded Library
Once you have a symbol and footprint, you need to register them with KiCad. Move the downloaded files to a stable location on disk first — a dedicated directory for custom parts works well. Do not leave them in your downloads folder where they could be deleted or moved.
- Symbol: open the Schematic Editor, go to Preferences → Manage Symbol Libraries, and add the
.kicad_symfile. If you want the library available in all projects, add it to the Global table; for a project-specific part, use the Project table. - Footprint: open the PCB Editor or Footprint Editor, go to Preferences → Manage Footprint Libraries, and add the
.prettydirectory. KiCad requires footprint libraries to be.prettydirectories, not individual files.
Once registered, the library is immediately available in the Add Symbol dialog and the Footprint Browser. No restart required.
Making Custom Symbols & Footprints
When to Make Your Own
Build your own part when the component does not appear in any community library, when the downloaded footprint has suspicious or unverified dimensions, or when the part is mechanically critical — a board-edge connector, a mounting boss, a custom connector housing — and getting the land pattern exactly right matters more than saving time.
For standard passives in common packages (0402, 0603, 0805 resistors and capacitors; SOT-23; SOD-123) the KiCad built-in footprints are reliable and IPC-compliant. Use them. Do not recreate them.
Creating a Custom Symbol
Open the Symbol Editor from the KiCad project window. Create or select a library to save into: File → New Library, then File → New Symbol. Name the symbol after the component or part family.
Draw the graphical body (typically a rectangle) and add pins on the outside. Each pin has a number and a name. The pin number must exactly match the physical pin numbering in the datasheet — this is the link KiCad uses to connect symbol pins to footprint pads. Pin function type (input, output, bidirectional, power) also matters here because it drives the Electrical Rules Check (ERC).
Fill in the component properties: Reference (the prefix — U for ICs, R for resistors, J for connectors), Value, and the Footprint field. Pre-assigning the footprint in the symbol means every instance you place in a schematic already has the correct land pattern linked.
Creating a Custom Footprint from a Datasheet
Always start with the datasheet. Look for the package drawing, usually in a section titled "Package Dimensions" or "Mechanical Data". Pull out these values before opening KiCad:
- Pin pitch — center-to-center distance between adjacent pins
- Pad dimensions — the land pattern recommendation, if the datasheet provides one (IPC-compliant datasheets usually do); otherwise calculate from lead dimensions
- Body outline dimensions — for the silkscreen and courtyard
- Pin 1 location — which corner or edge is pin 1, and how it is marked
Open the Footprint Editor and create a new footprint. Add pads with the pad tool. Set each pad's number to match the corresponding pin number in your symbol. Set pad size and shape from the datasheet land pattern recommendation.
Add a courtyard on the F.Courtyard layer: a closed rectangle or polygon enclosing the entire component including pads, with at least 0.25 mm of margin on all sides (0.5 mm for parts that require rework access). The courtyard defines the keep-out zone used by the DRC to catch component overlaps.
Add a body outline on F.Silkscreen and include a pin 1 indicator: a chamfered corner, a dot, or a short line segment adjacent to pad 1. This is what an assembler uses to orient the component.
Associating a Symbol with a Footprint
If the footprint was not pre-assigned in the symbol, assign it in the schematic: double-click a placed symbol to open its properties, click the library browser icon in the Footprint field, and navigate to the footprint. The assignment is stored in the schematic and flows to the PCB editor when you run Update PCB from Schematic.
After associating, do a quick sanity check: open the 3D viewer and confirm the component body orientation and pin 1 location look correct. For through-hole parts, verify the drill diameter matches the lead diameter with at least 0.15 mm of clearance. A mirrored or rotated footprint caught before sending files to the fabrication house costs nothing. The same mistake caught after assembly costs time and money.