AVR-Method: A KiCAD Library Standard

My personal KiCAD library management workflow, developed over the years, recently written up and extended.

Similar projects worth following
AVR-Method is a KiCAD library standard to follow when creating KiCAD symbol libraries and components. Its a specification of metadata to include with a component to improve assembly, maintenance of designs, and lifecycle management of components. Right now it is a manual process but in the future I will be developing KiCAD plugins to integrate the workflow and certain management features.

 AVR-method A KiCAD Library Standard

My Personal KiCAD Library Management Workflow and practices. A Standard on which
to develop well organized and informative KiCAD libraries.Hackaday Project:

Schematic Symbol Library Specifications

Components should be separated by types into the following categories:
Resistors, Capacitors, Connectors, ICs, and Special.  

 Symbol Metadata

Schematic symbols contain several kinds of metadata. This metadata is for
making the BOM more informative to the PCB assembler. It also is for keeping
track of part lifecycle, cost, function, and information all in one place, the
part symbol itself. All components have the same metadata fields. This keeps the BOM generation simple and consistent. If  given component does not have entry for one of the metadata fields, simply leave the default value of * in place. In the future I'm going to develop a library management tool for that utilizes this metadata system I've developed over the years.

 KiCAD Reserved:

* Reference - the character used for the designator
* Value - displays the library reference name of the part.
* Footprint - displays KiCAD footprint linked to symbol
* Datasheet - URL for the datasheet of part

 AVR-Method Defined:

* Cost QTY:1 - Price in quantity of 1 for the listed vendor
* Cost QTY:1000 - Price in quantity of 1000 for the listed vendor
* Cost QTY:3000 - Price in quantity of 3000 for the listed vendor
* Cost QTY:5000 - Price in quantity of 5000 for the listed vendor
* Cost QTY:10000 - Price in quantity of 10000 for the listed vendor
* MFR - component manufacture
* MFR# -  manufacture part number for Component
* Vendor - vendor of choice for purchasing component
* Vendor # - vendor part number
* Designer -  Design engineer who drew symbol
* Height - component height on PCB, assemblers appreciate this information alot
* Date Created - Date symbol is created and added to library
* Date Modified - the last date on which the symbol was modified in any way
* Lead-Free? - Is the component lead free/RoHS compliant
* RoHS Levels - If so what level(s) of RoHS compliance does it have
* Mounting - SMT or through hole mounting, how component mounts to PCB etc
* Pin Count # - amount of pins on component for applicable parts
* Status - whether or not the component is in active production or discontinued
* Tolerance - tolerance margin of the component value on appplicable components
* Type - Type of component, passive, IC, connector, resistor, cap, etc.
* Voltage -  Voltage rating of the component where applicable
* Package -  component standardized package, 0603 resistors, QFNs, TQFP, etc
* Description - Short Description about the part, usually the Digikey one
* \_Value\_ - For displaying the component value of a passive or IC part number
* Management_ID - AVR-Method unique ID for tracking component lifecycle


Capacitors are contained within their own sub-library, I keep all types of
capacitors in one library, if you have many capacitors of various types it might
be more helpful to have additional sub libraries but find this makes Schematic
capture even longer.


Resistors are contained within their own sub-library, all types in one, I only
use SMT resistors so there isn't much variation aside from size.


All Connectors in one library,

 ICs (Integrated Circuits)

All ICs in one library, if you have a diverse collection perhaps sublibraries for types, but remember cycling through folders is a waste of time that could be better spent drawring the schematic.

 Mounting Holes & Fasteners

All mounting holes of all types, holes for screws of various size, standoffs,PEMS, etc.


The Special category is for PCB mounted components that are out of the ordinary. These parts don't always have to be electrical. A good example is the lens mount for a camera image sensor that has to be board mounted. Another common example would be fiducials for...

Read more »


md - 4.51 kB - 11/21/2018 at 05:22


KiCAD Library templates

x-zip-compressed - 8.95 kB - 11/21/2018 at 05:22


  • First Component

    AVR11/21/2018 at 09:05 0 comments

    Made the first symbol in my new library for all my personal projects. This is a connector thats going on a power distribution board for the robot modules project. Notice how not all the fields are used in this case, thats the point, all symbols have the same metadata fields for consistency even if they don't utilize a given field, this will result in uniform bom generation and nice parsable spreadsheets. 

View project log

Enjoy this project?



Giuseppe wrote 11/23/2018 at 17:31 point

Being in the same boat as Jan I feel it could help through revisions.

One point tho: instead of Res and Caps sub-lib I'd think more on a Passives sub-lib, this way you could fit Res, Caps and Diodes in it, all resistors start with R, caps with C and diodes with D.

My two cents, and keep up!

  Are you sure? yes | no

Jan wrote 11/21/2018 at 15:17 point

Nice! Keeping an eye on this as I just yesterday thought about how I am gonna work with components and their revisions in the future.

My main concern is that I tend to optimize footprints over their lifetime and different PCBs (e.g. changing drill sizes etc.) but do not necessarily want the footprint to change when I open old KiCAD projects.

  Are you sure? yes | no

AVR wrote 11/23/2018 at 17:22 point

My Plan is to make a fork in all my repos with the revision that I choose to fabricate. Going forward I want all my kiCAD projects to call my library repos as git submodules so I can package a snapshot of the library at the same time as the project when I create the fab fork, if that makes sense. 

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates