
Kicad 10
- 2 installs
- 2 repo stars
- Updated August 3, 2026
- fandhe-ai/agent-reference-skills
Reference KiCad 10.0 for schematic capture (Eeschema), PCB layout (PCBnew), Gerber viewing, calculators, and the kicad-cli command-line interface.
About
A structured reference for the KiCad 10.0 open-source EDA suite covering the schematic editor, PCB editor, Gerber viewer, calculators, and CLI. A developer loads it when doing schematic or PCB design and Gerber output.
- Covers Eeschema, PCBnew, GerbView, and PCB Calculator
- Includes the kicad-cli command-line interface
Kicad 10 by the numbers
- 2 all-time installs (skills.sh)
- Ranked #1,294 of 1,879 Documentation skills by installs in the Skillselion catalog
- Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/fandhe-ai/agent-reference-skills --skill kicad_10Add your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 2 |
|---|---|
| repo stars | ★ 2 |
| Last updated | August 3, 2026 |
| Repository | fandhe-ai/agent-reference-skills ↗ |
What it does
Reference KiCad 10.0 for schematic capture (Eeschema), PCB layout (PCBnew), Gerber viewing, calculators, and the kicad-cli command-line interface.
Files
KiCad 10.0 リファレンス
KiCad — クロスプラットフォームのオープンソース EDA (Electronic Design Automation) スイート。回路図エディタ・PCB エディタ・Gerber ビューア・各種計算ツール・CLI などから構成される。 公式ドキュメント (docs.kicad.org/10.0/en/) の 9 マニュアルを構造化。回路設計・PCB 設計・各エディタ操作・CLI 操作時に参照する。
ディレクトリ構造
.claude/skills/kicad_10/
├── SKILL.md ← このファイル(エントリーポイント)
└── references/
├── introduction/README.md ← Introduction(3 ページ)
├── getting-started/README.md ← Getting Started in KiCad(8 ページ)
├── kicad/README.md ← KiCad Project Manager(10 ページ)
├── eeschema/README.md ← Schematic Editor(14 ページ)
├── pcbnew/README.md ← PCB Editor(15 ページ)
├── gerbview/README.md ← Gerber Viewer(4 ページ)
├── pl-editor/README.md ← Drawing Sheet Editor(10 ページ)
├── pcb-calculator/README.md ← Calculator Tools(10 ページ)
└── cli/README.md ← Command-Line Interface(7 ページ)探索手順
1. ユーザーのタスクに最も関連するカテゴリを特定する 2. そのカテゴリの README.md を読む 3. README.md 内の一覧から必要な個別ファイルを選んで読む 4. 必要に応じて関連ページのリンクを辿る
カテゴリ → README.md マッピング
| タスク例 | カテゴリ | README パス |
|---|---|---|
| KiCad とは・スイート概要・ライセンス・コミュニティ | introduction | references/introduction/README.md |
| 初めての KiCad・初期セットアップ・プロジェクト/回路図/PCB チュートリアル | getting-started | references/getting-started/README.md |
| プロジェクトマネージャ操作・ファイル拡張子・パス変数・ライブラリテーブル・Jobsets・テンプレート・PCM・環境設定・アクション一覧 | kicad | references/kicad/README.md |
| 回路図作成・配線・階層シート・ERC・フットプリント割当・BOM/ネットリスト出力・デザインバリアント・シンボルライブラリ・シミュレータ | eeschema | references/eeschema/README.md |
| PCB 作成・ボード設定・配線/配置・DRC・ガーバー出力・フットプリントライブラリ・マルチチャンネル・3D ビュー | pcbnew | references/pcbnew/README.md |
| ガーバーファイルの表示・検証・PCB エディタへのインポート・印刷 | gerbview | references/gerbview/README.md |
| 図枠 (タイトルブロック) の編集・テキスト/キーワード・制約・プロパティエディタ | pl-editor | references/pl-editor/README.md |
| レギュレータ・RF アッテネータ・E シリーズ・カラーコード・伝送線路・ビアサイズ・トラック幅・電気的間隔・基板クラス | pcb-calculator | references/pcb-calculator/README.md |
| kicad-cli コマンド: footprint/jobset/pcb/schematic/symbol/version 各サブコマンドのオプション一覧 | cli | references/cli/README.md |
Introduction to the KiCad Command-Line Interface
KiCad provides a command-line interface via the kicad-cli binary. It allows users to perform automated actions on schematics, PCBs, symbols, and footprints — such as plotting Gerber files from a PCB design or upgrading a symbol library.
Signature / Usage
kicad-cli <subcommand> [subcommand ...] [options] INPUT_FILEmacOS executable path:
/Applications/KiCad/KiCad.app/Contents/MacOS/kicad-cliPrimary Subcommands
| Subcommand | Description |
|---|---|
fp | Footprint operations (export, upgrade) |
jobset | Run predefined jobsets |
pcb | PCB operations (DRC, export, import, render, upgrade) |
sch | Schematic operations (ERC, export, upgrade) |
sym | Symbol operations (export, upgrade) |
version | Display KiCad version information |
Notes
- Append
--helpor-hto any command or subcommand to display usage information. - Example:
kicad-cli pcb -hshows help for all PCB subcommands. - Example:
kicad-cli pcb export gerbers -hshows help for Gerber export specifically. - Example:
kicad-cli pcb export gerbers example.kicad_pcbexports Gerber files from a board.
Related
- Footprint Commands
- Jobset Commands
- PCB Commands
- Schematic Commands
- Symbol Commands
- Version Commands
Footprint Commands
The fp subcommand manages footprint operations — exporting footprints to alternative formats and upgrading legacy footprint libraries to the current KiCad format.
Commands
| Command | Purpose | Main Options |
|---|---|---|
fp export svg | Export footprints to SVG | --output, --layers, --theme, --footprint, --black-and-white, DNP flags |
fp upgrade | Upgrade footprint libraries to current format | --output, --force |
---
fp export svg
Converts one or multiple footprints from a library into SVG format.
Signature / Usage
kicad-cli fp export svg [options] INPUT_FILE_OR_DIRINPUT_FILE_OR_DIR: Footprint (.kicad_mod) or footprint library directory (.pretty) to export.
Options
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output <dir> | -o | Output folder; one file per layer per footprint; defaults to current directory |
--layers <layer list> | -l | Comma-separated layer names to export (e.g., F.Cu,B.Cu); exports all layers if omitted |
--define-var <key>=<value> | -D | Define/override project variables (repeatable) |
--theme <theme name> | -t | Theme for export; uses footprint editor's active theme if omitted |
--footprint <name> | --fp | Export a single named footprint; exports all if omitted |
--sketch-pads-on-fab-layers | --sp | Render pad outlines and reference numbers on front/back fabrication layers |
--hide-DNP-footprints-on-fab-layers | --hdnp | Suppress text and graphics for Do-Not-Populate footprints on fabrication layers |
--sketch-DNP-footprints-on-fab-layers | --sdnp | Display DNP footprint graphics in sketch mode on fabrication layers |
--crossout-DNP-footprints-on-fab-layers | --cdnp | Plot an "X" over the courtyard of DNP footprints; strikeout their reference designators |
--black-and-white | Export in monochrome format |
---
fp upgrade
Transforms footprint libraries from legacy or non-KiCad formats to the current KiCad format. Pre-existing current-format libraries remain unchanged unless --force is used.
Signature / Usage
kicad-cli fp upgrade [options] INPUT_FILE_OR_DIRINPUT_FILE_OR_DIR: Footprint or footprint library directory to upgrade.
Supported Input Formats
- KiCad format (
.prettydirectories containing.kicad_modfiles) - Legacy KiCad pre-5.0 (
.mod,.emp) - Altium (
.PcbLib,.IntLib) - CADSTAR PCB archives (
.cpa) - EAGLE XML (
.lbr) - EasyEDA / JLCEDA (
.json,.elibz,.epro,.zip) - GEDA/PCB (directories with
.fpfiles)
Options
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output <dir> | -o | Output directory; overwrites original files if omitted |
--force | Force re-save of library regardless of current format version |
Related
- Introduction
- Symbol Commands
Jobset Commands
The jobset subcommand runs predefined jobsets defined in .kicad_jobset files.
Commands
| Command | Purpose | Main Options |
|---|---|---|
jobset run | Execute a predefined jobset | --file, --output, --stop-on-error |
---
jobset run
Runs a predefined jobset, executing each job in sequence.
Signature / Usage
kicad-cli jobset run [options] INPUT_FILEINPUT_FILE: Project file (.kicad_pro) to use with the jobset.
Options
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--file <jobset file> | -f | The jobset file (.kicad_jobset) to run |
--output <destination> | The jobset destination to generate; if omitted, all destinations are generated | |
--stop-on-error | Stop running after a job fails; if omitted, execution continues after failures |
Notes
- The
--outputvalue can be specified either by description or by ID. - The description must be unique within the jobset; if multiple destinations share the same description, none will run.
- The ID for each destination is printed by
jobset runwhen--outputis not used; it can also be found in the.kicad_jobsetfile under the destination'sidkey.
Related
- Introduction
PCB Commands
The pcb subcommand performs design rule checks, exports boards to numerous formats, imports boards from third-party tools, renders board images, and upgrades board files.
Commands
| Command | Purpose | Main Options |
|---|---|---|
pcb drc | Run Design Rule Check | --output, --format, --schematic-parity, --severity-*, --exit-code-violations, --refill-zones |
pcb export 3dpdf | Export 3D PDF with embedded model | --output, --force, --no-dnp, --board-only, 3D geometry options |
pcb export brep | Export BREP (OCCT) 3D model | --output, --force, --no-dnp, --board-only, 3D geometry options |
pcb export drill | Export drill files | --output, --format, --excellon-*, --generate-map, --map-format |
pcb export dxf | Export DXF vector format | --output, --layers, --mode-single/multi, --use-contours |
pcb export gencad | Export GenCAD format | --output, --flip-bottom-pads, --unique-pins, --unique-footprints |
pcb export gerber | Export single Gerber file | --output, --layers, --no-x2, --precision, --board-plot-params |
pcb export gerbers | Export all Gerber files (one per layer) | --output, --layers, --no-x2, --precision, --board-plot-params |
pcb export glb | Export binary glTF (GLB) 3D model | --output, --force, --no-dnp, --board-only, 3D geometry options |
pcb export hpgl | Export HPGL (non-functional in 10.0) | deprecated |
pcb export ipc2581 | Export IPC-2581 manufacturing format | --output, --compress, --version, --units, --bom-col-* |
pcb export ipcd356 | Export IPC-D-356 netlist | --output |
pcb export odb | Export ODB++ format | --output, --compression, --units, --precision |
pcb export pdf | Export PDF | --output, --layers, --mode-single/separate/multipage, --mirror, --theme |
pcb export ply | Export PLY 3D mesh | --output, --force, --no-dnp, --board-only, 3D geometry options |
pcb export pos | Export pick-and-place position file | --output, --side, --format, --smd-only, --exclude-dnp |
pcb export ps | Export PostScript | --output, --layers, --mode-single/multi, --x/y-scale-factor, --force-a4 |
pcb export stats | Export board statistics report | --output, --format, --units, --subtract-holes-* |
pcb export step | Export STEP 3D CAD model | --output, --force, --no-dnp, --board-only, --no-optimize-step, 3D geometry options |
pcb export stl | Export STL 3D mesh | --output, --force, --no-dnp, --board-only, 3D geometry options |
pcb export stpz | Export GZIP-compressed STEP | --output, --force, --no-dnp, --board-only, --no-optimize-step, 3D geometry options |
pcb export u3d | Export Universal 3D (U3D) for PDF embedding | --output, --force, --no-dnp, --board-only, 3D geometry options |
pcb export svg | Export SVG vector graphics | --output, --layers, --mode-single/multi, --page-size-mode, --fit-page-to-board |
pcb export vrml | Export VRML 3D model | --output, --force, --units, --models-dir, --models-relative |
pcb export xao | Export XAO (SALOME/Gmsh) 3D model | --output, --force, --no-dnp, --board-only, 3D geometry options |
pcb import | Import non-KiCad PCB formats | --output, --format, --report-format, --report-file |
pcb render | Render raytraced PNG/JPEG image | --output, --width, --height, --side, --quality, --zoom, --rotate, --light-* |
pcb upgrade | Upgrade PCB file format | --force |
---
pcb drc
Runs the Design Rule Check on a PCB file.
Signature / Usage
kicad-cli pcb drc [options] INPUT_FILEOptions
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output <filename> | -o | Output filename for DRC report |
--define-var <key>=<value> | -D | Define/override project variables (repeatable) |
--format <format> | Report format: report (default) or json | |
--all-track-errors | Report all errors per track (not just first) | |
--schematic-parity | Test PCB vs. schematic parity | |
--units <unit> | Report units: mm, in, or mils | |
--severity-all | Report all DRC violations | |
--severity-error | Report error-level violations | |
--severity-warning | Report warning-level violations | |
--severity-exclusions | Report excluded violations | |
--exit-code-violations | Exit with code 5 if violations exist, 0 otherwise | |
--refill-zones | Refill zones before running DRC | |
--save-board | Save board after DRC |
---
pcb export 3dpdf
Creates a PDF file with an embedded 3D model of the board.
Signature / Usage
kicad-cli pcb export 3dpdf [options] INPUT_FILEOptions
| Option | Description |
|---|---|
-h, --help | Show help |
-o, --output | Output filename (defaults to input with .pdf extension) |
-D, --define-var | Define/override project variables (repeatable) |
-f, --force | Overwrite existing output file |
--no-unspecified | Exclude components with "unspecified" footprint type |
--no-dnp | Exclude "Do not populate" components |
--variant | Specify output variant |
--grid-origin | Use grid origin for positioning |
--drill-origin | Use drill origin for positioning |
--subst-models | Replace VRML models with STEP/IGS equivalents |
--board-only | Include only board, exclude component models |
--cut-vias-in-body | Cut via holes even without conductor layers |
--no-board-body | Exclude board body from export |
--no-components | Exclude component 3D models |
--component-filter | Include only matching reference designators (comma-separated, wildcards supported) |
--include-tracks | Include outer conductor layer tracks/vias |
--include-pads | Include pads |
--include-zones | Include zones |
--include-inner-copper | Include inner conductor layer elements |
--include-silkscreen | Include silkscreen as flat faces |
--include-soldermask | Include solder mask as flat faces |
--fuse-shapes | Fuse overlapping geometry |
--fill-all-vias | Don't cut via holes in conductor layers |
--no-extra-pad-thickness | Disable additional pad metal thickness |
--min-distance | Tolerance for point proximity (default: 0.01mm) |
--net-filter | Include only copper items matching net wildcard |
--user-origin | Custom output origin (e.g., 1x1in) |
---
pcb export brep
Exports a BREP (OCCT-native boundary representation) 3D model file.
Signature / Usage
kicad-cli pcb export brep [options] INPUT_FILEOptions
Same options as pcb export 3dpdf, with output defaulting to .brep extension.
---
pcb export drill
Generates drill files in Excellon or Gerber format.
Signature / Usage
kicad-cli pcb export drill [options] INPUT_FILEOptions
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output <dir> | -o | Output directory |
--format <format> | Format: excellon (default) or gerber | |
--drill-origin <origin> | Origin: absolute or plot | |
--excellon-zeros-format <fmt> | Zeros format (Excellon only) | |
--excellon-oval-format <fmt> | Oval holes mode: route or alternate | |
--excellon-units <units> | -u | Units: mm or in (Excellon only) |
--excellon-mirror-y | Mirror Y axis (Excellon only) | |
--excellon-min-header | Minimal header (Excellon only) | |
--excellon-separate-th | Separate plated/non-plated files (Excellon only) | |
--generate-map | Generate drill map file | |
--generate-report | Generate report listing drill hits | |
--report-path <filename> | Output filename for drill report | |
--generate-tenting | Generate tented drill files (Gerber only) | |
--map-format <format> | Map format: pdf, gerberx2, ps, dxf, svg | |
--gerber-precision <precision> | Precision: 5 or 6 (Gerber only) |
---
pcb export dxf
Exports a board design to DXF format.
Signature / Usage
kicad-cli pcb export dxf [options] INPUT_FILEOptions
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output | -o | Output folder or filename |
--layers | -l | Comma-separated layer list |
--common-layers | --cl | Layers to plot on all outputs |
--drawing-sheet | Override board's drawing sheet path | |
--define-var | -D | Define/override project variables (repeatable) |
--exclude-refdes | --erd | Omit reference designators |
--exclude-value | --ev | Omit footprint values |
--sketch-pads-on-fab-layers | --sp | Draw pad outlines/numbers on fab layers |
--hide-DNP-footprints-on-fab-layers | --hdnp | Hide DNP footprint text/graphics |
--sketch-DNP-footprints-on-fab-layers | --sdnp | Sketch DNP footprint graphics |
--crossout-DNP-footprints-on-fab-layers | --cdnp | Mark DNP with "X" and strikethrough refs |
--subtract-soldermask | Remove silkscreen from maskless areas | |
--use-contours | --uc | Plot graphics using contours |
--use-drill-origin | --udo | Use drill/place origin instead of absolute |
--include-border-title | --ibt | Include sheet border/title block |
--output-units | --ou | Output units: mm or in (default) |
--drill-shape-opt | Drill marks: 0=none, 1=small, 2=actual size (default) | |
--mode-single | Single output file | |
--mode-multi | Multiple files per layer | |
--scale | Plot scaling factor; 0=autoscale | |
--check-zones | Verify/refill zones before export | |
--variant | Output variant |
---
pcb export gencad
Exports a board design to GenCAD format.
Signature / Usage
kicad-cli pcb export gencad [options] INPUT_FILEOptions
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output | -o | Output filename (defaults to input with .cad extension) |
--define-var | -D | Define/override project variables (repeatable) |
--flip-bottom-pads | -f | Flip bottom footprint padstacks |
--unique-pins | Generate unique pin names | |
--unique-footprints | Create new shape per footprint instance (no reuse) | |
--use-drill-origin | Use drill/place origin | |
--store-origin-coord | Save origin coordinates in file |
---
pcb export gerber / pcb export gerbers
Exports a board design to Gerber files (one layer per file). gerbers is the multi-file form; gerber exports a single file.
Signature / Usage
kicad-cli pcb export gerbers [options] INPUT_FILE
kicad-cli pcb export gerber [options] INPUT_FILEOptions
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output | -o | Output folder (defaults to current directory) |
--layers | -l | Comma-separated layers to export; omit for all layers |
--common-layers | --cl | Layers to include in every output file |
--drawing-sheet | Override board's drawing sheet | |
--define-var | -D | Define/override project variables (repeatable) |
--exclude-refdes | --erd | Omit reference designators |
--exclude-value | --ev | Omit footprint values |
--include-border-title | --ibt | Include sheet border/title block |
--sketch-pads-on-fab-layers | --sp | Draw pad outlines/numbers on fab layers |
--hide-DNP-footprints-on-fab-layers | --hdnp | Hide DNP footprint elements |
--sketch-DNP-footprints-on-fab-layers | --sdnp | Sketch DNP footprint graphics |
--crossout-DNP-footprints-on-fab-layers | --cdnp | Mark DNP with "X" courtyard overlay |
--no-x2 | Omit extended X2 format attributes | |
--no-netlist | Exclude netlist attributes | |
--subtract-soldermask | Remove silkscreen from maskless areas | |
--disable-aperture-macros | Disable aperture macros | |
--use-drill-file-origin | Use drill/place origin vs. absolute | |
--precision | Precision digits: 5 or 6 (default) | |
--no-protel-ext | Use .gbr extension instead of Protel extensions | |
--check-zones | Verify/refill zones before export | |
--variant | Output variant | |
--board-plot-params | Use board file's configured plot settings |
---
pcb export glb
Exports a board design to a GLB (binary glTF) 3D model file.
Signature / Usage
kicad-cli pcb export glb [options] INPUT_FILEOptions
Same options as pcb export 3dpdf, with output defaulting to .glb extension.
---
pcb export hpgl
Non-functional in KiCad 10.0. HPGL output is no longer supported; the command is retained for compatibility only.
---
pcb export ipc2581
Exports a board design in IPC-2581 format.
Signature / Usage
kicad-cli pcb export ipc2581 [options] INPUT_FILEOptions
| Option | Description |
|---|---|
-h, --help | Show help |
-o, --output | Output filename (defaults to input with .xml extension) |
--drawing-sheet | Override board's drawing sheet |
-D, --define-var | Define/override project variables (repeatable) |
--precision | Decimal precision (default: 6) |
--compress | Compress output as ZIP file |
--version | IPC-2581 standard revision: B or C (default) |
--units | Output units: mm (default) or in |
--bom-col-int-id | BOM internal ID field name |
--bom-col-mfg-pn | BOM manufacturer part number field name |
--bom-col-mfg | BOM manufacturer field name |
--bom-col-dist-pn | BOM distributor part number field name |
--bom-col-dist | BOM distributor field name |
--bom-rev | BOM revision (defaults to schematic root sheet's Revision field) |
--variant | Output variant |
---
pcb export ipcd356
Generates an IPC-D-356 netlist from the board design.
Signature / Usage
kicad-cli pcb export ipcd356 [options] INPUT_FILEOptions
| Option | Description |
|---|---|
-h, --help | Show help |
-o, --output | Output filename (defaults to input with .d356 extension) |
---
pcb export odb
Exports a board design in ODB++ format.
Signature / Usage
kicad-cli pcb export odb [options] INPUT_FILEOptions
| Option | Description |
|---|---|
-h, --help | Show help |
-o, --output | Output filename or folder (folder when uncompressed) |
--drawing-sheet | Override board's drawing sheet |
-D, --define-var | Define/override project variables (repeatable) |
--precision | Decimal precision (default: 2) |
--compression | Compression: none, zip (default), or tgz |
--units | Output units: mm (default) or in |
--variant | Output variant |
---
pcb export pdf
Exports a board design to PDF. Each layer can be a separate file, a separate page, or combined.
Signature / Usage
kicad-cli pcb export pdf [options] INPUT_FILEOptions
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output | -o | Output folder or filename |
--layers | -l | Comma-separated required layer list |
--common-layers | --cl | Layers to plot on all outputs |
--drawing-sheet | Override board's drawing sheet | |
--define-var | -D | Define/override project variables (repeatable) |
--mirror | -m | Mirror board |
--exclude-refdes | --erd | Omit reference designators |
--exclude-value | --ev | Omit footprint values |
--include-border-title | --ibt | Include sheet border/title block |
--subtract-soldermask | Remove silkscreen from maskless areas | |
--sketch-pads-on-fab-layers | --sp | Draw pad outlines/numbers on fab layers |
--hide-DNP-footprints-on-fab-layers | --hdnp | Hide DNP elements |
--sketch-DNP-footprints-on-fab-layers | --sdnp | Sketch DNP graphics |
--crossout-DNP-footprints-on-fab-layers | --cdnp | Mark DNP with "X" |
--negative | -n | Plot in negative |
--black-and-white | Plot in black and white | |
--theme | -t | Theme name (defaults to editor's selection) |
--drill-shape-opt | Drill marks: 0=none, 1=small, 2=actual (default) | |
--mode-single | Single file; OUTPUT is complete path | |
--mode-separate | Multiple files per layer; OUTPUT is directory | |
--mode-multipage | Single multi-page PDF; OUTPUT is complete path | |
--scale | Scaling factor; 0=autoscale | |
--bg-color | Background color (hex #rrggbb[aa] or CSS rgb[a]()) | |
--check-zones | Verify/refill zones before export | |
--variant | Output variant |
---
pcb export ply
Exports a board design to a PLY 3D mesh file.
Signature / Usage
kicad-cli pcb export ply [options] INPUT_FILEOptions
Same options as pcb export 3dpdf, with output defaulting to .ply extension.
---
pcb export pos
Generates a pick-and-place position file.
Signature / Usage
kicad-cli pcb export pos [options] INPUT_FILEOptions
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output | -o | Output filename |
--side | Side: front, back, or both | |
--format | Format: ascii, csv, or gerber | |
--units | Units: in or mm | |
--bottom-negate-x | Negate X coordinates for bottom layer | |
--use-drill-file-origin | Use drill origin | |
--smd-only | Surface-mount components only | |
--exclude-fp-th | Exclude through-hole footprints | |
--exclude-dnp | Exclude "Do not populate" items | |
--gerber-board-edge | Include board edge (Gerber format only) | |
--variant | Output variant |
---
pcb export ps
Exports a board design to PostScript format.
Signature / Usage
kicad-cli pcb export ps [options] INPUT_FILEOptions
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output | -o | Output folder or filename |
--layers | -l | Comma-separated required layer list |
--common-layers | --cl | Layers to include in every output file |
--drawing-sheet | Override board's drawing sheet | |
--define-var | -D | Define/override project variables (repeatable) |
--mirror | -m | Mirror board |
--exclude-refdes | --erd | Omit reference designators |
--exclude-value | --ev | Omit footprint values |
--include-border-title | --ibt | Include sheet border/title block |
--subtract-soldermask | Remove silkscreen from maskless areas | |
--sketch-pads-on-fab-layers | --sp | Draw pad outlines/numbers on fab layers |
--hide-DNP-footprints-on-fab-layers | --hdnp | Hide DNP elements |
--sketch-DNP-footprints-on-fab-layers | --sdnp | Sketch DNP graphics |
--crossout-DNP-footprints-on-fab-layers | --cdnp | Mark DNP with "X" |
--negative | -n | Plot in negative |
--black-and-white | Plot in black and white | |
--theme | -t | Theme name (defaults to editor's selection) |
--drill-shape-opt | Drill marks: 0=none, 1=small, 2=actual (default) | |
--mode-single | Single file; OUTPUT is complete path | |
--mode-multi | Multiple files per layer; OUTPUT is directory | |
--track-width-correction | -C | Millimeter adjustment for tracks/vias/pads |
--x-scale-factor | -X | X scale adjustment |
--y-scale-factor | -Y | Y scale adjustment |
--force-a4 | -A | Force A4 paper size |
--scale | Scaling factor; 0=autoscale | |
--check-zones | Verify/refill zones before export | |
--variant | Output variant |
---
pcb export stats
Exports a statistics report for the board design.
Signature / Usage
kicad-cli pcb export stats [options] INPUT_FILEOptions
| Option | Description |
|---|---|
-h, --help | Show help |
-o, --output | Output filename (defaults to input with _statistics suffix) |
--format | Report format: report (default) or json |
--units | Report units: mm (default) or in |
--exclude-footprints-without-pads | Exclude padless footprints from counts |
--subtract-holes-from-board | Subtract hole area from total board area |
--subtract-holes-from-copper | Subtract hole area from copper area |
---
pcb export step
Exports a board design to a STEP 3D CAD model file.
Signature / Usage
kicad-cli pcb export step [options] INPUT_FILEOptions
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output | -o | Output filename (defaults to input with .step extension) |
--define-var | -D | Define/override project variables (repeatable) |
--force | -f | Overwrite existing output |
--no-unspecified | Exclude unspecified footprint types | |
--no-dnp | Exclude "Do not populate" items | |
--variant | Output variant | |
--grid-origin | Use grid origin | |
--drill-origin | Use drill origin | |
--subst-models | Substitute VRML models with STEP/IGS | |
--board-only | Board without components | |
--cut-vias-in-body | Cut via holes in board body | |
--no-board-body | Exclude board body | |
--no-components | Exclude component 3D models | |
--component-filter | Filter components by reference (wildcards supported) | |
--include-tracks | Include outer layer tracks/vias | |
--include-pads | Include pads | |
--include-zones | Include zones | |
--include-inner-copper | Include inner layer elements | |
--include-silkscreen | Include silkscreen as flat faces | |
--include-soldermask | Include solder mask as flat faces | |
--fuse-shapes | Fuse overlapping geometry | |
--fill-all-vias | Don't cut via holes | |
--no-extra-pad-thickness | Disable extra pad metal thickness | |
--min-distance | Point proximity tolerance (default: 0.01mm) | |
--net-filter | Include nets matching wildcard | |
--no-optimize-step | Write parametric curves; reduces file size but may reduce compatibility | |
--user-origin | Custom origin (e.g., 1x1mm) |
---
pcb export stl
Exports a board design to an STL 3D mesh file.
Signature / Usage
kicad-cli pcb export stl [options] INPUT_FILEOptions
Same options as pcb export 3dpdf, with output defaulting to .stl extension.
---
pcb export stpz
Exports a board design to a GZIP-compressed STEP file.
Signature / Usage
kicad-cli pcb export stpz [options] INPUT_FILEOptions
Same options as pcb export step, with output defaulting to .stpz extension. The --no-optimize-step flag writes parametric curves, which reduces file size but may reduce compatibility with some CAD tools.
---
pcb export u3d
Exports a board design to a U3D (Universal 3D) file for embedding in PDF.
Signature / Usage
kicad-cli pcb export u3d [options] INPUT_FILEOptions
Same options as pcb export 3dpdf, with output defaulting to .pdf extension.
---
pcb export svg
Exports a board design to SVG format.
Signature / Usage
kicad-cli pcb export svg [options] INPUT_FILEOptions
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output | -o | Output folder or filename |
--layers | -l | Comma-separated required layer list |
--common-layers | --cl | Layers to plot on all outputs |
--drawing-sheet | Override board's drawing sheet | |
--define-var | -D | Define/override project variables (repeatable) |
--subtract-soldermask | Remove silkscreen from maskless areas | |
--mirror | -m | Mirror board |
--theme | -t | Theme name (defaults to editor's selection) |
--negative | -n | Plot in negative |
--black-and-white | Plot in black and white | |
--sketch-pads-on-fab-layers | --sp | Draw pad outlines/numbers on fab layers |
--hide-DNP-footprints-on-fab-layers | --hdnp | Hide DNP elements |
--sketch-DNP-footprints-on-fab-layers | --sdnp | Sketch DNP graphics |
--crossout-DNP-footprints-on-fab-layers | --cdnp | Mark DNP with "X" |
--page-size-mode | Sizing: 0=full sheet, 1=page size, 2=board size | |
--fit-page-to-board | SVG size matches board (equivalent to --page-size-mode 2) | |
--exclude-drawing-sheet | Plot without drawing sheet | |
--drill-shape-opt | Drill marks: 0=none, 1=small, 2=actual (default) | |
--mode-single | Single file; OUTPUT is complete path | |
--mode-multi | Multiple files; OUTPUT is directory | |
--scale | Scaling factor; 0=autoscale | |
--check-zones | Verify/refill zones before export | |
--variant | Output variant |
---
pcb export vrml
Exports a board design to a VRML 3D model file.
Signature / Usage
kicad-cli pcb export vrml [options] INPUT_FILEOptions
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output | -o | Output filename (defaults to input with .wrl extension) |
--define-var | -D | Define/override project variables (repeatable) |
--force | -f | Overwrite existing file |
--no-unspecified | Exclude "unspecified" footprint types | |
--no-dnp | Exclude "Do not populate" components | |
--variant | Output variant | |
--user-origin | Custom origin (format: XxYunit); defaults to board center | |
--units | Output units: mm, m, in (default), or tenths | |
--models-dir | Copy component models to a directory (embedded if omitted) | |
--models-relative | Use relative paths in output (requires --models-dir) |
---
pcb export xao
Exports a board design to an XAO (SALOME/Gmsh) 3D model file.
Signature / Usage
kicad-cli pcb export xao [options] INPUT_FILEOptions
Same options as pcb export 3dpdf, with output defaulting to .xao extension.
---
pcb import
Imports a non-KiCad PCB design file and converts it to .kicad_pcb format.
Signature / Usage
kicad-cli pcb import [options] INPUT_FILEOptions
| Option | Description |
|---|---|
-h, --help | Show help |
-o, --output | Output filename (.kicad_pcb) |
--format | Input format: auto (default), pads, altium, eagle, cadstar, fabmaster, pcad, solidworks |
--report-format | Report format: none, json, or text |
--report-file | Import report output filename |
---
pcb render
Produces a raytraced PNG or JPEG image of the board.
Signature / Usage
kicad-cli pcb render [options] INPUT_FILEOptions
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output | -o | Output filename (.png or .jpg) |
--define-var | -D | Define/override project variables (repeatable) |
--width | -w | Image width in pixels (default: 1600) |
--height | Image height in pixels (default: 900) | |
--side | View side: top, bottom, left, right, front, back | |
--background | Background: default, transparent, opaque | |
--quality | Render quality: basic, high, or user | |
--preset | Color preset (e.g., follow_pcb_editor) | |
--use-board-stackup-colors | Override with board stackup colors | |
--floor | Enable floor, shadows, and post-processing | |
--perspective | Use perspective projection | |
--zoom | Camera zoom factor (integer) | |
--pan | Pan location in mm ('X,Y,Z') | |
--pivot | Pivot point in cm ('X,Y,Z') | |
--rotate | Rotation in degrees ('X,Y,Z') | |
--light-top | Top light intensity ('R,G,B' or scalar 0–1) | |
--light-bottom | Bottom light intensity | |
--light-side | Side light intensity | |
--light-camera | Camera light intensity | |
--light-side-elevation | Side light elevation angle (0–90°) |
---
pcb upgrade
Converts a KiCad board file from a previous format to the current version's native format.
Signature / Usage
kicad-cli pcb upgrade [options] INPUT_FILEOptions
| Option | Description |
|---|---|
-h, --help | Show help |
--force | Re-save input board even if already in current format |
Notes
- Layer names use canonical format:
F.Cu,B.Cu,In.1,F.Fab,B.Fab, etc. - Wildcard patterns are supported in
--component-filterand--net-filter. - The
--include-tracks,--include-pads,--include-zones, and--fuse-shapesoptions for 3D exports can significantly increase processing time. - Exit code
5is returned when violations are found with--exit-code-violations(DRC).
Related
- Introduction
- Schematic Commands
Schematic Commands
The sch subcommand processes schematic files for validation, export, format conversion, and format upgrade.
Commands
| Command | Purpose | Main Options |
|---|---|---|
sch erc | Run Electrical Rules Check | --output, --format, --severity-*, --exit-code-violations |
sch export bom | Export Bill of Materials | --output, --preset, --format-preset, --fields, --group-by, --exclude-dnp |
sch export dxf | Export DXF (one file per sheet) | --output, --theme, --black-and-white, --pages |
sch export hpgl | Export HPGL (non-functional in 10.0) | deprecated |
sch export netlist | Export netlist | --output, --format |
sch export pdf | Export PDF | --output, --theme, --black-and-white, --exclude-property-popups, --pages |
sch export ps | Export PostScript (one file per sheet) | --output, --theme, --black-and-white, --pages |
sch export python-bom | Export BOM via legacy Python scripts | --output |
sch export svg | Export SVG (one file per sheet) | --output, --theme, --black-and-white, --pages |
sch upgrade | Upgrade schematic to current format | --force |
---
sch erc
Validates electrical connections and generates compliance reports.
Signature / Usage
kicad-cli sch erc [options] INPUT_FILEINPUT_FILE: Root schematic file (.kicad_sch).
Options
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output <filename> | -o | Report destination filename |
--define-var <key>=<value> | -D | Define/override project variables (repeatable) |
--format <format> | Report format: report (default) or json | |
--units <unit> | Measurement units: mm (default), in, or mils | |
--severity-all | Include all violation categories | |
--severity-error | Report error-level violations only | |
--severity-warning | Report warning-level violations only | |
--severity-exclusions | Report excluded violations | |
--exit-code-violations | Return exit code 5 if violations exist, 0 otherwise |
---
sch export bom
Generates a Bill of Materials with customizable fields and formatting.
Signature / Usage
kicad-cli sch export bom [options] INPUT_FILEOptions
| Option | Description |
|---|---|
-h, --help | Show help |
-o, --output | Output filename (default extension: .csv) |
--variant | Select design variant for output |
--preset | Apply a named BOM configuration preset |
--format-preset | Use a named format template (e.g., CSV) |
--fields | Specify exported columns; * includes all fields |
--labels | Assign column header names |
--group-by | Consolidate rows by matching field values |
--sort-field | Define primary sort column |
--sort-asc | Enable ascending sort order (descending is default) |
--filter | Include only matching reference designators |
--exclude-dnp | Omit "Do not populate" components |
--include-excluded | Retain components marked "Exclude from BOM" |
--field-delimiter | Separator between columns (default: ,) |
--string-delimiter | Character surrounding field values |
--ref-delimiter | Character between references (default: ,) |
--ref-range-delimiter | Character for reference ranges (default: -) |
--keep-tabs | Preserve tab characters from input |
--keep-line-breaks | Preserve line break characters from input |
---
sch export dxf
Generates vector DXF drawings. Produces one file per schematic sheet.
Signature / Usage
kicad-cli sch export dxf [options] INPUT_FILEOptions
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output <dir> | -o | Target directory for exported files |
--drawing-sheet | Override drawing sheet template path | |
--define-var <key>=<value> | -D | Define/override project variables (repeatable) |
--variant | Select design variant | |
--theme | -t | Apply named color/style theme |
--black-and-white | -b | Disable color rendering |
--exclude-drawing-sheet | -e | Omit template frame and borders |
--default-font | Primary font selection (default: "KiCad Font") | |
--draw-hop-overs | Illustrate wire crossing patterns | |
--pages | Comma-separated sheet identifiers to export |
---
sch export hpgl
Non-functional in KiCad 10.0. HPGL output is no longer supported; the command is retained for compatibility only.
---
sch export netlist
Creates a connectivity netlist in multiple EDA formats.
Signature / Usage
kicad-cli sch export netlist [options] INPUT_FILEOptions
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output <filename> | -o | Output filename (default extension: .net) |
--variant | Select design variant | |
--format <format> | Output format: kicadsexpr (default), kicadxml, cadstar, orcadpcb2, spice, spicemodel, pads, allegro |
---
sch export pdf
Generates a PDF with embedded properties and sheet navigation links.
Signature / Usage
kicad-cli sch export pdf [options] INPUT_FILEOptions
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output <filename> | -o | Output filename (default extension: .pdf) |
--drawing-sheet | Override drawing sheet template path | |
--define-var <key>=<value> | -D | Define/override project variables (repeatable) |
--variant | Select design variant | |
--theme | -t | Apply named color/style theme |
--black-and-white | -b | Monochrome rendering |
--exclude-drawing-sheet | -e | Omit frame and title block |
--default-font | Primary font (default: "KiCad Font") | |
--draw-hop-overs | Show wire crossing marks | |
--exclude-property-popups | Disable interactive field overlays | |
--exclude-hierarchical-links | Remove clickable sheet navigation | |
--exclude-metadata | Omit AUTHOR/SUBJECT metadata | |
--no-background-color | -n | Strip background regardless of theme |
--pages | Comma-separated sheet identifiers to include |
---
sch export ps
Creates PostScript vector documents. Produces one file per schematic sheet.
Signature / Usage
kicad-cli sch export ps [options] INPUT_FILEOptions
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output <dir> | -o | Target directory for files |
--drawing-sheet | Override drawing sheet template path | |
--define-var <key>=<value> | -D | Define/override project variables (repeatable) |
--variant | Select design variant | |
--theme | -t | Apply named color/style theme |
--black-and-white | -b | Disable colors |
--exclude-drawing-sheet | -e | Omit borders |
--default-font | Font selection (default: "KiCad Font") | |
--draw-hop-overs | Wire crossing illustration | |
--no-background-color | -n | Strip background color |
--pages | Comma-separated sheet identifiers to include |
---
sch export python-bom
Generates a BOM using the legacy XML/Python workflow. This represents the old approach; modern projects should use sch export bom instead.
Signature / Usage
kicad-cli sch export python-bom [options] INPUT_FILE---
sch export svg
Generates SVG files with theme support. Produces one file per schematic sheet.
Signature / Usage
kicad-cli sch export svg [options] INPUT_FILEOptions
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output <dir> | -o | Target directory or single filename |
--drawing-sheet | Override drawing sheet template path | |
--define-var <key>=<value> | -D | Define/override project variables (repeatable) |
--variant | Select design variant | |
--theme | -t | Apply named color/style theme |
--black-and-white | -b | Monochrome rendering |
--exclude-drawing-sheet | -e | Omit borders/frame |
--default-font | Font selection (default: "KiCad Font") | |
--draw-hop-overs | Show wire crossing marks | |
--pages | Comma-separated sheet identifiers to export |
---
sch upgrade
Converts schematic files from a previous KiCad format to the current version.
Signature / Usage
kicad-cli sch upgrade [options] INPUT_FILEOptions
| Option | Description |
|---|---|
-h, --help | Show help |
--force | Re-save even if already in current format |
Notes
- All schematic commands accept
.kicad_schas the root input file. - Default output filenames match the input filename with an appropriate extension (
.rpt,.json,.csv,.net,.pdf, etc.). - Multi-sheet designs:
--pagesaccepts comma-separated sheet identifiers; omitting it exports all sheets. sch ercandsch export bomsupport--variantfor filtering components per assembly variant.
Related
- Introduction
- PCB Commands
Symbol Commands
The sym subcommand manages symbol operations — exporting symbol libraries to alternative formats and upgrading legacy or non-KiCad symbol libraries to the current KiCad format.
Commands
| Command | Purpose | Main Options |
|---|---|---|
sym export svg | Export symbols to SVG | --output, --layers, --theme, --symbol, --black-and-white |
sym export kicad_sym | Export symbols to native KiCad format | --output |
sym upgrade | Upgrade symbol libraries to current format | --output, --force |
---
sym export svg
Converts symbol libraries to SVG format files.
Signature / Usage
kicad-cli sym export svg [options] INPUT_FILE_OR_DIRINPUT_FILE_OR_DIR: Symbol file (.kicad_sym) or directory to export.
Options
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output <dir> | -o | Export destination folder; defaults to current directory |
--layers <layer list> | -l | Comma-separated layer names to include |
--define-var <key>=<value> | -D | Define/override project variables (repeatable) |
--theme <theme name> | -t | Theme for export; uses current theme if omitted |
--symbol <symbol> | --sym | Export a single named symbol only |
--black-and-white | Monochrome output |
---
sym export kicad_sym
Saves symbols in native KiCad symbol format.
Signature / Usage
kicad-cli sym export kicad_sym [options] INPUT_FILEINPUT_FILE: Symbol file to export.
Options
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output <filename> | -o | Output filename; defaults to input filename with .kicad_sym extension |
---
sym upgrade
Transforms symbol libraries from legacy or non-KiCad formats to the current KiCad format. Pre-existing current-format libraries remain unchanged unless --force is used.
Signature / Usage
kicad-cli sym upgrade [options] INPUT_FILE_OR_DIRINPUT_FILE_OR_DIR: Symbol file or directory to upgrade.
Supported Input Formats
- KiCad symbol libraries (
.kicad_sym) - KiCad legacy pre-5.0 symbol libraries (
.lib,.dcm) - Altium integrated libraries (
.IntLib) - EAGLE XML libraries (
.lbr) - EasyEDA (JLCEDA) Standard files (
.json) - EasyEDA (JLCEDA) Pro files (
.elibz,.epro,.zip)
Options
| Option | Short | Description |
|---|---|---|
--help | -h | Show help |
--output <dir> | -o | Output directory; overwrites original files if omitted |
--force | Re-save even if already in current format |
Related
- Introduction
- Footprint Commands
Version Commands
The version subcommand displays KiCad version and build information.
Commands
| Command | Purpose | Main Options |
|---|---|---|
version | Display KiCad version details | none |
---
version
Outputs the installed KiCad version and build details. Takes no arguments.
Signature / Usage
kicad-cli versionRelated
- Introduction
KiCad 10 CLI Reference
| Name | Description | Path |
|---|---|---|
| Introduction | Overview of kicad-cli, primary subcommands, and help system | 01-introduction.md |
| Footprint Commands | fp export svg, fp upgrade — export and upgrade footprint libraries | 02-footprint-commands.md |
| Jobset Commands | jobset run — execute predefined .kicad_jobset files | 03-jobset-commands.md |
| PCB Commands | pcb drc, pcb export * (28 formats), pcb import, pcb render, pcb upgrade | 04-pcb-commands.md |
| Schematic Commands | sch erc, sch export * (bom, dxf, netlist, pdf, ps, svg, python-bom), sch upgrade | 05-schematic-commands.md |
| Symbol Commands | sym export svg, sym export kicad_sym, sym upgrade | 06-symbol-commands.md |
| Version Commands | version — display KiCad version information | 07-version-commands.md |
Introduction to the KiCad Schematic Editor
The KiCad Schematic Editor (Eeschema) is a schematic capture application for Linux, macOS, and Windows. It is an integrated environment for schematic drawing, PCB footprint selection, library management, and data transfer to the PCB editor.
Key Features
- Electrical rules checking (ERC)
- Circuit simulation via ngspice
- Plot file export in multiple formats (PDF, SVG, DXF, HPGL, PostScript)
- Bill of materials generation via Python or XSLT scripts
- Multi-sheet schematics (flat, simple hierarchical, and complex hierarchical)
User Interface
The main interface has eight key elements:
| Element | Description |
|---|---|
| Top toolbars | File management, zoom, and editing tools |
| Properties panel | Object property editing |
| Schematic hierarchy navigator | Sheet navigation |
| Selection filter panel | Controls which object types are selectable |
| Message panel / status bar | Cursor position, zoom, grid info |
| Left toolbar | Display and visibility options |
| Right toolbar | Drawing and design tools |
| Editing canvas | The schematic workspace |
Navigating the Canvas
- Pan: Middle or right mouse button drag
- Zoom: Mouse wheel scroll
- Zoom In / Zoom Out / Zoom to Page / Zoom to Objects / Zoom to Selection: Top toolbar buttons
The status bar shows cursor position (X, Y), zoom (Z), relative offset (dx, dy, distance), grid, and units. Press Space to reset relative origin.
Hotkeys
- Ctrl+F1: Show full hotkey list (use Cmd on macOS)
- Configure custom hotkeys via Preferences → Hotkeys
- Hotkey files are stored at:
- Windows:
%APPDATA%\kicad\10.0\user.hotkeys - Linux:
~/.config/kicad/10.0/user.hotkeys - macOS:
~/Library/Preferences/kicad/10.0/user.hotkeys - Import configurations with the Import Hotkeys button
Selection
Rectangular selection (left-to-right: fully enclosed items; right-to-left: touching items):
Lasso selection (clockwise: enclosed; counter-clockwise: touching):
Modifier keys:
| Modifier | Effect |
|---|---|
| Ctrl / Cmd | Toggle item selection |
| Shift | Add to selection |
| Ctrl+Shift / Cmd+Shift | Remove from selection |
| Long click / Alt | Clarify from pop-up menu |
The Selection Filter panel (lower left) controls which object types are selectable. Use the "All items" checkbox for a quick toggle.
Left Toolbar Display Controls
| Control | Function |
|---|---|
| Grid visibility | Toggle grid display |
| Grid override | Enable per-object grid overrides |
| Unit toggles | Switch between inches, mils, millimeters |
| Cursor shape | Cycle cursor styles (small, fullscreen, 45° fullscreen) |
| Hidden pins | Show/hide invisible pins |
| Wire angle mode | Cycle free angle / 90° / 45° (Shift+Space) |
| Auto-annotation | Toggle automatic reference designator assignment |
| Hierarchy navigator | Open/close sheet navigation panel |
| Properties manager | Open/close properties panel |
Notes
- Context menus (right-click) expose additional actions based on selection
- Many actions have no default hotkey but can be assigned via Preferences
Related
- Schematic Creation and Editing
- Advanced Topics
Schematic Creation and Editing
Complete workflow for creating and editing schematics: symbol placement, electrical connections, annotation, and design configuration.
Schematic Editing Operations
The right toolbar contains primary editing tools. Tools stay active until you press Escape or select another tool. Key tools:
- Selection tool — default mode
- Add Symbol (A) — open symbol chooser
- Add Power Symbol — place power connections
- Add Wire (W) — draw wire connections
- Add Bus — draw buses and wire-to-bus entries
- Add Label / Global Label / Hierarchical Label — place nets labels
- Add Junction — connect crossing wires
- Add No-Connect Flag — mark intentionally unconnected pins
- Add Text / Text Box — annotations
- Add Hierarchical Subsheet — multi-sheet organization
- Interactive Delete — remove clicked items
Grids and Snapping
- Standard grid: 50 mil (0.050" / 1.27 mm) — required for symbol pin compatibility
- Smaller grids are suitable only for text and graphics, not pins/wires
- Snapping also occurs to connected objects (pins, existing wires) even when grid snap is off
| Modifier | Effect |
|---|---|
| Ctrl | Disable grid snapping |
| Shift | Disable connected-object snapping |
Configure grid via right-click menu or Preferences → Grids pane. Grid overrides per object type are toggled via the left toolbar button.
Working with Symbols
Placing Symbols
Press A or click the add-symbol button. The chooser dialog filters by name, keywords, description, and custom fields.
Filtering syntax:
- Wildcards:
*(any chars),?(single char) - Key-value:
Key>123,Key<123with metric suffixes - Regex: wxWidgets Advanced Regular Expression style
After selection, the symbol attaches to the cursor. Before placing: rotate, mirror, and edit fields via hotkeys or right-click menu.
Symbol Properties (E or double-click)
Fields are shown in a table. Reserved field name prefix: ki_ (do not use).
| Field | Description |
|---|---|
| Reference | Designator (R1, U3, etc.) |
| Value | Component value or type |
| Footprint | PCB footprint (library:footprint_name) |
| Datasheet | URL or file path; supports embedding |
Symbol Attributes:
- Exclude from simulation
- Exclude from bill of materials
- Exclude from board
- Do Not Populate (DNP)
Editing Symbol Definitions
- Edit Symbol… — opens the schematic instance only (affects this copy)
- Edit Library Symbol… — opens the library master (does not update existing instances)
- Update Symbol from Library… — syncs instance with library
- Change Symbol… — swap to a different symbol
Alternate Pin Functions
Access the Pin Functions tab in Symbol Properties. Right-click a pin for the Pin Function context menu.
Reference Designators and Annotation
Reference designators consist of a type letter + number (e.g., R1, C5, U10). Multi-unit symbols append a trailing letter (U1A, U1B).
Auto-Annotation
Enable via Preferences → Schematic Editor → Editing Options or the toolbar toggle.
Configure in Schematic Setup → Annotation:
- Order: Sort by X or Y position
- Numbering: Lowest available or sheet-number-based
- Allow reference reuse: Permit reassigning numbers
Annotation Tool (top toolbar)
Options:
- Scope: Entire schematic, current sheet, or selection
- Recurse into subsheets: Include child sheets
- Options: All symbols or unannotated only; reset symbol units
- Order: Left-to-right (X) or top-to-bottom (Y)
Electrical Connections
Connections are called nets (circuit nodes). All pins on the same net are electrically connected. Two methods: 1. Wires — direct physical connection 2. Labels — connection by matching name
Net Name Priority
When multiple labels share a net, the name is determined by priority:
1. Global labels 2. Power symbols 3. Local labels 4. Hierarchical labels 5. Hierarchical sheet pins
Within each level, alphabetically first name wins.
Wires
Press W to draw wires. Only wire ends create connections — crossing wires without a junction do not connect.
Angle modes (cycle with Shift+Space):
- Free angle
- 90-degree
- 45-degree
Key operations:
- Move: Repositions wire without maintaining connections
- Drag: Repositions while keeping connections
- Ctrl+4: Select all connected wire segments
- Right-click → Slice: Separate at cursor
- Right-click → Break: Disconnect from adjacent segments
Wire properties (press E on selected wire): width, color, line style (solid/dashed/dotted/etc.), junction size. Set to 0 / clear / Default to inherit net class settings.
Junctions
Required where crossing wires should connect. Auto-created when a wire starts or ends on an existing wire. Size configured in Schematic Setup → General → Formatting.
Wire Hop-Overs
Visual indicator for non-connected crossings. Configure hop-over size in Schematic Setup → Formatting.
Labels
Types
| Type | Scope | Hotkey / Button |
|---|---|---|
| Local label | Same sheet only | L |
| Global label | Entire schematic | Ctrl+L |
| Hierarchical label | Connects to parent sheet pins | — |
Label Properties
- Label name: Supports markup (overbars, subscripts), variable substitution
- Shape (global/hierarchical): Input, Output, Bidirectional, Tri-state, Passive
- Multiple label input mode: Place several labels in sequence
- Font, size, color, orientation
Inter-Sheet References
Global labels can show page numbers of matching labels elsewhere. Configure in Schematic Setup → Formatting (optional prefix/suffix). Click a reference to navigate.
Buses
Buses group related signals. Draw with the bus tool.
Vector Buses
Syntax: <PREFIX>[M..N]
DATA[0..7] → DATA0, DATA1, ..., DATA7Rules: Non-negative integers; M and N may be in any order.
Group Buses
Syntax: <OPTIONAL_NAME>{SIGNAL1 SIGNAL2 ...}
USB1{DP DM} → USB1.DP, USB1.DM
{SCL SDA} → SCL, SDA
MEMORY{A[7..0] D[7..0] OE WE} → MEMORY.A7, ..., MEMORY.OE, ...Spaces in names: use backslash or quotes:
"DATA BUS"[0..7]
"DATA BUS"{"SIGNAL 1" "SIGNAL 2"}Bus Connections
Connect pins to bus members using labels (not direct wires). Bus entries (45° segments) are graphical only. Use right-click → Unfold from Bus (hotkey C) to extract individual signals.
Bus Aliases
Define in Schematic Setup → Bus Alias Definitions. Example: alias USB = {DP DM VBUS}, then use {USB} or USB1{USB} in labels.
Power Symbols
Power symbols represent global nets (VCC, GND, etc.). The Value field determines the net name. Two power symbols with the same value connect anywhere in the schematic regardless of sheet.
PWR_FLAG: Add to nets that connect to a power source to prevent ERC warnings about undriven power input pins.
Hidden power pins: Legacy feature — invisible Power Input pins that implicitly connect to global nets by name. Enable visibility via Preferences → Display Options → Show hidden pins.
No-Connection Flags
Mark intentionally unconnected pins with the no-connect tool (X marker) to suppress ERC warnings. Stacked pins with no-connect flags get separate nets.
Net Classes
Group nets for PCB design rules and schematic graphical properties. Create/edit in Schematic Setup or Board Setup.
Assignment methods:
- Pattern-based matching
- Graphical net class directives
- Net class fields on labels
Multiple net classes can apply to one net; Default class is the fallback. The resolved net class appears in the status bar when a wire or label is selected.
Component Classes
Group symbols for PCB layout rules. Assign via graphical markers or symbol field filtering.
Rule Areas
Apply local design rules to enclosed schematic elements. Right-click → Add Rule Area, then configure rules within the boundary.
Graphics and Text
| Element | Hotkey | Notes |
|---|---|---|
| Text | T | Supports markup, variables, font/color |
| Text Box | — | Bordered text region |
| Rectangle | — | Graphical only |
| Circle | — | Graphical only |
| Arc | — | Graphical only |
| Bezier curve | — | Graphical only |
| Line segment | — | Graphical only |
| Table | — | Structured data display |
| Bitmap image | — | Documentation/reference |
Graphical elements do not create electrical connections.
Groups
Select objects → right-click → Group. Groups move, rotate, and delete as a unit.
Aligning Objects
Select multiple objects → Align tools for left/right/top/bottom/center alignment and horizontal/vertical distribution.
Schematic Setup
Access via File → Schematic Setup:
| Tab | Contents |
|---|---|
| General | Sheet size, title block, formatting |
| Formatting | Grid, junction dots, text sizes, margins, inter-sheet references |
| Annotation | Auto-annotation behavior, numbering style |
| Net Classes | Net class names and properties |
| Component Classes | Component class groups |
| Bus Aliases | Shortcuts for bus definitions |
| Text Variables | Project-wide substitution variables |
Notes
- Use 50 mil grid for all pins and wires to ensure compatibility with the KiCad standard symbol library
- Wires connect only at endpoints — crossing wires require an explicit junction to connect
- The
ki_field name prefix is reserved by KiCad
Related
- Introduction
- Multiple Sheets and Hierarchical Schematics
- Inspecting a Schematic
- Symbols and Symbol Libraries
Multiple Sheets and Hierarchical Schematics
KiCad organizes multi-sheet designs through three hierarchical structures: flat hierarchies, simple hierarchies, and complex hierarchies (where sheets are reused multiple times).
Hierarchy Types
| Type | Description |
|---|---|
| Flat hierarchy | Multiple sheets with no explicit parent-child relationship |
| Simple hierarchy | Each subsheet is used exactly once |
| Complex hierarchy | A subsheet is instantiated multiple times from different parent sheets |
Adding Top-Level Sheets
Each sheet is an independent .kicad_sch file. Multiple root-level sheets can exist in a project. There is no explicit connection between top-level sheets; they share global nets only via global labels and power symbols.
Adding Hierarchical Subsheets
Use the Add Hierarchical Subsheet tool from the right toolbar. When placing a subsheet, specify the filename for the sheet file. The placed subsheet appears as a rectangle on the parent sheet.
Sheet Pins and Hierarchical Labels
Hierarchical labels (created inside a subsheet) expose signals at the sheet boundary. They visually indicate signal direction (Input, Output, Bidirectional, Tri-state, Passive).
Hierarchical sheet pins appear on the parent sheet's subsheet symbol. Each pin corresponds to a hierarchical label in the child sheet.
Syncing Pins and Labels
Use the Sync Hierarchical Sheet Pins and Hierarchical Labels tool to manage correspondence. It shows all hierarchical labels in each subsheet and lets you add, remove, or update pins accordingly.
Navigating Between Sheets
The Hierarchy Navigator panel (toolbar icon or View menu) shows a tree of all sheets. Double-click a sheet to open it. You can also use the breadcrumb trail at the top of the canvas to navigate up to a parent sheet.
Electrical Connections Between Sheets
Three mechanisms establish cross-sheet connectivity:
| Mechanism | Scope | Usage |
|---|---|---|
| Hierarchical labels + sheet pins | Parent ↔ child sheet | Used for explicit hierarchical connections |
| Global labels | Entire schematic | Same label name connects anywhere |
| Power symbols | Entire schematic | Same Value connects anywhere |
Hierarchical Label Workflow
1. In the child sheet, add hierarchical labels for signals crossing the boundary. 2. In the parent sheet, use Sync Sheet Pins to import those labels as sheet pins. 3. Connect wires or labels to the sheet pins on the parent sheet.
Notes
- A subsheet in a complex hierarchy (used more than once) generates separate net names per instance; each instance is electrically independent unless connected via global labels or power symbols.
- Global labels take highest priority in net naming. Prefer hierarchical labels for signals that should remain local to the hierarchy.
- Sheet pin shapes should match the corresponding hierarchical label shapes for clarity, though this is not enforced electrically.
Related
- Schematic Creation and Editing
- Inspecting a Schematic
Inspecting a Schematic
Tools for examining and validating a schematic design before moving to PCB layout.
Find Tool
Search for schematic elements by name or reference designator. The tool highlights and navigates to matching items. Supports wildcards and various search parameters for complex designs.
Search Panel
A docked panel for filtering and locating elements across all sheets. Displays all matches and allows quick navigation between occurrences.
Net Highlighting
Select a wire or label to highlight all objects on the same net with a distinctive color. If the PCB Editor is also open, the corresponding copper is highlighted simultaneously. Clear highlights via a dedicated hotkey or toolbar button.
Net Navigator
A panel listing all nets in the schematic. Select a net to highlight its elements. Useful for tracing signal paths across sheets.
Cross-Probing from the PCB
When both the Schematic Editor and PCB Editor are open, selecting elements in one editor automatically highlights corresponding elements in the other. This bidirectional synchronization helps verify that layout matches schematic intent.
Electrical Rules Checking (ERC)
ERC automatically validates the design against electrical rules. Access via Inspect menu or the ERC toolbar button.
Running ERC
Launch the ERC dialog, choose scope (all sheets or current sheet), and click Run ERC. The dialog lists all violations with severity (Error / Warning) and location.
Violation Types
Connection issues:
- Unconnected pins (pin with no net)
- Unconnected labels (label not attached to a pin or wire)
- Missing power source flag — net has power input pins but no power output or PWR_FLAG
Net driver conflicts:
- Multiple conflicting drivers on the same net (e.g., two outputs connected)
- Pin type mismatch between connected pins
Bus issues:
- Inconsistent bus alias member definitions across sheets
- Duplicate net names on a bus
Fixing Common Issues
| Issue | Fix |
|---|---|
| Unconnected pin | Wire to a net or add a no-connect flag (X) |
| Missing PWR_FLAG | Add a PWR_FLAG symbol to the power net |
| Conflicting drivers | Check net connectivity; remove unintended connections |
| Unconnected label | Verify label name spelling; connect to correct net |
Suppressing Violations
Individual violations can be acknowledged/ignored. No-connect flags suppress unconnected-pin warnings for intentionally open pins.
Notes
- Cross-probing requires both editors to be running; launch PCB Editor via Tools → Update PCB from Schematic or open the
.kicad_pcbfile directly. - ERC does not validate design intent, only electrical rule conformance. Always review results manually.
Related
- Schematic Creation and Editing
- Forward and Back Annotation
Assigning Footprints
Footprints define the physical PCB land pattern for a schematic symbol. They must be assigned before updating the PCB. Three methods are available.
Method 1: Symbol Properties
Open the symbol properties dialog (E or double-click), then edit the Footprint field.
- Type the footprint directly in the format
library:footprint_name - Or click the library icon button to open the Footprint Chooser dialog for browsing and preview
The Footprint field "defines which footprint will correspond to the symbol in the board design." All symbol fields propagate to the corresponding footprint when the PCB is updated from the schematic.
Footprint Filtering
If a symbol defines footprint filters, only matching footprints appear in the dropdown in the chooser. This prevents assigning incompatible footprints.
Method 2: During Symbol Placement
When placing a symbol via the symbol chooser dialog, if the symbol specifies a default footprint it is previewed in the lower-right corner. You can verify or change the footprint assignment before placing the symbol.
Method 3: Footprint Assignment Tool
Access via Tools → Assign Footprints (or the cvpcb standalone tool). This dedicated interface lists all symbols and allows batch footprint assignment across the entire design. Useful for assigning footprints to many symbols at once.
Footprint Field Format
<library_nickname>:<footprint_name>Example: Resistor_SMD:R_0402
Notes
- A symbol without a footprint assigned will generate an ERC warning and will appear unmatched during PCB update.
- Footprint filters on a symbol are defined in the symbol editor and restrict which footprints are offered in the chooser.
- The
KICAD_FOOTPRINT_DIRenvironment variable points to the default footprint library location.
Related
- Schematic Creation and Editing
- Forward and Back Annotation
- Symbols and Symbol Libraries
Forward and Back Annotation
Synchronization of design data between the Schematic Editor and the PCB Editor.
Forward Annotation: Update PCB from Schematic
Transfers schematic changes to the PCB layout.
Access: Tools → Update PCB from Schematic (in the Schematic Editor or PCB Editor)
What Gets Synchronized
| Change type | Description |
|---|---|
| Component additions | New symbols in the schematic become new footprints in the PCB |
| Component removals | Deleted symbols are removed from the PCB |
| Reference designator changes | Updated reference designators propagate to footprint labels |
| Value changes | Updated component values appear on footprints |
| Footprint assignment changes | New footprint selection replaces the old one in the PCB |
| Net connectivity changes | Ratsnest and net names update to reflect new connections |
| Symbol field changes | All symbol fields are copied to the footprint's corresponding fields |
Process
1. Open the PCB Editor (or invoke the tool from the Schematic Editor). 2. A Change Preview dialog lists all pending changes — review before applying. 3. Accept or reject individual changes, then click Update PCB.
Back Annotation: Update Schematic from PCB
Transfers PCB-side changes back to the schematic.
Access: Tools → Update Schematic from PCB (in the PCB Editor)
What Gets Synchronized
- Reference designator changes (e.g., swapping R1 and R2 during layout)
- Footprint assignment changes made in the PCB Editor
Process
1. Make changes in the PCB Editor (e.g., re-annotate components for layout convenience). 2. Use Update Schematic from PCB to reflect those changes in the schematic. 3. Review the change preview and accept.
Notes
- The schematic is independent of the system symbol libraries. Symbols are embedded copies; library changes do not automatically update the schematic. Use Update Symbol from Library manually.
- Forward annotation is non-destructive: placement and routing in the PCB are preserved; only netlist and component data change.
- Always run ERC before forward annotation to avoid propagating errors to the PCB.
Related
- Assigning Footprints
- Inspecting a Schematic
- Generating Outputs
Generating Outputs
The Schematic Editor can export schematics in multiple formats for documentation, fabrication, and downstream tools.
Printing
Print directly to a printer or PDF via File → Print. Configure page orientation, scaling, and color/black-and-white output.
Plotting
File → Plot (or the plot toolbar button)
Supported Formats
| Format | Use case |
|---|---|
| Archival, sharing, review | |
| SVG | Web display, vector editing applications |
| DXF | Import into CAD software |
| HPGL | Legacy plotters |
| PostScript | Professional printing |
Configuration options:
- Color mode (color or black-and-white)
- Page size and orientation
- Line width overrides
- Output directory
Generating a Bill of Materials (BOM)
Symbol Fields Table
Tools → Edit Symbol Fields opens a spreadsheet-style editor that also functions as a BOM export tool.
Features:
- View and edit all component fields across the entire design
- Group identical components
- Add, remove, or rename columns
- Define virtual fields with dynamic content (e.g., quantity)
- Export tab: save to CSV or other formats
BOM generation uses Python or XSLT scripts, allowing flexible output formats. Scripts can be selected in the Generate BOM dialog (Tools → Generate BOM).
Excluding Components from BOM
In symbol properties, check Exclude from bill of materials to omit a component from all BOM exports.
Generating a Netlist
File → Export → Netlist
Supported Netlist Formats
| Format | Description |
|---|---|
| KiCad | Native format for internal use |
| Orcad PCB 2 | Compatible with Orcad-based flows |
| CADSTAR | For CADSTAR PCB design tools |
| Spice | For ngspice and other SPICE simulators |
| Custom | Via Python or XSLT scripting |
Custom netlist scripts can be added and configured to integrate with specialized downstream tools.
Notes
- Symbols marked Exclude from board will not appear in netlists used for PCB updates.
- The Symbol Fields Table is the recommended approach for BOM generation; it shows the live state of the design and allows real-time editing.
- Plot output respects the current net class graphical settings (wire color/width) if configured.
Related
- Assigning Footprints
- Forward and Back Annotation
- Design Variants
- Advanced Topics
Design Variants
Design variants allow multiple product configurations to be managed within a single schematic, eliminating the need for duplicate project files.
Understanding Design Variants
A variant is a named configuration that overrides specific component properties. A single schematic can produce variant-specific BOMs, netlists, and other outputs for each configuration.
Common use cases: different resistor values for regional variants, optional feature components (DNP for cost-reduced versions), different package sizes for alternate manufacturing.
Types of Variation
| Variation type | Description |
|---|---|
| Value | Different component value per variant (e.g., R1 = 10kΩ in Variant A, 20kΩ in Variant B) |
| Footprint | Different PCB footprint per variant (e.g., alternate package) |
| DNP (Do Not Populate) | Component is assembled in some variants but omitted in others |
Creating and Managing Variants
Variants are configured in File → Schematic Setup → Variants tab.
- Click Add Variant to create a new named variant
- Set a default variant representing the baseline design
- Variants are stored within the schematic project
Editing Variant Data
The Symbol Fields Table (Tools → Edit Symbol Fields) includes a variant column for each defined variant. For each symbol row, you can specify:
- An alternative value for a specific variant
- An alternative footprint for a specific variant
- DNP status (checked = do not populate for that variant)
Changes apply only to the selected variant and do not affect the default design data.
Generating Variant-Aware Outputs
BOM
When generating a BOM, select the target variant. The output will:
- Exclude components marked DNP for that variant
- Use the variant-specific values and footprints
Netlist
Generate a variant-specific netlist with only the components active in the selected variant.
Command-Line Variant Support
The KiCad CLI supports variant selection flags for batch processing, enabling automated build pipelines to generate outputs for all variants without manual UI interaction.
Example (KiCad CLI):
kicad-cli sch export bom --variant "Variant_A" design.kicad_schText Variables for Variants
The ${VARIANT} text variable exposes the current variant name for use in labels, title blocks, and symbol fields, enabling dynamic annotation based on the active variant.
Transferring Variants to the PCB Editor
Variant data synchronizes to the PCB Editor via forward annotation. The PCB Editor reflects the active variant's component population, enabling variant-specific assembly drawings and fabrication outputs.
Notes
- The default variant represents the "no override" state — all components use their base schematic values.
- DNP components appear greyed out or struck through in variant-aware plot outputs.
- Variants are independent of net connectivity; they only change component attributes, not the electrical topology.
Related
- Generating Outputs
- Forward and Back Annotation
- Advanced Topics
Symbols and Symbol Libraries
Management and use of schematic symbols and their libraries.
Managing Symbol Libraries
KiCad uses a Symbol Library Table to track libraries at two scopes:
| Scope | Location | Applies to |
|---|---|---|
| Global | User configuration directory | All KiCad projects |
| Project | <project>.kicad_sym or table in project dir | Current project only |
Access the table via Preferences → Manage Symbol Libraries.
Key environment variables:
KICAD_SYMBOL_DIR— default path to the official KiCad symbol library collection
Adding a Library
1. Open Manage Symbol Libraries. 2. Click Add (folder icon for file-based libraries). 3. Set a nickname (used to reference symbols as nickname:symbol_name). 4. Set the path to the .kicad_sym file. 5. Choose Global or Project tab.
Removing a Library
Select the library row and click Remove. Does not delete the file.
Browsing Symbol Libraries
The Symbol Chooser (press A when placing symbols) provides:
- Search by name, keywords, description, and custom fields
- Wildcard (
*,?), key-value (Key>123), and regex filtering - Footprint preview
- Repeated placement mode
The Symbol Library Panel (left sidebar in Symbol Editor) shows a hierarchical tree of all loaded libraries.
Symbol Editor Overview
Open via Tools → Symbol Editor or from the schematic editor's top menu.
The Symbol Editor interface includes:
- Library tree (left panel)
- Canvas (center) for drawing the symbol
- Properties panel
- Toolbar for add pin, add graphical elements, add field, etc.
Browsing, Modifying, and Saving Symbols
- Double-click a symbol in the library tree to open it for editing.
- Save (Ctrl+S) saves to the current library file.
- Save As saves to a different library.
- Changes to a library symbol do NOT automatically update existing schematic instances. Use Update Symbol from Library in the schematic editor.
Creating a New Symbol Library
File → New Library in the Symbol Editor. Choose Global or Project scope. A new .kicad_sym file is created and added to the library table.
Creating a New Symbol
1. In the Symbol Editor, select a target library. 2. File → New Symbol (or right-click library → New Symbol). 3. Set the symbol name, reference prefix (e.g., R, U, C), number of units, and whether it has alternate body styles (De Morgan). 4. Draw the body graphics (rectangles, lines, etc.) and add pins. 5. Add required fields (Reference, Value, Footprint, Datasheet). 6. Save to the library.
Editing Symbol Properties
Access via Edit → Symbol Properties or press E in the Symbol Editor.
| Property | Description |
|---|---|
| Name | Symbol identifier within the library |
| Reference prefix | Default designator prefix (R, C, U, etc.) |
| Value | Default value string |
| Keywords | Space-separated search tags |
| Description | Human-readable description |
| Footprint filters | Restrict compatible footprints |
| Exclude from BOM / board / simulation | Attribute flags |
Symbol Units and Alternate Body Styles
Multiple Units
For multi-part components (e.g., dual op-amp):
- Define the number of units (parts A, B, C, ...)
- Each unit can have its own pin layout and graphics
- Pins can be shared across all units or unit-specific
De Morgan (Alternate Body Style)
For logic gates: define both the standard and alternate (De Morgan equivalent) representations. Both styles share the same pin list.
Symbol Graphics
| Element | Description |
|---|---|
| Rectangle | Main symbol body |
| Circle | Round body shapes |
| Arc | Curved body elements |
| Line | Custom outlines |
| Bezier curve | Smooth curves |
| Text | Annotations on the body |
Graphics are visual only — no electrical significance.
Symbol Pins
Each pin defines an electrical connection point.
Pin Properties
| Property | Description |
|---|---|
| Number | Unique pin identifier within the symbol (matches PCB footprint pad) |
| Name | Functional name (e.g., VCC, DATA0) |
| Electrical type | Determines ERC behavior (see table below) |
| Length | Physical length from body to connection end |
| Orientation | Direction (left, right, up, down) |
| Graphical style | Normal, inverted, clock, active-low clock, etc. |
| Visibility | Hidden pins do not display by default |
Pin Electrical Types
| Type | Description |
|---|---|
| Input | Signal flows into pin |
| Output | Signal flows out of pin |
| Bidirectional | Signal flows both directions |
| Tri-state | Three-state output |
| Passive | Resistors, capacitors; no directional constraint |
| Free | No ERC checking |
| Unspecified | Unknown type |
| Power Input | Consumes power from a net |
| Power Output | Provides power to a net |
| Open Collector | Open-collector output |
| Open Emitter | Open-emitter output |
| No Connect | Pin should not be connected |
Alternate Pin Functions
Pins can have multiple named functions. Alternate functions define a different name, electrical type, and graphical style selectable when the symbol is placed in a schematic.
Symbol Fields
| Field | Required | Description |
|---|---|---|
| Reference | Yes | Designator (R, C, U + number) |
| Value | Yes | Component value or name |
| Footprint | Recommended | PCB footprint (lib:name) |
| Datasheet | Optional | URL or file path to datasheet |
| Custom fields | Optional | Manufacturer PN, specs, etc. — avoid ki_ prefix |
Field visibility, position, font, and autoplacement are configurable per field.
Footprint Filters
Define acceptable footprint names (wildcards supported) in symbol properties. The footprint chooser will only show matching footprints when assigning from within the symbol's properties.
Jumper Pins
Jumper functionality can be modeled by placing two pins in a symbol with appropriate electrical types. The schematic editor treats them like any other connected pins.
Embedding Files
Symbol definitions can embed associated files (e.g., datasheets) directly in the library file, making the design self-contained.
Creating Power Symbols
A power symbol is a regular symbol where:
- The Value field determines the global net name
- The pin electrical type is Power Input or Power Output
- The symbol is typically a simple graphical indicator
Place power symbols with the Add Power Symbol tool, or in the symbol chooser under the power library.
Creating Derived Symbols
A derived symbol inherits all properties from a parent symbol and overrides only specified attributes (value, footprint, description, etc.). Useful for creating component families from a single base symbol.
1. Select a parent symbol. 2. File → Derive from Existing Symbol. 3. Override the desired properties. 4. Save with a new name.
Bulk Editing Symbol Fields
Use Tools → Edit Symbol Fields in the Schematic Editor for spreadsheet-style bulk editing of all fields across all symbols.
Checking Symbols
File → Check Symbol in the Symbol Editor runs validation:
- Duplicate pin numbers
- Pins with no electrical type
- Missing required fields
- Invalid reference prefix
Importing Symbols
File → Import Symbol supports importing symbols from other KiCad library files or from external formats.
Notes
- Library nicknames must be unique within each scope (global or project). A project library with the same nickname as a global library overrides the global one.
- Symbol changes in the library do not retroactively update existing schematic instances. Run Tools → Update Symbols from Library in the schematic editor to sync.
- The
ki_field prefix is reserved for KiCad internal use.
Related
- Creating and Editing Symbols
- Schematic Creation and Editing
- Assigning Footprints
Creating and Editing Symbols
Step-by-step guide to using the KiCad Symbol Editor to create and modify symbols.
Symbol Editor Overview
Open via Tools → Symbol Editor (from the main KiCad window or Schematic Editor).
Interface
| Panel | Description |
|---|---|
| Library tree (left) | Hierarchical view of loaded libraries and their symbols |
| Canvas (center) | Drawing area for symbol body and pins |
| Toolbar (top/right) | Tools for adding pins, graphics, fields, and editing |
| Properties panel | Context-sensitive property editing |
Key Toolbar Actions
| Tool | Description |
|---|---|
| Add Pin | Place a new pin on the symbol |
| Add Rectangle | Draw the symbol body |
| Add Line / Circle / Arc / Bezier | Additional body graphics |
| Add Field | Add a new symbol field |
| Edit Symbol Properties | Open the properties dialog |
| Check Symbol | Run symbol validation |
Creating a New Symbol from Scratch
Step 1: Create or Select a Library
- File → New Library to create a new
.kicad_symfile, or - Select an existing writable library in the tree
Step 2: Add a New Symbol
- Right-click the library → New Symbol, or File → New Symbol
- Set:
- Symbol name (must be unique within the library)
- Reference prefix (e.g.,
R,C,U,J) - Number of units (default: 1)
- Has alternate body style (De Morgan): check if you need two body representations
Step 3: Draw the Body
1. Use the Add Rectangle tool to draw the main body outline. 2. Center the body on the origin (the crosshair at 0, 0). 3. Add other graphical elements (circles, arcs, lines) as needed.
Body graphics are at 0 mil grid for fine positioning. Use 50 mil grid for pin placement.
Step 4: Add Pins
Click Add Pin or press P.
For each pin, configure:
| Property | Recommendation |
|---|---|
| Name | Functional name (e.g., VCC, IN+, DATA[0]) |
| Number | Unique identifier matching PCB pad number |
| Electrical type | Select appropriate type for ERC |
| Length | 100 mil (standard) |
| Orientation | Point outward from body |
| Graphical style | Normal, Inverted (bubble), Clock, etc. |
Place pins so their connection end (the end away from the body) aligns to the 50 mil grid. The pin number must match the PCB footprint pad number exactly.
Step 5: Add Fields
Required fields: Reference, Value, Footprint, Datasheet.
Add custom fields for manufacturer part numbers, specifications, etc.
Configure field visibility and position so they do not overlap each other or the symbol body.
Step 6: Set Symbol Properties
Edit → Symbol Properties:
- Set keywords for symbol chooser search
- Write a description
- Add footprint filters
- Set exclusion attributes (BOM, board, simulation)
Step 7: Save
File → Save (Ctrl+S) to save to the current library.
Editing an Existing Symbol
1. Browse to the symbol in the library tree and double-click to open. 2. Make changes (add/move/delete pins, modify graphics, edit fields). 3. Save.
To edit a symbol from within the schematic:
- Right-click → Edit Library Symbol… (edits the library master)
- Right-click → Edit Symbol… (edits only the schematic instance)
Symbol Units (Multi-part Components)
For ICs with multiple independent functional units (e.g., dual op-amp, quad gate):
- Set Number of units in symbol creation.
- In the canvas, a unit selector appears (A, B, C, ...).
- Draw pins and graphics per unit. Shared pins (VCC, GND) can be set to appear in all units.
- Pin sharing: set a pin as Common to all units to have it appear on every unit.
Alternate Body Style (De Morgan)
Enable with Has alternate body style checkbox.
- In the canvas, toggle between Normal and Alternate style using the toolbar.
- Draw different body graphics for each style (same pins, different visual representation).
- Example: AND gate (normal) vs. NOR gate (De Morgan equivalent).
Pin Graphical Styles
| Style | Appearance | Usage |
|---|---|---|
| Normal | Plain line | Standard signal |
| Inverted | Bubble at end | Active-low signal |
| Clock | Triangle at body | Clock input |
| Inverted clock | Bubble + triangle | Active-low clock |
| Input low | Angle at end | Active-low input (IEEE style) |
| Output low | Angle + hat | Active-low output |
| Edge clock | Double line | Edge-triggered clock |
Symbol Validation
File → Check Symbol (or Inspect → Electrical Rules):
| Check | Issue detected |
|---|---|
| Duplicate pin numbers | Two pins with the same number |
| Missing pin names | Unnamed pins |
| No electrical type | Pin type set to Unspecified |
| Reference prefix missing | Empty reference prefix |
| Overlapping pins | Pins at identical positions |
Saving and Distributing Symbols
- Save to a project library for design-specific symbols.
- Save to a global library for symbols used across multiple projects.
- File → Export → Symbol to export a single symbol to a separate file for sharing.
Notes
- Always use 50 mil grid for pin connection points; misaligned pins will not connect to wires in the schematic.
- The pin number must exactly match the PCB footprint pad number for correct netlist generation.
- Derived symbols (created with Derive from Existing Symbol) inherit parent properties and only override specified attributes — changes to the parent propagate to derived symbols.
Related
- Symbols and Symbol Libraries
- Schematic Creation and Editing
Importing Schematics from Other Applications
KiCad supports importing schematic designs from other EDA tools, converting them into native KiCad format.
How to Import
1. Open KiCad or the Schematic Editor. 2. Use File → Import Non-KiCad Schematic (or the equivalent menu entry). 3. Select the source file. 4. KiCad converts the file and opens it as a new KiCad schematic.
Supported Formats
| Format | Notes |
|---|---|
| Eagle (.sch / .brd) | Autodesk Eagle schematics |
| Altium Designer | .SchDoc files |
| CADSTAR | CADSTAR schematic archives |
| EasyEDA / LCSC | JSON export from EasyEDA |
| KiCad legacy (.sch) | Pre-KiCad 6 schematic files — opens natively with conversion prompt |
Format-Specific Notes
Eagle
- Symbol and net names are translated to KiCad equivalents.
- Eagle libraries are not directly used; symbols are embedded or re-mapped to KiCad libraries.
- Review all component references and footprints after import.
Altium Designer
- Net and component data translates well; complex bus structures may need manual review.
- Parametric component data may not fully transfer.
EasyEDA
- Export from EasyEDA as JSON format before importing.
- Symbol mappings may differ from KiCad standard libraries.
KiCad Legacy (.sch)
- KiCad automatically detects and converts older
.schfiles to the current.kicad_schformat when opened. - Backup the original file before converting.
After Importing
Post-import steps recommended for all formats:
1. Review and re-assign symbols — Imported symbols may not match KiCad standard libraries. Use Tools → Change Symbols to remap to official KiCad symbols. 2. Assign footprints — Footprint mappings may be missing or incorrect. Verify every symbol's footprint field. 3. Run ERC — Inspect → Electrical Rules Checker to detect any connectivity or electrical errors introduced during import. 4. Check net names — Verify that net names were preserved correctly, especially for buses and hierarchical connections. 5. Save as KiCad project — Save explicitly to a new .kicad_sch file to avoid overwriting the source file.
Notes
- The documentation notes that import support is under active development and some format-specific content may be incomplete.
- Imported designs are independent of the source application's libraries; all symbols are embedded in the schematic file.
- Complex hierarchical or multi-sheet designs from other tools may require manual restructuring after import.
Related
- Schematic Creation and Editing
- Symbols and Symbol Libraries
- Inspecting a Schematic
Design Blocks
Design blocks are reusable schematic modules that can be saved and instantiated across multiple projects, providing template-based circuit reuse.
Design Block Concepts
A design block is a saved selection of schematic elements (symbols, wires, labels, etc.) stored in a design block library. Unlike hierarchical sheets, design blocks are portable templates — placing a block inserts a copy of the saved elements, independent of the original.
Design blocks vs. hierarchical sheets:
| Aspect | Design Blocks | Hierarchical Sheets |
|---|---|---|
| Reuse | Across projects | Within same project |
| Update behavior | Independent copy after placement | Shared file, changes affect all instances |
| Format | Stored in block library | .kicad_sch file |
The Design Blocks Panel
Open via View → Design Blocks or the toolbar button.
The panel provides:
- Library tree of available block libraries
- Preview of selected blocks
- Search/filter functionality
- Drag-and-drop or double-click to place
Creating and Managing Design Blocks
Creating a Design Block from an Existing Selection
1. Select the schematic elements to capture. 2. Right-click → Save as Design Block (or use the Tools menu). 3. Choose a target library and provide a name and description. 4. The selected elements are saved as a block in the library.
Managing Block Libraries
Access Preferences → Manage Design Block Libraries to:
- Add/remove design block library paths
- Set global vs. project scope for each library
- Create new empty libraries
Using Design Blocks in a Schematic
1. Open the Design Blocks panel. 2. Browse or search for the desired block. 3. Double-click or drag to place on the canvas. 4. The block's elements are inserted as a copy — edit freely without affecting the original.
After placement, placed elements are ordinary schematic objects. There is no live link back to the block definition.
Practical Workflows
Power supply templates: Save a complete power supply sub-circuit (regulator, capacitors, feedback network) as a block. Reuse across projects by placing from the panel.
Interface connectors: Save a connector with its associated ESD protection and decoupling as a block for consistent reuse.
Module standardization: Teams can share a project-scoped block library to ensure consistent sub-circuit implementations across designs.
Notes
- Placing a design block inserts an independent copy; modifying the source block library does not affect already-placed instances.
- Design block libraries use the same scope concept as symbol libraries (global vs. project).
- Labels and net names inside a placed block connect to the schematic if names match existing nets.
Related
- Schematic Creation and Editing
- Multiple Sheets and Hierarchical Schematics
Simulator
KiCad integrates an ngspice-based SPICE circuit simulator. Simulations run directly from the schematic without exporting a separate netlist.
Assigning SPICE Models
Open a symbol's properties (E) and click the Simulation Model button.
Model Types
| Type | Description |
|---|---|
| SPICE model from file | Load a .lib or .mod SPICE model file |
| SPICE directive | Inline SPICE model definition |
| Ideal passive (R, L, C) | Uses symbol Value field directly |
| SPICE primitive | Voltage/current source, diode, BJT, MOSFET, etc. |
Passive components (R, L, C): The symbol Value field is used directly if it contains a valid SPICE value. No separate model file is required.
Active components: Assign a model from a manufacturer .lib file or define an inline model using the Simulation Model Editor.
Simulation Model Editor
The editor allows:
- Selecting the model type (NMOS, PMOS, NPN, PNP, diode, etc.)
- Specifying the model file path and model name within the file
- Mapping symbol pins to SPICE node order
Value Notation
SPICE uses letter suffixes for numeric values (case-insensitive):
| Suffix | Multiplier |
|---|---|
| t | 10¹² |
| g | 10⁹ |
| meg | 10⁶ |
| k | 10³ |
| m | 10⁻³ |
| u | 10⁻⁶ |
| n | 10⁻⁹ |
| p | 10⁻¹² |
| f | 10⁻¹⁵ |
Examples: 10k = 10,000 Ω; 100n = 100 nF; 2.2u = 2.2 µF
Note: m = milli (10⁻³), NOT mega. Use meg for 10⁶.
SPICE Directives
SPICE directives can be added directly to the schematic as text items.
Use the Add SPICE Directive tool or place a text element with the content starting with a . (SPICE directive syntax).
Common directives:
.tran 1n 1m ; transient: step=1ns, stop=1ms
.ac dec 100 1 1g ; AC: 100 pts/decade, 1Hz to 1GHz
.dc V1 0 5 0.01 ; DC sweep: V1 from 0V to 5V, step 0.01V
.op ; operating point
.noise V(out) V1 dec 100 1k 1meg ; noise analysisRunning Simulations
Open the Simulator via Inspect → Simulator or Tools → Simulator.
Analysis Types
| Analysis | Description |
|---|---|
| Transient | Time-domain waveform simulation |
| AC | Frequency-domain small-signal analysis |
| DC Sweep | DC operating point vs. swept parameter |
| Noise | Noise spectral density analysis |
| Operating Point | Single-point DC bias calculation |
Configure analysis parameters in the Simulation Settings dialog (accessible from the Simulator window toolbar).
Running
Click Run (or press F9). The simulation executes via the embedded ngspice engine. Progress and any ngspice output messages appear in the log panel.
Viewing Simulation Results
Signal List
The left panel lists all available signals (nets and internal node voltages). Check signals to add them to the waveform display.
Waveform Viewer
Displays selected signals as plots:
- Multiple signals can be shown on the same or separate axes
- Zoom, pan, and rescale axes interactively
- Right-click a trace for display options
Cursors
Place up to two cursors on a waveform to measure:
- Absolute values at cursor positions
- Time difference (ΔT) and value difference (ΔY)
Measurements
The Measurements panel allows defining automatic measurements (frequency, rise time, overshoot, etc.) that are recalculated each simulation run.
Tuning Components
The Tuner tool allows interactive adjustment of component values during or after a simulation:
1. Click the Tuner toolbar button. 2. Click a component on the schematic to add it to the tuner list. 3. Drag the slider to change the component value. 4. The simulation re-runs and waveforms update in real time.
Saving Simulation Setups
Simulation configurations (analysis type, parameters, selected signals, cursors) can be saved as a Workbook (.wbk file). Load workbooks to restore previous simulation setups.
Exporting Simulation Results
- Export → CSV exports waveform data for external analysis
- Copy waveform images from the viewer for documentation
Troubleshooting Simulations
| Issue | Likely cause and fix |
|---|---|
| Simulation fails to converge | Check for floating nodes; add .ic initial conditions; adjust tolerances |
| No waveforms | Verify model assignment on all active components; check SPICE directives |
| Incorrect results | Verify pin-to-SPICE-node mapping in the Simulation Model Editor |
| Passive component not simulating | Confirm Value field uses valid SPICE notation (e.g., 10k, not 10 kΩ) |
Helpful Hints
- Add a
.opdirective to verify DC bias before running transient analysis. - Use
PWL(piecewise linear) sources for custom stimulus waveforms. - The ngspice manual is the authoritative reference for advanced SPICE syntax.
- Large schematics with many components may run slowly; use subcircuits (
.subckt) to simplify.
Notes
- The simulator uses the embedded ngspice engine; no external installation required.
- SPICE models from manufacturer websites (
.lib,.subfiles) can be loaded directly. - Components marked Exclude from simulation in symbol properties are omitted from the netlist sent to ngspice.
Related
- Schematic Creation and Editing
- Symbols and Symbol Libraries
Advanced Topics
Configuration, text variables, database libraries, HTTP libraries, and custom output formats.
Configuration and Customization
Access all preferences via Preferences → Preferences…
Preference Categories (Schematic Editor)
| Category | Options |
|---|---|
| Hotkeys | Assign/reassign keyboard shortcuts |
| Mouse and Touchpad | Drag gestures, scroll behavior |
| Display Options | Grid appearance, rendering, visual overrides |
| Editing Options | Auto-annotation, wire angles, selection behavior |
| Colors | Color scheme for all schematic object types |
Hotkey File Location
| OS | Path |
|---|---|
| Windows | %APPDATA%\kicad\10.0\user.hotkeys |
| Linux | ~/.config/kicad/10.0/user.hotkeys |
| macOS | ~/Library/Preferences/kicad/10.0/user.hotkeys |
Import hotkey files via the Import Hotkeys button in the hotkey editor.
Text Variables
Text variables enable dynamic content substitution in labels, title blocks, and symbol fields using the syntax ${VARIABLE_NAME}.
Defining Variables
Project-level variables are defined in File → Schematic Setup → Text Variables.
Variable Categories
Project variables (defined in Schematic Setup):
- Custom key-value pairs available anywhere in the project
Symbol variables (auto-available for symbol fields and labels):
| Variable | Value |
|---|---|
${SYMBOL_NAME} | Symbol name from library |
${SYMBOL_LIBRARY} | Library the symbol originates from |
${DNP} | "DNP" if Do Not Populate is set, otherwise empty |
${EXCLUDE_FROM_BOARD} | "Exclude from board" attribute state |
${EXCLUDE_FROM_SIM} | "Exclude from simulation" attribute state |
${EXCLUDE_FROM_BOM} | "Exclude from BOM" attribute state |
Sheet variables (title block):
${TITLE},${DATE},${REV},${COMPANY},${COMMENT1}...${COMMENT9}${SHEETNAME},${SHEETPATH},${SHEETNUMBER},${SHEETCOUNT}${PROJECTNAME},${FILENAME}
Variant variable:
${VARIANT}— current active variant name
Usage Example
In a label or title block:
${SYMBOL_LIBRARY}:${SYMBOL_NAME}Renders as Device:R for a resistor from the Device library.
Text Expressions
Numeric fields support basic mathematical expressions for inline calculation.
Syntax
Enter expressions in property dialogs. The expression evaluates when the dialog is closed.
2 * 2mm → 4mm
1in + 1mm → 26.4mm
(10 + 5)k → 15kSupported:
- Basic arithmetic:
+,-,*,/ - Parentheses for grouping
- Unit suffixes:
mm,in,mil,k,M,u,n, etc. - Automatic unit conversion
Database Libraries
Database libraries allow symbols to be sourced from an external database via ODBC, enabling integration with component management systems (PDM, PLM, etc.).
Configuration
Database libraries are configured via a .kicad_dbl JSON file:
{
"meta": { "version": 0 },
"name": "My Database Library",
"description": "Parts from internal database",
"source": {
"type": "odbc",
"dsn": "MyComponentDB",
"username": "",
"password": "",
"timeout_seconds": 2
},
"libraries": [
{
"name": "Resistors",
"table": "Resistors",
"key": "Part ID",
"symbols": "Symbol",
"footprints": "Footprint",
"fields": [
{ "column": "Manufacturer", "name": "Manufacturer", "visible_on_add": false },
{ "column": "MPN", "name": "MPN", "visible_on_add": true }
],
"properties": {
"description": "Description",
"keywords": "Keywords"
}
}
]
}Key Concepts
| Concept | Description |
|---|---|
| DSN | ODBC Data Source Name configured at the OS level |
| Table | Database table or view mapped to a symbol category |
| Key | Primary key column identifying each component |
| Field mapping | Maps database columns to KiCad symbol fields |
| Caching | Local cache improves performance for large databases |
Add the .kicad_dbl file to the Symbol Library Table as a library.
Filtering
Database query results can be filtered using SQL WHERE clause syntax within the library configuration to restrict which components appear.
HTTP Libraries
HTTP libraries source symbol data from a REST API endpoint, enabling cloud-hosted component databases.
Configuration
HTTP libraries are configured via a .kicad_httplib JSON file:
{
"meta": { "version": 1 },
"name": "Cloud Component Library",
"description": "REST API component source",
"source": {
"type": "rest",
"root_url": "https://components.example.com/api/v1",
"token": "your_api_token_here",
"timeout_seconds": 10,
"cache_max_age": 3600
}
}The REST API must implement the KiCad HTTP library protocol (endpoints for listing libraries, listing symbols, and fetching individual symbol data).
Authentication
API tokens are passed via HTTP Authorization headers. The token is stored in the library configuration file.
Custom Netlist and BOM Formats
Python Scripts
Custom netlist and BOM generators can be written in Python and installed as KiCad plugins.
BOM script API: Scripts receive a component list and output to the desired format (CSV, JSON, XML, etc.). Place scripts in the KiCad scripting directory.
Netlist script API: Scripts receive the complete netlist data structure and output to any text-based format.
XSLT Transforms
KiCad can apply XSLT transformations to the intermediate XML netlist format to produce custom output:
1. Export netlist as XML (intermediate format). 2. Apply an XSLT stylesheet via the netlist export dialog. 3. Output is the XSLT-transformed result.
Managing Scripts
Netlist and BOM scripts are managed in the respective export dialogs:
- Generate BOM dialog — select or add a Python BOM script
- Netlist export dialog — select or add a netlist script
Default Script Locations
| OS | Path |
|---|---|
| Windows | %APPDATA%\kicad\10.0\scripting\plugins\ |
| Linux | ~/.config/kicad/10.0/scripting/plugins/ |
| macOS | ~/Library/Preferences/kicad/10.0/scripting/plugins/ |
Notes
- Database and HTTP libraries require read access to the external data source at library load time. Offline operation depends on the cache configuration.
- Text variable names are case-sensitive.
- XSLT-based netlist transforms require an external XSLT processor unless KiCad's built-in support is used.
Related
- Generating Outputs
- Design Variants
- Symbols and Symbol Libraries
KiCad Schematic Editor (Eeschema)
Reference for KiCad 10.0 Eeschema — the schematic capture application. Covers the full workflow from schematic creation through simulation, output generation, and advanced configuration.
| Name | Description | Path |
|---|---|---|
| Introduction | User interface, navigation, hotkeys, selection, display controls | ./01-introduction.md |
| Schematic Creation and Editing | Symbol placement, wires, labels, buses, power symbols, net classes, annotation, schematic setup | ./02-schematic-creation-and-editing.md |
| Multiple Sheets and Hierarchical Schematics | Hierarchy types, subsheets, sheet pins, hierarchical labels, cross-sheet connections | ./03-multiple-sheets-and-hierarchical-schematics.md |
| Inspecting a Schematic | Find tool, net highlighting, net navigator, cross-probing, Electrical Rules Checker (ERC) | ./04-inspecting-a-schematic.md |
| Assigning Footprints | Footprint field, footprint chooser, footprint assignment tool, filtering | ./05-assigning-footprints.md |
| Forward and Back Annotation | Update PCB from Schematic, Update Schematic from PCB, change preview | ./06-forward-and-back-annotation.md |
| Generating Outputs | Printing, plotting (PDF/SVG/DXF/HPGL/PS), BOM generation, netlist export | ./07-generating-outputs.md |
| Design Variants | Variant types (value/footprint/DNP), creating variants, variant-aware outputs, CLI support | ./08-design-variants.md |
| Symbols and Symbol Libraries | Library table, browsing symbols, creating libraries, symbol editor, pins, fields, derived symbols | ./09-symbols-and-symbol-libraries.md |
| Creating and Editing Symbols | Symbol Editor step-by-step, pin properties, body graphics, units, De Morgan, validation | ./10-creating-and-editing-symbols.md |
| Importing Schematics from Other Applications | Supported formats (Eagle, Altium, CADSTAR, EasyEDA), import steps, post-import checklist | ./11-importing-schematics-from-other-applications.md |
| Design Blocks | Reusable schematic modules, Design Blocks panel, creating/placing blocks, workflows | ./12-design-blocks.md |
| Simulator | ngspice integration, SPICE model assignment, analysis types, waveform viewer, tuner, troubleshooting | ./13-simulator.md |
| Advanced Topics | Text variables, text expressions, database libraries (ODBC), HTTP libraries, custom netlist/BOM scripts | ./14-advanced-topics.md |
Introduction to GerbView
GerbView is a Gerber file (RS-274X format) and Excellon drill file viewer. Up to 32 files can be displayed at once.
Supported File Formats
- Gerber files — RS-274X format. Defined in the Gerber File Format Specification (ucamco.com).
- Excellon drill files — Used for drill hole data. Defined in the Excellon format specification.
Notes
- GerbView is a read-only viewer; it does not edit files.
- A limited export to KiCad PCB Editor format is available via the File menu.
Related
- Interface
- Commands in Menu Bar
- Printing
Interface
GerbView's main window consists of a canvas for viewing Gerber and drill layers, surrounded by toolbars and a Layers Manager panel.
Top Toolbar
| Icon | Description |
|---|---|
| delete_gerber | Clear all layers |
| load_gerber | Load Gerber files |
| gerbview_drill_file | Load Excellon drill files |
| sheetset | Set page size |
| print_button | |
| zoom_redraw | Redraw view |
| zoom_in / zoom_out | Zoom in or out |
| zoom_fit_in_page | Zoom to fit page |
| zoom_area | Zoom to selection |
| gerbview_top_layer | Select active layer |
| gerbview_top_info | Display info about active layer |
| gerbview_x2_component | Highlight items belonging to selected component (Gerber X2) |
| gerbview_x2_net | Highlight items belonging to selected net (Gerber X2) |
| gerbview_x2_attribute | Highlight items with the selected attribute (Gerber X2) |
| gerbview_top_dcode | Highlight items of selected D Code on the active layer |
Left Toolbar
| Icon | Description |
|---|---|
| cursor | Select items |
| measurement | Measure between two points |
| grid | Toggle grid visibility |
| polar_coord | Toggle polar coordinates display |
| unit_inch / unit_mil / unit_mm | Select inch, mils, or millimeter units |
| cursor_shape | Toggle full-screen cursor |
| pad_sketch | Display flashed items in sketch (outline) mode |
| track_sketch | Display lines in sketch (outline) mode |
| opt_show_polygon | Display polygons in sketch (outline) mode |
| gerbview_show_negative_objects | Show negative objects in ghost color |
| show_dcodenumber | Show/hide D Codes |
| gbr_select_mode2 | Display layers in diff (compare) mode |
| contrast_mode | Toggle inactive layers between normal and dimmed display |
| layers_manager | Show/hide layer manager |
| flip_board_24 | Show Gerbers as mirror image |
Layers Manager
The Layers Manager panel controls and displays visibility of all layers.
Mouse Interactions
| Action | Result |
|---|---|
| Left click | Select (activate) the layer |
| Right click | Show layer options (visibility, hiding, sorting) |
| Middle click or double-click on color swatch | Change layer color |
The active layer is indicated by an arrow symbol. Each layer has a checkbox to toggle visibility.
Tabs
| Tab | Purpose |
|---|---|
| Layers | Controls visibility and color of all loaded Gerber and drill layers |
| Items | Controls color and display of the grid, D Codes, and negative objects |
Related
- Introduction
- Commands in Menu Bar
Commands in Menu Bar
File Menu
| Command | Description |
|---|---|
| Export to PCB Editor | Limited export of Gerber files into a KiCad PCB format |
Export to PCB Editor
This feature provides limited capability to export Gerber files into a KiCad PCB. Conversion success depends on which RS-274X features were used in the source files.
Conversion rules:
| Gerber element | Converted to |
|---|---|
| Flashed items | Vias |
| Lines | Track segments (copper layers) or graphic lines (non-copper layers) |
| Rasterized items (e.g., negative objects) | Not converted |
Tools Menu
| Command | Description |
|---|---|
| List DCodes | Display D Code information for the active layer |
| Show Source | Display the raw source of the active Gerber file |
| Measure Tool | Measure the distance between two points |
| Clear Current Layer | Erase the contents of the active layer |
Related
- Interface
- Printing
Printing
Print the currently loaded Gerber layers via the toolbar print icon or File → Print.
Usage
File → PrintOr click the print icon in the top toolbar.
Notes
- Ensure all items are inside the printable area before printing.
- Many photoplotters support a large plottable area that may exceed standard printer paper sizes. If layers extend beyond the printable area, reposition the layer set using the page size tool (sheetset icon) to select an appropriate page format before printing.
Related
- Interface
- Commands in Menu Bar
GerbView
Reference documentation for KiCad 10.0 GerbView — the Gerber file (RS-274X) and Excellon drill file viewer.
| Name | Description | Path |
|---|---|---|
| Introduction | What GerbView is and supported file formats | ./01-introduction.md |
| Interface | Top toolbar, left toolbar, and Layers Manager panel | ./02-interface.md |
| Commands in Menu Bar | File menu (Export to PCB Editor) and Tools menu commands | ./03-commands-in-menu-bar.md |
| Printing | How to print Gerber layers and page size considerations | ./04-printing.md |
Introduction to KiCad 10.0
KiCad is an open-source software suite for creating electronic circuit schematics, printed circuit boards (PCBs), and associated part descriptions. It supports both integrated workflows (schematics and PCBs designed concurrently) and standalone approaches for specialized tasks.
Overview
KiCad runs on all major operating systems and a wide range of computer hardware. It supports PCBs with up to 32 copper layers, accommodating designs from simple hobby projects to complex professional boards.
The suite includes several integrated utilities:
| Tool | Purpose |
|---|---|
| Schematic Editor | Draw circuit schematics symbolically |
| PCB Editor | Lay out and route printed circuit boards |
| Symbol Editor | Create and manage schematic symbols |
| Footprint Editor | Create and manage PCB footprints |
| PCB Calculator | Determine electrical properties of circuit structures |
| Gerber Viewer | Inspect manufacturing files |
| 3D Viewer | Visualize the finished PCB |
| SPICE Simulator | Inspect circuit behavior |
Downloading and Installing
Download KiCad from https://www.kicad.org/download/. The download page includes system-specific instructions and a list of known issues per platform.
Support
Community support is available via:
- Official forum at https://forum.kicad.info/
- Discord and IRC channels
- Documentation at https://docs.kicad.org/
Notes
- KiCad development relies on volunteer engineers globally.
- The software is free and open-source.
Related
- Basic Concepts and Workflow
- First Time Setup
Basic Concepts and Workflow
KiCad's design process centers on two primary tasks: creating a schematic and laying out a circuit board.
PCB Design Workflow
Schematic (symbols + wires) → Footprint assignment → PCB layout (footprints + tracks) → Fabrication outputsSchematic
The schematic represents circuits symbolically, showing which components are used and what connections are made between them. Symbols use pictorial representations (zigzag for resistors, triangles for op-amps, etc.), with wires connecting component pins.
Circuit Board
The board is the physical realization of the schematic, with component footprints positioned on the board and copper tracks making the connections. A footprint is a set of copper pads that match the pins on a physical component.
Key Editors
| Editor | Purpose |
|---|---|
| Schematic Editor | Edit circuit schematics |
| PCB Editor | Edit board layout |
| Symbol Editor | Create/edit schematic symbols |
| Footprint Editor | Create/edit PCB footprints |
Project Structure
A KiCad project is folder-based and contains:
| File | Extension | Contents |
|---|---|---|
| Project file | .kicad_pro | Overall project settings, net classes, design rules |
| Schematic file | .kicad_sch | Circuit diagram |
| Board file | .kicad_pcb | PCB layout |
Many project-related settings, including net classes and design rules, are stored at the project level.
Libraries
KiCad ships with a large library of high-quality, user-contributed symbols and footprints. Custom symbols and footprints can also be created and stored in global or project-level libraries.
Notes
- Updating the PCB with schematic changes is a manual process: the designer decides when to synchronize.
- Backup files are automatically created in a
-backupsfolder on each save.
Related
- Introduction to KiCad
- Tutorial Part 1: Project
First Time Setup
On the first launch, KiCad displays a Welcome dialog that guides users through initial configuration.
Setup Steps
1. Preferences
Choose one of:
- Start with default preferences — begin fresh.
- Import settings from a previous KiCad version — migrate existing configuration.
2. Symbol and Footprint Libraries
Choose one of:
- Start with the built-in KiCad libraries (recommended) — initializes library tables with all included libraries.
- Import library configuration from a previous version — re-use a prior setup.
- Configure libraries manually — advanced, skips automatic setup.
The recommended option populates both the global symbol library table and the global footprint library table with all libraries bundled with KiCad.
3. Update Checking and Crash Reporting
- Configure automatic update-check preferences.
- On Windows only: opt in or out of anonymous crash reporting, which helps the KiCad team diagnose and fix critical application issues.
Notes
- These settings can be revisited later via Preferences → Preferences.
- Library tables are editable at any time through Preferences → Manage Symbol Libraries or Preferences → Manage Footprint Libraries.
Related
- Basic Concepts and Workflow
- Tutorial Part 1: Project
Tutorial Part 1: Project
This section covers creating a new KiCad project and understanding the Project Manager interface.
Creating a New Project
1. Open the KiCad Project Manager. 2. Go to File → New Project. 3. Select the Default project template and confirm. 4. Navigate to the desired save location. 5. Enter a project name (e.g., getting-started). 6. Ensure Create a new folder for the project is checked. 7. Click Save.
KiCad creates a dedicated subfolder containing all project-related files.
Project File Structure
After creation, the Project Files pane shows three files (all sharing the project name):
| File | Extension | Contents |
|---|---|---|
| Project file | .kicad_pro | Overall project settings |
| Schematic file | .kicad_sch | Circuit diagram |
| Board file | .kicad_pcb | PCB layout |
Backups
KiCad automatically creates backups in a -backups directory when you save, and optionally at fixed time intervals.
Configure backup frequency: Preferences → Preferences → Common → Project Backup.
Project Manager Interface
The Project Window provides buttons on the right side to launch KiCad tools (Schematic Editor, PCB Editor, etc.). These buttons automatically open the associated design files from the current project.
Notes
- Always enable Create a new folder for the project to keep project files isolated.
- The project file (
.kicad_pro) stores net classes, design rules, and other project-level settings.
Related
- Basic Concepts and Workflow
- Tutorial Part 2: Schematic
Where to Go From Here
After completing the getting-started tutorial, the following resources support continued learning and contribution.
More Learning Resources
| Resource | Description |
|---|---|
| Official documentation | https://docs.kicad.org/ — comprehensive manuals for all KiCad tools |
| Official forum | https://forum.kicad.info/ — community Q&A |
| Discord / IRC | Real-time community chat |
| Demo projects | File → Open Demo Project — practical example designs bundled with KiCad |
| "Made With KiCad" gallery | Completed community designs at https://www.kicad.org/made-with-kicad/ |
Help Improve KiCad
| Contribution type | How |
|---|---|
| Bug reports | Help → Report a Bug or GitLab issue tracker |
| Feature requests | GitLab issue tracker |
| Code contributions | KiCad Developer Contribution page |
| Library contributions | Symbol and footprint library repositories |
| Documentation translation | KiCad documentation repository |
| Financial support | Donations via the KiCad website |
Notes
- The official manual at
docs.kicad.orgcovers every tool and feature in depth and is the primary reference after completing this guide. - Demo projects are a practical way to study real-world KiCad usage patterns.
Related
- Tutorial Part 4: Custom Symbols and Footprints
- Introduction to KiCad