Please comment on this library scheme

Reading the manual is helpful, as is practice.

My current frustration is dealing with discrete components. I’ve ventured off into creating my own resistor and capacitor symbols that include footprints.

My Resistor symbol library is made up of symbols named as follows:

Resistor-0201
Resistor-0402
Resistor-0805
Resistor-1206
etc

This saves me the trouble of having to configure each resistor’s footprint manually.

Is there a better way?

I also find it useful to edit Ref and Value sizes and positions (disabling automatic positioning)
image

How do you know the resistor sizes when you’re drawing the schematic?

Some people may plan ahead. :slight_smile:

True, but that’s more than planning. It’s… visionary!

Pretty easy in my experience - everything will be a standard size unless it has special requirements. For example, most things at work default to 0402 unless we think we will need to rework them (for example, if the circuit needs to be tuned) in which case we use 0603. Then we adjust for special requirements (high power rating needed, or something like that). Same thing for personal projects, just normally defaulting to 0603 unless it needs to be very compact.

@craftyjon, that’s pretty much my experience as well, but it’s in no way a universal rule. My “How do you know…” question was in no way frivolous.

@David_Weber: I use a completely different approach. Instead of bloating my library with more and more symbols, I simply use the “R” symbol from my “Devices” library.

I place one “R” on the sheet and edit it as needed, adding the footprint, perhaps data sheet, show pin number etc.
When it’s exactly as I want it, I simply use the “Duplicate” command (Ctrl+D) to place additional (and identical) symbols on the schematic. Reference numbers increment automatically.

I do the same with caps etc.

Simple and fast, also when scanning the symbol library. You only need to find “R” or “C”…

Until you move to a database, in which case every resistor size and value is a different part :slight_smile:
Which is necessary for a db, but changing a resistor or cap value becomes a symbol replacement and not just editing a value. I love the database though.

The very best way is the way that suits you. :smiley:

Caveat: I’m a retired, strictly hobby, 70 year old these days. I only use personal libraries, but find Kicad libraries indispensable for copying and modifying symbols and footprints for my libraries.

I started with your method, but found I only use 402s, 603s and high wattage THTs.
Capacitors I found impossible to categorize. Likewise diodes, transistors, ICs etc.

My normal workflow is to place a 603 res, cap, diode, inductor, Gnd, V+, etc. on the sheet then duplicate everything until I know I have more than I need for the project. I then create anything extra needed. eg. transformers.
When the wires and symbols are located to my satisfaction, I then change any R footprints from 603 to whatever, place footprints to everything else then annotate.

I do this also, but find I still tend to rearrange after the annotation.

I don’t think a using a db does necessitate doing it this way. Though the db connection is a bit immature.

Don’t know if better, but certainly different. I have described it in past:

The key information:
I use rule - no edition of symbol allowed at schematic. That ensures that I will use only elements I previously accepted as ‘to be used’. In past, when we were assembling our PCBs ourselves it helped to keep our warehouse not rise to much as before using any new value I had to think if I really need it. Now as we use outsource it is ‘not our problem’ how many values contract manufacturer have to have :slight_smile: , but the rule allows me to avoid changing for example 1uF/50V into 10uF/50V forgetting to change footprint at once.
I have in library each resistor value I use (in V5 all values were aliases to one part, with conversion to V6 it was automatically converted into symbols derived from one).
To be able to have the same name of resistors (like 1k) for different sizes I have to have several libraries for resistors (it is described there).

I probably edited sizes once (when defining my library with KiCad V4) and as each new symbol I start from ‘Save as’ I don’t know what are the standard sizes.

It is the schematic drawing time when I think how much power will be dissipated in certain resistor so I know what size to use. Don’t you think it is easier to see it at schematic then at PCB?

I didn’t know I was a visionary :slight_smile:

Are you @eelik or @Piotr? You’ve got me confused. Double User IDs?

Or two visionaries?
Great minds think alike?

I also turn off field autoplacement to keep the values of the resistors inside the symbols, but I do use the default symbol from KiCad’s “Device” library. I very rarely move the value field of resistors (only for very special resistors, where the value field does not fit inside the resistor itself), but I do move the RefDes around for nearly any resistor to fit in the schematic.

image

I also do not see much use for pin numbers for resistors. I do like the short leads of the default resistors. showing pin numbers would necessitate making the pins longer. The default symbols fit nicely on a 300mil pin to pin size, and making rows of them (output drivers for 7-segment display in the example) is also very clear.

For the footprints, I do the same as jmk. Usually I assign a footprint to the first resistor I place on the schematic, and I make copies of that for all other resistors. Hovering the mouse over a resistor and pressing [Ctrl + d] is quicker then looking up a resistor in the symbol browser.

But even if I did not do this (or want to change resistor size later) this can be done in bulk either with: Symbol Editor / Tools / Edit Symbol Fields or with Schematic Editor / Tools / Assign Footprints.

They’re useful when simulating. Otherwise I agree.

I’ve ventured off into creating my own resistor and capacitor symbols that include footprints.

This is the best way. What you can do however, is doing this with a good text editor.
I have also libs for 0603 and 0805. Others I don’t really touch and I find myself defaulting to 0603 in 95% of the time.

With the text editor you can change all footprints at once and with Ctrl C and Ctrl V you can easily copy past new symbols and adjust their values and vendor ID codes.

If I need to add a resistor of lets 33R. I type ‘a’, than I type R_33R_0603 and I have the right resistor. Ready for ordering with smt assembly

Bas

If you want to go to that detail in your libraries, then the database driven library system is a better option.

how does that work? I simply made my own library and used text editor to fix the values, footprint and the vendor ID code. In retrospect it was not that much work.

And for adding symbols. Whether I have to type ‘33R’ in the symbol search bar or in the value field it does not really matter. I have to type 33R somewhere…

If you’re happy with your own method then it’s good. I don’t know much about the database driven libraries. Picking parts is probably not easier, I guess the benefit is if you also need to keep track of inventory, have readily available replacement parts from different brands or vendors.

In the very first schematic I tried to make in eagle I wanted to use a 0.2 Ohm shunt resistor. I had it lying on my desk, and I could not figure out how to assign 0.2Ohm to a resistor in eagle. That annoyance was almost big enough in itself to dismiss eagle and start evaluating the next EDA suite. In eagle, you could only select resistor values from a list, and it was restricted to E12.Having such a list does make sense if the backend translates this to real resistors, together with size and ordering information. And in my ignorance I did not know that back then. In KiCad the value field is just a text string. This fits better with the way I think and thus what I expect. After evaluating KiCad (some 8 years ago), I liked it so much I just stopped evaluating the other programs on my list. And I’m still happy with KiCad.

The Symbol Fields editor is your friend, that’s where I do all my footprint assignments. You can use the grouping controls and mass-assign footprints to multiple components in one step, and you can copy-paste between individual components.