The KiCad libraries are organized in repositories at the KiCad organization on GitHub. User contributions to these libraries are greatly appreciated, whether it is improving existing components or creating new ones.
To contribute to the KiCad libraries, submit a pull request on GitHub for the relevant repository.
If you are new to GitHub, please check out this guide Contributing to Open Source on GitHub before you start.
The KiCad libraries are hosted on GitHub - users can submit their contributions using the Pull Request mechanism. Instructions for submitting a pull request are provided below.
If you do not have one, create an account on GitHub
Fork the repository you wish to contribute to
Clone your newly created fork to your local machine
Create a new branch in your local repository. This ensures that any local changes are not mixed with the master copy of the library until they are checked and merged by a librarian.
Perform any necessary modifications to the library repository. Refer to the KLC for contribution guidelines.
Commit your changes to the local repository, with a message describing the changes you have made. Complex changes may require multiple commits.
Push your local changes to the GitHub remote.
Create a pull request (PR) to merge your branch into the KiCad libraries. Include links to reference documents (e.g. datasheets) in the comments, in addition to a description of the changes you have made.
A librarian will review the changes - discussion and further work may be required.
If further changes are needed, do not create a new branch. Simply make any further changes to the same branch, and push these changes upstream. They will be automatically added to the PR.
It is very helpful to the library team if you can include a description of your contribution and also a screenshot of your contributed file(s) (symbols / footprints / models).
When creating/editing/fixing a symbol or footprint a set of conventions should be followed. They are the KiCad Library Convention, or KLC for short. It is important the users are familiar with the KLC before making a contribution.
The KiCad librarian team have also developed a set of helper scripts written in Python which users can use to check their contributions against KLC guidelines before submitting.
EDA library elements can be highly repetitive, and can benefit greatly from scripting tools. In fact, many of the components in the KiCad libraries have been scripted using tools developed by the KiCad community.
kicad-footprint-generator is a very comprehensive footprint generation tool written in Python. The script toolset contains comprehensive examples and a large array of scripts used to generate many footprints that can be found in the KiCad libraries.
kicad-3d-models-in-freecad is a scripting toolset which allows 3D models to be generated parametrically using Python. It uses the CadQuery module from within FreeCAD (both of which are required to use the scripts).
If the 'pull request' world is too small for you, feel invited to join the librarians team. Contact the librarians team leader by sending an email to the mailing list telling about your interest to join us.
Currently KiCad librarians team counts with just a few people against a lot of pull requests and work to do, having your help would be very appreciated.