element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
PCB Design, Prototyping and Production
  • Products
  • More
PCB Design, Prototyping and Production
PCB Blogs KiCad Quick Tutorial: Creating Component Symbols
  • Blog
  • Forum
  • Documents
  • Leaderboard
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join PCB Design, Prototyping and Production to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: shabaz
  • Date Created: 28 Jun 2025 8:55 PM Date Created
  • Views 750 views
  • Likes 11 likes
  • Comments 7 comments
  • kicad 8
  • kicad
  • PCB CAD
  • pcb
  • cad
  • circuit diagram
  • schematic
  • kicad 9
Related
Recommended

KiCad Quick Tutorial: Creating Component Symbols

shabaz
shabaz
28 Jun 2025

Table of Contents

  • Getting Started
  • Create a Symbol Library and New Symbol
  • Create Pins, Slow method and Fast method
  • Rearrange Pins
  • Check your Work
  • Drawing a Box and Symbol Properties
  • Consider Symbol Usability
  • Check my Work
  • Video
  • Summary


Ever seen a component you wish to use with KiCad, but you can’t find an existing symbol anywhere? It’s easy to create a custom symbol!

Getting Started

First off, find a diagram you can work from:

image

Next, from the KiCad applications launcher, click on the Symbol Editor, to launch it!

Create a Symbol Library and New Symbol

Create a library to store your custom symbols; I clicked on File->New Library and called it ESP32_Symbol_Library but you could create one with a more general purpose name such as User_Symbols_Library.

Now you’re ready to create a symbol within your library. Right-click on the library name that you just created, and select New Symbol, and give it an appropriate name. You can see all the steps in the screenshots here:

image

Create Pins, Slow method and Fast method

Now you’re ready to create all the individual pins for the symbol! There are several ways to do this, I’ll demonstrate the tedious way first.

Double-click on the new symbol name you just created to make sure it is selected. Then, click in the canvas area and type ‘P’ to add a pin. From the earlier diagram, you know that pin 1 is a 3.3V power output pin, so that’s what you need to populate in the Pin Properties window, then press OK.

image

A pin will be attached to your cursor, just set it down anywhere on the canvas. Then hit ‘P’ again, to move on to the next pin, which is RESET/EN pin 2.

After you’ve done this a few times, your canvas will look as shown in the screenshot below. You can see that the EN/RESET pin was set as an input, and then the next pin (GPIO36) was set to Bidirectional since we don’t know how the user will configure that pin in the microcontroller code.

image

There are a lot of GPIO pins, but for a slight speed-up, just copy-paste the GPIO pin on the canvas, and then double-click each one to edit the pin number and GPIO name. Here’s what it will look like after a while:

image

If you’re getting fed up doing this, then click on Edit->Pin Table to see the following window. Notice it contains all the pins you’ve created so far.

image

Now it’s far quicker. All you have to do is click on the add button highlighted in the screenshot above, and you’ll see a new row appear, with the Number column selected. Type the next pin number there, then press Tab, and the Name column will be highlighted. Type the pin name, and press Tab again. You don’t need to change anything else, so now press Enter, and you’ll see the row is accepted, and the cursor in on the following row Number column. Keep repeating, pressing Tab to step horizontally, and Enter to create a new row. You may need to change from Bidirectional to (say) Power Input or some other selection, when you reach pins that are not GPIO.

Eventually you’ll have a long list! Press OK and you’ll see it all dumped on the canvas.

image

Using that Pin Table method, you’ll be done within five minutes even for a symbol with as many pins as this example has.

If you’ve made mistakes, don’t worry; either try to edit the pin table if that’s what you’ve got open, or, you can always add (by pressing ‘P’) or edit pins (by double-clicking them) directly on the canvas whenever you spot a mistake.

Rearrange Pins

The symbol is currently just a long column of pins on the canvas. To make a decent symbol, we need to move some pins, which entails selection.

Click and drag to draw a shaded pink box around the pins you wish to move. We know the symbol has 19 pins on each side, so I want to move pins 20 to 38 in this example. When you have drawn the pink shaded box, release the mouse button, and you’ll see the selected items have a blue glow around them.

image

Now you can press ‘M’ to move, and all the selected items will be attached to the mouse pointer. Press ‘R’ twice to rotate the pins by 90 and then 180 degrees, then once you’re happy with their position, click to drop the items onto the canvas.

Check your Work

It’s good to visually scan the diagram you’re using as a reference, and double-check you’ve also got all the pins numbered the same, and that all the pin names are appropriate. I count each pin number, to make sure I’ve not missed a pin, or double-entered a pin, and then I check each pin name.

Drawing a Box and Symbol Properties

It’s now going to look more like a symbol! Click on the rectangle icon on the right-side palette, then click once at the top-left where you want one corner, and then click once at the desired bottom-right location, and a rectangular shape will be drawn in blue. Hit the Escape key to exit the rectangular box creation mode. Then, double-click on the box you’ve just drawn, and a properties window will appear. Type 0.254 for the width (this is the standard width for KiCad style component symbol outlines) and then select that you wish the box to be filled with the standard background color for symbols. Then click OK.

image

Click anywhere on the canvas away from the symbol, to deselect the rectangle, and you’ll see that the color will be yellow. The symbol is almost complete. Notice the ‘U’ which is the component reference designator, is in the wrong position. Click once on it to select it, then press M for move, and then move your cursor to position it somewhere more sensible, then click on the mouse to drop it into position.

image

You’re on to the last bits of the symbol creation process now. Go to File->Symbol Properties, and fill in any fields you can. I typically just fill in the highlighted fields below.

image

Finally, press Ctrl-S to save the symbol! (ideally you should have been saving at regular intervals as you went along too, just in case of a software or PC crash).

The symbol is now ready for use within KiCad schematics.

image

Consider Symbol Usability

If you think about it, the created symbol isn’t always ideal, because it contains several ground pins buried between GPIO pins, which will make it awkward to draw a decent schematic. The solution is to create a more logical layout that doesn’t necessarily match the physical component.

To do that, right-click on your symbol in the left-side pane in the Symbol Editor, and select Save Copy As. Type a name such as ESP32-DevKit-V1-logical.

Next, double-click on the new name in the left pane, so that you’re not accidentally modifying the original symbol that you created.

Now you could move pins around, and, for instance, place all the GND pins at the bottom of the symbol (use the M and R keys to move and rotate), and the supply pins at the top. You could also double-click the pins and edit the names to better reflect how you wish to use them. In the screenshot below, I renamed some pins to indicate that they can be used for I2C, SPI and UART.

Use the Text icon in the right-side palette to add some annotations to parts of the symbol if it helps.

image

Check my Work

The symbol library will be stored in a location such as C:\Users\your_user_name\Documents\KiCad\version_number\symbols and will be called ESP32_Symbol_Library.kicad_sym if you used the same library name as I did.

I’ve zipped up and placed the ESP32 symbol library as an attachment to this blog post further below. If you wish to use it, unzip it, and place it at the location mentioned ( C:\Users\your_user_name\Documents\KiCad\version_number\symbols ) and then within the Symbol Editor, click on File -> Add Library, then select Global, then select the file.

image

Another way to do the same thing is to select Preferences -> Manage Symbol Libraries in the Symbol Editor.

Video

For a video demonstration of symbols being created (using the slow method), see the following (forward to 8 minutes 30 seconds for the discussion on symbols):

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

Summary

Creating a new symbol for KiCad entails creating a user symbol library (if you don’t already have one created by yourself before), and then adding a new symbol definition into it. Then, you can drop pins onto the canvas, or bring up the Pin Table for speedily adding many pins to the symbol. You can select, move and rotate pins, and then draw a rectangle and style it to look like a component symbol. Finally, you edit the Symbol Properties with a few symbol attributes and then save your work, and you’re good to go.

The symbol library that was created is attached below (unzip it and then follow the directions in the Check My Work section above).

Thanks for reading!

ESP32_Symbol_Library.zip

  • Sign in to reply

Top Comments

  • shabaz
    shabaz 13 days ago in reply to Matt +1
    Thanks! I have to say, the website these days is a pleasure to use for creating blogs, and it saves me time. The site capabilities are fantastic for writing blugs/tutorials etc. It is miles better than…
  • embeddedguy
    embeddedguy 12 days ago in reply to shabaz

    No, I mean you have video as well. And that is enough.! for someone like me.Slight smile

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • shabaz
    shabaz 12 days ago in reply to embeddedguy

    Hi! I searched around, there's this video online, which is dedicated to symbol creation (I've not watched it all):

    https://www.youtube.com/watch?v=HFPOtqBdjV8&list=PLimTcXK6kSUzTT5V02NmA9vwVjA3je0_Z&index=5

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Matt
    Matt 12 days ago in reply to shabaz

    That's great to hear, thank you for the feedback Slight smile

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • embeddedguy
    embeddedguy 12 days ago in reply to embeddedguy

    Just my thoughts. "It is better to follow the video tutorial for these kinds of tasks than to read it."

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • shabaz
    shabaz 13 days ago in reply to Matt

    Thanks! I have to say, the website these days is a pleasure to use for creating blogs, and it saves me time.

    The site capabilities are fantastic for writing blugs/tutorials etc. It is miles better than GitHub markdown, or Medium. I think it's the best capability on the 'net for engineers who want to write up material.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube