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.


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?


I created a few symbols for this purpose. One is called simply “HW” (and is in my “bom” library). Its only purpose is to do what you want – it has a “part number” field and a reference designator. The footprint field is left blank. I place the symbol on the schematic, and modify the PN field to something that my parts database knows about. When the BOM is generated from EESchema, it includes that thing.

And, yes, when the netlist is imported into PCBNew, an error “No footprint is defined for component ‘HW1’” which I can ignore, because I know that reference designators like HW are for the BOM only.

I will check to see if anyone has created a wishlist item for components in EESchema which do not have PCB footprints, and if none has been created, I’ll do it. This is a very common need. And since they want to start refactoring EESchema and have a new library format, this is probably the time to get such a request in the queue.


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!


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.


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.


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.


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.