Resistors missing, newbie questions

Senior EE here but first time KiCad user. I have used CADint, Altium and CADSTAR before.

Running Version: (5.1.9)-1, release build under Windows 10.

I have managed to add components to an external folder and add it to KiCad from Library Loader (Mouser) and start a PCB with forward annotation/ECO update and without issues, but where are the resistors? I find none in the library. I did a search and found this:
Where are the resistors? - Schematic / Library Symbols - KiCad.info Forums

Device.lib is listed as ${KICAD_SYMBOL_DIR}/Device.lib (and loaded?).

But no luck. How can I fix this?

Newbie questions:
In the schematic editor, have I understood it correctly it’s click the op-amp symbol, click somewhere in the schematic, select the component, then place it? Not click the symbol, the component dialog opens, choose a component and then place it?

Is there no way in the PCB editor to move the origo? Do I need to start my design in the upper left hand corner and draw all over the default template in order to place components from a known coordinate system?

KiCad uses generic schematic symbols for resistors. This means there are just a handful of different resistor types for schematic symbols, and these are in the “device” library.

To add a resistor to your schematic just type a (for Add) and this pops up the “Choose Symbol” dialog, and then start typing what you want: “resist…”.

euhm, oops. There may be 100+ different resistor types (Inclusive thermistor, pot’s, multi-resitor array’s, etc. I almost exclusively use the simple “R”. “R_Small” is a bit smaller, but the value text does not fit in the rectangle so you loose room there, which makes it mostly useless.

There will be in v6 later this year, or now in the unstable development version 5.99 (nightly builds) if you are adventurous. Coordinate system, grid and origins in Pcbnew (especially version 5.99)

No, but you can move PCB.
I have edited (in 5.1.9) the Page layout (used then in File-Page Settings) to contain only small cross around 0,0 point and place my symmetrical PCBs so that point 0,0 is in the PCB middle.
I’d like to have empty page layout but if I make it empty the default frame is used.

1 Like

Thanks! But how do a choose a particular value and component size?

Thank you. I’m not that adventurous :slight_smile: I’ll wait for 6.00 to be released.

First place a resistor in the schematic, then hover over it, press v for Value, then enter a number. For KiCad it’s just a text string. So in special cases you can also enter something like “DNP” (Do Not Place) in the value field.

If you hover over any schematic symbol and press e for edit, you get an overview of all properties of that schematic symbol, and can also change them.

Yet another way to change the value is with: Eeschema / Tools / Edit Symbol Fields.

I use the other way.
I have my own libraries containing all resistors I use (there is one symbol with many aliases) so selecting the element from library I get at once value and footprint.
In past (not KiCad) I used to have size in name (1k was 0603, 1k_4 was 1k 0402). In KiCad (because I can’t use Univers Condensed font) I have the same symbol 1k for both 0603 and 0402. To do this I had to have few libraries with resistors.
Each alias can have its own description so adding (hotkey a) element to schematic I see exactly what I am adding.
That way I skip the stage of footprint selection.

Sure, but maintaining such libraries is more work than footprint assignment.

A trick I normally use is to assign a footprint to the first resistor I put on a PCB, and when I need more resistors I just make a copy of an existing resitor, which also copies the footprint field.

3 Likes

Agree. But you always have something for something.
To skip footprint selection was not my goal. It is only the side effect.
My goals to reach were:

  • first (previous century) - to limit values I use to the values we store, and select new one only when really needed. I just knew that if I have the element in library then we already use it. We had half-automat to put elements at PCB with limited number of drawers and wonted to not have to change their contents when changing PCB type we assemble. Dumping the contents back into the pouches can be a source of errors.
  • second to protect myself against bugs by selecting wrong footprint. In that subject uF capacitors are more important as some value/voltage combinations not fit in 0603. I just prefer to select the needed footprint once and then be sure that if I have the element in library then I can use it not looking for its datasheet (applies also to ICs).

I simply decided that achieving these goals is more important than the greater work put into managing the libraries. Typically we order the production serie without doing prototypes (we use several PCBs from production to work with them as with prototypes). Bug in footprint selection could be noticed after the PCBs are ordered.

@Piotr. So I assume you are among the people who would appreciate an integrated database system in KiCad. There are some rumors this subject may get attention in KiCad V7. But it’s not a “beginners subject”.

I have organised what I need with OpenOffice spreadsheet many years ago. I don’t think I need anything more.

Thanks! A bit backwards from what I’m used to, but I’ll adapt.

Does not compute.
Why would entering a text string in a box be “backwards”?

A long time ago I tried eagle. My first schematic had some 0.2Ohm shunt resistors in it, and after scrolling down a long list of values, it was not among them, and I could not find a way to “normally” enter a value. That is when I moved on and discovered KiCad.

CADstar for instance requires you to select a specific component with a value assigned to it, unless you create a generic R and “wiggle it” somehow. I’m not saying either method is correct or wrong, just different from what I’m used to.

You can make a library that has a specialized symbol for every resistor you have in stock. That would allow already assiging BOM information as well as the correct footpritn in the library. It is however unfeasible for the official lib to be made that way because there are simply way too many passives out there (you will most likely only need a few 100 symbols while the official lib might need a few orders of magnitude more and would most likely still not have everything needed to cover all users)


To be honest i personally have just 4 symbols for resistors in my personal lib. One each for 0603, 0805 and 0402 pre assigned (as well as my partial house part number that is only missing the code representing the value)

Plus one for special resistors (shunt/power/high precission/ …). This symbol is mostly there as i have a common prefix for this product groups in my HPN and this makes filling out the info for BOM creation easier (I also have a short explanation about the HPN syntax in the description of the symbol)

KiCad lets you choose whether you want to use “generic” or “fully specified” symbols.
The generic symbols are sufficient for lots of people, and they are very easy and flexible to use.

If you want “fully specified” symbols for resistors, then the best choice is probably to write a (python) script to generate such a library from a few tables with data.

Every now and then a question pops up about "fully integrated part management with a database of preferred parts, but such a thing is not (yet) integrated in KiCad. There are also many different database systems, which suggest custom code to match the (existing) database with KiCad’s library system. (I’m just rambling a bit, this is not really my piece of cake).

A simple intermediate way is to start with your first KiCad project and just fill in the Footprints and Values. And then, at a later stage you can create and maintain your own personal libraries with parts you’ve already used.