KiCad ERC: Input Pin Not Driven by Output Pin

Diagnostic signature

[pin_not_driven]

The KiCad Electrical Rules Checker (ERC) reports [pin_not_driven] when an Input or Power Input pin is not connected to a corresponding Output or Power Output pin. This commonly occurs when power is supplied via a passive component, such as a connector or switch, without an explicit power source defined on the net.

What it means

The KiCad Electrical Rules Checker (ERC) emits this diagnostic when a pin configured with an 'Input' or 'Power input' electrical type is connected to a net that does not contain any corresponding driving pin. A driving pin must be configured as an 'Output' or 'Power output' type. This check validates the logical integrity of the schematic, ensuring that circuits receiving a signal or power are actually connected to a source that provides it. If a net consists solely of inputs, unconnected pins, or passive components, the ERC flags the input pins as un-driven to warn the designer about potentially floating or unpowered nodes.

Why it happens

This diagnostic most frequently triggers when external power is supplied to a board via a passive component, such as a barrel jack, pin header, or mechanical switch. Standard KiCad power symbols, such as VCC and GND, are inherently defined as 'Power input' pins. Components like generic connectors are defined with 'Passive' pins. When a power symbol is attached directly to a connector pin, the resulting net contains only input and passive elements. Because the ERC pin conflict matrix requires a 'Power output' to satisfy a 'Power input', it does not recognize the passive connector as a valid power source, leading it to flag the connected input pins as un-driven.

Minimal reproduction

(kicad_sch (version 20230121) (generator eeschema)
  (symbol (lib_id "Connector_Generic:Conn_01x02") (at 100 100 0)
    (pin passive line (at 100 95 90) (length 5) (name "Pin_1") (number "1"))
    (pin passive line (at 100 105 270) (length 5) (name "Pin_2") (number "2"))
  )
  (symbol (lib_id "power:+5V") (at 100 90 0)
    (pin power_in line (at 100 90 270) (length 0) (name "+5V") (number "1"))
  )
  (wire (pts (xy 100 95) (xy 100 90)))
)

How to fix it

Attach a PWR_FLAG symbol to the un-driven net to explicitly declare it as a power source, or correct the pin electrical type if a custom component is incorrectly defined as passive instead of power output.

```kicad_sch
(kicad_sch (version 20230121) (generator eeschema)
  (symbol (lib_id "Connector_Generic:Conn_01x02") (at 100 100 0)
    (pin passive line (at 100 95 90) (length 5) (name "Pin_1") (number "1"))
    (pin passive line (at 100 105 270) (length 5) (name "Pin_2") (number "2"))
  )
  (symbol (lib_id "power:+5V") (at 100 90 0)
    (pin power_in line (at 100 90 270) (length 0) (name "+5V") (number "1"))
  )
  (symbol (lib_id "power:PWR_FLAG") (at 105 90 0)
    (pin power_out line (at 105 90 270) (length 0) (name "pwr") (number "1"))
  )
  (wire (pts (xy 100 95) (xy 100 90)))
  (wire (pts (xy 100 90) (xy 105 90)))
)
```

Step 1

Step 2

Step 3

Step 4

Step 5

Step 6

Upstream references

Schematic Editor | 8.0 | English | Documentation

Getting Started in KiCad | 8.0 | English | Documentation