Searching for footprints....should it be this hard?


Finding the footprint for a common SMBJ3V3 took me a lot of time. I think it should not, so I’m spending even more time documenting this. (KiCad V5.0.0)

How did I search for a footprint? For starters, I have the name DO-214AA (a.k.a SMB) of what I am looking for.

From ‘pcbnew’ GUI, I click on the icon for Footprint Viewer (the other likely candidate is the icon for Footprint Editor, which I disregard, as I have no plan to edit footprints).

That opens a popup dialog titled “Library Browser” (It is focussed on some ‘current library’ e.g. a Connector library. And there is a list of connector footprints). But importantly, I see no place where I can type in a search keyword like DO-214AA or any such.

No icons for search. Ctlr-F doesn’t do anything. So pick on the likely sounding ‘Select Footprint to browse’ icon.

Yet another dialog pops up (oops!). But it looks promising, I can type in 214AA and hit the search. But I get nothing. Type in DO for a wider and hopeful search and try again, but nothing. Hit the all-time hope-inducing “List All” and it pops up yet another dialog! (These are all parts from the current connector library). oops oops.

Now it strikes me that my target also goes by the alias SMB, so I repeat the search with SMB. Nothing turns up.

Why? Because the search is implicitly limited to the current library (Connectors).

Having figured that out , I wise up and make Diode_SMD my current library, and there, a keyword search for SMB takes me to D_SMB footprint. OK, great!

Opening this footprint under the footprint editor, I see (under properties) that the “Keywords” property already has the value “Diode SMB (DO-214AA)”. Now, shouldn’ta keyword search for 214AA match that? It does not.

Footprints should ideally support multiple names, aliases (if SMB==DO-2014AA is two being company, we also have crowds, SC-88 == SOT-363 == SC-70-6 …)

While I am documenting this, another observation: The icons used for ‘Open Footprint Editor’, and that for ‘Select Footprint to Browse’ as well for ‘New Footprint’ (in Footprint Editor) are all the same. I think we can have better usability in the UI by having distinct icons.

With the fond hope that some devs find this useful!


This all will be easier in version 5.1. That version will bring the tree style sidebar with the search field on the top like it is done for the symbol editor of version 5.0


Great! Will 5.1 support multiple aliases for footprints (like SC-88 == SOT-363 == SC-70-6)? If so I hope the search function will span all alias names and keywords.

For 5.0 wildcard matching seems to work in Symbol search, so I guess footprint search in 5.1 will be similar.


That would require changes to the file format. This can only happen on a major update. Meaning the next chance would be version 6 -> At least two years from now. (If you get the devs to buy into this idea)


OK… Meanwhile, I found that (arguably) the best search / browse facility for footprints in KiCad V5.0 is in the “Assign Footprints”" dialog. Here you can filter by pin count (or not), by keyword text (or not), by selected library (or not) etc, and it is very flexible, with an option to view the footprint (though in yet another floating pop-up window/dialog).

However, when you want to choose a footprint from the “Properties…” menus in EEschema, this dialog is not shown and one has to type in text, which is where the real pain of searching begins. My suggestion is that this ‘Assign Footprints’ dialog could be wired to the existing ‘Browse Footprints’ button under the ‘Symbol Properties’ dialog, and it will make the task so much easier and the UI a bit more consistent.


This used to be known as the CvPcb tool.

Some Devs don’t like it very well, and it has been put on the path to phase out.

I still think that this tool, with a new name, could have been made a really great thing.

Neatest thing is that with CvPcb is that if you are working out your design, and you find that a physical part has cost/space/thermal issues, the schematic does not really have to change much. And, if there are many parts, then CvPcb can change the footprint association for all of them.

If one of the Devs would permanently dock the Footprint viewer onto CvPcb I think it would gain favor over the currently pushed methods.


Could you create a wish list bug report for that? I would vote for it. I agree CvPcb should be developed further rather than abandoned.


And, this SUCKS in the Symbol Editor of V5.0.0 at this time (Windoze version with my OS as Win7_Pro).


You have no idea how the security of different online accounts affects that operation by me; I should have used a different… and a different… and a different…

I hope that perhaps another forum member will be willing to take a small bit of time to acknowledge this thread and post it to the Dev Mailing List.


I do not think any dev wants to get rid of CvPcb. It will be there to stay. (Where did you get that info that CvPcb should be phased out? Extraordinary claims need extraordinary evidence!)

It is just that some users do not like the workflow normally connected to the use of CvPcb. (Generic symbols that get connected to generic footprints at the end of the schematic design process.)
For these users there is the fully specified symbol workflow. (specialized symbol pre connected to the correct footprint at the library level. This also allows the inclusion of more info for BOM creation.)

In my mind both workflows have their merits. However generic symbols really only make sense for generic parts like resistors. Less so for parts like micro processors. (So like in a lot of cases, a mix of different things is what is best.)

A lot of info to go on here. Will help a lot of people. (Especially devs)


Maybe we can make a KiCad user footprint&symbol repository, so everyone can upload their drawings of footprints without going through review process required to get your drawings to official KiCad footprint repositories on GitHub.


The idea is noble, but good luck with trying that in practice. First, people mostly won’t bother even when it’s easier. Second, the quality will be low and most of those who know how to make their own parts won’t even bother looking there.


Several individuals have already posted KiCAD symbols and footprints to their personal web pages, GitHub pages, and even to threads on this Forum. As you might expect, some of these are fully compliant with KLC, others fall short in minor ways, others have significant shortcomings and a few are almost unusable. You can usually find these files by seeding a search engine with the manufacturer’s part number plus the term “KiCAD”, and evaluate the results to determine suitability for your particular project.



Others have mentioned general places to search for footprints and the likely variable quality of these.
As for a single site to refer to, I have found this Github repo which appears to have the same aims as you were proposing. It seems to be current and has been updated recently. The biggest task will be actually finding what you want and checking that it is actually accurate - you may well find that this takes you longer than drawing the footprint yourself …


I using grep to search for symbols, and footprint… it very fast and easy like:


I did this once only to find out the only thing that existed was a link to documentation for some reason.


I would be hesitant to trust a part that is in a random library without any verification. It doesn’t take a lot of error in a footprint for a part to not fit on a PCB any more. I have seen the diligence of the librarians first-hand when submitting my own parts to the library, and it goes a long way to reassuring me that a part I find in there, will match the datasheet and the delivered physical part.


The standard advice here is ‘trust but verify’ and them dump the verified part into a personal lib so you don’t have to verify again.


it would be VERY useful if such kind of “on field verification” could be feed back to the part itself on the public repo, so the next user could give (more) trust to parts with higher verification count…


This comes up all the time. I just don’t think it is worth investing resources into such a system. A footprint can be fully ok for somebody handsoldering the part. (Meaning they will give it a high score) But somebody who wants to use it for automatic processes can not necessarily use it. How would you include this information? (There is even a difference between “used it successfully in a prototype” and “used the footprint in series production”.)

It all boils down to a simple question: “Do we want to have a library with many parts of mixed quality or do we want a smaller library with an extremely high quality that can be trusted by users” (The library team decided we want an extremely high standard for parts in the official lib. Higher than needed for most users.)