What is the difference between footprints and symbols?

What are symbols

Symbols abstract the function of a component and communicates the interface of it to both KiCad and the person reading the schematic.

To to this it at least needs to define the connection points for the schematic with so called pins.

It is suggested to add some artwork to the symbol to do this effectively. The easiest symbol is a so called black box symbol. It simply surrounds the symbol with a box with every pin having a meaningful name shown.

For some symbol classes there are standards that define how such symbols could look like. (As with all standards, they are incompatible to each other. Be inspired by the standard that fits you.)

What is a footprint

Footprints define the physical interface between the pcb and the component (The land pattern) and also include documentation information (outline, polarization mark, reference, …)

The land pattern is either directly taken from the datasheet or derived from the components dimensions (including tolerances) via industry standards. (most likely the suggested land pattern is derived from such a standard as well.)

It at least needs to contain all the connection points (called pads) to solder the component to. (Shape and size/ position of the pad should align with what is given in the datasheet.)

Pads define what features appear on copper, mask and paste layer (copper is the area that is covered by copper. mask gives the cutout in the solder mask layer, paste is the cutout of the solder paste stencil used for reflow soldering. More details see this other FAQ topic)

The area where no other component should be placed is communicated via the courtyard area. This area is larger than the combination of pads and part body.

It is beneficial if it also contains an outline of the component body and a pin 1 marker on silk for soldering/debuging. (All of this should be visible after assembly -> meaning the silk outline is larger than the component body.)

Artwork on the fab layer is beneficial if you want to document your board. (At least it should then contain the exact body outline plus a pin 1 marker.)

Connecting symbol to footprint

In kicad the connection is done via the pin number given to the pins in the symbol and the pad number given to the pads in the footprint.
The pin/pad “number” is not necessarily a number. In kicad 4 it can be any string of lenght less than 4. In KiCad 5 this length limitation will be dropped.

The second part of the connection is made via the footprint field of the symbol.
This field can be set either when creating the symbol (fully specified symbol) or later when it is already placed in eeschema. (generic symbols)

For generic symbols there are two ways to select the footprint. Either via the symbol properties dialog/footprint browser or via cvpcb.
(cvpcb can be used to set the footprint fields of all used symbols at once.) More details about how to assign footprints to symbols see this FAQ entry
In KiCad v5 there is also the option to select the footprint via the component chooser. (This is an experimental feature disabled by default.)

Overview of the KiCad data model

In summary: The schematic uses symbols to define the connectivity of the pcb. Every symbol pin is mapped to its footprint pad as part of this connectivity generation.
Footprints are used by pcb_new to define the interface of every device placed on it.

12 Likes
Creating DIP Sockets
Designing the pcb and schematic problem
How does KiCad select Project-Specific over Global Libraries?
Create symbol, create footprint and bind them
Trying to create a PCB with holes
Searching for the symbol of TDA1562
How can you match specific footprint pads to specific schematic symbol nets?
Footprint not finding pads
Beginners Question - Placing Pad for Soldered Wire
Add Library Folder
Circuit symbols and PCB components not on grid
Pin headers are rotated
(Start Here) Frequently Asked Questions
How to change the value of power port?
Looking for QFN68 footprint
Rats nest not updating and schematic components absent from Layout
How does KiCad know which symbol pin represents which pad of the footprint?
Using Arduino_Uno_R3 - CAD newby
Using Arduino_Uno_R3 - CAD newby
Kicad 5.0.2 Module Setup
Footprint for stm32
Doubts when using the LM324
Library management in KiCad version 5
Tutorial: How to make a symbol
KiCad EDA Newb Needs Help Getting Started
TI MSP432 microcontrollers
Why not included footprints for simple resistors
Looking for Tutorial that goes through simple schematic to board
Footprint editor frustration- 15 resistor DIP array
Assign Footprints 'Apply, Save Schematic & Continue' What does it do?
Looking for thru-hole tactile switch with LED
Symbols and footprint for ferrite beads
Help to source, install and manage libraries?
Newbie staring into the deep end of the pool w/ Cvpcb
Tutorial: How to make a footprint (From scratch)?
How do I change path segment?
How do I change path segment?
How to add G6K-2P-Y from github Lib to Layout
BGA pin mapping
Rats nest behavior [resolved]
[Solved] How to link the pads with each other?
Looking for footprint of an SMD oscillator
Netlist issue loading
What kind of symbol to use? (Audio connector)
Can not open .NET file
Connectors_IEC_DIN and correct libraries use
Where find resister (no smd)?
MSK-12C02 switch package
Noob Q... update footprint
High level thinking
Github import. kicad 5.1
Some schematics are getting deleted when I close and open the KiCAD
How to connect a wire to the PCB?
Newb here, library loader, no footprint
Make library active in kicad 5?
How to check dimensions or form factor of a symbol in KiCad lib?
Assigning footprint question