How to handle parts not required on the PCB?

What’s the best way to handle parts that appear on the schematic but should not be placed on the PCB?

As a concrete example, my project has a simple power supply so I’d like the schematic to include this. But several of the parts (transformer, switch, fuses, filrer caps etc) will end up mounted on the chassis and not on the PCB.

Is there a way to mark these parts so they don’t get exported to the netlist, or some other good way to handle this? I’ve tried a few things and although some of them sort of work I usually end up with errors flagged somewhere in the process. It would seem to be a fairly common thing to want to do.

2 Likes

How are those off-board components connected to the PCB?
What is the purpose/aim of the BOM you can/will generate with KiCAD?
Answers to those questions will help others to evaluate if they can help you at all…

If you don’t assign footprints you get DRC errors or what are the problems there?

Just posting a link to the wishlist bug that @Andy_P has opened so people could vote for it:

I’m just a hobbyist here, doing mostly small projects for my own amusement, so I’m not actually too bothered about the BOM. I do kind of like the schematic to show the whole design, including off-board parts like switches and transformers.

I’ll usually split the nets at an appropriate point and insert some connectors so they do appear on the PCB layout. But I still end up with parts in the netlist that I don’t want to include.

I’ve have been simply not assigning footprints to these, which works but does produce errors when the netlist is imported into Pcbnew. This is not a huge issue but it does mean you have to manually check all the listed errors and decide they are OK. Easy to miss a real problem this way, better to have no errors at all.

Seemed to me like this might be a fairly common things to want to do, so I thought maybe I’d missed something obvious - but I guess not!

2 Likes

Here’s few examples:

  1. transformer connected to diode bridge but it’s heavy and usually not mounted on pcb if power is > 30 - 50 VA
  2. connector mounted on panel and connected to pcb using wires (or coaxial cable)
  3. variable resistors to change output (power supply, audio amplifier, signal generator), mounted on panel.
  4. screws, nuts or similar
    1, 2 and 3 can have or not a corresponding connector in PCB. As an example transformer output usually has two wires that can be soldered on pcb or connected using a terminal box.
    All this component must be included in BOM because you have to buy them.
1 Like

In our business, anything off board is a separate drawing, with it’s own BOM. The final product is an assembly of all the subsidiary drawings. Anything we build onsite gets placed on the order system as “demand”, and purchasing buy the parts. Some of the items are outsourced, so the BOM for that item is passed to the supplier, together with assembly instructions etc.

That’s a bit tedious for the hobbyist. The simple way is to have a “virtual” footprint. It has no pads, drills or copper. I mark a box on the drawings layer, but the position on the PCB is not important. Kicad is happy.

The component will also appear on the BOM, the user can decided whether to order it or not.

2 Likes

I’ve created a footprint without any pads and the very creative name “no-pads”. If you assign this to your HW schematic component, you can avoid DRC error.

2 Likes

This simple answer to this is to add a “#” before the symbol name.

For example, I have some plastic washers in my schematic because I want them to be included in the BoM.

However, they do not have a footprint associated with them.
So, in the schematic, for the symbol name, I have #WASHER1, #WASHER2, etc.

This way, when you import the netlist, KiCad will skip over this part and not give you an Error.

6 Likes

Sorry to bump but I wanted to link back to the docs here; I just spent some time looking for this in the KiCad docs before seeing their posting and the penny dropping; it’s not… obvious.

Documentation Link

As 4b11b4 says; prefixing a symbols name with # is a way of designating it as a ‘graphical symbol’; which will prevent it from being exported to the PCB.

This solves the problem of PCBNew complaining about missing footprints, but now those components do not get placed into my BOM. (I use the bom_csv_grouped_by_value.py BOM script)

Application: Pcbnew
Version: (5.1.4)-1, release build
Libraries:
wxWidgets 3.0.4
libcurl/7.61.1 OpenSSL/1.1.1 (WinSSL) zlib/1.2.11 brotli/1.0.6 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) nghttp2/1.34.0
Platform: Windows 7 (build 7601, Service Pack 1), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.68.0
OpenCASCADE Community Edition: 6.9.1
Curl: 7.61.1
Compiler: GCC 8.2.0 with C++ ABI 1013

Build settings:
USE_WX_GRAPHICS_CONTEXT=OFF
USE_WX_OVERLAY=OFF
KICAD_SCRIPTING=ON
KICAD_SCRIPTING_MODULES=ON
KICAD_SCRIPTING_PYTHON3=OFF
KICAD_SCRIPTING_WXPYTHON=ON
KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
KICAD_SCRIPTING_ACTION_MENU=ON
BUILD_GITHUB_PLUGIN=ON
KICAD_USE_OCE=ON
KICAD_USE_OCC=OFF
KICAD_SPICE=ON

Using # means it doesn’t appear in the netlist, so none of the BOM tools in KiCad will include it in the BOM. I don’t think that qualifies as a simple answer.

Do you generate your BOM by some other means?

On the other hand, if you WANT to have parts show up in the Netlist (and hence on the PCB), but NOT appear on the BoM, use KiBoM. Handy when you have parts like shorting links, test points, logos etc.

Use #KiBom by @SchrodingersGat

Edit the bom.ini file (which KiBoM creates in your project directory after first time run).
Get it to ignore schematic symbols with a field named “fit_field” marked as DNP.

1 Like

Remember to mark them as virtual such that they do not appear in the position file for automatic assembly.

at least logos are “parts” that do not necessarily require a schematic counterpart. You can place them directly in pcb_new. But sadly you need to lock them to ensure they are not removed by a pcb update. (There sadly is no “has no symbol on purpose” flag in kicad. Future versions might support this better.)

2 Likes

I typically use a schematic “symbol with no pads” as a place holder for Logos and such which need to propagate to the PCB. This way, everyone is happy and nothing gets lost.

I understand the concept and how this solves the problem but I can’t picture how it would appear on the schematic. Can you post an example?

Dale

A square box without pins would work. Possibly with the text “pcb symbol” written in it to make it clear to future readers what this is about. Then just assign the footprint with your logo.

Or if you prefer fully specified: a square box with text “company logo” directly assigned to the footprint of your companies logo.

@dchisholm , what @Rene_Poschl says above. Here’s an image.

2 Likes