What this error means
For each net, ERC looks at the electrical type of every pin on it. If the net contains at least one Power input pin, ERC requires at least one Power output pin on the same net. No power output present means no driver, and the check fails with this error.
The catch: power symbols (+5V, +3V3, GND, VCC from the power
library) connect to the net through a power input pin. They name the net
and stitch it together across the schematic, but they do not drive it. So a
perfectly good rail that enters the board through a connector still fails,
because nothing on the schematic declares "power originates here."
That declaration is what PWR_FLAG is for. It is a one-pin symbol whose
pin type is Power output, and placing it on a net tells ERC the net is
driven. Regulator and battery symbols with a Power output pin on the rail
satisfy the check the same way.
Common causes
1. The rail comes from off-schematic (connector, battery, test point)
The most common case by far. Power enters through a connector or
battery holder whose pins are typed Passive, so the net has power
input pins (every chip's VDD, plus any power symbols) and no power
output. Electrically fine, but ERC cannot know that without a
PWR_FLAG.
2. The source symbol's output pin is not typed Power output
Some regulator, DC-DC, and battery symbols (especially hand-drawn ones) mark their output pin Passive or Output instead of Power output. The net has a real source on it, but ERC only counts pins whose type is Power output.
3. The rail is genuinely not connected to its source
A label typo (VCC vs VDD, +3.3V vs +3V3) or a missing wire
splits the rail into two nets, and the half with your ICs on it has
no driver. Here the error is doing its job. Check what the net
actually contains before reaching for a PWR_FLAG.
How to fix it
Add a PWR_FLAG to the net
- Press A (Add Symbol) and search for PWR_FLAG in the power library.
- Place it anywhere on the flagged net and wire it in; directly on the connector or battery output is conventional.
- Re-run ERC (Inspect → Electrical Rules Checker).
Use when: The net really is powered (connector, battery, external supply) and nothing on the schematic drives it. One PWR_FLAG per net.
Trace the net before flagging it
- Hover the flagged pin and press the highlight-net key (backtick) to see how far the net extends.
- Check for label mismatches: VCC vs VDD, +3.3V vs +3V3, a local label where you meant a global one.
- Reconnect or rename until the rail and its source are one net, then re-run ERC.
Use when: A regulator or supply is supposed to drive this net. If ERC says it is undriven, the connection you think exists may not.
Fix the pin type in your own symbols
- Open the symbol in the Symbol Editor (right-click the symbol → Edit Symbol).
- Double-click the output pin and set Electrical type to Power output.
- Update the symbol in the schematic and re-run ERC.
Use when: Your own regulator or battery symbol has its output typed Passive or Output. Only do this for symbols you maintain; for library symbols, add a PWR_FLAG instead of editing copies.
When it’s safe to exclude
Almost never. PWR_FLAG exists precisely so that the legitimate cases can
be annotated instead of suppressed, and it costs one symbol placement.
Excluding individual violations (right-click the marker → Exclude) or downgrading the severity in Schematic Setup → Electrical Rules → Violation Severity disables a check that catches real mistakes: a VDD pin left floating, a rail split by a label typo. Those look identical to the harmless case until you trace the net, which is exactly the work the check is prompting you to do. Annotate with PWR_FLAG, don't exclude.
Gotchas
- GND trips this error too. Ground is distributed through power input pins like any other rail, so a board fed from a connector typically needs a PWR_FLAG on ground as well as on the positive rail. Two flags on a two-rail board is normal, not a workaround.
- Do not stack PWR_FLAGs. Two Power output pins on one net (two flags, or a flag plus a regulator output) trips the pin-to-pin conflict check instead. If the net later gets a real driver, remove the flag.
- The driver can live on another sheet. Nets joined through hierarchical pins and labels are one net to ERC, so a regulator on the power sheet satisfies the check for every sheet the rail reaches. If a subsheet still complains, the hierarchy is not connecting the way you think.
Minimal reproduction
Wire a pin of electrical type Power input to a net with no Power output
on it. In the schematic editor: place any IC, wire its VDD pin to a +5V
power symbol, add nothing else, and run ERC. The +5V net reports:
[power_pin_not_driven]: Input Power pin not driven by any Output Power pins
; error
The checked-in file data/erc/samples/power_pin_not_driven.kicad_sch
reproduces this with two embedded one-pin symbols (one Power input, one
Passive) sharing a net. Because the file embeds its own symbols, ERC also
emits two lib_symbol_issues warnings about the missing repro library;
those are an artifact of the self-contained repro, not part of this error.
Changing the passive pin's type to Power output drops the error count to
zero, which is the PWR_FLAG fix in miniature.
Related errors
- Input pin not driven by any Output pins (reference page coming soon)
- Pin not connected (reference page coming soon)
- Conflict problem between pins (reference page coming soon)
FAQ
Why does my GND net show this error?
GND is a rail like any other: symbol ground pins are power inputs, and the GND power symbol is also a power input. Unless something on the net has a Power output pin, ERC reports it undriven. Put a PWR_FLAG on ground where it enters the board.
I already placed a +5V power symbol on the net. Why the error?
Power symbols connect through a power input pin. They name the net so it stitches together across the schematic; they do not drive it. The driver has to be a Power output pin, which is what PWR_FLAG or a regulator output provides.
Where exactly does the PWR_FLAG go?
Anywhere on the net; connectivity is all that matters. Convention is to put it right at the connector or battery so the schematic reads as "power enters here." One flag per net.