Overview
Footprints are managed separately from schematic symbols, allowing one symbol to be used with multiple package variants. The footprint system is built around theFOOTPRINT class (source/pcbnew/footprint.h:25).
Footprint Structure
FOOTPRINT Class
Footprint Components
- Pads
- Silkscreen
- Courtyard
- Fabrication
Solderable connection points:
SMD
Surface mount pads
Through-Hole
Plated holes
NPTH
Non-plated holes
Connector
Edge connectors
Creating Footprints
Set Grid and Units
Configure appropriate grid settings:
- Imperial: 50 mils or 25 mils for THT
- Metric: 0.5mm or 0.25mm for SMD
- Match datasheet measurement units
Draw Silkscreen
Add component outline on F.SilkS (or B.SilkS for bottom):
- Keep silkscreen clear of pads (0.2mm minimum)
- Add pin 1 indicator (dot, notch, or line)
- Draw component body outline
- Avoid placing over copper
Define Courtyard
Draw courtyard on F.CrtYd layer:
- 0.25mm clearance for standard components
- 0.5mm for large components
- Must be continuous closed polygon
- Used for placement collision detection
Add Fab Layer Graphics
Create manufacturing reference on F.Fab:
- Exact component dimensions
- All pad numbers
- True component outline
- Pin 1 indicator
Pad Properties
Pad Shapes
Circle
Round pads for THT and vias
Rectangle
Square pads, often for pin 1
Oval
Elongated pads for pin headers
Rounded Rectangle
Modern SMD style with rounded corners
Trapezoid
Angled pads for specialized packages
Custom
Arbitrary polygon shapes
Pad Types
Standard through-hole component pad with copper on all layers and plated drill hole.
Pad on surface layer only, no drill hole. Used for SMT components.
Mechanical mounting hole without copper plating.
Pad at board edge for card-edge connectors.
Thermal Relief
Pads in copper pours can use thermal relief patterns:- Solid: Full connection to plane (hard to solder)
- Thermal Relief: Spoke pattern (easier soldering, standard)
- None: No connection to plane
Footprint Variants
Footprints can store variant-specific information:Variants allow the same footprint to have different properties in different assembly configurations, synchronized with schematic variants.
Library Management
Library Tables
Footprint libraries are defined in fp-lib-table files:Pretty Format
Footprints are stored in .kicad_mod files within .pretty directories:Footprint Wizards
Automate footprint generation for standard packages:IPC Standards
Follow IPC-7351 standards for land pattern design:- IPC-7351A: Surface mount land patterns
- IPC-7251: Through-hole land patterns
- IPC-2221: Generic PCB design standards
Density Levels
- Most (M)
- Nominal (N)
- Least (L)
Maximum land pattern for hand assembly
- Larger pads for easier soldering
- Relaxed tolerances
- Better thermal relief
Best Practices
Pad Design
Pad Design
- Match pad numbers to schematic pin numbers exactly
- Use IPC-7351 calculator for SMD pad sizes
- Add 10-15% to drill size for plating allowance on PTH
- Use rounded rectangle pads for modern SMD footprints
- Ensure paste layer coverage for good solder joints
Silkscreen
Silkscreen
- Minimum line width: 0.15mm (0.006”)
- Minimum text height: 0.8mm (0.031”)
- Keep 0.2mm clearance from pads
- Add clear pin 1 indicator
- Include reference designator
Courtyard
Courtyard
- Always draw continuous closed polygon
- Use 0.25mm grid for courtyard lines
- Standard clearance: 0.25mm for small parts, 0.5mm for large
- Include component height in 3D view
Documentation
Documentation
- Add datasheet link in footprint properties
- Include package name in description
- Note any special requirements (orientation, height limits)
- Document pin numbering scheme for complex packages
Footprint Testing
Validate footprints before use:- Visual inspection in 3D viewer
- Courtyard check for overlaps
- DRC compliance with your design rules
- Print to scale and compare with actual component
- Test assembly on prototype board
Source Code References
Next Steps
PCB Layout
Use footprints in your PCB design
3D Models
Associate 3D models with footprints
Symbol Libraries
Link symbols to footprints
Design Rules
Configure footprint constraints