Creating new symbol from schematic

Hi Guys,

is there a way to create a new symbol from an existing schematic?

It happened to me more then once, that after I created a particular part of my design, that I wanted to save it as a symbol to my library so I can reuse it in other designs.

I don’t want to design it all again, to get it into my library.

If there is no such conversion, what would be the best way to reuse certain parts of a schematic for new designs?

Example: If I want to do some raspberry pi shields I don’t want to design the pin headers over and over again.

Thanks for your help

Might help if you could create and upload a sample schematic and cache.lib.
Not quite sure why after you created the symbol it isn’t saved in your custom library. If you right click on the symbol in your schematic click on properties and then edit properties. This should show where that symbol is located. In picture I did this on the pump symbol and it shows symbol Pump_Sprayer and it is located in my custom library which is named Mendy.

To reuse some part of schematic I:

  • run eeschema.exe from KiCad\bin,
  • open the source schematic,
  • copy the interesting part of schematic.
  • open the destination schematic,
  • paste copied part.

I don’t understand why you are writing about designing pin headers over and over again. You should define it once as a library element and just use if needed.

If you have a full install of KiCad, you can have a look at:

KiCad / File / New / Project from template

Among the default templates there is for example "Raspberry Pi - 40 pin Expansion Board

My “User Templates” tab is empty, I’ve never bothered to figure out how to get stuff in there.

Thank you, your answer cleared up my confusion. Thought question referred to an Eeschema schematic which is only module I use, never designed a board. Did find the library and symbol from the template you mentioned.

thanks for all the input.

The Raspi Pinheaders just have been an example I thought everybody could grasp easily.
@paulvdh I found the template, thanks for that.

Since I have a little fussy workflow sometimes, I thought it would be nice to extract parts of an schema into a symbol, without the need to do this specific part again in the symbol editor.

@Piotr I’ll give your solution a try.
Ok, feeling stupid right now, how do you actually copy from a schematic into another. I can “ctrl + c” my selection and paste it in the same schematic file, going to the destination project, it gives a “nothing to paste” message.

Unfortunately there isn’t a level of grouping between symbols and a sheet in a hierarchy. I’ve often thought it would be nice to have subcircuits that could be inserted and the right thing would happen with references and the BoM when instantiated in a larger circuit. They could have associated footprints and 3D models. But it takes a lot of infrastructure in the code to make something like this possible. Right now I’m just hanging out for v6 so that we can reach the next plateau, then start dreaming of the future.

  1. you have to open schematic editor as I have written. Under Windows it is the eeschema.exe file in the KiCad\bin directory.
  2. open in that program (looks a little different than schematic editor opened from KiCad main application window) the source schematic.
  3. select the part of schematic with mouse and then right-click and ‘Copy Block’ (there is Ctrl+C written there so I suppose it also works).
  4. open the destination schematic (in the same program, when I tried to open in second schematic editor instance it didn’t worked).
  5. right-click and ‘Paste’ (probably Ctrl+V also works).

I am using 5.1.6.

This has been discussed before with respect to having a library of existing, vetted, sub-circuit designs (power supplies, amplifiers, etc with all the parts pre-chosen and values pre-calculated).

One method would be to have your own library of schematics that you can copy and use as a hierarchical sheet. I haven’t tested it, but I would think that if all the symbols used are found in your global symbol library list (either the parts that come with KiCad, or your own personal libraries that are configured in the global library table) then you should be able to get away with only copying the schematic file to your project folder and then linking a hierarchical sheet to the schematic file. It would need to be verified that the symbol cache file would be updated with the new symbols used in the new schematic file just by opening it.

I just verified Piotr’s method of using Eeschema in “stand alone mode” to copy stuff between schematics and it works.

Normally, when working on a project, you open Eeschema from the project manager, and the left top corner of Eeschema looks like:

image

When you open Eeschema in “standalone mode” (Directly from your OS, so not from the “Project Manager”.
image

Notice the 2 extra icons for creating a new schematic or opening an existing schematic.

In a similar way you can open multiple PCB’s in Pcbnew with:
Pcbnew / File / Append Board
This can be used for example as a primitive panelisation tool.
At the moment this is very limited though. I do not know of a way to keep the PCB and schematic synchronized with each other when working this way.
It definitely needs “more work”.

See for example https://gitlab.com/kicad/code/kicad/-/issues/2263.

@Piotr ok now I got it. A little clunky but exactly what I was looking for.
Doing this on Linux, but works exactly how you wrote. I can confirm that it is just working if you close the first schema and than open up the destination schema.

@kenyapcomau Totally understand that this takes some more effort to implement, so lets dream together and see whats coming next :slight_smile:

So I think my case can be considered as solved.

Copying between schematics, even between opened projects, works in 5.99, and there’s Paste Special for keeping annotations, too.

Keeping blocks updated with originals is a different thing, but reusable design elements (schematics and pcbs) are in plans for maybe after v6.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.