A comprehensive KiCAD plugin for extracting component/pin data and analyzing signal flow. Features both GUI and CLI interfaces.
- Extract pin and net information from any component
- Filter by reference pattern (
J*,U*, etc.), value, or connector type - Export to clean CSV, Markdown, or JSON formats
- Support for custom
connector-typeproperties
- Generate source-to-destination signal flow tables
- Trace connections between connectors, ICs, and passives
- Find all signal paths between any two components
- Identify intermediate components in signal chains
- Create complete pin-to-destination mapping for ICs
- Optionally include or exclude power/ground nets
- Group and sort power nets separately from signals
- Perfect for documentation and debugging
- Generate SVG block diagrams - fully self-contained, no external dependencies
- Visualize IC signal connections with color-coded net types
- Create signal flow diagrams between component groups
- Automatic detection of power/ground nets (VCC, VDD, GND, VSS, etc.)
- Sort and group power nets separately from signal nets
- Customizable power net patterns
- Full command-line interface for automation
- Batch processing of multiple boards
- Integration with build systems and CI/CD
- All GUI features available from command line
- Open KiCAD →
Plugin and Content Manager - Add repository:
https://raw.githubusercontent.com/wayri/KiWay/main/pcm/repo.json - Search for "KiWay" and install
- Enable the KiCAD API:
Preferences → Preferences → Plugins → Enable - Open PCB Editor →
Tools → Plugins → Open Plugin Directory - Copy the
extract_pins_pluginfolder to the plugin directory Tools → Plugins → Refresh Plugins
- Open your PCB in the PCB Editor
- (Optional) Select components on the PCB
Tools → External Plugins → Extract Component Pins with GUI- Use the dialog to filter, configure, and export
# Basic extraction - all J* connectors to CSV
python -m extract_pins_plugin extract --refs "J*" --format csv board.kicad_pcbYou can run the plugin directly from the downloaded folder without installing it into KiCad, as long as you use KiCad's bundled Python.
Windows:
"C:\Program Files\KiCad\9.0\bin\python.exe" -m extract_pins_plugin extract --refs "J*" "C:\path\to\your\board.kicad_pcb"Linux/Mac:
If you have the pcbnew python module available in your system python:
export PYTHONPATH=$PYTHONPATH:/usr/share/kicad/scripting/plugins
python3 -m extract_pins_plugin extract --refs "J*" board.kicad_pcb--refs Reference patterns (wildcards: *, ?)
--connector-types Filter by connector-type property
--value-filter Filter by component value
--net-filter Filter by net name (comma-separated patterns)
--ignore-unconnected Skip 'unconnected' pins
--ignore-free Skip pins with no net
--ignore-power Skip power/ground nets
--sort-by-net-type Sort signals before power
--format csv, md, json (default: csv)
--source Source components (wildcards supported)
--dest Destination components (wildcards supported)
--intermediates Include intermediate components
--format csv, md, json, svg
--ic IC reference (wildcards for batch)
--include-power Include power nets
--power-nets Custom power net patterns
--format csv, md, json, svg
--refs Component references (wildcards supported)
--sort-by-type Group signals first, then power, then ground
--start Starting component
--end Ending component
--max-hops Maximum hops (default: 10)
--refs Filter by reference pattern
All reference and filter arguments support wildcards:
| Pattern | Matches |
|---|---|
J* |
J1, J2, J10, JCONN1 |
U? |
U1, U2, but not U10 |
J*,U* |
All J and U components |
SPI_* |
SPI_MOSI, SPI_CLK, etc. |
*GND* |
Any net containing GND |
Clean, one-row-per-pin format ideal for spreadsheet analysis.
Human-readable tables with optional net highlighting.
Structured data for programmatic processing.
Self-contained vector diagrams with:
- Color-coded net types (signal/power/ground)
- Component blocks with pin details
- Connection paths with labels
- Legend and summary
GPL-3.0 - See LICENSE for details.
Wayri (Yawar)
- GitHub: @wayri