KiCad Tutorial – Create a Schematic Symbol in KiCad

Posted by

KiCad is an open-source electronics design automation suite used for creating schematics and PCBs. It is cross-platform, running on Windows, Linux and macOS. One of the most useful features of KiCad is the ability to create custom schematic symbols for use in your circuits.

In this comprehensive tutorial, we will walk through the entire process of making a custom schematic symbol in KiCad, from setting up your library to designing the symbol graphics. We’ll cover:

  • Creating a new symbol library
  • Setting up the symbol editor
  • Drawing the symbol body and pins
  • Adding graphical elements like text and rectangles
  • Assigning properties like reference prefix and pin names
  • Saving and using the completed symbol

With these steps, you’ll gain the skills to make professional-quality schematic symbols for any component you need in your KiCad projects. Let’s get started!

Creating a New Symbol Library

The first step is to create a new schematic library file (.lib) where your custom symbol will be saved. This keeps things neatly organized compared to dumping everything into the default symbol library.

  1. Launch the KiCad Schematic Editor.
  2. Click on Preferences > Manage Symbol Libraries.
  3. In the Symbol Library Table dialog, click on the “+” button.
  4. Enter a meaningful name for your new library, like “MySymbols”.
  5. Choose where you want the .lib file to be created. Good locations are your project folder or username folder.
  6. Click OK and the new library “.MySymbols” will appear in the table.
  7. Close the Symbol Library Table dialog.

Now you have an empty symbol library ready to accept new symbols.

Setting Up the Symbol Editor

With the library created, we can move on to the Symbol Editor workspace where the symbol graphics are drawn.

  1. Click the Symbol Editor button at the top or go to Tools > Symbol Editor.
  2. In the Select Symbol dialog, change the library dropdown to your new “MySymbols” library.
  3. Enter a name like “MY_AMP” in the Symbol Name field.
  4. Set the Symbol Type to “Normal”.
  5. Click OK to begin editing the new symbol.

The symbol edit workspace will open with a blank canvas and toolbars on the sides. Now we can start designing the schematic graphic.

Drawing the Symbol Body

Most components have some kind of containing shape or outline to visually group the symbol pins together. This is called the symbol body.

The body also serves as the attachment point when placing the component on a schematic sheet. It’s common to use rectangles or circles for the body shape.

To draw a rectangular body:

  1. Select the Rectangle tool on the left toolbar.
  2. Click and drag on the canvas to create the desired rectangle size for the body.
  3. Once placed, the rectangle can be moved or resized by dragging its edges and center handles.
  4. Set the Line Width to a thicker size like 0.5mm to make the body stand out.

For a circular body:

  1. Select the Circle tool on the left toolbar.
  2. Click on the canvas to place the circle, then drag it to size it.
  3. Thicken the line width as desired.

Tip: Hold Shift when resizing to retain proportional dimensions.

The body shape helps identify the component type and is part of its recognizable schematic symbol, so make it appropriately sized.

Adding Symbol Pins

Now we need to add pins to the symbol so it can be connected in a schematic.

  1. Select the Pin tool on the left toolbar.
  2. Click on the right, left or bottom side of the symbol body to add pins.
  3. Drag the pins to space them evenly along the side.
  4. Drag the circular end of each pin to set its wire connection point.


  • Hold Ctrl to toggle grid snapping when placing pins.
  • Hold Alt to drag a duplicate of the last pin placed.
  • Select a pin and use the arrow keys to fine tune its position.

Add pins along each side of the body as needed for the component. Pins can also be placed inside the body.

Annotating Pins with Names and Numbers

The pins need annotations to identify their names and numbers for wiring purposes.

To add pin names:

  1. Select the Text tool on the left toolbar.
  2. Click above the pin, type the name like “IN+” and hit Enter.
  3. Adjust the text size and thickness as desired.

For pin numbers:

  1. Select the Pin Number tool on the left toolbar.
  2. Click on each pin to insert its auto-assigned number.
  3. Adjust the number size, thickness, and position.

Make sure pin names and numbers are legible. Common positions are the end of the pin or just above it.

Adding Graphic Elements

Along with the body and pins, additional graphic elements help identify the symbol’s function. Common elements are:

  • Reference designator prefix (U, R, C etc)
  • Function text (“Op-Amp”, “Buck Converter” etc)
  • Polarity markings (+/-)
  • Pin 1 indicator

To add these:

  1. Use the Text tool to add a reference designator at the top.
  2. Add descriptive text of the component’s function.
  3. Mark polarities by drawing polygons and placing +/- text.
  4. Indicate Pin 1 with a 1 text or triangle symbol.

Place these graphics prominently while keeping a clean layout. The symbol should be identifiable at a glance on a schematic sheet.

Setting Symbol Properties

The last step is to configure the symbol’s properties for proper schematic integration.

  1. With the symbol open, select Edit > Symbol Properties from the menu.
  2. Set the Reference Prefix to the correct letter (U, IC, R etc).
  3. Enter a representative Part Name like “Operational Amplifier”.
  4. Set the pin Name and Number for each pin.
  5. Click OK to save the properties.

The reference prefix will determine where the part appears in component listings. The part name is metadata that can be referenced by design automation tools.

Saving the Completed Symbol

Once all the graphics are drawn and properties set, we just need to save the finished symbol.

  1. Click the disk icon on the toolbar or select File > Save from the menu.
  2. Close the Symbol Editor workspace to return to the Schematic Editor.

The new symbol is now completed and stored in our custom library, ready to be added to schematics.

With these fundamentals, you can create library symbols for any component imaginable for use in your own KiCad projects!

Using Custom Symbols in a Schematic

To use a symbol you’ve created:

  1. Create a new schematic sheet or open an existing sheet.
  2. Click the Component tool and select Add Component in the dialog.
  3. Change the symbol library to your custom one in the component browser.
  4. Find and select your custom symbol to place it on the sheet.
  5. Annotate the symbol with a unique reference designator.
  6. Draw wires to connect its pins as needed in the circuit.

Now your custom part appears alongside default KiCad symbols in the schematic. Whenever you need that component again, the symbol is available in your library for easy reuse.

Tips for Creating Better Symbols

Here are some tips for designing effective schematic symbols in KiCad:

  • Use thick lines and large features for clarity at small scales.
  • Include a legible reference designator at the top.
  • Make pin names readable but keep them short.
  • Align symbols and pins to an invisible grid.
  • Draw symbols in a “flat” view – don’t angle or rotate text.
  • Include basic graphic elements related to the component’s function.
  • Set the reference prefix to match the symbol type.
  • Use consistent line widths, text sizes, and layouts.

By keeping these best practices in mind, you can create clean, usable schematic symbols.

Common Symbol Creation Issues

Here are some common mistakes to avoid when making schematic symbols:

  • Forgetting to assign pin names and numbers in properties.
  • Using low contrast colors like black lines on dark background.
  • Drawing symbols with angled or skewed text.
  • Using thin lines that won’t reproduce well when printed.
  • Cluttering the symbol with excessive text or graphics.
  • Not setting the reference prefix properly.
  • Aligning pins and elements arbitrarily rather than on a grid.

By being aware of these potential issues, you can sidestep them in your own symbols.


This step-by-step guide has taken you through the full process of creating a custom schematic symbol in KiCad – from building a new library to drawing the graphics, annotating pins, setting properties, and saving the completed symbol.

With these skills, you can add professionally-designed custom parts to enhance your KiCad schematics and pave the way for custom PCB layout. Your own library symbols will integrate seamlessly with the standard KiCad component libraries for a unified design experience.

We’ve also covered symbol design best practices and common errors to avoid. By applying these guidelines, you can make easily-recognized, reuseable schematic symbols to represent any type of component.

KiCad’s flexible and open-source approach empowers designers to customize every aspect of their EDA workflow. So leverage the full capabilities of the tool by making your own schematic symbols for the parts you need.

Frequently Asked Questions

Here are some common questions about creating schematic symbols in KiCad:

How do I edit an existing symbol?

Simply open the symbol library, select the symbol name, and click Edit Symbol. This will launch the symbol editor to modify it. Update the graphics, pins, and properties as needed.

Can I copy a symbol from another library?

Yes, open the source symbol library, right-click the symbol, and select Copy Symbol. Then switch to your target library and paste it in. You can then edit the pasted copy.

What line thicknesses should I use?

For visibility, use 0.5mm or thicker lines for the body outline. Text should be 0.15mm to 0.3mm thick. Avoid lines thinner than 0.1mm.

What file formats can KiCad import/export?

KiCad can import symbol libraries in legacy .LIB format. For exporting, symbol libraries use the native .kicad_sym file type. Symbols themselves export as .sym.

How do I delete a symbol I don’t need anymore?

Open the library, right click the symbol name, and select Delete Symbol. This permanently removes it from the library file.