+++
brief = "Footprint filters must match all appropriate footprints. They should be designed to result in no false suggestions."
+++

Footprint filters are used to help match appropriate footprints to a given symbol. This is important even for _fully specified_ symbols (symbols with only one matching footprint), as there still may be multiple compatible footprints with different variants or options (e.g. `_HandSoldering`, `_Heatsink`, `_ThermalVias`).

Footprint filters use wildcard pattern matching, and allow the following wildcards:

* `*` - Match zero or many characters
* `?` - Match zero or one characters

The library name can be used as a filter criterium. The delimiter between library and footprint filtering is `:`

Filter conventions:

. Filters must end with a `*` wildcard to allow matching of modified footprint suffixes
. Filters must match the dimensional information (where required) to be as specific as necessary:
* `DIP*W7.62mm*` to match `DIP-22_W7.62mm` but not `DIP-22_W9.3mm`
* Neither the size of the exposed pad nor the size of the mask cutout are included.
. Filters must not contain the pin count if the pin-count in the symbol matches the pin count in the footprint. In those cases the footprint is matched by KiCad's pin count filter. If not all pins are present in the symbol (e.g. NC-pins) the pin-count has to be part of the footprint filter (see link:/libraries/klc/S4.5[requirements for NC pins]). Then e.g. `SOT?23?5` might be used instead of simply `SOT?23*` to match `SOT-23-5`.
* Special pin specifiers are always included. Meaning the specifier for Exposed pads `EP`, Mounting pad `MP` and Shield `SH` including their count must be included if the symbol uses these pins. (Filter for QFN-16-1EP_3x3mm_P0.5mm_EP1.8x1.8mm would be `QFN*1EP*3x3mm*P0.5mm*`)
. By default, the footprint search does _not_ include the name of the footprint library. To force the library name to be included, add the `:` (colon) character to the filter. Text appearing before the `:` will match the library name. Text appearing after the `:` will match the footprint name.
* `Connector*:*Pitch?1.25mm*` will match any footprint with '1.25mm' pitch, only in libraries that begin with the text 'Connector'

Footprint filters can be set in the *Footprint Filter* tab in the *Symbol Properties* window.

{{< klcimg src="S5.2a" title="Footprint filter tab in Symbol Properties dialog" >}}
