Cannot create component part B without destroying part A

Somebody, please help. KiCAD 4.0.2:

I create a component in eeschema library editor with 2 parts. As soon as I make changes to part A’s body style, then move to part B, part B has the same body style as part A, I can’t make changes to one part, without the other part taking on the changes. I’ve got “all units are not interchangeable” in properties checked and I’ve tried this with “edit pins per part or body style” turned on and off, it makes no difference.

Thanks guys for any help,

Every graphics item in symbol has its own share properties.

If you want to create an other graphics representation for part B, you have to uncheck “Common to all units in component” for every graphics items from part A you don’t want to present in part B.


Sorted - thank you so much. Actually makes the editor very flexible - just didn’t think of it.

Hi @keruseykaryu
is it possible to have i.e. Part A with power pins and Part B (and followings) without (or hidden)?

1 Like

Yes, that could help unclutter a schematic. Which (in my mind) helps the circuit designer communicate his original design intent. It’s the approach I have been conditioned to use, but it’s not the only reasonable approach.

An alternative I have seen is to create a section of the part that has ONLY the power connections. (The schematic symbol would be just a rectangular box with the top-level component reference designator, e.g., “U1”.) Then the individual functional sections - the six line drivers, or the four opamps, etc - would appear WITHOUT power pins. Their reference designators would identify the particular sections, e.g., “U1A”, “U1B”, etc and of course the correct pin numbers associated with that particular section. Thus, after adding the part’s “power” section, a part containing “n” functional sections ends up with “n + 1” sections in the KiCAD libraries.

With this approach, the power section of the part is typically tucked away in a corner of the schematic, shown interconnected with (only) the power sections of other parts in the design. In the extreme case, EVERY module or IC in the design becomes a multi-section part: a single opamp, for example, has one section represented by the opamp symbol, for its functional section; plus a section represented by the power-connection rectangle symbol, for the power connections.

This approach can help streamline a schematic sheet since the power connections are tucked away in a convenient corner or even a separate sheet, and not scattered over the entire diagram. On the other hand it complicates programming for EESchema as well as complicating the circuit designer’s original schematic generation. The first time a part is used, its “power” section must be placed (and probably should be connected) before its functional section(s) can be placed and used. I can visualize a circuit designer working in EESchema, going to the “Place Part” menu and calling up one NAND gate out of a quad NAND-gate package. The symbol that pops up on his (or her) monitor is NOT the NAND-gate symbol he expects, but rather the power-connection section for the 74HC00 component. “WTF??”, he exclaims loudly, waking up his wife. Not only is he aggravated because he didn’t get the NAND symbol, but she will likely NOT be in a mood to comfort him in his frustration! (Don’t ask me how I know these things.)

(Don’t real electronic engineers work at home, late at night? If you don’t think so, you need to read the “Midnight Programmers” chapter in Tracy Kidder’s “Soul of a New Machine”. See )

One other question about KiCAD’s multi-section parts needs to be answered. That is, how does the symbol editor handle functional pins that are common to two or more sections? Examples might be two or more opamps that share a common “OUTPUT ENABLE” pin, an array of latches that share common LATCH and CLEAR pins, etc.


1 Like

Something like that:

The OUT pin is shared between all sub-components. For other pins sharing is disabled.
Sharing works as an “one for all” model, so for the “power” sub-component the OUT pin is also visible.

But there are some not obviously connection issues. You can pull signal from OUT pin from any of sub-component. Any other OUT pin could be left unconnected, and ERC will not complain. The mysterious thing will happens when you connect two OUT pins to two different nets. For example OUT from UxA is connected to A net, and UxB is connected to B net. The precedence will be at A net. The connection with B will be ignored. The A and B will continue to be separate networks.
Now lets make some change: move A from UxA to UxC. In this case the precedence will take B. OK. Now lets make one more change: move A to UxB, and connect C to UxA. Which net will take precedence…? Wrong answer if you think about the C! A will take precedence.
But! This is not a rule. I tested some other combination and I unfortunately noticed that in this case Eeschema is unpredictable. :confounded:

This should be flagged as an error, I cannot think of any sensible reason for this behaviour, I would raise this as a bug

My experience is that parts with a common control were better drawn as a single component, less confusing to read

Put the power into a completely separate unit.

First make the A unit with unit count 1.

Then increase unit count to find all units looking like A.

Edit, B, C etc.

When I do some fpga towards 2000 pins you end up with about 15-20 units.

GND alone can be some 200 pins.

That’s when units are of utter importance and there is no resemblance at all between units.

Again :
Library needs a part concept where units can be liberated into separate free symbols, all edited as stand alone symbols and later used in random parts.

Thanks! This subtle little hint tripped me up in the past with multi-unit processors. I though the rectangles had to be the same size, but fixing this makes a world of difference.

A separate part for the power pins (and other common pins) is the approach I go with, makes the schematics clear. So for the TL072 in this image, there’s an U5C with the power pins:


Where is this dialog? I have the version 4.0.6, and I hope this still exist, but I can t find it :frowning:

press e when above the item you want to edit.
Or rightclick and then something starting with edit
(For lines it is “edit line options”, for rectangles it is “edit rectangle options” and for pins it is “edit pin”)

1 Like

OK, I see it now, Thanks!