Power input / output


I have a question about power symbols.
When making a new symbol, pin features like input, output, bidirectional, etc
can be chosen for each pin. I suppose that if you short 2 outputs, the DRC will start yelling.
The power pins on a device should logically be set as power input which is logical.
Ground is also a power input which is also logical since you connect the component to
a power source.
Now I have noticed that all power symbols have also a power input flag. Why not
If it’s really an input, then in which case do I have to flag a pin as power output?
Output of an LDO for instance?

Can anyone explain the logic in this?


A power input needs to be connected to something to operate. A power output does not need to be connected to operate?

Other situations: battery, power transfomer winding, boost converter output. Not many but they do exist. What often happens is that a component (symbol) supplies power, for example the power connector, but you don’t want to modify the connector symbol’s pins. So that’s when PWR_FLAG comes into use.

I use many VCC power symbols at one schematic and KiCad connects them all together for me.
If DRC will start yelling when 2 outputs are shorted what it will do if many outputs were shorted?

For schematic there is practically no difference between GND and VCC. Firts and seconds simply have to be connected all together.


Thanks for your reply.

Yes, but supposing the VCC would be declared as power output, all VCC symbols would refer to the same VCC net, there is not problem in connecting them together.

BUT in this case, if you connect VCC to GND (both outputs) then you would get an error because it’s not the same net.

In the present case, they are anyway declared as power inputs, and that’s a second reason why 2 VCC connected together don’t generate an error.

Beside this, running the erc gives me myriads of “Error: input power pin not driven by any output power pins”. So wouldn’t it be wise to declare the power symbols as power outputs?


Look at the internal anatomy of a VCC symbol. It consists of one hidden pin of type Power Input. If that were changed to Power Output, many instances of VCC would create multiple pins of type Power Output on the same net (labelled VCC so that they are all connected) and that would be bad.

Remember that Power Input and Power Output are pin types, so they apply to pins, not to symbols.

If you have pins of two resistors (R1-1 and R2-1) than they are two nets. If you connect them together they become one net. If you not give that net your name then KiCad will base its name on R1-1 or R2-1 (assume the name R1-1). I don’t know how it internally works but you can assume that after some modifications somewhere else when KiCad will generate netlist once more it can name it R2-1 and it is no problem as you don’t care how it is named.

When you connect pins together they become one net. If you connect VCC to GND then you have one net. However it will be named (GND or VCC) now it is ONE NET. The only problem is that probably we don’t know if it will be named VCC or GND. For KiCad GND symbol is the same as VCC symbol only with the other name to be used. You can connect VCC1 with VCC2 with VCC3 and they became one net and will be named using one of those names. You can also connect GND pin to this net - your choice.
The situation is exactly the same when you connect two VCC pins together with only one difference - you know how that net will be named.
What power symbols gives you are hidden connection between them - it is like between wires with the same label on them.

1 Like

The power thing sounds a bit confusing at the first moment. But actually it isn’t.
If you place a power symbol (say +5V from the power library), that just provides a net (that does supply +5V). Now if you place a component (say a 7805 5V regulator), it does provide a power output. You should connect that power output to that +5V symbol. So you connected a 5V supply to the 5V net (its input). And wherever you need +5V, place the +5V symbol and connect it to the device, Thus, you don’t have to connect wires all over the place to provide the power to all your chips.
What might confuse you, is that that 5V net also does output power. But only if you have connected an output to it. But again, it is just a net.

And a more advanced pitfall:
If you have a power output, pass that through say a ferrite bead to filter noise, the signal coming out of the bead no longer is a power output. You have to connect a power flag (PWR_FLG) to it to make it a power output again. KiCAD doesn’t know what the bead is doing, so you have to provide that information manually.


1 Like


Thanks for your reply.

Now if you place a component (say a 7805 5V regulator), it does provide a power output. You should connect that power output to that +5V symbol.

I have exactly this problem at the moment:

This is a switching regulator I have used many times and it does its job. I have declared its output (OUT) as a power output in the symbol. And I have connected it to +5VD. The problem is that in the PCB, it refuses to connect out and +5VD.

Any hint?

What is the exact error message? ERC error?


I will reply to this one later, I’m in the middle of a big mess with erratic ERC which was intended to reply your question above…

Sorry for coming back so late …
Did you declare GND of the MP3120 as power output too?

I looked at a similar design of mine, and there is nothing special. Just as you did.

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