aren't the red arrows which say "GND" the ground power flags?
Yes and no. It's simply a ground symbol and, more precisely, it's a schematic component which is no different from any other component. Electrically it is a single pin that is defined as power input, that's all.
FYI, if you press "P" button in the Eeschema you will be able to add power components. But you can also add them by pressing "A" and add them like normal components. All of the power components are under the Power library, and the "P" button is simply a shortcut for convenience to quickly access components under Power library
Because it is called a "GROUND power-flag symbol" on KiCad for me
All of the components under Power library are power-flag symbols, take a look at their description.
Now let's talk about the Power Flag itself, which is almost always confusing for a new KiCad user.
In your schematic you will almost always have a power lines (12V/5V/GND/etc.). These power lines should be connected in the following way: one power output to one or multiple power inputs, or simple inputs. KiCad does not allow to connect power output to tri-state pins and to the outputs, but the most important thing is: power outputs are not allowed to be connected together.
The power might come from the regulator that has a pin defined as power output, and in this case we don't need any power flag. We have a single regulator that has a single output pin, everything is fine. But the power might also come from an external power source and arrive at your connector. Let's assume it's +12V. We want to designate it as +12V in Eeschema and hence we will add a +12V component from Power library. Creators of KiCad could have defined +12V component as power output, but in that case we would not be able to use it in multiple places in our schematic because, remember, that only one power output is allowed per power line. Hence they defined it as power input. But if there is no power output in your schematic, then your power inputs are not connected to anything and we get this annoying error message saying "ErrType(3): Pin connected to some others pins but no pin to drive it". So the trick is to add a separate component named as Power Flag, which basically says "I know what I'm doing, power is coming from somewhere else, so please be quite". The Power Flag is nothing more than a single pin component that is defined as power output. When we add it, all of our power inputs are driven now and ERC (Electrical Rules Checker) is happy. It is all done to leverage the ERC to help us. Btw, if you connect two Power Flags to the same power line (+12V or GND for instance), you will have ERC error saying that there is a conflict because of two power outputs connected together.
The same principle applies to GND: it is simply a power input pin that we use in our schematic for convenience in many places. Because it is power input, it formally needs a single power output, that's why we need a Power Flag on the GND line. You can also take a look at KiCad official Eeschema documentation section 8.5
Best Answer
The Electrical Rules Check tries to ensure that everything that is connected to a single net fits together. The quick summary is that a valid net has
power_in
,power_out
) or data (input
,bidi
,output
) pins, not a mixture of thempower_out
for power nets,bidi
oroutput
for data nets)power_out
oroutput
)So a power network needs exactly one
power_out
connected to it.A known limitation is that connectors' pins are defined as
passive
, because that doesn't immediately lead to a conflict with anything else connected to the same net, so the connector that the power supply is connected to cannot be marked as having apower_out
pin to placate the ERC.The
PWR_FLAG
pseudo-component provides a singlepower_out
pin, so you can avoid the warning here. The ERC will complain if the same net has twoPWR_FLAG
s, or aPWR_FLAG
and some other component with apower_out
pin (such as a linear regulator).