This page is OLD. From about 2011. And it is done using an old KiCad. If you haven't already seen the "modern" (Feb 2017/ KiCad 4-0-4) versions of my attempts to help you master creating custom schematic symbols and footprints, work through that first.
Having said that, here's the old material, lightly tweaked…
(This page continues the story of making your own schematic symbols (components). It gets into the useful story of modifying existing schematic symbols.)
This page has been checked to see that confusion in my brain (before 9 November, 2011) about the roles of pin names and pin and pad numbers hasn't led to errors here. I have a page with more on this if you are really curious.
That story began here. Or you can go back to the previous page of this tutorial.
Whew! Now we can slow down to "walking". We have finished the "complicated" "running" that is needed at the start of working on new components on a new KiCad station….
- Established some important folders
- Created our first schematic symbol library, complete with..
- … a "starter" schematic symbol,
- And edited that component, and maybe even made another.
As we can put further schematic symbols in the same .lib file as the one holding our first schematic symbol, we may not need to create another .lib file for a while. If we do, it is done the same way as we created this one.
Creating new schematic symbols is not an uncommon task, and the buttons on the top tool bar give you what you need.
Editing an existing schematic symbol is another thing you will do from time to time. As we had not finished our first schematic symbol before we saved it, we will do some work on it now, using the same technique we would use on any schematic symbol. I recommend that you choose not to use these techniques to change schematic symbols supplied with KiCad or 3rd party sources… Make clones of things you would edit, and tweak the clones.
Whether you need to edit a schematic symbol or not, if it is in a library other than one of the KiCad standard libraries, you will have to make the project aware of the component's .lib file if you want even to use that component in your design. You do that as follows, which is also how you start the "edit component" process….
But first… Leave the library editor?
If, from your work on the previous page, you still have the component library editor open, then close it down.
I just click the red "X" in the window's upper right hand corner. The other standard ways should work just as well. If you've forgotten to save something you should have saved, you will be warned.
From here, we are doing things that we may do time and again, in future projects. Things explained elsewhere were just to start a new schematic symbol library, (a .lib file) where we can keep the definitions of many components. (Don't infer that because schematic symbol libraries live in .lib files that they are the only libraries. Nor that something not in a .lib file can't be a library, or part of one.)
Via eeSchema's menu, tell KiCad to include the new library in this project's work
While I often can't find a "menu" way to do many things I do with buttons, here's a case of the opposite.
Use eeSchema's menu "Preferences | Library". That should give rise to….
Drill (up and) down, until you get to the folder where you saved the new .lib file, double-click on the .lib file's name.
You will be prompted to re-save the project's .pro file. Do so without changing the name.
And you should be back, looking at eeSchema's pretty face.
If you happened to go back to the "add library to project" dialog, the one we were just in, you would find the .lib file you added to the project's "awareness" at the bottom of the list. This is a good place for it. (Although you might argue that moving it to the top of the list makes sense in other ways. A discussion for another day!)
At other times, however, you are going to see nearly the same list of libraries, for instance when using one way of adding components to a schematic. On these occasions, the libraries are listed in alphabetical order, according to their names.
Either way, you can find yourself thinking the library you specified is "missing". Just be sure to look in both places!
We'll get back on track in a moment, but first a digression. Until some helpful feedback from a user, I had here "We'll assume that…"… and the result usual from making assumptions arose. Sigh.
If you are not just finishing the component you started a moment ago, then you need to get yourself back "in". And also, some readers appear to be using these instructions for how simply to use a component they have created… which is fine, even though the instructions were for changing the component.
((What follows about "… insufficient…" may no longer, at 2/17, be a problem.))
If you start eeschema anew, with a new or exisiting schematic, and want to add a component you've made to the schematic, my original instructions appear to be insufficient.
What You Need To Do: You have eeschema open. You're working on a schematic. You want to add to it a component you created, and saved in a place set up by you, to keep "your stuff" separate, as recommended.
When you invoke the "add component", the Component Selection dialog will open. In some cases… especially early in a new project… you will need to start by telling Kicad to use your library with this project. Click the "List All" button. In a perfect world, that would say "List all available libraries in order to add one to your project's repetoire". This is, after all, the "Select component dialog. But components come from libraries, and you don't in every project want everycomponent// you might use in the entire scope of your design work to be underfoot. So you select the library you need, and click OK. (I would disagree with the "one component per library" recommendation, by the way. Which components should go in which libraries is a black art… but one you should work to master.)
You may or may not, at this point, get a "Select Component" dialog. If you do, be sure to select a component before you click the "OK".
The following will work "as it says", if you didn't finish the component a moment ago, and now go back and work on it. This is also what we would do if weeks after creating something we found it needed tweaking. If you are not following exactly that path, I hope that the notes recently concluded give you a successful route in. If not, BrainFyre has helpfully created alternative notes, which, as you will see, were the basis of what I said above… thank you BrainFyre!
End of Digression!
Re-open the (Schematic Symbol/ Part/ Component) Library Editor
(Those are just three names for the same thing. You'll see each of them in at least one place.)
Use the same button as before….
It may well open with your new component already loaded onto the editing "page", in which case, you can just go straight to work on it immediately. But at some point, you will have to tell the component library editor which library you want to work with. You can bring this on by clicking the "Select working library" button, near the left end of the top toolbar….
… which should give rise to something like….
Note that here the libraries are listed in the alphabetical order of their names. A moment ago, we saw them listed in order of their priority in the project. (That "priority" is mostly to do with what the system should do if there is a component called, say "R", in more than one of the libraries "known" to the project.)
To follow along this example, you click on "tmptkb2", and click "OK"… or just double-click on the required component library's name. (Remember that there are also footprint libraries, in .mod files. A parallel system is in place for those, too. Not every .mod file is "known" to every project, any more than every .lib file is.)
If you have more than one component in the library you've selected, you may have to use the "Load component to edit from the current library" button…..
When you have made whatever edits you wish to make, click on "Save current library to disk"….
… you may have to answer some questions. If you do "Update current component in current library" first, it can save you some of the questions… but the extra step is not always necessary.
You must do a "Save current library to disk" before leaving the component library editor (or elect to discard your changes(!), on the way out) before you can quit the editor.
Save your changes and quit the editor now.
You can now carry on using eeSchema to specify your circuit. Your new component is ready for use!
What, by the way, happens if you have….
*Put some components on a schematic…
*And then gone into the component library editor…
*And made some change to the components
Do the already placed instances of that component remain as they were? Do only newly placed components reflect the changes you made?
The former. As soon as you save your changes to the component… even before you leave the component library editor… you may even see any instances of that component on your schematic change immediately, although sometimes the changes are not re-drawn until you return to the eeSchema page, and do a slight "zoom out/ zoom in", to refresh the drawing.
But we haven't given it a footprint!
No, we haven't, have we? We may not need to! This is one of the wonderful features of KiCad. Components get associated with footprints (by CVpcb) on a project by project, ad hoc basis. This flexibility allows all sorts of helpful things… once you "get your head around it".
Let's say that the component you just created is a piezo sounder which is packaged in a cylinder, 12mm wide, with two pins on one end, 5mm apart. KiCad comes with a footprint called "C2V10", which I imagine was for created for a 10v, polarized, capacitor… but it will also do just fine for the piezo sounder I just described….
Anyway… if you DO need a custom footprint for your custom component, you've already read my guide to creating footprints, haven't you? (Way back at the start, I told you it would help you understand the page you are reading now!) ((That course of study was only mandated for the old (before 1/17) version of these pages. See the tutorials menu for paths to enlightenment current now.
That's about it!
A few odds and ends, though….
Adding further new components to a .lib file
Once you have…
- made your project aware of the .lib file
- opened the component library editor, and
- selected the .lib file as the one the editor should work with for the moment…
… you have a startling array of options for new or derivative components. I will leave it to you to discover these options from the pop-up hints on the various buttons.
Until you advance to the more complex topic of devices which have multiple instances of some circuit element held in a single package, for instance a 7400 quad NAND gate, the number of pins on the component should be the same as the number of pads on the footprint. Which "pad" matches up to which "pin" will be determined by the "numbers" (not "names") assigned to the pins (which may be something like "Xy"… bad idea for beginners… but allowed…) and the numbers (not net names) assigned to the pads. If you haven't looked at creating and editing footprints yet… I have some good news for you: It is very like creating and editing components! (Well… sort of good news. Master one, and you've almost mastered the other. Of course the "master one" bit is the catch!)
In the Library Component Editor, you can access the properties of any pin as follows…
1) Be sure the pointer button is "down", i.e. that the pointer tool is selected, you are in "pointer mode".
2) Put the cross hairs on the little circle at the end of the pin in question.
3) Right click, and select "edit pin". (Often.. not always.. pressing "E" will do.)
The entry for "Pin Number" will give the pin's "number". Note that things like "Ip1" are acceptable for pin "number"… but for a given footprint to work with a given component, the component's pins must have the same "numbers" as the footprint's pad's "numbers". The "number" must be fewer than 5 characters long, and may not have spaces in the the characters making up the "number". (KiCad will just truncate things that are too long, and replace spaces with underscores.) The number does not have to end with a digit.
Apologies for all the "bits" thrown at you at the end!
But we got there!