How to make custom library in KiCad 6.0

HI, I’m new to KiCad and am trying to learn how to make a custom library. I want to make a USB Type-C symbol and footprint but am confused on how to do it. A lot of the video and documentation is based to KiCad 5, not 6. Thanks.

Welcome to this friendly forum!
In short words: V5 docu and vids are still suited to get started. Give it a try, then come back with more detailrd questions.


+1 to @marera: tutorials for Kicad 5 in regards of making your symbols and footprints still work.

Personally, I like the Digikey guide as it covers this exact topic really well (and this is how I learned to do that in Kicad): An Intro to KiCad – Part 1: How PCBs Are Made | DigiKey - YouTube


Don’t forget the FAQ at the top of this page. There are many getting started tutorials most of which are for 5, but making a custom library and making symbols and footprints is the same for 6 as 5.

This is a good one to start:

Thanks for the info guys.

When you start consider:

  • Put the library in a separate location than the standard Kicad files. I have my in a folder under My Documents (Win 10). This way the libraries get backuped with your documents.

  • these are the folders I created:

  • When you do start creating your footprint do something real simple like a single pad. Then save it, then retrieve it. If all goes well then start on your real footprint. I hadn’t done this step and lost a lot of work on my 1st footprint because the library was not setup correctly and I couldn’t save my work.


Yes, it’s an excellent plan to mirror the way that KiCad organises the standard libraries for your own resources as @JohnRob outlines. Also I would suggest that when you make them, you name them all with the same, prefix. For example mine are all JP_xxx e.g. JP_Connectors. This makes it easy to sort and identify your own libraries.

@John_Pateman is right. I went even further and use prefix 1a-……
That way my own libs sort at the top.
In the end it‘s up to you, there is no wrong or right, but it is a good idea to have a plan before you start.

And rather than create a new symbol or footprint or both, use one from an official library and then modify that symbol/footprint.

The method is:
Create your personal library,
Open symbol/footprint editor
Scroll through Kicad libraries (making sure your new personal library is somewhere in the list)
Open a Kicad library (say “device”)
Highlight a symbol/footprint (say a capacitor)
Click “save as”… a window opens.
Change the name of your selected component (if you wish)
Highlight your personal library from the list shown (may need to do some scrolling to find)
Click save
Go to your personal library and if all went well you will find a cap residing there :astonished:

Mess around with the symbol/footprint using the available tools to see what can be done. This is a good way to familiarize yourself before starting your own symbol/footprint.

@marera has a good idea because the libraries are listed in numerical/alphabetical order, so if you name your personal library “Yezzz” you will have a large amount of scrolling every time you wish to use it.

Personally, I use my own libraries most of the time. I have 15 symbol libraries and 10 footprint libraries.


To be honest, the 1a-idea is not mine. Some member of the the forum gave me the hint when I started using KiCad. Just cannt remember who is to honor.

Maybe not, but it still saves a lot of wear and tear on the scroll wheel and the finger :grin:

You can also move personal libraries up and down the list with preferences / manage libraries by using the up & down arrows at the bottom of the library list.
I’m not sure if they stay in place after a kicad library update. I’ve never tried.

The order that they are displayed is as per the symbol-lib-table and the fp-lib-table and should be retained if they are imported when you update.

It is easier to edit these files with a text editor if you want to move lots of stuff around.


You can also use Pin Library in the context menu to mark a library with a star and move it to the top.


In addition as stated above, I add a j_ prefix to all my personal libraries.