Why limit the number of parts behind a symbol to one?

Most often a schematic symbol represents one physical part, but in some instances a part can exist of a BOM by itself, for example this EAO switch exists of multiple, separately orderable parts…


As I do it now I create a BOM of the design and manually add lines as required. Is there a better way to do this?

Another schematic design program called EPLAN which I use on a daily basis (not PCB related) has a BOM behind every single part in the schematic. Seems to me this would be a nice addition to KiCad :slightly_smiling_face:

As I do it now I create a BOM of the design and manually add lines as required. Is there a better way to do this?

Not sure if better, but my solution:

  • I have a “supplementary”-symbol designed in the symbol-editor.
  • This part has checkbox “don’t propagate to board” set, and all our needed user-fields predefined (manufacturer MF, manufacturer number MPN, user-fields for the preferred distributor, one field for assembly-notes)
  • for every additionally needed assembly-part one of these assembly-symbols is added to the schematic. For seldom needed parts the field-info is added manually in the schematic. For often used parts there is a fully defined symbol saved in the library.

This is not ideal, but works well enough for our needs. We have mostly only 0…20 subparts per schematic/board (compared to 100…800 normal parts), so for our design it’s manageable.

Another schematic design program called EPLAN …

But EPLAN is targeting the automation market with SPS and relays systems. There it’s much more common to have parts consisting of several subparts. I think thats not really comparable with pcb-design where the majority of parts really consists of only one part.
That said you may look at gitlab #7436 (and possibly upvote the issue).
If the database-feature shows up in the future that may include the option to integrate parts including subparts.

I would like a more abstract approach.

In KiCad, the schematic symbol is the part while to me it is more logical to have the part as an empty container to which links to schematic symbol graphics and footprints can be added in the same way as other meta data.

There is also the idea of a “design block”. One implementation of this lets a schematic symbol to either be connected to a footprint (for example an castellated breakout board), or have the same schematic symbol point to a hierarchical sheet with a schematic of whatever is on that breakout board. (For example an IC, some decoupling caps and other passives). Such a design block would even have it’s own PCB layout, so changing from using the breakout board for prototyping to using the parts of the breakout board would just be a few mouseclicks. These design blocks can also easily be used to re-use partial layouts from other KiCad projects, such as for example an SMPS circuit with all needed parts.

There is also work being done on adding some kind of database driven workflow to KiCad. Especially bigger companies have house-built databases with approved parts. The idea is that you select fully specified parts (including footprint, and ordering information and more). It would be quite silly to add all this information to the schematic symbols in KiCad. It would explode the duplication of graphics for resistors for each of those parts. I do not know how this is going to be handled.

What you can do in the mean time is to add your parts to the schematic, and then use the Exclude from board checkbox in the schematic symbol properties, but it’s quite an ugly hack.

Another option is to add a “lens assembly” schematic symbol, and then have that replaced with actual BOM parts by some backend script, or modify a BOM script itself to replace the “Lens Assembly” by the actual parts.

An advantage of adding a “Lens Assembly” on the schematic and to the BOM, is that if you forget to replace that assembly with the real parts, you have missing ordering numbers and such and you are remembered of this each time you see the BOM, so you are much less likely to forget these parts.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.