Electronic – Why are power components meant to be power inputs in KiCad

design-ruleskicad

This was asked before but not answered properly (at least I don't get it). Why are default power components in KiCad libraries are power inputs? What is the idea behind it? I would like connect an IC and some components to make a circuit. My intuitive approach is to add VCC and GND, connecting those to VIN and GND of the IC (e.g. Arduino). But all these 4 pins are power inputs. This results in ERC/DRC check fail. To me VCC is power output. Is there any idea behind it, which I miss? How can I build a simple circuit with power source, IC and some components, which would pass ERC/DRC?

Best Answer

VCC is a virtual symbol. (Not connected to a physical part on the board) It can not be a power output for this reason. Where should its power come from?

But you are right in wondering why it is a power input. Ideally there would be a separate electrical type converting a pin into a global label. (Or maybe a better solution would be that power symbols are something completely separate to normal symbols.)

But sometime in the past it was decided that hidden power input pins are global labels. Possibly because it seemed simple that way. It remains to be seen how the new file format (expected with v6 -> meaning in at least two years.) will handle this.


You tell KiCad where the power comes from by using the so called PWR_FLAG symbol.

The PWR_FLAG symbol has only one purpose. It tells KiCad that the net it is connected to has a power supply on it. Connect it as near as possible to the point where you connect power to the board to make it as useful as possible for finding problems in your schematic. (Directly at the connector that will be used to supply power.) If you have passive components in series between a power supply and the power consumer then you need to place another flag after that passive component. (Example if you have a fuse, the inductor of a filter, ...)

The PWR_FLAG symbol does not replace normal power symbols. Normal power symbols are global labels, the PWR_FLAG symbol does not add a label to the net!

Alternatively you create project specific symbols for the connectors that supply your board. (give the pins the electrical type "power output")

More details: