Multi unit part with variety of symbols

One more thing, I need to be able to define a set of units to be one part. I don’t care if they end up being U4a,b,c ,or U7b,c,a but they must stay together due to come common control signal eg octal buffer tristate control. common clock or the 74HC4053 Inhibit

You can do that today.

No problem.

1 Like

How, this is not a feature I have noticed?
I know I can manually annotate

You meant to make units that are different from each other?

I have parts like 4053 analog switch made as 3 switch units and a separate unit with power supplies and the common inhibit. Are you saying units have to be made interchangeable by having all common signals on each unit?
I don’t mind manually swapping A,B and C to simplify tracking, but I obviously need to keep the units together by reference

I’m using Ver 4.0.2 Win 32 64 Bit.

I’m trying to understand your post for a problem I’m facing which seems related to this thread. As I go through layout and BOM selection I end up having to go back and forth to change the Component Properties Fields that I have added for enhanced BOM management. I’m using muti-unit parts like capacitor and resistor arrays and it is extremely tedious to keep all of these fields in sync. I know if I change the CvPCB association that some of the footprint fields just track. But seemingly most of the custom fields I have to support the BOM have to be manually maintained.

Is there a option I can select to keep these things in sync?

This relates to this post as you say that the “…fields are all common for all units” but I can’t find the item properties dialog.

Yes footprints are selected which is part of me being in layout. Footprint Fields are not an issue as they seem to be updated when saving footprint associations in CvPCB. The issue is with all of the additional fields I created per recommendations for BOM maintenance.

What symbol I have on the schematic I don’t really know any more, but the answer is probably it is a modified symbol but I don’t know or how to tell.

I’m using the symbol from an old board design as I know it works, but where it originally came from as mentioned I can not say if it is an untouched from a library or I have modified it in some way. This is part of the problem I need to know how to set my own symbols so that the text fields remain synchronized.

It was my understanding that these custom fields are defined on a Schematic basis in Eeschema:>Preferences>Schematic Editor Options> Template Fields Names.

Following guidance I have added key fields for BOM creation

Obviously all the fields need to be filled and at some point I will probably a copy of each part in Stanrad Library Schematic to be used as a starting point for all projects. I can then pick and choose from what I want and delete the rest.

In the meantime what is particularly time consuming (so much so that i’m close to just reverting back to manual maintenance using Excel) is that I have for example five R4N resistor networks that I have been changing as I have gone through layout. This means I have to keep in sync 9 fields on 4 units in 5 parts (20 times all the fields). That is potentially 180 field to just change a single common footprint in layout (going from 4x2010 to 4x1206 for R network size example)

I know when I generate a BOM only one instance shows up for the part, so there must be some logic for compressing the fields for the 4 units to end up with only one BOM item even if there are 4 line items for each R4N instance in the BOM.

I’m just trying to understand what to do to get the tool to sync the appropriate unit text fields which are of course going to be the same for 4 units in the same R4N part. I also have capacitor networks which I will assume are handled teh same way, but this BOM management is getting to be more complicated than the original creation of a multi page schematic.

Ihave a preliminary layout but I’m going back through to make sure that my parts and footprints are exactly correct so I can do a second revision to the layout.

A multi part (symbol) will have only one set of fields… you won’t have a set of fields for each of the units (A,B,C…).
See this library entry from a dual LED that has got two units (red=A, green=B).

EESchema-LIBRARY Version 2.3
#encoding utf-8
#
# D_LED_Dual_LSGT676_PLCC4
#
DEF D_LED_Dual_LSGT676_PLCC4 D 0 0 N Y 2 L N
F0 “D” -100 0 50 V V C CNN
F1 “D_LED_Dual_LSGT676_PLCC4” 185 0 50 V V C CNN
F2 “LEDs:PLCC-4” 0 0 10 H I C CNN
F3 “E:\Datasheets\Electronics\Optoelectronics\LED\Osram_MultiTopled_LSG_T676_Pb_free.pdf” 0 0 10 H I C CNN
F4 “Q65110A4186” 0 0 10 H I C CNN "Manf#"
F5 “Osram” 0 0 10 H I C CNN "Manf"
DRAW
T 0 100 -50 31 0 1 0 red Normal 0 C C
T 0 100 -50 31 0 2 0 grn Normal 0 C C
P 2 0 1 15 50 -45 -50 -45 N
P 2 0 1 0 50 5 110 25 N
P 2 0 1 0 60 -25 120 -5 N
P 4 0 1 10 0 -35 -50 45 50 45 0 -35 N
P 4 0 1 0 110 25 90 10 85 25 110 25 F
P 4 0 1 0 120 -5 100 -20 95 -5 120 -5 F
X ~ 1 0 -50 12 U 50 50 1 1 P
X ~ 2 0 50 4 D 50 50 1 1 P
X ~ 3 0 -50 4 U 50 50 2 1 P
X ~ 4 0 50 4 D 50 50 2 1 P
ENDDRAW
ENDDEF
#
#End Library

That makes perfect sense but (from the schematic) when I edit say Unit A of a R4N network and I then inspect Unit B it has not changed to match A. So I assume I have to change the rest (i.e. B,C,D to match) which is very tedious and quite logically makes no sense other than I don’t understand the tool to do otherwise.

Do I need to rebuild the NETLIST (or something else) following the change to one of the Units to get them to resync as the display shows they are not?

Uhm… are you sure you placed the sub parts in your schematic and not just another Unit A of a multi part?

When I want to place that dual LED in my schematic I have to:

  • select it in the placement tool selector

  • drop unit A in the schematic (it’s doing that automatically when you select the symbol, not any of the sub units)
  • click again to place a device and this time select unit B (that’s the tricky part)

  • doing the annotation shows me that they belong to each other

  • going into the properties of either one of them will change the fields for both of them

I admit, placing multi unit symbols/parts is a bit tricky and doesn’t do a lot of hand-holding/guiding (which would be severely needed - or I didn’t see it yet), but once you got past that obstacle it’s bearable.

IMHO I would expect that it drops all sub parts of the multipart… but then how do you deal with hierarchical sheets… or I’d like an option when I select a mutli part that I can tell the tool to drop all subparts in one go.
Or when you want to drop another part there should be a list of sub parts that are able to be dropped, separate from the History selection… something like a multi-part waiting to be placed stack.
It’s definitely error prone because of that manual handling of getting the sub-units placed.

Here is a simple example: R2N network

When I edit the Unit A

Unit B is identical (with a lot of effort)

I change the Item # from _24B to _24BBB hit save; Unit A changes and selecting B in the pull down says B has also changed. However if I go back to the schematic, mouse over the B unit and hit E and it is still at the original _24B not the edited _24BBB.

;

I go to the B Unit and select the A pulldown and it is as it was originally unchanged at _24B. There is a syncing problem making appear that there are multiple definitions.

Now sure if this works; I edited the Unit A symbol in the Symbol editor and then saved to a new library. It created the two files attached(drop box link).

2 Likes

You’re right - my apologies. :slight_smile:

That’s what it looks like in the sch file once dropped:


$Comp
L LED_Dual_LSGT676_PLCC4 D101
U 1 1 56FE0703
P 9550 5475
F 0 “D101” V 9450 5475 50 0000 C CNN
F 1 “LED_Dual_LSGT676_PLCC4” V 9735 5475 50 0000 C CNN
F 2 “LEDs:PLCC-4” H 9550 5475 10 0001 C CNN
F 3 “E:\Datasheets\Electronics\Optoelectronics\LED\Osram_MultiTopled_LSG_T676_Pb_free.pdf” H 9550 5475 10 0001 C CNN
F 4 “Q65110A4186” H 9550 5475 10 0001 C CNN “Manf#”
F 5 “test” H 9550 5475 10 0001 C CNN “Manf”
1 9550 5475
1 0 0 -1
$EndComp
$Comp
L LED_Dual_LSGT676_PLCC4 D101
U 2 1 56FE07B4
P 9950 5475
F 0 “D101” V 9850 5475 50 0000 C CNN
F 1 “LED_Dual_LSGT676_PLCC4” V 10135 5475 50 0000 C CNN
F 2 “LEDs:PLCC-4” H 9950 5475 10 0001 C CNN
F 3 “E:\Datasheets\Electronics\Optoelectronics\LED\Osram_MultiTopled_LSG_T676_Pb_free.pdf” H 9950 5475 10 0001 C CNN
F 4 “Q65110A4186” H 9950 5475 10 0001 C CNN “Manf#”
F 5 “Osram” H 9950 5475 10 0001 C CNN “Manf”
2 9950 5475
1 0 0 -1
$EndComp

Each one of them got their own set of fields - independent of each other.
See how I changed the Manf field?

Using the drop down selector in EEschema to select units doesn’t actually bring you to the other sub unit of that multipart, but instead let’s you change/select the sub unit of the part you’re editing.
I can make a red led (unit A) out of the green led (unit B) by changing this drop down value.
So even when I placed a unit A and a unit B, I can change them afterwards?!

That’s definitely wrong.
Anyone who does this on a regular basis care to shed some light into this?

You can imagine the nightmare it has been with the 5 resistor and 2 capacitor networks on this IAmp schematic. :disappointed_relieved:

I had all the text fields in place and then did the layout having to exchange units in several cases to aid in the layout of the 2 layer board. Then if I decided using layout my Cap network or Resistor network was too big and I swapped over all of the parts to something smaller , resetting all of the fields by cut and paste caused reannotation hassles and undid the parts swapping I did in the layout. Major hassle doing 5 steps backward and it has literally been three days since I made any progress.

2 Likes

I feel your pain. :disappointed:

I’m using KiCost for BOM management and looking at the XML that I get when I hit:

EEschema > Tools > Generate Bill of Materials > [Generate]

There is this in there:

... <comp ref="D101"> <value>LED_Dual_LSGT676_PLCC4</value> <footprint>LEDs:PLCC-4</footprint> <datasheet>E:\Datasheets\Electronics\Optoelectronics\LED\Osram_MultiTopled_LSG_T676_Pb_free.pdf</datasheet> <fields> <field name="Manf#">Q65110A4186</field> <field name="Manf">test</field> </fields> <libsource lib="LEDs" part="LED_Dual_LSGT676_PLCC4"/> <sheetpath names="/" tstamps="/"/> <tstamp>56FE0703</tstamp> </comp> ...

Those are the fields from Unit A afaik.

This implies that the program is ignoring the field entries for any other units.
Don’t know what happens though, when you don’t place unit A but only unit B+… uncharted waters. :scream:

Bom hell is my only comfort but at least the KiCAD BOM seems to work using Transform. I have been going through the csv file with a fine tooth comb and creating a corresponding Digikey BOM to keep both in sync.

I’m realizing js and xml are modern day batch files but they are still foreign to me. So don’t really have a clue. I can write C/C++ but never did any xml.

Anyway the BOM export seems to be working and with multiple parts so not sure what you are seeing.

I was following this advice on setup of a BOM although I did change the fields some.


Reading Parg 2. you can see that the recommendations is to maintain the component fields by “cut and past” of symbols.

I assume this is being broadly read by anyone BOMing away in KiCAD.

I’m not sure what the difference is of putting fields into the schematic v.s. the Library except maybe the library does a better job of syncing.

How do you put custom fields into symbols from the Library. I’m looking at a RN4 and see nothing? Do you use Section 11.9 Component Fields?

I get to Field edit with right click but it just brings up this there are no Fields.


You can see from the last sentence in Parg 11.9 that they say that adding fields is normally done in the Schematic rather than the Library. The rest is left to the imagination which I imagine is contributing to my BOMing.

In EEschema:

Preferences > Schematic Editor Options > Tab ‘Default Fields’

what mine looks like:

If you then create a new part in the Part Library Editor (symbol editor) and go for the ‘Field Properties’ (top toolbar, uppercase black ‘T’ depicted) you’ll find that besides the (built in) standard fields Ref/Val/FP/PDF you have whatever you set up in EEschema editor settings up there:

And you can deviate from this (new) default any time, just add or delete the custom fields. Can’t do that for the 4 built-in fields though.

I don’t do any edit’s of those properties once a part is in the schematic.
Way to dangerous.
The library is the master and only source of this info for me.
This way I have atomic parts.

PS: I’d like to have a [Clear Field] button in that dialog… it’s cumbersome to take a part, adjust it to another part and replacing the pdf path in there as you can’t select/replace in a simple operation, but instead you have to scroll/select/delete/paste… not fun.

That’s how they roll (or rolled) and the difference between doing symbols+footprints (hobbyists) vs parts (professionals).

KiCAD allows both ways and suggests the easier to understand and faster (as less cumbersome library works needs to be done) to the finish line approach.

But anyone working with KiCAD seriously over a couple of months sooner or later arrives at the latter system to stay somewhat sane while creating PCB after PCB. That system needs more legwork upfront to get everything set up right, but will pay off if you do board after board.

I think the best workaround for keeping fields in sync for sub-parts at schematic level is:

  1. Place first sub-part on schematic.
  2. Edit fields if necessary.
  3. Place other sub-parts by ‘Copy components’ (C key).
  4. Re-annotate schematic.

Of course point 3 will not work when sub-parts are on different sheets in hierarchy. But you can use ‘Save Block’ and ‘Paste’ operation instead of simple ‘Copy’.

Each element consisting of the symbol - graphics/free text item - has its own properties. This is not related to the components fields.

So if you reannotate after each unit (sub-part) copy then it avoids perturbing the other annotations as there is only one unannotated? I would do an R4N by editing the first and copying the rest and then reannotate and it would screw up the pin orders in my layout.

This is basically what was I was doing to start, it was the rework (back filling of modification to network footprints in the layout that was the killer with just a few footprint changes. I started to edit fields to avoid the reannotation pitfalls.And I’m guessing all these mysterious fields really only exist in the program and not the xml files? I changed the one unit in the example above and regenerated the BOM and it made the change even though only one Unit had been changed.

Controlled “cut, paste, reannotate” on a per unit basis is the best option then I’ll do that.

I’m gathering you are talking about having a common/standard Parts Library with joined symbols and footprints which you use to populate your schematics/layouts.