Руководство пользователя

This manual is in the process of being revised to cover the latest stable release version of KiCad. It contains some sections that have not yet been completed. We ask for your patience while our volunteer technical writers work on this task, and we welcome new contributors who would like to help make KiCad’s documentation better than ever.

This document is Copyright © 2010-2022 by its contributors as listed below. You may distribute it and/or modify it under the terms of either the GNU General Public License (http://www.gnu.org/licenses/gpl.html), version 3 or later, or the Creative Commons Attribution License (http://creativecommons.org/licenses/by/3.0/), version 3.0 or later.

Все торговые знаки этого руководства принадлежат его владельцам.


Jean-Pierre Charras, Fabrizio Tappero, Graham Keeth


Барановский Константин <[email protected]>, 2016-2019

Обратная связь

Оставить свои комментарии или замечания можно на следующих ресурсах:

Introduction to the KiCad Schematic Editor


The KiCad Schematic Editor is a schematic capture software distributed as a part of KiCad and available under the following operating systems:

  • Linux

  • Apple macOS

  • Windows

Regardless of the OS, all KiCad files are 100% compatible from one OS to another.

The Schematic Editor is an integrated application where all functions of drawing, control, layout, library management and access to the PCB design software are carried out within the editor itself.

The KiCad Schematic Editor is intended to cooperate with the KiCad PCB Editor, which is KiCad’s printed circuit design software. It can also export netlist files, which lists all the electrical connections, for other packages.

The Schematic Editor includes a symbol library editor, which can create and edit symbols and manage libraries. It also integrates the following additional but essential functions needed for modern schematic capture software:

  • Проверка электрических правил проектирования (ERC) для автоматического обнаружения неверных или пропущенных соединений.

  • Экспорт изображения схемы в файлы различных форматов (Postscript, PDF, HPGL и SVG).

  • Генератор перечня элементов (BOM) различных форматов с помощью внешних инструментов.

Технические характеристики

The Schematic Editor is limited only by the available memory. There is thus no real limitation to the number of components, component pins, connections or sheets. In the case of multi-sheet schematics, the representation is hierarchical.

The Schematic Editor can use multi-sheet schematics in a few ways:

  • Простые иерархии (каждый лист используется лишь один раз).

  • Сложные иерархии (некоторые листы используются два и более раз).

  • Плоские иерархии (иерархические листы не связаны явным образом на корневом листе схемы).

Generic Schematic Editor commands

Команду можно вызвать из:

  • основного меню (в верхней части окна);

  • верхней панели инструментов (основные команды);

  • правой панели инструментов (вспомогательные команды или "интструменты");

  • левой панели инструментов (параметры отображения);

  • кнопок мыши (важные дополнительные команды). В частности, правая кнопка мыши открывает контекстное меню для элемента под курсором (масштаб, сетка и команды редактирования элементов);

  • Function keys (F1, F2, F3, F4, Insert and Space). Specifically: Escape cancels the command in progress. Insert allows the duplication of the last element created.

  • Pressing hotkeys. For a list of hotkeys, see the Help→List Hotkeys menu entry or press Ctrl+F1. Many hotkeys select a tool but do not perform the tool’s action until the canvas is clicked. This behavior can be changed by unchecking First hotkey selects tool in the Common Preferences pane. With this option unchecked, pressing a hotkey will select the tool and immediately perform the tool’s action at the current cursor location.

Обзор команд

Команды мыши

Основные команды

Левая кнопка

  • Single click: Selects the item under the cursor and displays the item’s characteristics in the status bar.

  • Double click: edits the item if it is editable.

  • Long click (click and hold): opens a pop-up menu to clarify the selection.

Правая кнопка

  • Opens a pop-up menu. If an item is selected, the items in the menu are related to the selected item. If an item is under the cursor when the right mouse button is clicked, the item is selected.

Selection operations

Schematic editor items can be selected by clicking on them. Multiple items can be selected at once. Add items to the selection with Shift + click, and remove items from the selection with Ctrl+Shift + click.

On Apple keyboards, use the Cmd key instead of Ctrl.

left mouse button

Select item.

Shift + left mouse button

Add item to selection.

Ctrl+Shift + left mouse button

Remove item from selection.

long click

Clarify selection from a pop-up menu.

Ctrl + left mouse button

Highlight net.

Items can also be selected by drawing a box around them using the left mouse button.

Dragging from left to right includes all items fully enclosed by the box. Dragging from right to left includes all items touched by the box, even if they are not fully enclosed.

The Shift and Ctrl+Shift modifiers also work with drag selections to add and remove items from the selection, respectively.

Горячие клавиши

  • The Ctrl+F1 displays the current hotkey list.

  • All hotkeys can be redefined using the hotkey editor (PreferencesPreferences…​Hotkeys).

The default hotkey list is below. Many additional actions do not have hotkeys by default, but hotkeys can be assigned to them with the hotkey editor.

The hotkeys described in this manual use the key labels that appear on a standard PC keyboard. On an Apple keyboard layout, use the Cmd key in place of Ctrl, and the Option key in place of Alt.

Action Default Hotkey Description



Performs left mouse button click



Performs left mouse button double-click

Cursor Down


Cursor Down Fast


Cursor Left


Cursor Left Fast


Cursor Right


Cursor Right Fast


Cursor Up


Cursor Up Fast


Switch to Fast Grid 1


Switch to Fast Grid 2


Switch to Next Grid


Switch to Previous Grid


Reset Grid Origin


Grid Origin


Set the grid origin point



Create a new document in the editor



Open existing document

Pan Down


Pan Left


Pan Right


Pan Up





Reset Local Coordinates




Save changes

Save As…


Save current document to another location

Always Show Cursor


Display crosshairs even in selection tool

Switch units


Switch between imperial and metric units

Update PCB from Schematic…


Update PCB with changes made to schematic




Zoom to Objects


Zoom to Objects

Zoom to Fit


Zoom to Fit

Zoom In at Cursor


Zoom In at Cursor

Zoom Out at Cursor


Zoom Out at Cursor




Zoom to Selection


Zoom to Selection

Change Edit Method


Change edit method constraints



Copy selected item(s) to clipboard



Cut selected item(s) to clipboard



Deletes selected item(s)



Duplicates the selected item(s)



Find text

Find and Replace


Find and replace text

Find Next


Find next match

Find Next Marker




Paste item(s) from clipboard



Redo last edit

Select All


Select all items on screen



Undo last edit

List Hotkeys…​


Displays current hotkeys table and corresponding commands



Show preferences for all open tools

Clear Net Highlighting


Clear any existing net highlighting

Edit Library Symbol…​


Open the library symbol in the Symbol Editor

Edit with Symbol Editor


Open the selected symbol in the Symbol Editor

Highlight Net


Highlight net under cursor

Show Datasheet


Opens the datasheet in a browser

Add Sheet


Add a hierarchical sheet

Add Wire to Bus Entry


Add a wire entry to a bus

Add Global Label


Add a global label

Add Hierarchical Label


Add a hierarchical label

Add Junction


Add a junction

Add Label


Add a net label

Add No Connect Flag


Add a no-connection flag

Add Power


Add a power port

Add Text


Add text

Add Symbol


Add a symbol

Add Bus


Add a bus

Add Lines


Add connected graphic lines

Add Wire


Add a wire

Finish Wire or Bus


Complete drawing at current segment

Unfold from Bus


Break a wire out of a bus

Autoplace Fields


Runs the automatic placement algorithm on the symbol or sheet’s fields

Edit Footprint…


Displays footprint field dialog

Edit Reference Designator…​


Displays reference designator dialog

Edit Value…


Displays value field dialog

Mirror Horizontally


Flips selected item(s) from left to right

Mirror Vertically


Flips selected item(s) from top to bottom



Displays item properties dialog

Repeat Last Item


Duplicates the last drawn item

Rotate Counterclockwise


Rotates selected item(s) counter-clockwise



Drags the selected item(s)



Moves the selected item(s)

Select Connection


Select a complete connection

Select Node


Select a connection item under the cursor

Leave Sheet


Display the parent sheet in the schematic editor

Hotkeys are stored in the file user.hotkeys in KiCad’s configuration directory. The location is platform-specific:

  • Windows: %APPDATA%\kicad\6.0\user.hotkeys

  • Linux: ~/.config/kicad/6.0/user.hotkeys

  • macOS: ~/Library/Preferences/kicad/6.0/user.hotkeys

It is possible to import hotkey settings from a user.hotkeys file using menu PreferencesPreferences…​HotkeysImport Hotkeys…​.


In the Schematic Editor the cursor always moves over a grid. The grid can be customized:

  • Size can be changed using the right click menu or using ViewGrid Properties…​.

  • Color can be changed in the Colors page of the Preferences dialog (menu PreferencesGeneral Options).

  • Visibility can be switched using the left-hand toolbar button.

The default grid size is 50 mil (0.050") or 1.27 millimeters.

Это предпочтительный размер сетки для расположения компонентов и проводников на схеме, а также для размещения выводов при создании компонентов в Редакторе библиотек компонентов.

Wires connect with other wires or pins only if their ends coincide exactly. Therefore it is important to keep symbol pins and wires aligned to the grid. It is recommended to always use a 50 mil grid when placing symbols and drawing wires because the KiCad standard symbol library and all libraries that follow its style also use a 50 mil grid.

Допускается работа и с сетками меньшего размера от 25 мил до 10 мил. Это приемлемо при построении символа компонента или расположении текста и комментариев, но нежелательно при размещении выводов или проводников.

Symbols, wires, and other elements that are not aligned to the grid can be snapped back to the grid by selecting them, right clicking, and clicking Align Elements to Grid.


Schematic elements such as symbols, wires, text, and graphic lines are snapped to the grid when moving, dragging, and drawing them. Additionally, the wire tool snaps to pins even when grid snapping is disabled. Both grid and pin snapping can be disabled while moving the mouse by using the modifier keys in the table below.

On Apple keyboards, use the Cmd key instead of Ctrl.
Modifier Key Effect


Disable grid snapping.


Disable snapping wires to pins.

Изменение масштаба

Изменить масштаб можно с помощью:

  • Правой кнопки мыши: откроется контекстное меню из которого можно выбрать нужный масштаб.

  • Or use hotkeys:

    • F1: Zoom in

    • F2: Zoom out

    • F4: Center the view around the cursor pointer position

    • Home: Zoom and center the view to fit the entire schematic sheet

    • Ctrl+Home: Zoom and center the view to fit all of the objects in the schematic

    • Ctrl+F5: Activate the Zoom to Selection tool

  • Колеса мыши:

    • Колесо мыши: Увеличить или уменьшить масштаб

    • Shift+Колесо мыши: Панорамирование вверх или вниз

    • Ctrl+Колесо мыши: Панорамирование влево или вправо

Mouse scroll gestures are configurable in the Mouse and Touchpad page of the Preferences dialog.

Отображение координат курсора

The display units are in inches, mils, or millimeters.

В правой нижней части окна отображается следующая информация:

  • Масштаб

  • Абсолютные координаты курсора

  • Относительные координаты курсора

  • The grid size

  • The active unit system

  • The active tool

Центр относительных координат устанавливается с помощью клавиши пробел. С помощью этих координат удобно измерять расстояния между двумя точками и выравнивать объекты.


Основное меню

Основное меню позволяет открывать и сохранять схемы, настраивать программу, а также предоставляет доступ к справочным руководствам.

основное меню

Верхняя панель инструментов

This toolbar gives access to the main functions of the Schematic Editor.

If the Schematic Editor is run in standalone mode, this is the available tool set:


Заметьте, что в режиме проекта (при запуске программы из менеджера проектов KiCad), первые две кнопки недоступны, так как они предназначены для работы с отдельными файлами.

New schematic icon

Create a new schematic (only in standalone mode).

Open schematic icon

Open a schematic (only in standalone mode).

Save schematic icon

Save complete schematic project.

Schematic Setup icon

Set the schematic-specific options.

Page Settings icon

Select the sheet size and edit the title block.

Print icon

Open print dialog.

Plot icon

Open plot dialog.

paste icon

Paste a copied/cut item or block to the current sheet.

undo icon

Undo: Revert the last change.

redo icon

Redo: Revert the last undo operation.

search icon

Show the dialog to search symbols and texts in the schematic.

search replace icon

Show the dialog to search and replace texts in the schematic.

refresh icon

Refresh screen.

zoom in icon

Zoom in.

zoom out icon

Zoom out.

zoom to fit icon

Zoom to fit the entire schematic sheet.

zoom fit to objects icon

Zoom to fit all objects in the schematic.

zoom fit to selection icon

Zoom to fit selected items.

hierarchy navigator icon

View and navigate the hierarchy tree.

leave sheet icon

Leave the current sheet and go up in the hierarchy.

rotate counter-clockwise icon

Rotate selected items counter-clockwise.

rotate clockwise icon

Rotate selected items clockwise.

mirror vertical icon

Mirror selected items vertically.

mirror horizontal icon

Mirror selected items horizontally.

symbol editor icon

Call the symbol library editor to view and modify libraries and symbols.

symbol library browser icon

Browse symbol libraries.

footprint editor icon

Open the footprint library editor to view and modify libraries and footprints.

annotate icon

Annotate symbols.

ERC icon

Electrical Rules Checker (ERC), automatically validate electrical connections.

run footprint assignment icon

Open the footprint assignment tool to assign footprints to symbols.

Symbol fields editor icon

Bulk edit symbol fields in a spreadsheet interface.

BOM icon

Generate the Bill of Materials (BOM).

pcb editor icon

Open the PCB editor.

python scripting console icon

Open the Python scripting console.

Правая панель инструментов

Эта панель содержит инструменты для:

  • Размещения компонентов, проводников, шин, соединений, меток, текста и т.п.

  • Создания иерархических листов и их выводов

Selection tool icon

Cancel the active command or tool and go into selection mode.

Highlight net icon

Highlight a net by marking its wires and net labels with a different color. If the PCB Editor is also open then copper corresponding to the selected net will be highlighted as well.

New Symbol icon

Display the symbol selector dialog to select a new symbol to be placed.

Add Power icon

Display the power symbol selector dialog to select a power symbol to be placed.

Draw Wire icon

Draw a wire.

Draw Bus icon

Draw a bus.

Draw wire to bus icon

Draw wire-to-bus entry points. These elements are only graphical and do not create a connection, thus they should not be used to connect wires together.

draw no connect flag icon

Place a "No Connect" flag. These flags should be placed on symbol pins which are meant to be left unconnected. It is done to notify the Electrical Rules Checker that lack of connection for a particular pin is intentional and should not be reported.

place junction icon

Place a junction. This connects two crossing wires or a wire and a pin, when it can be ambiguous (i.e. if a wire end or a pin is not directly connected to another wire end).

Local label icon

Place a local label. Local label connects items located in the same sheet. For connections between two different sheets, you have to use global or hierarchical labels.

Global label icon

Place a global label. All global labels with the same name are connected, even when located on different sheets.

Hierarchical label icon

Place a hierarchical label. Hierarchical labels are used to create a connection between a subsheet and the parent sheet that contains it.

Hierarchical subsheet icon

Place a hierarchical subsheet. You must specify the file name for this subsheet.

Import hierarchical label icon

Import a hierarchical pin from a subsheet. This command can be executed only on hierarchical subsheets. It will create hierarchical pins corresponding to hierarchical labels placed in the target subsheet.

draw dashed line icon

Draw a line. These are only graphical and do not connect anything.

place text icon

Place a text comment.

place bitmap icon

Place a bitmap image.

interactive delete tool icon

Delete clicked items.

Левая панель инструментов

Эта панель позволяет настроить параметры отображения:

grid visibility icon

Toggle grid visibility.

inch unit icon

Switch units to inches.

mil unit icon

Switch units to mils (0.001 inches).

millimeter unit icon

Switch units to millimeters.

cursor shape icon

Choose the cursor shape (full screen/small).

hidden pin icon

Toggle visibility of "invisible" pins.

free angle wire icon

Toggle free angle/90 degrees wires and buses placement.

Контекстное меню и быстрое редактирование

Щелчок правой кнопки мыши открывает контекстное меню, которое позволит:

  • Изменить масштаб.

  • Настроить сетку.

  • Copy/Paste/Delete commands.

  • Add Wire/Bus.

  • Редактировать основные параметры выделенного элемента.

Основное меню

Меню "Файл"

Меню "Файл"
New Close current schematic and start a new one (only in standalone mode).


Load a schematic project (only in standalone mode).

Open Recent

Open a schematic project from the list of recently opened files (only in standalone mode).


Save current sheet and all its subsheets.

Save As…​

Save the current sheet under a new name (only in standalone mode).

Save Current Sheet Copy As…​

Save a copy of the current sheet under a new name (only in project mode).

Insert Schematic Sheet Content…​

Insert the contents of another schematic sheet into the current sheet (only in standalone mode).


Import a non-KiCad schematic or a footprint assignment file.


Export a netlist or a drawing of the schematic to the clipboard.

Schematic Setup…​

Set up schematic formatting, electrical rules, net classes, and text variables.

Page Settings…​

Configure page dimensions and title block.


Print schematic project (See also chapter Plot and Print).


Export to PDF, PostScript, HPGL or SVG format (See chapter Plot and Print).


Terminate the application.

Schematic Setup

The Schematic Setup window is used to set schematic options that are specific to the currently active schematic. For example, the Schematic Setup window contains formatting options, electrical rule configuration, netclass setup, and schematic text variable setup.

Меню "Настройки"

Меню "Настройки"

Configure Paths…​

Set the default search paths.

Manage Symbol Library Tables…​

Add/remove symbol libraries.


Preferences (units, grid size, field names, etc.).

Set Language

Select interface language.

Менеджер библиотек компонентов

Таблицы библиотек компонентов

KiCad uses two library tables to store the list of available symbol libraries, which differ by the scope:

Глобальные библиотеки

Libraries listed in the Global Library table are available to every project. They are saved in the sym-lib-table in the KiCad configuration directory, which is system-dependent:

  • Windows: %APPDATA%\kicad\6.0\sym-lib-table

  • Linux: ~/.config/kicad/6.0/sym-lib-table

  • macOS: ~/Library/Preferences/kicad/6.0/sym-lib-table

Библиотеки проекта

Libraries listed in Project Specific Libraries table are available to the currently opened project. They are saved in a sym-lib-table file in the project directory.

Both library tables are visible by clicking on Global Libraries or Project Specific Libraries tab in the Manage Library Tables window.

Добавление новой библиотеки

Add a library either by clicking the Folder icon button and selecting a file or clicking the Plus icon button and typing a path to a library file. The selected library will be added to the currently opened library table (Global/Project Specific).

Удаление библиотеки

Remove a library by selecting one or more libraries and clicking the Trash icon button.

Настройка библиотек

Каждая строка в таблице содержит несколько полей, описывающих библиотеку:


Enables/disables the library. It is useful to temporarily reduce the loaded library set.


Nickname is a short, unique identifier used for assigning symbols to components. Symbols are represented by '<Library Nickname>:<Symbol Name>' strings.

Library Path

Path points to the library location.

Plugin Type

Determines the library file format. KiCad 6.0 libraries use the "KiCad" format, while KiCad 5.x libraries use the "Legacy" format. Legacy libraries are read-only.


Stores library specific options, if used by plugin.


Briefly characterizes the library contents.


Common Preferences
TODO: write this section
Common settings
Mouse and Touchpad

Center and warp cursor on zoom

If checked, the pointed location is warped to the screen center when zooming in/out.

Use touchpad to pan

When enabled, view is panned using scroll wheels (or touchpad gestures) and to zoom one needs to hold Ctrl. Otherwise scroll wheels zoom in/out and Ctrl/Shift are the panning modifiers.

Pan while moving object

If checked, automatically pans the window if the cursor leaves the window during drawing or moving.

Горячие клавиши

Redefine hotkeys.

Hotkeys settings

Новая горячая клавиша выбирается двойным щелчком по строке с командой или через контекстное меню:


Define a new hotkey for the action (same as double click).

Undo Changes

Reverts the recent hotkey changes for the action.

Clear Assigned Hotkey

Restore Default

Sets the action hotkey to its default value.

Display Options
Display options

Шаг сетки

Выбор шага сетки.

Рекомендуется работать с нормальным шагом сетки (0.050 дюймов или 1,27 мм). Меньший шаг используется при создании компонентов.

Толщина шины

Размер пера для черчения шин.

Толщина лилии

Размер пера для черчения объектов, которые не имеют специальных настроек толщины.

Индекс обозначения части

Тип суффикса для компонентов, состоящих из нескольких частей (U1A, U1.A, U1-1, и т.д.)

Масштаб иконок

Настройка размера иконок панели инструментов.

Показать сетку

Параметр отображения сетки.

Ограничить шины и проводники в ортогональной ориентации

Если отмечено, шины и проводники прокладываются только горизонтально или вертикально. В противном случае, шины и проводники прокладываются под любым углом.

Показать скрытые выводы

Показать невидимые (скрытые) выводы, как обычно, выводы питания.

Показать границы страницы

Если отмечено, на экране будут показаны границы листа.

Пред.просмотр посад.места при выборе компонента

Отображать панель предварительного просмотра посадочного места с возможность выбора в диалоге добавления компонента.

Примечание: могут возникать задержки, используйте на своё усмотрение.

Editing Options
Параметры редактирования

Measurement units

Select the display and the cursor coordinate units (inches or millimeters).

Horizontal pitch of repeated items

Increment on X axis during element duplication (default: 0) (after placing an item like a symbol, label or wire, a duplication is made by the Insert key)

Vertical pitch of repeated items

Increment on Y axis during element duplication (default: 0.100 inches or 2,54 mm).

Increment of repeated labels

Increment of label value during duplication of texts ending in a number, such as bus members (usual value 1 or -1).

Default text size

Text size used when creating new text items or labels.

Auto-save time interval

Time in minutes between saving backups.

Automatically place symbol fields

If checked, symbol fields (e.g. value and reference) in newly placed symbols might be moved to avoid collisions with other items.

Allow field autoplace to change justification

Extension of 'Automatically place symbol fields' option. Enable text justification adjustment for symbol fields when placing a new part.

Always align autoplaced fields to the 50 mil grid

Extension of 'Automatically place symbol fields' option. If checked, fields are autoplaced using 50 mils grid, otherwise they are placed freely.


Цветовая схема для разных графических элементов. Для выбора нового цвета какого-нибудь элемента щёлкните левой кнопкой мыши по кнопке с образцом текущего цвета.

Выбор цвета
Поля по умолчанию

Определение дополнительных пользовательских полей и их значений, которые будут добавлены при размещении новых компонентов.

Настройка шаблонов полей

Меню "Справка"

Предоставляет доступ к данному документу справки и детальному руководству пользователя KiCad.

Use the Report a Bug item to report a bug online. Full KiCad version and user system information is available via the Copy Version Info button in the About KiCad window.

Верхняя панель инструментов

Настройки страницы

The Sheet Settings icon (Sheet Settings icon) allows you to define the sheet size and the contents of the title block.

Настройки страницы

Нумерация листов выполняется автоматически. Можно вставить сегодняшнюю дату с помощью кнопки со стрелками справа от "Даты создания". Дата автоматически не обновляется.

Инструмент поиска

The Find icon (Find icon) can be used to access the search tool.

Диалог поиска

Выполнить поиск можно по обозначениям, значениям и текстовым полям на текущем листе или же по всей иерархии листов. Как только совпадение будет найдено, курсор переместиться к найденному элементу в соответствующем листе.

Инструмент формирования списка цепей

The Netlist icon (Netlist icon) opens the netlist generation tool.

Этот инструмент создаёт файл, в котором описываются все соединения во всей иерархии листов.

В сложных схемах (содержащих несколько листов) любая локальная метка видна только внутри того листа, на котором она расположена. Например: метка АБВ с листа №3 не соединена с меткой АБВ из листа №5 (если они не соединены намерено другим способом). Это связано с тем, что внутри каждой локальной метки содержится полное имя листа, к которому она относится.

Even though there is no text length limit for labels in KiCad, please take into account that other programs reading the generated netlist may have such constraints.
Avoid spaces in labels, because they will appear as separated words in the generated file. It is not a limitation of KiCad, but of many netlist formats, which often assume that a label has no spaces.
Диалог создания списка цепей


Формат по умолчанию

Установите отметку, чтобы выбрать формат Pcbnew в качестве формата по умолчанию.

Можно использовать и другие форматы:

  • Orcad PCB2

  • CadStar

  • Spice (симуляторы)

Можно использовать прочие инструменты для создания списков цепей в других форматах (далее будет показано как это сделать на примере PadsPcb).

Больше информации можно получить в разделе Создание списка цепей.

Инструмент обозначения элементов

The icon Annotate icon launches the annotation tool. This tool assigns references to components.

К частям составных компонентов (таких как 7400 ТТЛ, состоящих из 4-х частей), также, добавляется суффикс (в случае с 7400 ТТЛ с обозначением DD3, части будут обозначены как DD3.1, DD3.2, DD3.3 и DD3.4).

Можно обновить обозначения всех компонентов или же только новых, т.е. тех что ещё не обозначены.



По всей схеме Обозначить компоненты на всех листах (по умолчанию).

Только текущий лист

Обозначить компоненты только на текущем листе(этот вариант используется только в крайних случаях, например, чтобы определить количество резисторов на текущем листе).

Сохранить существующие обозначения

Будут обозначены только новые компоненты (по умолчанию).

Сбросить существующие обозначения

Все компоненты будут заново обозначены (этот вариант будет полезным при наличии компонентов с одинаковыми обозначениями).

Сбросить, но не менять аннотированные части компонентов

Подобен предыдущему пункту, но сохраняет суффиксы всех составных компонентов (типа DD2.1, DD2.2) без изменений.

Порядок обозначения

Выбор порядка, в котором будут обозначены компоненты (горизонтально или вертикально).

Выбор варианта обозначений

Выбор необходимого формата позиционных обозначений.

Инструмент проверки электрических правил проектирования

The icon ERC icon launches the electrical rules check (ERC) tool.

Этот инструмент выполняет проверку правил проектирования и позволяет определить отсутствующие или неверные соединения.

Once you have run the ERC, KiCad places markers to highlight problems. The error description is displayed after left clicking on the marker. An error report file can also be generated.

Диалоговое окно проверки электрических правил проектирования

Диалог ERC

В диалоговом окне содержится следующая информация:

  • Общее количество ошибок и предупреждений.

  • Количество ошибок.

  • Количество предупреждений.


Создать файл ERC отчета

Если отмечено, будет создан файл со списком найденных ошибок и предупреждений.


Удалить маркеры

Удалить все маркеры ошибок/предупреждений ERC.


Начать проверку правил проектирования.


Закрыть диалоговое окно.

  • При выборе какого-нибудь сообщения об ошибке, курсор переместиться к соответствующей метке на схеме.

Настройка электрических правил проектирования

Диалоговое окно настроек ERC

На этой вкладке можно установить правила соединения выводов. Доступны три варианта для каждого параметра:

  • Без ошибок или предупреждений

  • Формировать предупреждение

  • Формировать ошибку

Каждый элемент матрицы можно редактировать с помощью мыши.


Тестировать одинаковые метки

Сообщать о наличии меток, которые отличаются лишь регистром букв (например: метка, Метка, МеТкА).] Имена цепей чувствительны к регистру, следовательно, указывают на разные цепи.

Тестировать единственность глобальных меток

Сообщать о глобальных метках, которые встречаются лишь один раз, образуя часть цепи. Обычно требуется как минимум две метки для создания цепи.


Инициализировать по умолчанию

Восстановить начальное значение.

Инструмент формирования перечня элементов

The icon BOM icon launches the bill of materials (BOM) generator. This tool generates a file listing the components and/or hierarchical connections (global labels).

Диалоговое окно BOM

The Schematic Editor’s BOM generator makes use of external plugins, either as XSLT or Python scripts. There are a few examples installed inside the KiCad program files directory.

Для составления перечня элементов можно использовать следующий набор полей:

  • Значение - уникальное имя для каждого элемента.

  • Посадочное место - введенное вручную или импортировано (см. ниже).

  • Поле1 - название производителя.

  • Поле2 - код по каталогу производителя.

  • Поле3 - код по каталогу поставщика.


Диалоговое окно свойств компонента.

В операционных системах MS Windows диалоговое окно формирования перечня элементов (BOM) имеет дополнительный параметр (на изображении указан красной стрелкой), который управляет отображением окна внешнего приложения. По умолчанию, приложение, которое генерирует перечень элементов, выполняется со скрытым окном, а вывод перенаправляется в поле Информация плагина. Чтобы увидеть окно выполняющегося приложения, необходимо установить отметку возле указанного параметра. Это может потребоваться для плагинов, имеющих графический интерфейс.

Дополнительный параметр BOM на MS Windows

Инструмент редактирования полей

The icon Edit Fields icon opens a spreadsheet to view and modify field values for all symbols.

Таблица компонентов

После изменения значений полей, их необходимо сохранить нажатием кнопки 'Применить' или отменить нажатием кнопки 'Отменить'.

Приёмы быстрого заполнения полей

Для таблиц имеется несколько специальных приёмов копирования-вставки. Они будут полезны при вводе одинаковых значений в поля нескольких компонентов одновременно.

Эти приёмы показаны ниже.

Копирование (Ctrl+C) Выделение Вставка (Ctrl+V)
















Данные методы также доступны и в таблицах других диалоговых окон.

Инструмент импорта значений посадочных мест


The icon Import Footprint Names icon launches the back-annotate tool.

This tool allows footprint changes made in the PCB Editor to be imported back into the footprint fields in the Schematic Editor.

Менеджер библиотек компонентов

Библиотеки компонентов содержат наборы компонентов, используемые при создании схем. Каждый компонент схемы однозначно обозначен полным наименованием, которое состоит из уникального имени библиотеки и названия компонента. Например Audio:AD1853.

Таблица библиотек компонентов

Таблица библиотек компонентов содержит перечень всех файлов библиотек, о которых должен знать KiCad. Таблица библиотек компонентов строится на основе файла глобальной (общей) таблицы библиотек и файла таблицы библиотек проекта.

When a symbol is loaded, KiCad uses the library nickname, Audio in our example, to lookup the library location in the symbol library table.

The image below shows the symbol library table editing dialog which can be opened by invoking the Manage Symbol Libraries…​ entry in the Preferences menu.

Диалоговое окно менеджера библиотек

Глобальная таблица библиотек компонентов

The global symbol library table contains the list of libraries that are always available regardless of the currently loaded project file. The table is saved in the file sym-lib-table in the user’s KiCad configuration folder. The location of this folder is dependent upon the operating system being used.

Таблицы библиотек компонентов проекта

Таблица библиотек компонентов проекта содержит перечень библиотек, которые доступны только для загруженного в данный момент проекта. Данную таблицу можно редактировать только после загрузки файла проекта. Если проект не загружен или в каталоге проекта нет файла таблицы библиотек, будет создана пустая таблица, которую можно редактировать и в дальнейшем сохранить рядом с файлом проекта.

Начальная настройка

The first time the KiCad Schematic Editor is run and the global symbol table file sym-lib-table is not found in the KiCad configuration folder, KiCad will present the "Configure Global Symbol Library Table" dialog to the user. The dialog presents the user with three options.

  • Copy default global symbol library table (recommended). If this option is selected, KiCad will copy the default symbol library table file stored in the system’s Kicad template folder to the file sym-lib-table in the user’s KiCad configuration folder. If the default template sym-lib-table file cannot be found, this option will be grayed out. The missing default table is usually caused by the KiCad default libraries not being installed (on some systems they are installed by a separate package). If the libraries are installed in a non-standard location, use the second option and browse to the library table location manually.

  • Copy custom global symbol library table. If this option is selected, the user must browse to the desired symbol library table file, which will be copied to the user’s KiCad configuration directory.

  • Create an empty global symbol library table. An empty symbol library table file will be created in the user’s KiCad configuration directory. The user must add libraries to the table manually.

symbol library table initial configuration

Стандартная таблица библиотек компонентов содержит все библиотеки компонентов, которые устанавливаются вместе с KiCad. Они могут быть полезными или нет, в зависимости от нужд и быстродействия системы. Время загрузки библиотек компонентов прямо зависит от их количества в таблице. Если библиотеки загружаются очень долго, удалите ненужные или редко используемые библиотеки из общей таблицы и добавляйте их в случае необходимости в таблицу проекта.

Добавление элементов таблицы

Для использования библиотеки компонентов, её сначала нужно добавить или в общую таблицу, или в таблицу проекта. Таблица проекта доступна только при загруженном файле проекта.

Each library entry must have a unique nickname.

The library nickname does not have to be related in any way to the actual library file name or path. The colon : and \ characters cannot be used anywhere in the library nickname. Each library entry must have a valid path and/or file name depending on the type of library. Paths can be defined as absolute, relative, or by environment variable substitution (see section below).

The appropriate library format must be selected in order for the library to be properly read. "KiCad" format is used for KiCad version 6 libraries (.kicad_sym files), while "Legacy" format is used for libraries from older versions of KiCad (.lib files). Legacy libraries are read-only, but can be migrated to KiCad format libraries using the Migrate Libraries button (see section Migrating Legacy Libraries).

Кроме того, каждый элемент таблицы имеет поле описания, в которое можно добавить дополнительную информацию о библиотеке. Поле параметров на данный момент не используется, так что его содержимое никак не повлияет на загрузку библиотек.

  • Примите к сведению, что дублирование уникальных имён в пределах одной таблицы недопустимо. Тем не менее, одно и то же уникальное имя может быть одновременно использовано в общей таблице и в таблице проекта.

  • Элемент в таблице проекта имеет больший приоритет чем в элемент с таким же уникальным именем в общей таблице.

  • Элементы, определённые в таблице проекта, будут записаны в файл sym-lib-table, который хранится в том же каталоге, что и открытый в данный момент файл проекта.

Подстановка переменных окружения

One of the most powerful features of the symbol library table is environment variable substitution. This allows for definition of custom paths to where symbol libraries are stored in environment variables. Environment variable substitution is supported by using the syntax ${ENV_VAR_NAME} in the library path.

By default, at run time KiCad defines two environment variables relevant for locating symbol libraries:

  • the $KIPRJMOD environment variable that always points to the currently open project directory. $KIPRJMOD cannot be modified.

  • the $KICAD6_SYMBOL_DIR environment variable. This points to the path where the default symbol libraries that were installed with KiCad.

You can override $KICAD6_SYMBOL_DIR by redefining it in PreferencesConfigure Paths…​. This is useful for using libraries installed in a nonstandard location.

$KIPRJMOD allows you to store libraries in the project path without having to define the absolute path (which is not always known) to the library in the project specific symbol library table.

Варианты использования

Symbol libraries can be defined either globally or specifically to the currently loaded project. Symbol libraries defined in the user’s global table are always available and are stored in the sym-lib-table file in the user’s KiCad configuration folder. The project-specific symbol library table is active only for the currently open project file.

При использовании каждой из таблиц имеются свои достоинства и недостатки. Если определить все библиотеки в общей таблице, то они будут доступны всегда и в любом проекте. Недостатком этого способа является увеличенное время загрузки.

Если же определить только необходимые библиотеки в таблице проекта, то это существенно снизит время загрузки. Недостатком этого способа является то, что нужно постоянно помнить перечень библиотек и добавлять нужные к каждому новому проекту.

Наилучшим вариантом будет объединить два предыдущих и в общей таблице указать библиотеки с компонентами, которые используются часто, а в таблицу проекта заносить только недостающие библиотеки компонентов для текущего проекта. Единых рекомендаций о том, какие библиотеки в какую таблицу вносить — нет. Каждый пользователь должен решить это самостоятельно, исходя из своих предпочтений.

Migrating Legacy Libraries

Legacy libraries (.lib files) are read-only, but they can be migrated to KiCad version 6 libraries (.kicad_sym). KiCad version 6 libraries cannot be viewed or edited by KiCad versions older than 6.0.0.

Legacy libraries can be converted to KiCad 6 libraries by selecting them in the symbol library table and clicking the Migrate Libraries button. Multiple libraries can be selected and migrated at once by Ctrl-clicking or shift-clicking.

Libraries can also be converted one at a time by opening them in the Symbol Editor and saving them as a new library.

Загрузка устаревших проектов

When loading a schematic created prior to the symbol library table implementation, KiCad will attempt to remap the symbol library links in the schematic to the appropriate library table symbols. The success of this process is dependent on several factors:

  • оригинальные библиотеки, используемые в схеме, должны быть доступны и не иметь изменений с тех пор, как их компоненты были добавлены в схему;

  • необходимо убедиться что недостающие компоненты были "спасены" и сохранены в отдельной библиотеке (rescue), а если эта библиотека существует, убедиться чтобы её содержимое было обновлено;

  • содержимое кешированной библиотеки компонентов проекта не будет повреждено;

В процессе переопределения библиотек, в каталоге проекта будет создан каталог с резервными копиями файлов, которые подлежат изменению. Но, в любом случае, следует сделать резервную копию всего проекта на случай, если что-то пойдёт не так.

Операция по "спасению" компонентов выполняется даже если эта функция отключена. Это необходимо для выявления подходящих компонентов. Не отменяйте эту операцию, иначе процесс переопределения библиотек не сможет успешно завершиться. Все недостающие или ошибочные библиотеки необходимо будет поправить вручную.

If the original libraries have been removed and the rescue was not performed, the cache library can be used as a recovery library as a last resort. Copy the cache library to a new file name and add the new library file to the top of the library list using a version of KiCad prior to the symbol library table implementation.

Создание и редактирование схем


Схема может быть представлена на одном листе или на нескольких, если проект достаточно большой.

A schematic represented by several sheets is hierarchical, and all its sheets (each one represented by its own file) constitute a complete KiCad schematic. The manipulation of hierarchical schematics will be described in the Hierarchical Schematics chapter.

Основные положения

A schematic designed with KiCad is more than a simple graphic representation of an electronic device. It is normally the entry point of a development chain that allows for:

Схема, в основном, состоит из компонентов, проводников, меток, соединений, шин и символов питания. Помимо этого, можно размещать и графические элементы, такие как выводы соединения с шиной, текстовые комментарии и графические линии.

Symbols are added to the schematic from symbol libraries. After the schematic is made, the set of connections and footprints is imported into the PCB editor for designing a board.

Размещение и редактирование компонентов

Поиск и размещение компонента

To load a symbol into your schematic you can use the icon New Symbol icon. A dialog box allows you to type the name of the symbol to load.

Диалог выбора компонента

Диалог выбора отфильтрует компоненты по имени, ключевым словам или описанию, согласно запросу, введенном в текстовое поле. Для более гибкого поиска можно использовать специальные фильтры:

  • Шаблоны: используйте символы ? и * чтобы указать "любой символ" и "множество любых символов", соответственно.

  • Метки: если в описании элементов библиотеки или в ключевых словах содержатся метки в формате "Key:123", можно выполнить относительный поиск по ним набрав "Key>123" (больше) или "Key<123" (меньше). К числу может прибавляться один из следующих не чувствительных к регистру суффиксов:

























  • Регулярные выражения: если имеется опыт работы с регулярными выражениям, то их можно применять тоже. Используется формат регулярных выражений wxWidgets Advanced Regular Expression style, подобный регулярным выражениям Perl.

If the symbol specifies a default footprint, this footprint will be previewed in the lower right. If the symbol includes footprint filters, alternate footprints that satisfy the footprint filters can be selected in the footprint dropdown menu at right.

After selecting a symbol to place, the symbol will be attached to the cursor. Left clicking the desired location in the schematic places the symbol into the schematic. Before placing the symbol in the schematic, you can rotate it, mirror it, and edit its fields, by either using the hotkeys or the right-click context menu. These actions can also be performed after placement.

Так выглядит компонент в процессе расположения:

компонент в процессе расположения

If the "Place repeated copies" option is checked, after placing a symbol KiCad will start placing another copy of the symbol. This process continues until the user presses Esc.

For symbols with multiple units, if the "Place all units" option is checked, after placing the symbol KiCad will start placing the next unit in the symbol. This continues until the last unit has been placed or the user presses Esc.

Placing power ports

A power port symbol is a symbol representing a connection to a power net. The symbols are grouped in the power library, so they can be placed using the symbol chooser. However, as power placements are frequent, the Add Power icon tool is available. This tool is similar, except that the search is done directly in the power library.

Редактирование размещённых компонентов

Редактировать компоненты можно двумя путями:

  • Редактирование самого компонента: позиция, ориентация, выбор части в составных компонентах.

  • Редактирование одного из полей компонента: обозначение, значение, посадочное место и т.д.

Как только компонент был размещен, можно задать его значение (в частности для резисторов, конденсаторов и т.д.). Но не стоит сразу указывать порядковый номер в обозначении или номер части (кроме случая, когда нужная часть выбирается вручную), так как это выполняется автоматически с помощью функции обозначения.

Изменение компонента

Для изменения какого-нибудь свойства компонента расположите курсор над ним и затем выполните:

  • Двойной щелчок левой кнопкой мыши для вызова редактора свойств компонента.

  • Щелчок правой кнопкой мыши для вызова контекстного меню и выбор одного из вариантов: Переместить, Ориентировать, Править, Удалить и т.д.

  • Use a hotkey to perform an action on the symbol (E to open the properties dialog, R to rotate, etc.). Note that hotkeys act on the selected symbol; if no symbol is selected hotkeys act on the symbol under the cursor.

Symbols can also be selected by clicking on them or drag-selecting them. Selected symbols can be modified by clicking relevant buttons in the top toolbar or using a hotkey.

Изменение значения полей

Можно изменять значение, позицию, ориентацию, размер текста и видимость полей:

  • Двойной щелчок левой кнопки мыши на текстовом поле для начала редактирования.

  • Щелчок правой кнопкой мыши для вызова контекстного меню и выбор одной из команд: Переместить, Повернуть, Править, Удалить и т.д.

  • Position the cursor over the field (if nothing is selected) or select the field and press E to edit the field.

  • Position the cursor over the symbol (if nothing is selected) or select the symbol and press V, U, or F hotkeys to directly edit the symbol’s value, reference designator, or footprint fields, respectively.

Чтобы получить больше опций или если нужно добавить поля, выполните двойной щелчок по компоненту для вызова диалога редактирования свойств компонента.

Диалоговое окно свойств компонента.

Каждое поле можно показать или спрятать, отобразить горизонтально или вертикально. Указанная позиция всегда соответствует нормально расположенному компоненту (без поворотов и отражения) и относительно точки привязки компонента.

The position and orientation properties of each field may be hidden in this dialog. They can be shown by right-clicking on the column header of the fields table and enabling the "Orientation", "X Position", and/or "Y Position" columns. Other columns can be shown or hidden as desired.

The "Update Symbol from Library…​" button is used to update the schematic’s copy of the symbol to match the copy in the library. The "Change Symbol…​" button is used to swap the current symbol to a different symbol in the library.

"Edit Symbol…​" opens the Symbol Editor to edit the copy of the symbol in the schematic. Note that the original symbol in the library will not be modified. The "Edit Library Symbol…​" button opens the Symbol Editor to edit the original symbol in the library. In this case, the symbol in the schematic will not be modified until the user clicks the "Update Symbol from Library…​" button.

Electrical Connections


There are a number of elements that can be added to a schematic to electrically connect components. All of these elements can be placed with the buttons on the vertical right toolbar or using hotkeys.

Вот эти элементы:

  • Wires: direct connection between pins.

  • Buses: connections for a group of signals.

  • Bus entries: connections between wires and buses.

  • No-connection flags: terminations for pins or wires that are intentionally unconnected. These flags prevent ERC violations for unconnected pins.

  • Junctions: connections between crossing wires or buses.

  • Net labels: local name for a signal. Signals within a sheet that have the same net label are connected.

  • Global labels: global name for a signal. Signals with the same global label are connected even if they are not in the same sheet.

  • Hierarchical labels: a label for a signal in a subsheet that enables the signal to be accessed in a parent sheet. See the Hierarchical Schematics section for more information about hierarchical labels, sheets, and pins.

  • Hierarchical sheets: an instantiation of a subsheet within a parent sheet. The parent sheet can connect to the subsheet through the subsheet’s hierarchical pins.

  • Hierarchical pins: connection points between a parent sheet and a subsheet. Hierarchical pins appear at the parent sheet’s level and correspond to hierarchical labels in the subsheet.

Several other types of items can be placed on the schematic but do not affect connectivity:

  • Graphical lines: graphical lines for presentation.

  • Text: textual comments and annotations.

  • Bitmap images: raster graphics from an external file.

This section will also discuss two special types of symbols that can be added with the "Power port" button on the right toolbar:

  • Power ports: symbols for connecting wires to a power or ground net.

  • PWR_FLAG: a specific symbol for indicating that a net is powered when it is not connected to a power output pin (for example, a power net that is supplied by an off-board connector).

Соединения с помощью проводников и меток

Есть два пути для создания соединения:

  • Проводник от вывода к вывод.

  • Метки.

Следующее изображение показывает оба метода:

Проводники и метки
Label Connections

The point of "contact" of a label is the small square in the corner of the label. The square disappears when the label is connected. The position of the connection point relative to the label text can be changed by choosing a different label orientation in the label properties, or by mirroring/rotating the label.

The label’s connection point must be in contact with a wire or the end of a pin for the label to be connected.

Wire Connections

Для образования соединения, сегменты должны подключаться концами друг к другу или к выводам.

При пересечении (если проводник проходит над выводом, но не соединяется с его концом) соединение не создается.

Wires connect with other wires or pins only if their ends coincide exactly. Therefore it is important to keep symbol pins and wires aligned to the grid. It is recommended to always use a 50 mil grid when placing symbols and drawing wires because the KiCad standard symbol library and all libraries that follow its style also use a 50 mil grid.
Symbols, wires, and other elements that are not aligned to the grid can be snapped back to the grid by selecting them, right clicking, and selecting Align Elements to Grid.
Wire Junctions

Wires that cross are not implicitly connected. It is necessary to join them with a junction dot if a connection is desired. Junction dots will be automatically added to wires that start or end on top of an existing wire.

Junction dots are used in the previous figure on the wires connected to P1 pins 18, 19, 20, 21, 22, and 23.

Nets with Multiple Names

A signal can only have one name. If two different labels are placed on the same net, an ERC violation will be generated. Only one of the net names will be used in the netlist.

Hidden Power Pins

When the power pins of a symbol are visible, they must be connected, as with any other signal.

However, symbols such as gates and flip-flops are sometimes drawn with hidden power input pins which are connected implicitly.

KiCad automatically connects invisible pins with type "power input" to a global net with the same name as the pin. For example, if a symbol has a hidden power input pin named VCC, this pin will automatically be connected to the global VCC net.

Care must be taken with hidden power input pins because they can create unintentional connections. By nature, hidden pins are invisible and do not display their pin name. This makes it easy to accidentally connect two power pins to the same net. For this reason, the use of invisible power pins in symbols is not recommended outside of power port symbols, and is only supported for compatibility with legacy designs and symbols.
Hidden pins can be shown in the schematic by checking the Show hidden pins option in the Schematic EditorDisplay Options section of the preferences, or by selecting ViewShow hidden pins. There is also a toggle icon hidden pin 24 on the left (options) toolbar.

It may be necessary to join power nets of different names (for example, GND in TTL components and VSS in MOS components). To accomplish this, add a power port symbol for each net and connect them with a wire.

It is not recommended to use labels for power connection. These only have a "local" connection scope, and will not connect to invisible power pins.


To begin connecting elements, you may either use the 'Wire' or 'Bus' tools from the right-hand toolbar, or you can auto-start a new wire from any existing pin or unconnected wire.

The wire drag action will drag the entire wire if you start dragging from the middle of the wire. Alternatively, it will drag just one corner if you start the drag action over a corner where two wires connect

Соединения с помощью шин

На следующей схеме множество выводов подключено к шине.

Пример схемы с шинами
Сигналы шины

Шины позволяют группировать цепи в схеме для упрощения сложных проектов. Они чертятся с помощью инструмента создания шин, а именуются с помощью меток, также как и проводники. В KiCad версии 6.0 и более поздних есть два вида шин: векторные и групповые.

Векторные шины — это совокупность сигналов, наименования которых начинаются с общего префикса и заканчиваются порядковым номером. Векторным шинам присваиваются имена вида <PREFIX>[M..N], где PREFIX — префикс, соответствующий правилам именования меток, M — первый номер в виде суффикса, N — последний номер в виде суффикса. Например, шина DATA[0..7] состоит из сигналов DATA0, DATA1 и так далее до DATA7. Не имеет значения в каком порядке указаны M и N, но они не должны быть отрицательными.

Групповые шины — это совокупность одного или нескольких сигналов и/или векторных шин. Групповые шины могут объединять в себе связанные сигналы, даже если они имеют различные имена. Такие шины используют особый синтаксис меток:


Сигналы группы перечисляют внутри фигурных скобок ({}), разделяя символом пробела. Наименование группы указывается перед открывающейся фигурной скобкой, но оно не обязательное. Если группа не имеет имени, цепи на печатной плате получат имена сигналов, указанные в группе. Если же группа имеет имя, то это имя будет добавлено к имени сигнала в виде префикса, отделённого точкой (.).

Например, шина {SCL, SDA} имеет два сигнала. В списке цепей эти сигналы будут указаны как SCL и SDA. А для шины USB1{DP DM} будут сформированы цепи с именами USB1.DP и USB1.DM. В проектах с объёмными шинами, которые повторяются на нескольких листах схемы, использование групповых шин сэкономит время.

Групповые шины также могут включать в себя векторные шины. Например, шина MEMORY{A[7..0] D[7..0] OE WE} содержит как векторные шины, так и обычные сигналы, а в результате на плате будут получены такие сигналы как MEMORY.A7, MEMORY.OE и т.п.

Bus wires can be drawn and connected in the same manner as signal wires, including using junctions to create connections between crossing wires. Like signals, buses cannot have more than one name — if two conflicting labels are attached to the same bus, an ERC violation will be generated.

Соединение сигналов шины

Pins connected between the same members of a bus must be connected by labels. It is not possible to connect a pin directly to a bus; this type of connection will be ignored by KiCad.

На приведённом выше примере, соединения выполнены с помощью меток, расположенных на проводниках, которые подключены к выводам. Ввод шины (отрезок проводника под углом 45 градусов) всего лишь графический элемент и не требуется для создания логической связи.

In fact, using the repetition command (Insert), connections can be very quickly made in the following way, if component pins are aligned in increasing order (a common case in practice on components such as memories, microprocessors…​):

  • Place the first label (for example PCA0)

  • Use the repetition command as much as needed to place members. KiCad will automatically create the next labels (PCA1, PCA2…​) vertically aligned, theoretically on the position of the other pins.

  • Начертить проводник под первой меткой. Затем использовать команду повторения для размещения остальных проводников под остальными метками.

  • Если необходимо, расположите вводы в шину таким же образом (сначала расположите первый ввод, затем остальные с помощью команды повторения).

In the Schematic EditorEditing Options section of the Preferences menu, you can set the repetition parameters:

  • Horizontal pitch.

  • Vertical pitch.

  • Label increment (labels can be incremented or decremented by 1, 2, 3, etc.).

Ответвление проводников от шины

The unfold tool allows you to quickly break out signals from a bus. To unfold a signal, right-click on a bus object (a bus wire, etc) and choose Unfold from Bus. Alternatively, use the Unfold Bus hotkey (default: C) when the cursor is over a bus object. The menu allows you to select which bus member to unfold.

После выбора сигнала шины, с помощью мыши нужно указать место расположения метки. Инструмент ответвления автоматически создаст ввод проводника в шину и проводник от ввода до метки. После расположения метки на схеме, черчение проводника не заканчивается, можно и дальше вести проводник (например, к выводу компонента) или завершить его, как при обычном черчении проводников.

Псевдонимы шин

Псевдонимы шин — это ярлыки, позволяющие работать с объёмными групповыми шинами более эффективно. Они позволяют задать короткое имя для групповой шины (перечня сигналов) и затем использовать его при обозначении шины на схеме, вместо перечисления сигналов.

To create bus aliases, open the Bus Definitions dialog in the Tools menu.

Диалоговое окно псевдонимов шин

Имя псевдонима должно соответствовать требованиям именования меток. С помощью диалогового окна можно добавлять сигналы или векторные шины к псевдониму. Для экономии времени, можно вводить или вставлять сигналы и/или шины через пробел, они будут разделены и добавлены по отдельности. На показанном примере определён псевдоним с именем USB, содержащий сигналы DP, DM и VBUS.

После создания псевдонима, его можно использовать в метках групповых шин, вставляя имя псевдонима внутри фигурных скобок вместо перечня сигналов: {USB}. Эта запись эквивалентна метке {DP DM VBUS}. Можно добавить имя шины в виде префикса: USB1{USB}, в результате чего цепи получат имена типа USB1.DP и т.д., как описано выше. Для сложных шин, использование псевдонимов позволяет значительно сократить метки шин на схеме. Нужно помнить, что псевдоним — это всего лишь ярлык, сокращение, его имя не попадёт в список цепей.

Псевдонимы шин хранятся в файле схемы. Любой псевдоним, созданный на текущем листе схемы, будет доступен в любом другом иерархическом листе текущего проекта схемы.

Шины с более чем одной меткой

В KiCad версии 5.0 и более ранних допускалось соединение шин с различными метками, что приводило к объединению сигналов этих шин при создании списка цепей. Такое поведение теперь запрещено в KiCad версии 6.0, так как оно не совместимо с групповыми шинами и приводит к проблемам при формировании списка цепей, потому что имя, которое сигнал получит в итоге, сложно предугадать.

При открытии проекта, в котором имеется соединение шин с различными метками, в последних версиях KiCad, будет показано диалоговое окно миграции шин, которое поможет обновить схему так, чтобы у каждой шины осталась только одна метка.

Диалоговое окно миграции шин

Для каждого соединения шин с несколькими метками нужно выбрать какую из меток оставить. С помощью выпадающего меню можно выбрать одну из присутствующих в схеме меток или ввести новое значение самостоятельно.

Power Ports

Power port symbols are conventionally used to connect pins to power nets. Power port symbols have a single pin which is invisible and marked as a power input. As described in the hidden power pins section, any wire connected to the pin of a power port is therefore automatically connected to the power net with the same name as the port’s pin.

In the KiCad standard library, power ports are found in the power library, but power port symbols can be created in any library. To create a custom power port, make a new symbol with a hidden pin marked as a power input. Name the pin according to the desired power net.

На рисунке ниже показан пример подключения символов питания.

Пример символов питания

In this example, power ports symbols are used to connect the positive and negative terminals of the capacitors to the VCC and GND nets, respectively.

Power port symbols are found in the power symbol library. They can also be created by drawing a symbol with a hidden "power input" pin that has the name of the desired power net.


Two PWR_FLAG symbols are visible in the screenshot above. They indicate to ERC that the two power nets VCC and GND are actually connected to a power source, as there is no explicit power source such as a voltage regulator output attached to either net.

Without these two flags, the ERC tool would diagnose: Error: Input Power pin not driven by any Output Power pins.

The PWR_FLAG symbol is found in the power symbol library. The same effect can be achieved by connecting any "Power Output" pin to the net.

No-connection flag

No-connection flags (No-connection icon) are used to indicate that a pin is intentionally unconnected. These flags do not have any effect on the schematic’s connectivity, but they prevent "unconnected pin" ERC warnings for pins that are intentionally unconnected.

Чертежные элементы

Text comments and graphic lines

It can be useful to place annotations such as text fields and frames to aid in understanding the schematic. Text fields (text 24) and graphic lines (add dashed line 24) are intended for this use, as opposed to labels and wires, which are connection elements.

The image below shows graphic lines and text in addition to wires, local labels, and hierarchical labels.

Пример рамки с текстом

Основная надпись

The title block is edited with the Page Settings tool (Page Settings tool).

Диалог параметров страницы

Each field in the title block can be edited, as well as the paper size and orientation. If the "Export to other sheets" option is checked for a field, that field will be updated in the title block of all sheets, rather than only the current sheet.

A drawing sheet template file can also be selected.

Основная надпись

The sheet number (Sheet X/Y) is automatically updated, but sheet page numbers can also be manually set using EditEdit Sheet Page Number…​.

Восстановление кэшированных компонентов

By default, KiCad loads symbols from the project libraries according to the set paths and library order. This can cause a problem when loading a very old project: if the symbols in the library have changed or have been removed or the library no longer exists since they were used in the project, the ones in the project would be automatically replaced with the new versions. The new versions might not line up correctly or might be oriented differently leading to a broken schematic.

When a project is saved, a cache library with the contents of the current library symbols is saved along with the schematic. This allows the project to be distributed without the full libraries. If you load a project where symbols are present both in its cache and in the system libraries, KiCad will scan the libraries for conflicts. Any conflicts found will be listed in the following dialog:

Диалог решения проблем :)

Из данного примера видно, что проект изначально использовал диод с катодом вверху, но теперь в библиотеке он расположен катодом вниз. Такое изменение разрушит проект! Если нажать кнопку OK, старый компонент будет сохранён в специальной ``rescue'' библиотеке под новым именем, что решает проблему конфликта с новой версией компонента.

If you press Cancel, no rescues will be made, so KiCad will load all the new components by default. If you save the schematic at this point, your cache will be overwritten and the old symbols will not be recoverable. If you have saved the schematic, you can still go back and run the rescue function again by selecting "Rescue Cached Components" in the "Tools" menu to call up the rescue dialog again.

Чтобы этот диалог больше не отображался нужно нажать кнопку "Больше никогда не показывать". По умолчанию, ни какие действия не будут предприниматься и будут загружаться новые версии компонентов. Это поведение можно изменить (вернуть обратно) в диалоговом окне настроек библиотек.

Иерархические схемы


Иерархическое представление схемы, в общем случае, является хорошим решением для проектов из нескольких листов. Использование проектов данного типа понадобиться при:

  • Больших форматах листов, что приводит к проблема при печати и в использовании.

  • Множестве листов, которые лучше привести к иерархической структуре.

Законченная схема состоит из основного листа, называемого корневым (root), и вложенных листов, которые формируют иерархию. При этом, умелое разделение проекта на отдельные листы часто повышает читаемость схемы.

From the root sheet, you must be able to find all sub-sheets. Hierarchical schematics management is very easy with KiCad, thanks to an integrated "hierarchy navigator" accessible via the icon Hierarchy navigator icon of the top toolbar.

Всего существует два типа иерархий: первый и наиболее распространённый только что был рассмотрен. Суть второго состоит в том, чтобы создать компонент в библиотеке, который внешне похож на обычный компонент схемы, но при этом связан со схемой, которая описывает его внутреннюю структуру.

Второй тип используется при разработке микросхем (интегрированных схем) и при этом нужно использовать библиотеки функций в проектируемых схемах.

KiCad currently doesn’t treat this second case.

Иерархия может быть:

  • простой: содержит схемы, которые используются только единожды

  • сложной: содержат схемы, которые используются несколькими листами (имеют несколько инстанций)

  • плоской: простая иерархия, но без указания соединений между листами

KiCad can deal with all these hierarchies.

Создать иерархическую схему просто, вся иерархия строится начиная с корневого листа, так же как и обычная схема, состоящая из одного листа.

Далее, нужно изучить две важные операции:

  • Создание вложенных листов.

  • Построение электрических соединений между вложенными листами.

Navigation among sub-sheets is acheived by using the navigator tool accessible via the button Hierarchy navigator icon on the top toolbar.


К каждому листу можно получить доступ с помощью щелчка левой кнопкой мыши по его имени. Для быстрого доступа, нажмите правой кнопкой мыши на имени листа и выберите "Войти в лист" или дважды щёлкните левой кнопкой мыши внутри символа листа.

Также, чтобы покинуть текущий лист и перейти к родительскому листу, нажмите правую кнопку мыши на любом пустом месте схемы, где нет никаких объектов, и левой кнопкой мыши выберите пункт контекстного меню "Покинуть лист" или нажмите клавиши Alt+Backspace.

Локальные, иерархические и глобальные метки


Local labels, tool Local label icon, are connecting signals only within a sheet. Hierarchical labels (tool Hierarchical label icon) are connecting signals only within a sheet and to a hierarchical pin placed in the parent sheet.

Global labels (tool Global label icon) are connecting signals across all the hierarchy. Power pins (type power in and power out) invisible are like global labels because they are seen as connected between them across all the hierarchy.

В иерархии (простой или сложной) можно использовать как иерархические так и глобальные метки.

Создание иерархических схем


  • Разместить символ иерархического листа на основной схеме.

  • Войти в новый лист схемы (вложенный) с помощью навигатора и начертить её как и любую другую схему.

  • Разместить электрические соединения между двумя схемами используя глобальные или иерархические метки внутри вложенного листа и выводы иерархических листов с такими же именами на корневом листе. Эти иерархические выводы добавляются к символу листа на корневой схеме. Проводники подключаются к ним также как и к обычным выводам компонента.

Символ листа

Чертите прямоугольник по двум диагональным точкам для создания символа вложенного листа.

Размер этого прямоугольника должен позволять позже разместить специальные метки, иерархические выводы, соответствующие глобальным и иерархическим меткам из вложенного листа.

These labels are similar to usual symbol pins. Select the tool Add hierarchical subsheet icon.

Нажмите левой кнопкой мыши для расположения верхнего левого угла. Затем, нажмите еще раз для расположения нижнего правого угла, образуя достаточно большой прямоугольник.

После этого появится запрос на ввод имени файла схемы и имени листа (в основном для доступа к соответствующей схеме из навигатора).


Нужно ввести, как минимум, имя файла схемы. Если имя листа оставить пустым, то в его качестве будет использовано имя файла (обычно так и поступают).

Иерархические выводы

Здесь будет рассказано как создать точки соединения (иерархические выводы) символа листа, который был создан ранее.

Эти точки соединения подобны обычным выводам компонентов, но с возможность подключения целой шины к одному выводу.

Importing Hierarchical Sheet Pins

  • Select the tool Import hierarchical pin icon.

  • Click on the hierarchical sheet from where you want to import the pins corresponding to hierarchical labels placed in the corresponding schematic. A hierarchical pin appears, if a new hierarchical label exists, i.e. not corresponding to an already placed pin.

  • Нажмите на месте, где нужно расположить этот вывод.

All necessary pins can thus be placed quickly and without error. Their aspect is in accordance with corresponding hierarchical labels.

Иерархические метки

Each pin of the sheet symbol just created, must correspond to a label called hierarchical Label in the sub-sheet. Hierarchical labels are similar to labels, but they provide connections between sub-sheet and root sheet. The graphical representation of the two complementary labels (pin and hierarchical labels) is similar. Hierarchical labels are made with the tool Add hierarchical label icon.

Ниже, для примера, показан участок корневого листа:


Заметьте, вывод VCC_PIC подключён к разъему JP1.

Вот как выглядят соответствующие соединения на вложенном листе:


Можно увидеть две соответствующие иерархические метки, образующие соединение между двумя иерархическими листами.

Можно использовать иерархические метки и выводы для соединения двух шин, соответствующих синтаксису (Шина [N..m]), описанному ранее.

Локальны, иерархические, глобальные метки и скрытые выводы питания

Здесь приведены примечания для разных способов образования соединений без использования проводников.

Обычные метки

Обычные метки действуют локально, т.е. ограничены листом схемы, в котором расположены. Это связано с тем, что:

  • Каждый лист имеет свой номер.

  • Локальная метка связана с номером листа.

Таким образом, если расположить метку "АБВ" на листе №3, в итоге получим "АБВ_3". Также, если расположить метку "АБВ" на листе №1 (корневом листе), то в итоге получим "АБВ_1", что отличается от "АБВ_3". Это справедливо всегда, даже если лист всего один.

Иерархические метки

Все что сказано о простых метках, относится и к иерархическим меткам.

Так, на одном листе, иерархическая метка "АБВ" соединяется с соответствующей локальной меткой "АБВ", но не соединяется с иерархическими или локальными метками "АБВ" из других листов.

Но, в то же время, иерархическая метка может быть подключена к соответствующему иерархическому выводу, размещенном на символе листа корневой схемы.

Скрытые выводы питания

Как уже было показано, скрытые выводы питания соединяются вместе, если они имеют одинаковые имена. Таким образом, выводы питания объявленные "скрытыми" и обозначены VCC — соединяются и формируют единую цепь VCC, на листе, в котором расположены.

Это значит что, если разместить метку VCC на вложенном листе, то она не будет соединена с выводами VCC, так как эта метка примет вид VCC_n, где n — номер листа.

Если, все же, нужно соединить метку VCC с цепью выводов питания VCC, необходимо явно подключить скрытый вывод питания к символу питания VCC.

Глобальные метки

Глобальные метки, имеющие одинаковые имена, соединяются между собой во всей иерархии.

(метки питания, такие как VCC, — это тоже глобальные метки)

Сложные иерархии

Рассмотрим такой пример. Одна и та же схема используется дважды (существует две инстанции). Два листа ссылаются к одной и той же схеме, так как имя файла одинаковое у обоих листов (``other_sheet.sch''). Имена листов должны быть уникальными.


Плоские иерархии

Можно создавать проекты, использующие множество листов, которые не имеют между собой явных соединений (плоская иерархия) если выполняются следующие правила:

  • Создан корневой лист, содержащий остальные листы, и служащий связующим между ними.

  • Непосредственные соединения не нужны.

  • Используйте глобальные метки вместо иерархических во всех листах.

Здесь показан пример такого корневого листа.


На нём два вложенных листа, соединённых посредством глобальных меток.

Так выглядит pic_programmer.sch.


А так pic_sockets.sch.


Обратите внимание на глобальные метки.


Инструмент обозначения элементов


The annotation tool allows you to automatically assign a designator to symbols in your schematic. Annotation of symbols with multiple units will assign a unique suffix to minimize the number of these symbols. The annotation tool is accessible via the icon Annotate icon. Here you find its main window.


Доступны следующие варианты обозначения компонентов:

  • Обозначить все компоненты (параметр: Сбросить существующие обозначения)

  • Обозначить все компоненты, но не изменять назначенные ранее суффиксы частей.

  • Обозначить только необозначенные компоненты. Необозначенным компонентом называется компонент, порядковый номер которого обозначен вопросительным знаком '?'.

  • Обозначить всю иерархию листов (параметр: По всей схеме).

  • Обозначить только текущий лист (параметр: Только текущий лист).

Параметр ``Сбросить, но не менять аннотированные части компонентов'' позволяет сохранить все присвоенные суффиксы частям составных компонентов. Таким образом, если имеются компоненты U2A и U2B, то их можно заново обозначить как U1A и U1B, соответственно, но никак не U1A и U2B или U2B и U2A. Это будет полезным в случае, когда уже спланировано где каждая часть будет расположена и нужно сохранить соответствие выводов.

Выбранный порядок обозначения будет использоваться на каждом листе иерархии.

Исключением является случай, когда вся схема уже обозначена (на всех листах) и добавляются новые компоненты, которые обозначаются отдельно, чтобы не нарушать уже присвоенные обозначения.

Выбор варианта обозначения позволяет использовать разные методы для образования порядкового номера:

  • Использовать первый свободный номер в схеме: компоненты обозначаются от 1 (для каждого типа элемента). Если присутствуют уже обозначенные компоненты, будут использоваться не занятые номера.

  • Начать с номер_листа*100 и использовать первый свободный: порядковые номера начинаются с 101 для первого листа, с 201 для второго и т.д. Если имеется более 99 элементов одного типа (DA, R, …​) внутри первого листа то инструмент обозначения будет использовать порядковый номер 200 и более, а обозначения на втором листе начнутся со следующего свободного.

  • Начать с номер_листа*1000 и использовать первый свободный. Порядковые номера начинаются с 1001 на первом листе, с 2001 на втором и т.д.

Примеры работы инструмента

Порядок обозначения

На этом примере показано 5 элементов без обозначения.


После работы инструмента обозначения компонентов будет получен следующий результат.

Сортировка компонентов по X-координате.


Сортировка компонентов по Y-координате.


Как можно заметить, четыре части элемента 74LS00 образуют один компонент U1, а пятый — U2.

Выбор варианта обозначений

Далее приведён пример обозначения на листе №2 с применением параметра "Использовать первый свободный номер на схеме".


Применение параметра "Начать с номер листа*100 и использовать первый свободный номер" даст следующий результат.


Применение параметра "Начать с номер листа*1000 и использовать первый свободный номер" даст следующий результат.


Проверка электрических правил проектирования


Инструмент проверки электрических правил (ERC) выполняет автоматический контроль схемы. Он обнаружит любые ошибки в схеме, такие как не подключенные выводы компонентов, иерархических листов или неверные соединения. Вообще-то, автоматическая проверка правил не без изъянов, подпрограмма, отвечающая за поиск всех возможных ошибок еще не на все 100% завершена. Тем не менее, этот инструмент очень полезен, потому что позволяет определить оплошности и мелкие ошибки.

На деле, все обнаруженные ошибки должны быть проверены и исправлены прежде чем двигаться далее. Качество проверки напрямую зависит от того, насколько точно установлен тип каждого вывода при проектировании библиотеки компонентов. В процессе проверки электрических правил сообщения выдаются как ошибки'' или предупреждения''.

Диалог ERC

Как производить проверку правил

ERC can be started by clicking on the icon ERC icon.

Предупреждения располагаются на элементах схемы в месте обнаружения ошибки (выводы или метки).

  • В диалоговом окне, с помощью нажатия на сообщение об ошибке можно перейти к соответствующему маркеру на схеме.

  • В схеме, щелчок правой кнопки мыши на маркере предоставляет доступ к соответствующему поясняющему сообщению.

You can also delete error markers from the dialog and set specific ERC messages to be suppressed by using the right-click context menu.

Ignore ERC warning

Пример выполнения проверки правил

Маркеры ERC

Здесь показано четыре ошибки:

  • Два выхода были ошибочно соединены вместе (красная стрелка).

  • Два входа оставлены не подключенными (зелёные стрелки).

  • Ещё одна ошибка на скрытом выводе питания из-за отсутствия флага питания (зелёная стрелка вверху).

Получение информации об ошибках

Щелчок правой кнопки мыши на маркере вызывает контекстное меню, позволяющее открыть информационное окно об ошибке.

Получение информации о маркере

И если выбрать пункт "Информация о маркере" — появится сообщение с описанием ошибки.

ERC pointers message

Выводы питания и флаги питания

Очень часть появляются ошибки или предупреждения на выводах питания, хотя все выглядит нормально, как на примере выше. Это происходит потому, что в большинстве проектов питание подаётся через разъемы, которые, сами по себе, не являются источниками (в отличии от регуляторов, в которых выход обозначен как "выход питания").

Если инструмент проверки электрических правил обнаружит цепь питания, в которой нет ни одного выхода питания, то будет создано сообщение о том, что выводы, подключенные к данной цепи — не запитаны.

Дабы избежать подобных сообщений, нужно разместить флаг "PWR_FLAG" на соответствующий символ питания. Посмотрите на следующий пример:

Power pins and flags

Метки ошибок исчезнут при следующей проверке правил.

В большинстве случаев, флаг PWR_FLAG должен быть подключён к GND, так как регуляторы имеют только вывод выхода обозначенный как выход питания, а общий вывод — нет (он обозначается как вход питания). Таким образом, общий провод всегда будет оставаться не запитанным, если не использовать PWR_FLAG.


The Pin Conflicts Map panel in Schematic Setup allows you to configure connectivity rules to define electrical conditions for errors and warnings based on what types of pins are connected to each other

Schematic ERC Pin Conflicts Map

Правила настраиваются путём нажатия левой кнопки мыши на квадратах матрицы, циклически перебирая варианты: нормально, предупреждение, ошибка.

Schematic ERC severity settings

The Violation Severity panel in Schematic Setup lets you configure what types of ERC messages should be reported as Errors, Warnings or ignored.

Отчёт проверки правил

Если отмечена опция "Создать файл ERC отчета", то будет создан и сохранён файл с информацией о проверке правил проектирования. Расширение таких файлов — .erc. Далее приведен пример содержимого файла отчёта.

Отчет ERC (Сб 24 сен 2016 11:50:12, Кодировка UTF8 )

***** Sheet /
ErrType(4): Конфликт между выводами. Серьезность: предупреждение
    @ (256,54 мм,83,82 мм): Вывод B12 (Двунаправленный) компонента U9 соединен с
    @ (72,39 мм,237,49 мм): вывод 1 (Выход питания) компонента #PWR07 (цепь 41).

 >> Сообщения ERC: 4

Transfer Schematic to PCB


Use the Update PCB from Schematic tool to sync design information from the Schematic Editor to the Board Editor. The tool can be accessed with ToolsUpdate PCB from Schematic (F8) in both the schematic and board editors. You can also use the Update PCB from Schematic icon icon in the top toolbar of the Board Editor.

Update PCB from Schematic is the preferred way to transfer design information from the schematic to the PCB. In older versions of KiCad, the equivalent process was to export a netlist from the Schematic Editor and import it into the Board Editor. It is no longer necessary to use a netlist file.
Update PCB from schematic

The tool adds the footprint for each symbol to the board and transfers updated schematic information to the board. In particular, the board’s net connections are updated to match the schematic.

The changes that will be made to the PCB are listed in the Changes To Be Applied pane. The PCB is not modified until you click the Update PCB button.

You can show or hide different types of messages using the checkboxes at the bottom of the window. A report of the changes can be saved to a file using the Save…​ button.


The tool has several options to control its behavior.

Option Description

Re-link footprints to schematic symbols based on their reference designators

Footprints are normally linked to schematic symbols via a unique identifier created when the symbol is added to the schematic. A symbol’s unique identifier cannot be changed.

If checked, each footprint in the PCB will be re-linked to the symbol that has the same reference designator as the footprint.

If unchecked, footprints and symbols will be linked by unique identifier as usual, rather than by reference designator. Each footprint’s reference designator will be updated to match the reference designator of its linked symbol.

This option should generally be left unchecked. It is useful for specific workflows that rely on changing the links between schematic symbols and footprints, such as refactoring a schematic for easier layout or replicating layout between identical channels of a design.

Delete footprints with no symbols

If checked, any footprint in the PCB without a corresponding symbol in the schematic will be deleted from the PCB. Footprints with the "Not in schematic" attribute will be unaffected.

If unchecked, footprints without a corresponding symbol will not be deleted.

Replace footprints with those specified in the schematic

If checked, footprints in the PCB will be replaced with the footprint that is specified in the corresponding schematic symbol.

If unchecked, footprints that are already in the PCB will not be changed, even if the schematic symbol is updated to specify a different footprint.

Черчение и печать


Доступ к обоим командам, печати и черчения, можно получить через меню "Файл".


Поддерживаются следующие выходные форматы: Postscript, PDF, SVG, DXF и HPGL. Также, можно напрямую печатать на принтере.

Основные команды печати

Чертить текущий лист

создаст один файл только для текущего листа.

Чертить все листы

позволяет начертить всю иерархию (по одному файлу для каждого листа).

Чертить в формате Postscript

Этот параметр позволяет создавать PostScript файлы.


В качестве имени файла используется имя листа с расширением .ps. Можно отключить опцию "Чертить форматную рамку". Это будет полезно при последующем преобразовании в Encapsulated PostScript (формат .eps) для передачи полученных чертежей в текстовые редакторы. Поле сообщений содержит список созданных файлов.

Чертить в формате PDF


Позволяет создавать файлы чертежей используя формат PDF. Имя файла образуется из имени листа с добавлением расширения .pdf.

Чертить в формате SVG


Позволяет создавать файлы чертежей используя формат SVG. Имя файла образуется из имени листа с добавлением расширения .svg.

Чертить в формате DXF


Позволяет создавать файлы чертежей используя формат DXF. Имя файла образуется из имени листа с добавлением расширения .dxf.

Чертить в формате HPGL

Позволяет создавать файлы чертежей используя формат HPGL. В этом формате можно задать:

  • Размер листа.

  • Начало координат.

  • Толщину пера (в мм).

Диалоговое окно черчения выглядит как показано далее:


Имя файла образуется из имени листа с добавлением расширения .plt.

Установка размера листа

По умолчанию, выбран формат схемы. При этом, будет использован размер листа, установленный в настройках страницы, и масштаб, равный 1. Если выбран другой размер листа (А4 при размере A0 или А при размере E), то масштаб будет подобран так, чтобы заполнить страницу.

Настройка смещения

Для всех стандартных размеров, можно подстроить смещение центра чертежа так точно, как только это возможно. Дело в том, что плоттеры могут чертить или относительно центра, или относительно нижнего левого угла листа, и необходимо задать верное смещение для правильной постройки чертежа.

Другими словами:

  • Для плоттеров с опорной точкой в центре листа — смещение должно быть отрицательным и равным половине размера листа.

  • Для плоттеров с опорной точкой в нижнем левом углу — смещение должно быть равным 0.

Для установки смещения:

  • Выберите размер листа.

  • Установите смещение по координатам X и Y.

  • Подтвердите установленное смещение.

This command, available via the icon Print icon, allows you to visualize and generate design files for the standard printer.


Параметр "Печатать форматную рамку" разрешает или запрещает печать форматной рамки и основной надписи.

Параметр "Печать в черно-белом режиме" переводит печать в монохромный режим. Этот параметр, в основном, нужен при использовании чёрно-белых лазерных принтеров, так как цвета печатаются в полутонах, из-за чего часто схемы становится не читаемыми.

Symbol Editor

Общая информация о библиотеках компонентов

A symbol is a schematic element which contains a graphical representation, electrical connections, and text fields describing the symbol. Symbols used in a schematic are stored in symbol libraries. KiCad provides a symbol editing tool that allows you to create libraries, add, delete or transfer symbols between libraries, export symbols to files, and import symbols from files. The symbol editing tool provides a simple way to manage symbols and symbol libraries.

Обзор библиотеки компонентов

Библиотека компонентов состоит из одного или нескольких компонентов. Обычно, компоненты объединяют по функциональному назначению, типу, и/или производителю.

Компонент состоит из:

  • Graphical items (lines, circles, arcs, text, etc.) that determine how symbol looks in a schematic.

  • Pins which have both graphic properties (line, clock, inverted, low level active, etc.) and electrical properties (input, output, bidirectional, etc.) used by the Electrical Rules Check (ERC) tool.

  • Полей, таких как обозначение, значение, назначенное посадочное место для проекта печатной платы и другие.

Symbols can be derived from another symbol in the same library. Derived symbols share the base symbol’s graphical shape and pin definitions, but can override the base symbol’s property fields (value, footprint, footprint filters, datasheet, description, etc.). Derived symbols can be used to define symbols that are similar to a base part. For example, 74LS00, 74HC00, and 7437 symbols could all be derived from a 7400 symbol. In previous versions of KiCad, derived symbols were referred to as aliases.

Для создания правильного компонента необходимо:

  • Определить, состоит ли компонент из нескольких частей.

  • Defining if the symbol has an alternate body style (also known as a De Morgan representation).

  • Начертить его графическое обозначение используя линии, прямоугольники, окружности, полигоны и текст.

  • Добавить выводы, внимательно назначая каждому графическое представление, имя, номер и электрический тип (вход, выход, трехстабильный, вывод питания и т.п.).

  • Determining if the symbol should be derived from another symbol with the same graphical design and pin definition.

  • Добавить дополнительные поля, такие как имя посадочного места, используемого при проектировании печатной платы, и/или установить их видимость.

  • Документировать компонент, путём заполнения строки описания, указания ссылки на справочную документацию и пр.

  • Сохранить его в спроектированной библиотеке.

Обзор редактора библиотеки компонентов

Основное окно редактора библиотек компонентов показано ниже. Оно состоит из троих панелей инструментов для быстрого доступа к основным командам и поля для просмотра и редактирования. На панелях инструментов расположены не все доступные команды, остальные можно найти в меню.

Symbol Editor main window

Основная панель инструментов

The main tool bar is located at the top of the main window. It consists of the undo/redo commands, zoom commands, symbol properties dialogs, and unit/representation management controls.

Symbol Editor toolbar

New symbol icon

Create a new symbol in the selected library.

Save icon

Save the currently selected library. All modified symbols in the library will be saved.

Undo icon

Undo last edit.

Redo icon

Redo last undo.

Refresh icon

Refresh display.

Zoom in icon

Zoom in.

Zoom out icon

Zoom out.

Zoom to fit page icon

Zoom to fit symbol in display.

Zoom to selection icon

Zoom to fit selection.

Rotate counterclockwise icon

Rotate counter-clockwise.

Rotate clockwise icon

Rotate clockwise.

Mirror horizontally icon

Mirror horizontally.

Mirror vertically icon

Mirror vertically.

Symbol properties icon

Edit the current symbol properties.

Pin table icon

Edit the symbol’s pins in a tablular interface.

Datasheet icon

Open the symbol’s datasheet. The button will be disabled if no datasheet is defined for the current symbol.

ERC icon

Test the current symbol for design errors.

Normal body style icon

Select the normal body style. The button is disabled if the current symbol does not have an alternate body style.

Alternate body style icon

Select the alternate body style. The button is disabled if the current symbol does not have an alternate body style.

Unit dropdown

Select the unit to display. The drop down control will be disabled if the current symbol is not derived from a symbol with multiple units.

Synchronized pin edit mode icon

Enable synchronized pins edit mode. When this mode is enabled, any pin modifications are propagated to all other symbol units. Pin number changes are not propagated. This mode is automatically enabled for symbols with multiple interchangable units and cannot be enabled for symbols with only one unit.

Панель инструментов чертёжных элементов

The vertical toolbar located on the right hand side of the main window allows you to place all of the elements required to design a symbol.

Cursor icon

Select tool. Right-clicking with the select tool opens the context menu for the object under the cursor. Left-clicking with the select tool displays the attributes of the object under the cursor in the message panel at the bottom of the main window. Double-left-clicking with the select tool will open the properties dialog for the object under the cursor.

Pin icon

Pin tool. Left-click to add a new pin.

Text icon

Graphical text tool. Left-click to add a new graphical text item.

Add rectangle icon

Rectangle tool. Left-click to begin drawing the first corner of a graphical rectangle. Left-click again to place the opposite corner of the rectangle.

Add circle icon

Circle tool. Left-click to begin drawing a new graphical circle from the center. Left-click again to define the radius of the circle.

Add arc icon

Arc tool. Left-click to begin drawing a new graphical arc item from the first arc end point. Left-click again to define the second arc end point. Adjust the radius by dragging the arc center point.

Add line icon

Connected line tool. Left-click to begin drawing a new graphical line item in the current symbol. Left-click for each additional connected line. Double-left-click to complete the line.

Anchor icon

Anchor tool. Left-click to set the anchor position of the symbol.

Delete icon

Delete tool. Left-click to delete an object from the current symbol.

Панель инструментов параметров

The vertical tool bar located on the left hand side of the main window allows you to set some of the editor drawing options.

Grid icon

Toggle grid visibility on and off.

Inch unit icon

Set units to inches.

Millimeter unit icon

Set units to mils (0.001 inch).

Millimeter unit icon

Set units to millimeters.

Cursor shape icon

Toggle full screen cursor on and off.

Show pintype icon

Toggle display of pin electrical types.

Symbol tree icon

Toggle display of libraries and symbols.

Выбор и управление библиотекой

The selection of the current library is possible via the Symbol tree icon icon which shows you all available libraries and allows you to select one. When a symbol is loaded or saved, it will be put in this library. The library name of a symbol is the contents of its Value field.

Выбор и сохранение компонента

Выбор компонента

Clicking the Symbol tree icon icon on the left tool bar toggles the treeview of libraries and symbols. Clicking on a symbol opens that symbol.

Some symbols are derived from other symbols. Derived symbol names are displayed in italics in the treeview. If a derived symbol is opened, its symbol graphics will not be editable. Its symbol fields will be editable as normal. To edit the graphics of a base symbol and all of its derived symbols, open the base symbol.
Сохранение компонента

After modification, a symbol can be saved in the current library or a different library.

To save the modified symbol in the current library, click the Save icon icon. The modifications will be written to the existing symbol.

Saving a modified symbol also saves all other modified symbols in the same library.

To save the symbol changes to a new symbol, click FileSave As…​. The symbol can be saved in the current library or a different library. A new name can be set for the symbol.

To create a new file containing only the current symbol, click FileExportSymbol…​. This file will be a standard library file which will contain only one symbol.

Создание компонентов библиотеки

Создание нового компонента

A new symbol can be created by clicking the New symbol icon icon. You will be asked for a number of symbol properties.

  • A symbol name (this name is used as the default value for the Value field in the schematic editor)

  • An optional base symbol to derive the new symbol from. The new symbol will use the base symbol’s graphical shape and pin configuration, but other symbol information can be modified in the derived symbol. The base symbol must be in the same library as the new derived symbol.

  • The reference designator prefix (U, C, R…​).

  • The number of units per package, and whether those units are interchangeable (for example a 7400 is made of 4 units per package).

  • If an alternate body style (sometimes referred to as a "De Morgan equivalent") is desired.

  • Whether the symbol is a power symbol. Power symbols appear in the "Add Power Port" dialog in the Schematic editor, their Value fields are not editable in the schematic, they cannot be assigned a footprint and they are not added to the PCB, and they are not included in the bill of materials.

  • Whether the symbol should be excluded from the bill of materials.

  • Whether the symbol should be excluded from the PCB.

There are also several graphical options.

  • The offset between the end of each pin and its pin name.

  • Whether the pin number and pin name should be displayed.

  • Whether the pin names should be displayed alongside the pins or at the ends of the pins inside the symbol body.

These properties can also be changed later in the Symbol Properties window.

New symbol properties

Будет создан новый компонент с указанными выше параметрами и представлен в редакторе, как показано ниже.

Newly created symbol

The blue cross in the center is the symbol anchor, which specifies the symbol origin i.e. the coordinates (0, 0). The anchor can be repositioned by selecting the Anchor icon icon and clicking on the new desired anchor position.

Создание компонента на основе другого

Часто компонент, который нужно сделать, похож на один из уже существующих в библиотеке. В этом случае легко загрузить и поправить существующий компонент.

  • Загрузите компонент, который нужно взять за основу.

  • Save a new copy of the symbol using FileSave As…​. The Save As dialog will prompt for a name for the new symbol and the library to save it in.

  • Выполните все необходимые изменения в компоненте.

  • Save the modified symbol.

Свойства компонента

Symbol properties are set when the symbol is created but they can be modified at any point. To change the symbol properties, click on the Symbol properties icon icon to show the dialog below.

Свойства компонента

It is important to correctly set the number of units per package and the alternate symbolic representation, if enabled, because when pins are edited or created the corresponding pins for each unit will be affected. If you change the number of units per package after pin creation and editing, there will be additional work to specify the pins and graphics for the new unit. Nevertheless, it is possible to modify these properties at any time.

The graphic options "Show pin number" and "Show pin name" define the visibility of the pin number and pin name text. The option "Place pin names inside" defines the pin name position relative to the pin body. The pin names will be displayed inside the symbol outline if the option is checked. In this case the "Pin Name Position Offset" property defines the shift of the text away from the body end of the pin. A value from 0.02 to 0.05 inches is usually reasonable.

На примере ниже показан компонент с выключенным параметром "Имя вывода внутри". Обратите внимание на положение имени и номера выводов.

Place pin name inside unchecked
Symbol Name, Description, and Keywords

The symbol’s name is the same as the Value field. When the symbol name is changed the value also changes, and vice versa. The symbol’s name in the library also changes accordingly.

The symbol description should contain a brief description of the component, such as the component function, distinguishing features, and package options. The keywords should contain additional terms related to the component. Keywords are used primarily to assist in searching for the symbol.

Searching for a symbol in the add a symbol dialog

A symbol’s name, description, and keywords are all used when searching for symbols in the Symbol Editor and Add a Symbol dialog. The description and keywords are displayed in the Symbol Library Browser and Add a Symbol dialog.

Footprint Filters

The footprint filters tab is used to define which footprints are appropriate to use with the symbol. The filters can be applied in the Footprint Assignment tool so that only appropriate footprints are displayed for each symbol.

Multiple footprint filters can be defined. Footprints that match any of the filters will be displayed; if no filters are defined, then all footprints will be displayed.

Filters can use wildcards: * matches any number of characters, including zero, and ? matches zero or one characters. For example, SOIC-* would match the SOIC-8_3.9x4.9mm_P1.27mm footprint as well as any other footprint beginning with SOIC-. The filter SOT?23 matches SOT23 as well as SOT-23.

Footprint filters

Компоненты с альтернативным начертанием

If the symbol has an alternate body style defined, one body style must be selected for editing at a time. To edit the normal representation, click the Normal representation icon icon.

To edit the alternate representation, click on the Alternate representation icon icon. Use the images/toolbar_libedit_part.png dropdown shown below to select the unit you wish to edit.

Selecting a symbol unit

Графические элементы

Graphical elements create the visual representation of a symbol and contain no electrical connection information. Graphical elements are created with the following tools:

  • Линии и полигоны, задаются начальной и конечной точками.

  • Прямоугольники, задаются двумя противоположными углами.

  • Окружности, задаются центром и радиусом.

  • Дуги, задаются начальной и конечной точками дуги и её центром. Дуга может быть в пределах от 0° до 180°.

Вертикальная панель инструментов с правой стороны основного окна позволяет размещать все графические элементы, необходимые для построения условного графического обозначения компонента.

Графические элементы в частях и дополнительных начертаниях

Каждый графический элемент (линия, дуга, окружность, и пр.) можно определить как общий для всех частей и/или дополнительных начертаний или отдельный для данной части и/или начертания. К параметрам элемента можно легко получить доступ через щелчок правой кнопки мыши на на нём для вызова контекстного меню. Ниже показано контекстное меню для линии.

Graphic line context menu

Также, можно дважды щёлкнуть на элементе для изменения его параметров. Ниже приведён диалог настройки элемента полигона.

Graphic line properties

Свойства графического элемента:

  • "Line width" defines the width of the element’s line in the current drawing units.

  • "Fill Style" determines if the shape defined by the graphical element is to be drawn unfilled, background filled, or foreground filled.

  • "Common to all units in symbol" determines if the graphical element is drawn for each unit in symbol with more than one unit per package or if the graphical element is only drawn for the current unit.

  • "Common to all body styles (De Morgan)" determines if the graphical element is drawn for each symbolic representation in symbols with an alternate body style or if the graphical element is only drawn for the current body style.

Графический текст

The Text icon icon allows for the creation of graphical text. Graphical text is automatically oriented to be readable, even when the symbol is mirrored. Please note that graphical text items are not the same as symbol fields.

Компоненты из нескольких частей и с дополнительными начертаниями

Symbols can have up to two body styles (a standard symbol and an alternate symbol often referred to as a "De Morgan equivalent") and/or have more than one unit per package (logic gates for example). Some symbols can have more than one unit per package each with different symbols and pin configurations.

Consider for instance a relay with two switches, which can be designed as a symbol with three different units: a coil, switch 1, and switch 2. Designing a symbol with multiple units per package and/or alternate body styles is very flexible. A pin or a body symbol item can be common to all units or specific to a given unit or they can be common to both symbolic representation so are specific to a given symbol representation.

By default, pins are specific to a unit and body style. When a pin is common to all units or all body styles, it only needs to be created once. This is also the case for the body style graphic shapes and text, which may be common to each unit, but typically are specific to each body style).

Example of a Symbol With Multiple Noninterchangeable Units

For an example of a symbol with multiple units that are not interchangeable, consider a relay with 3 units per package: a coil, switch 1, and switch 2.

The three units are not all the same, so "All units are interchangeable" should be deselected in the Symbol Properties dialog. Alternatively, this option could have been specified when the symbol was initially created.

Uncheck all units are interchangeable
Unit A
Relay unit A
Unit B
Relay unit B
Unit C
Relay unit C

Unit A does not have the same symbol and pin layout as Units B and C, so the units are not interchangeable.

"Synchronized Pins Edit Mode" can be enabled by clicking the Synchronized pins edit mode icon icon. In this mode, pin modifications are propagated between symbol units; changes made in one unit will be reflected in the other units as well. When this mode is disabled, pin changes made in one unit do not affect other units. This mode is enabled automatically when "All units are interchangeable" is checked, but it can be disabled. The mode cannot be enabled when "All units are interchangeable" is unchecked or when the symbol only has one unit.
Элементы графического обозначения

Shown below are properties for a graphic body element. In the relay example above, the three units have different symbolic representations. Therefore, each unit was created separately and the graphical body elements have the "Common to all units in symbol" setting disabled.

Disable common to all units in symbol

Создание и редактирование выводов

You can click on the Pin icon icon to create and insert a pin. The editing of all pin properties is done by double-clicking on the pin or right-clicking on the pin to open the pin context menu. Pins must be created carefully, because any error will have consequences on the PCB design. Any pin already placed can be edited, deleted, and/or moved.

Общие сведения о выводах

A pin is defined by its graphical representation, its name and its number. The pin’s name and number can contain letters, numbers, and symbols, but not spaces. For the Electrical Rules Check (ERC) tool to be useful, the pin’s electrical type (input, output, tri-state…​) must also be defined correctly. If this type is not defined properly, the schematic ERC check results may be invalid.

Важные замечания:

  • Symbol pins are matched to footprint pads by number. The pin number in the symbol must match the corresponding pad number in the footprint.

  • Do not use spaces in pin names and numbers. Spaces will be automatically replaced with underscores (_).

  • To define a pin name with an inverted signal (overline) use the ~ (tilde) character followed by the text to invert in braces. For example ~{FO}O would display FO O.

  • If the pin name is empty, the pin is considered unnamed.

  • Pin names can be repeated in a symbol.

  • Pin numbers must be unique in a symbol.

Свойства выводов

Pin properties

Диалог свойств вывода позволяет редактировать все его параметры. Этот диалог автоматически отображается при создании вывода или при двойном щелчке на существующем выводе. Данный диалог позволяет изменять:

  • The pin name and text size.

  • The pin number and text size.

  • The pin length.

  • The pin electrical type and graphical style.

  • Принадлежность к части или альтернативному начертанию.

  • Pin visibility.

  • Alternate pin definitions.

Pin Graphic Styles

Shown in the figure below are the different pin graphic styles. The choice of graphic style does not have any influence on the pin’s electrical type.

Pin graphic styles

Электрический тип выводов

Choosing the correct electrical type is important for the schematic ERC tool. ERC will check that pins are connected appropriately, for example ensuring that input pins are driven and power inputs receive power from an appropriate source.

Pin Type



A pin which is exclusively an input.


A pin which is exclusively an output.


A pin that can be either an input or an output, such as a microcontroller data bus pin.


A three state output pin (high, low, or high impedance)


A passive symbol pin: resistors, connectors, etc.


A pin that can be freely connected to any other pin without electrical concerns.


A pin for which the ERC check does not matter.

Power input

A symbol’s power pin. As a special case, power input pins that are marked invisible are automatically connected to the net with the same name. See the Power Ports section for more information.

Power output

A pin that provides power to other pins, such as a regulator output.

Open collector

An open collector logic output.

Open emitter

An open emitter logic output.


A pin that should not be connected to anything.

Pushing Pin Properties to Other Pins

You can apply the length, name size, or number size of a pin to the other pins in the symbol by right clicking the pin and selecting Push Pin Length, Push Pin Name Size, or Push Pin Number Size, respectively.

Pin context menu

Установка выводов в компонентах с частями и альтернативными начертаниями

Symbols with multiple units and/or graphical representations are particularly problematic when creating and editing pins. The majority of pins are specific to each symbol unit (because each unit has a different set of pins) and to each body style (because the form and position is different between the normal body style and the alternate form).

The symbol library editor allows the simultaneous creation of pins. By default, changes made to a pin are made for all units of a multiple unit symbol and to both representations for symbols with an alternate symbolic representation. The only exception to this is the pin’s graphical type and name, which remain unlinked between symbol units and body styles. This dependency was established to allow for easier pin creation and editing in most cases. This dependency can be disabled by toggling the Synchronized pin edit mode icon icon on the main tool bar. This will allow you to create pins for each unit and representation completely independently.

Pins can be common or specific to different units. Pins can also be common to both symbolic representations or specific to each symbolic representation. When a pin is common to all units, it only has to drawn once. Pins are set as common or specific in the pin properties dialog.

An example is the output pin in the 7400 quad dual input NAND gate. Since there are four units and two symbolic representations, there are eight separate output pins defined in the symbol definition. When creating a new 7400 symbol, unit A of the normal symbolic representation will be shown in the library editor. To edit the pin style in the alternate symbolic representation, it must first be enabled by clicking the Alternate representation icon button on the tool bar. To edit the pin number for each unit, select the appropriate unit using the images/toolbar_libedit_alias.png drop down control.

Pin Table

Another way to edit pins is to use the Pin Table, which is accessible via the Pin table icon icon. The Pin Table displays all of the pins in the symbol and their properties in a table view, so it is useful for making bulk pin changes.

Any pin property can be edited by clicking on the appropriate cell. Pins can be added and removed with the Plus icon and Trash icon icons, respectively.

Columns of the pin table can be shown or hidden by right-clicking on the header row and checking or unchecking additional columns. Some columns are hidden by default.

The screenshot below shows the pin table for a quad opamp.

Pin table

Alternate Pin Definitions

Pins can have alternate pin definitions added to them. Alternate pin definitions allow a user to select a different name, electrical type, and graphical style for a pin when the symbol has been placed in the schematic. This can be used for pins that have multiple functions, such as microcontroller pins.

Alternate pin definitions are added in the Pin Properties dialog as shown below. Each alternate definition contains a pin name, electrical type, and graphic style. This microcontroller pin has all of its peripheral functions defined in the symbol as alternate pin names.

Alternate pin definitions

Alternate pin definitions are selected in the Schematic Editor once the symbol has been placed in the schematic. The alternate pin is assigned in the Alternate Pin Assignments tab of the Symbol Properties dialog. Alternate definitions are selectable in the dropdown in the Alternate Assignment column.

Selecting an alternate pin definition

Поля компонентов

All library symbols are defined with four default fields. The reference designator, value, footprint assignment, and datasheet link fields are created whenever a symbol is created or copied. Only the reference designator and value fields are required.

Symbols defined in libraries are typically defined with only these four default fields. Additional fields such as vendor, part number, unit cost, etc. can be added to library symbols but generally this is done in the schematic editor so the additional fields can be applied to all of the symbols in the schematic.

A convenient way to create additional empty symbol fields is to use define field name templates. Field name templates define empty fields that are added to each symbol when it is inserted into the schematic. Field name templates can be defined globally (for all schematics) in the Schematic Editor Preferences, or they can be defined locally (specific to each project) in the Schematic Setup dialog.

Редактирование полей компонентов

Чтобы изменить существующие поле, нужно вызвать контекстное меню с помощью правой кнопки мыши, как показано на рисунке ниже.

Symbol field context menu

To add new fields, delete optional fields, or edit existing fields, use the Component properties icon icon on the main tool bar to open the Symbol Properties dialog.

Fields are text information associated a the symbol. Do not confuse them with text in the graphic representation of a symbol.

Важные замечания:

  • Modifying the Value field changes the name of the symbol. The symbol’s name in the library will change when the symbol is saved.

  • The Symbol Properties dialog must be used to edit a field that is empty or has the invisible attribute enabled because such fields cannot be clicked on.

  • The footprint is defined as an absolute footprint using the LIBNAME:FOOTPRINTNAME format where LIBNAME is the name of the footprint library defined in the footprint library table (see the "Footprint Library Table" section in the PCB Editor manual) and FOOTPRINTNAME is the name of the footprint in the library LIBNAME.

Power Ports

Power ports, or power symbols, are conventionally used to label a wire as part of a power net, like VCC, +5V, or GND. In the schematic below, the +3.3V and GND symbols are power ports. In addition to acting as a visual indicator that a net is a power rail, a power port will determine the name of the net it is attached to. This is true even if there is another net label attached to the net; the net name determined by the power symbol overrides any other net names.

Power port example

It may be useful to place power symbols in a dedicated library. KiCad’s symbol library places power symbols in the power library, and users may create libraries to store their own power symbols. If the "Define as power symbol" box is checked in a symbol’s properties, that symbol will appear in the Schematic Editor’s "Add Power Port" dialog for convenient access.

Power symbols are handled and created the same way as normal symbols, but there are several additional considerations described below. They consist of a graphical symbol and a pin of the type "Power input" that is marked hidden.

Below is an example of a GND power symbol.

Editing a power symbol

Creating a Power Port Symbol

Power Port symbols consist of a pin of type "Power input" that is marked invisible. Invisible power input pins have a special property of automatically connecting to a net with the same name as the pin name. A net that is wired to an invisible power input pin will therefore be named after the pin, even if there are other net labels on the net. This connection is global.

If the power symbol has the "Define as power symbol" property checked, the power input pin does not need to be marked invisible. However, the convention is to make these pins invisible anyway.
Power symbol pin

Для создания символа питания применяйте следующие шаги:

  • Add a pin of type "Power input", with "Visible" unchecked, and the pin named according to the desired net. Make the pin number 1, the length 0, and set the graphic style to "Line". The pin name establishes the connection to the net; in this case the pin will automatically connect to the net GND. The pin number, length, and line style do not matter electrically.

  • Place the pin on the symbol anchor.

  • Use the shape tools to draw the symbol graphics.

  • Set the symbol value. The symbol value does not matter electrically, but it is displayed in the schematic. To eliminate confusion, it should match the pin name (which determines the connected net name).

  • Check the "Define as power symbol" box in Symbol Properties window. This makes the symbol appear in the "Add Power Port" dialog, makes the Value field read-only in the schematic, prevents the symbol from being assigned a footprint, and excludes the symbol from the board, BOM, and netlists.

  • Set the symbol reference and uncheck the "Show" box. The reference text is not important except for the first character, which should be #. For the power port shown above, the reference could be #GND. Symbols with references that begin with # are not added to the PCB, are not included in Bill of Materials exports or netlists, and they cannot be assigned a footprint in the footprint assignment tool. If a power port’s reference does not begin with #, the character will be inserted automatically when the annotation or footprint assignment tools are run.

An easier method to create a new power port symbol is to use another symbol as a starting point, as described earlier.

When modifying an existing power port symbol, make sure to rename the pin name so that the new symbol connects to the appropriate power net.

Просмотрщик библиотек компонентов


The Symbol Library Browser allows you to quickly examine the content of symbol libraries. The Symbol Library Viewer can be accessed by clicking Library viewer icon icon on the main toolbar, ViewSymbol Library Browser…​, or clicking Select With Browser in the "Choose Symbol" window.


Главное окно


Чтобы просмотреть содержимое нужной библиотеки, нужно выбрать её в первой колонке слева. Доступные компоненты будут показаны во второй колонке, где можно выбрать нужный компонент для просмотра.


Верхняя панель инструментов просмотрщика компонентов библиотеки

Верхняя панель инструментов просмотрщика библиотеки компонентов показана ниже.


Доступны следующие команды:

Symbol selection icon

Selection of the symbol which can be also selected in the displayed list.

Previous symbol icon

Display previous symbol.

Next symbol icon

Display next symbol.

refresh 24 zoom in 24 zoom out 24 zoom fit in page 24

Zoom tools.

morgan1 24 morgan2 24

Selection of the representation (normal or alternate) if an alternate representation exists.


Selection of the unit for symbols that contain multiple units.


If they exist, display the associated documents.

Add symbol to schematic icon

Close the browser and place the selected symbol in the schematic.

Создание списка соединений


A netlist is a file which describes electrical connections between symbol pins. These connections are referred to as nets. Netlist files contain:

  • A list of symbols and their pins.

  • A list of connections (nets) between symbol pins.

Many different netlist formats exist. Sometimes the symbols list and the list of nets are two separate files. This netlist is fundamental in the use of schematic capture software, because the netlist is the link with other electronic CAD software, such as:

  • Приложения трассировки печатных плат.

  • Симуляторы схем и переходных процессов.

  • Programmable logic (FPGA, CPLD, etc.) compilers.

KiCad supports several netlist formats:

  • KiCad format, which can be imported by the KiCad PCB Editor. However, the "Update PCB from Schematic" tool should be used instead of importing a KiCad netlist into the PCB editor.

  • OrCAD PCB2 format, for designing PCBs with OrCAD.

  • CADSTAR format, for designing PCBs with CADSTAR.

  • Spice format, for use with various external circuit simulators.

In KiCad version 5.0 and later, it is not necessary to create a netlist for transfering a design from the schematic editor to the PCB editor. Instead, use the "Update PCB from Schematic" tool.

Форматы списков соединений

Netlists are exported with the Export Netlist dialog (FileExportNetlist…​).

Several netlist formats are available, and are selectable with the tabs at the top of the window. Some netlist formats have options.

Clicking the Export Netlist button prompts for a netlist filename and saves the netlist.

Netlist generation can take up to several minutes for large schematics.

Custom generators can be added by clicking the Add Generator…​ button. Custom generators are external tools that are called by KiCad, for example Python scripts or XSLT stylesheets. For more information on custom netlist generators, see the section on adding custom netlist generators.

KiCad Netlist Format

KiCad netlist export

The KiCad netlist exporter does not have any options.

In KiCad version 5.0 and later, it is not necessary to create a netlist for transfering a design from the schematic editor to the PCB editor. Instead, use the "Update PCB from Schematic" tool.

OrCAD PCB2 Netlist Format

OrCAD netlist export

The OrCAD netlist exporter does not have any options.

CADSTAR Netlist Format

CADSTAR netlist export

The CADSTAR netlist exporter does not have any options.

Spice Netlist Format

Spice netlist export

The Spice netlist format offers several options.

When the Reformat passive symbol values box is checked, passive symbol values will be adjusted to be compatible with Spice. Specifically:

  • μ and M as unit prefixes are replaced with u and Meg, respectively

  • Units are removed (e.g. 4.7kΩ is changed to 4.7k)

  • Values in RKM format are rewritten to be Spice-compatible (e.g. 4u7 is changed to 4.7u)

The Spice netlist exporter also provides an easy way to simulate the generated netlist with an external simulator. This can be useful for running a simulation without using KiCad’s internal ngspice simulator, or for running an ngspice simulation with options that are not supported by KiCad’s simulator tool.

Enter the path to the external simulator in the text box, with %I representing the generated netlist. Click the Create Netlist and Run Simulator Command button to generate the netlist and automatically run the simulator.

The default simulator command (spice "%I") must be adjusted to point to a simulator installed on your system.

For more information on the contents of Spice netlists, see the Spice netlist section.

Примеры списков соединений

Below is the schematic from the sallen_key project included in KiCad’s simulation demos.

sallen_key demo schematic

The KiCad format netlist for this schematic is as follows:

(export (version "E")
    (source "/usr/share/kicad/demos/simulation/sallen_key/sallen_key.kicad_sch")
    (date "Sun 01 May 2022 03:14:05 PM EDT")
    (tool "Eeschema (6.0.4)")
    (sheet (number "1") (name "/") (tstamps "/")
        (source "sallen_key.kicad_sch")
        (comment (number "1") (value ""))
        (comment (number "2") (value ""))
        (comment (number "3") (value ""))
        (comment (number "4") (value ""))
        (comment (number "5") (value ""))
        (comment (number "6") (value ""))
        (comment (number "7") (value ""))
        (comment (number "8") (value ""))
        (comment (number "9") (value "")))))
    (comp (ref "C1")
      (value "100n")
      (libsource (lib "sallen_key_schlib") (part "C") (description ""))
      (property (name "Sheetname") (value ""))
      (property (name "Sheetfile") (value "sallen_key.kicad_sch"))
      (sheetpath (names "/") (tstamps "/"))
      (tstamps "00000000-0000-0000-0000-00005789077d"))
    (comp (ref "C2")
      (value "100n")
        (field (name "Fieldname") "Value")
        (field (name "SpiceMapping") "1 2")
        (field (name "Spice_Primitive") "C"))
      (libsource (lib "sallen_key_schlib") (part "C") (description ""))
      (property (name "Fieldname") (value "Value"))
      (property (name "Spice_Primitive") (value "C"))
      (property (name "SpiceMapping") (value "1 2"))
      (property (name "Sheetname") (value ""))
      (property (name "Sheetfile") (value "sallen_key.kicad_sch"))
      (sheetpath (names "/") (tstamps "/"))
      (tstamps "00000000-0000-0000-0000-00005789085b"))
    (comp (ref "R1")
      (value "1k")
        (field (name "Fieldname") "Value")
        (field (name "SpiceMapping") "1 2")
        (field (name "Spice_Primitive") "R"))
      (libsource (lib "sallen_key_schlib") (part "R") (description ""))
      (property (name "Fieldname") (value "Value"))
      (property (name "SpiceMapping") (value "1 2"))
      (property (name "Spice_Primitive") (value "R"))
      (property (name "Sheetname") (value ""))
      (property (name "Sheetfile") (value "sallen_key.kicad_sch"))
      (sheetpath (names "/") (tstamps "/"))
      (tstamps "00000000-0000-0000-0000-0000578906ff"))
    (comp (ref "R2")
      (value "1k")
        (field (name "Fieldname") "Value")
        (field (name "SpiceMapping") "1 2")
        (field (name "Spice_Primitive") "R"))
      (libsource (lib "sallen_key_schlib") (part "R") (description ""))
      (property (name "Fieldname") (value "Value"))
      (property (name "SpiceMapping") (value "1 2"))
      (property (name "Spice_Primitive") (value "R"))
      (property (name "Sheetname") (value ""))
      (property (name "Sheetfile") (value "sallen_key.kicad_sch"))
      (sheetpath (names "/") (tstamps "/"))
      (tstamps "00000000-0000-0000-0000-000057890691"))
    (comp (ref "U1")
      (value "AD8051")
        (field (name "Spice_Lib_File") "ad8051.lib")
        (field (name "Spice_Model") "AD8051")
        (field (name "Spice_Netlist_Enabled") "Y")
        (field (name "Spice_Primitive") "X"))
      (libsource (lib "sallen_key_schlib") (part "Generic_Opamp") (description ""))
      (property (name "Spice_Primitive") (value "X"))
      (property (name "Spice_Model") (value "AD8051"))
      (property (name "Spice_Lib_File") (value "ad8051.lib"))
      (property (name "Spice_Netlist_Enabled") (value "Y"))
      (property (name "Sheetname") (value ""))
      (property (name "Sheetfile") (value "sallen_key.kicad_sch"))
      (sheetpath (names "/") (tstamps "/"))
      (tstamps "00000000-0000-0000-0000-00005788ff9f"))
    (comp (ref "V1")
      (value "AC 1")
      (libsource (lib "sallen_key_schlib") (part "VSOURCE") (description ""))
      (property (name "Sheetname") (value ""))
      (property (name "Sheetfile") (value "sallen_key.kicad_sch"))
      (sheetpath (names "/") (tstamps "/"))
      (tstamps "00000000-0000-0000-0000-000057336052"))
    (comp (ref "V2")
      (value "DC 10")
        (field (name "Fieldname") "Value")
        (field (name "Spice_Node_Sequence") "1 2")
        (field (name "Spice_Primitive") "V"))
      (libsource (lib "sallen_key_schlib") (part "VSOURCE") (description ""))
      (property (name "Fieldname") (value "Value"))
      (property (name "Spice_Primitive") (value "V"))
      (property (name "Spice_Node_Sequence") (value "1 2"))
      (property (name "Sheetname") (value ""))
      (property (name "Sheetfile") (value "sallen_key.kicad_sch"))
      (sheetpath (names "/") (tstamps "/"))
      (tstamps "00000000-0000-0000-0000-0000578900ba"))
    (comp (ref "V3")
      (value "DC 10")
        (field (name "Fieldname") "Value")
        (field (name "Spice_Node_Sequence") "1 2")
        (field (name "Spice_Primitive") "V"))
      (libsource (lib "sallen_key_schlib") (part "VSOURCE") (description ""))
      (property (name "Fieldname") (value "Value"))
      (property (name "Spice_Primitive") (value "V"))
      (property (name "Spice_Node_Sequence") (value "1 2"))
      (property (name "Sheetname") (value ""))
      (property (name "Sheetfile") (value "sallen_key.kicad_sch"))
      (sheetpath (names "/") (tstamps "/"))
      (tstamps "00000000-0000-0000-0000-000057890232")))
    (libpart (lib "sallen_key_schlib") (part "C")
        (fp "C?")
        (fp "C_????_*")
        (fp "C_????")
        (fp "SMD*_c")
        (fp "Capacitor*"))
        (field (name "Reference") "C")
        (field (name "Value") "C"))
        (pin (num "1") (name "") (type "passive"))
        (pin (num "2") (name "") (type "passive"))))
    (libpart (lib "sallen_key_schlib") (part "Generic_Opamp")
        (field (name "Reference") "U")
        (field (name "Value") "Generic_Opamp"))
        (pin (num "1") (name "+") (type "input"))
        (pin (num "2") (name "-") (type "input"))
        (pin (num "3") (name "V+") (type "power_in"))
        (pin (num "4") (name "V-") (type "power_in"))
        (pin (num "5") (name "") (type "output"))))
    (libpart (lib "sallen_key_schlib") (part "R")
        (fp "R_*")
        (fp "Resistor_*"))
        (field (name "Reference") "R")
        (field (name "Value") "R"))
        (pin (num "1") (name "") (type "passive"))
        (pin (num "2") (name "") (type "passive"))))
    (libpart (lib "sallen_key_schlib") (part "VSOURCE")
        (field (name "Reference") "V")
        (field (name "Value") "VSOURCE")
        (field (name "Fieldname") "Value")
        (field (name "Spice_Primitive") "V")
        (field (name "Spice_Node_Sequence") "1 2"))
        (pin (num "1") (name "") (type "input"))
        (pin (num "2") (name "") (type "input")))))
    (library (logical "sallen_key_schlib")
      (uri "/usr/share/kicad/demos/simulation/sallen_key/sallen_key_schlib.kicad_sym")))
    (net (code "1") (name "/lowpass")
      (node (ref "C1") (pin "1") (pintype "passive"))
      (node (ref "U1") (pin "2") (pinfunction "-") (pintype "input"))
      (node (ref "U1") (pin "5") (pintype "output")))
    (net (code "2") (name "GND")
      (node (ref "C2") (pin "2") (pintype "passive"))
      (node (ref "V1") (pin "2") (pintype "input"))
      (node (ref "V2") (pin "2") (pintype "input"))
      (node (ref "V3") (pin "1") (pintype "input")))
    (net (code "3") (name "Net-(C1-Pad2)")
      (node (ref "C1") (pin "2") (pintype "passive"))
      (node (ref "R1") (pin "1") (pintype "passive"))
      (node (ref "R2") (pin "2") (pintype "passive")))
    (net (code "4") (name "Net-(C2-Pad1)")
      (node (ref "C2") (pin "1") (pintype "passive"))
      (node (ref "R2") (pin "1") (pintype "passive"))
      (node (ref "U1") (pin "1") (pinfunction "+") (pintype "input")))
    (net (code "5") (name "Net-(R1-Pad2)")
      (node (ref "R1") (pin "2") (pintype "passive"))
      (node (ref "V1") (pin "1") (pintype "input")))
    (net (code "6") (name "VDD")
      (node (ref "U1") (pin "3") (pinfunction "V+") (pintype "power_in"))
      (node (ref "V2") (pin "1") (pintype "input")))
    (net (code "7") (name "VSS")
      (node (ref "U1") (pin "4") (pinfunction "V-") (pintype "power_in"))
      (node (ref "V3") (pin "2") (pintype "input")))))

In Spice format, the netlist is as follows:

.title KiCad schematic
.include "ad8051.lib"
XU1 Net-_C2-Pad1_ /lowpass VDD VSS /lowpass AD8051
C2 Net-_C2-Pad1_ GND 100n
C1 /lowpass Net-_C1-Pad2_ 100n
R2 Net-_C2-Pad1_ Net-_C1-Pad2_ 1k
R1 Net-_C1-Pad2_ Net-_R1-Pad2_ 1k
V1 Net-_R1-Pad2_ GND AC 1
.ac dec 10 1 1Meg

Замечания о списках соединений

Предостережение об именовании элементов списка соединений

Many software tools that use netlists do not accept spaces in component names, pins, nets, or other fields. Avoid using spaces in pins, labels, names, and value fields of components to ensure maximum compatibility.

In the same way, special characters other than letters and numbers can cause problems. Note that this limitation is not related to KiCad, but to the netlist formats that can then become untranslatable by other software that reads those netlist files.

Spice netlists

Spice simulators expect simulation commands (.PROBE, .AC, .TRAN, etc.) to be included in the netlist.

Any text line included in the schematic diagram starting with a period (.) will be included in the netlist. If a text object contains multiple lines, only the lines beginning with a period will be included.

.include directives for including model library files are automatically added to the netlist based on the Spice model settings for the symbols in the schematic.

Прочие форматы

KiCad supports custom netlist generators for exporting netlists in other formats. Some examples of netlist generators are given in the custom netlist generators section.

A netlist generator is a script or program that converts the intermediate netlist file created by KiCad into the desired netlist format. The intermediate netlist file contains all of the netlist information required to create an arbitrary netlist for the schematic. Python and XSLT are commonly used tools to create custom netlist generators.

Adding new netlist generators

New netlist generators are added by clicking the Add Generator…​ button.

Custom Netlist Generator

New generators require a name and a command. The name is shown in the tab label, and the command is run whenever the Export Netlist button is clicked.

When the netlist is generated, KiCad creates an intermediate XML file which contains all of the netlist information from the schematic. The generator command is then run in order to transform the intermediate netlist into the desired netlist format.

The netlist command must be set up properly so that the netlist generator script takes the intermediate netlist file as input and outputs the desired netlist file. The %I argument represents the input intermediate netlist filename and the %O argument represents the output netlist filename. The exact netlist command will depend on the generator script used.

Формат командной строки

Consider the following example which uses xsltproc to generate a netlist in PADS ASC format. xsltproc converts the intermediate netlist using the netlist_form_pads-pcb.asc.xsl stylesheet to define the output format:

xsltproc -o %O.net /usr/share/kicad/plugins/netlist_form_pads-pcb.asc.xsl %I

The purpose of each part of the command is as follows:


A tool to convert an XML file (the intermediate netlist) according to an XSLT stylesheet.

-o %O.net

Output filename. %O is replaced with the name of the intermediate netlist file, which is <schematic name>.xml. Therefore in this example the complete output filename is <schematic name>.xml.net. An arbitrary output filename can be specified if desired with -o <filename>.


XSLT stylesheet which determines how the output is formatted. This particular stylesheet is included with KiCad, but custom stylesheets can also be created.


Input (intermediate netlist) filename. %I is replaced with the name of the intermediate netlist file, which is <schematic name>.xml.

For netlist generators that do not use xsltproc, the generator command will differ.

Формат временного файла списка соединений

See the custom netlist generators section for more information about netlist generators, a description of the intermediate netlist format, and some examples of netlist generators.

Создание списков цепей и перечней элементов в различных форматах

Промежуточный файл списка цепей

BOM files and netlist files can be converted from an Intermediate netlist file created by KiCad.

Этот файл построен с применением синтаксиса XML и называется промежуточным. Он содержит в себе большое количество данных о печатной плате и, благодаря этому, может быть использован для последующего преобразования в перечень элементов или файл другого формата.

В зависимости от выходного формата (перечень элементов или список цепей), будут использоваться различные области промежуточного файла, при генерации.

Пример схемы

Пример схемы

Пример промежуточного файла списка цепей

Промежуточный файл списка цепей (в формате XML), соответствующий приведённой выше схеме, показан далее.

<?xml version="1.0" encoding="utf-8"?>
<export version="D">
    <date>29/08/2010 20:35:21</date>
    <tool>eeschema (2010-08-28 BZR 2458)-unstable</tool>
    <comp ref="P1">
      <libsource lib="conn" part="CONN_4"/>
      <sheetpath names="/" tstamps="/"/>
    <comp ref="U2">
      <libsource lib="74xx" part="74LS74"/>
      <sheetpath names="/" tstamps="/"/>
    <comp ref="U1">
      <libsource lib="74xx" part="74LS04"/>
      <sheetpath names="/" tstamps="/"/>
    <comp ref="C1">
      <libsource lib="device" part="CP"/>
      <sheetpath names="/" tstamps="/"/>
    <comp ref="R1">
      <libsource lib="device" part="R"/>
      <sheetpath names="/" tstamps="/"/>
    <libpart lib="device" part="C">
      <description>Condensateur non polarise</description>
        <field name="Reference">C</field>
        <field name="Value">C</field>
        <pin num="1" name="~" type="passive"/>
        <pin num="2" name="~" type="passive"/>
    <libpart lib="device" part="R">
        <field name="Reference">R</field>
        <field name="Value">R</field>
        <pin num="1" name="~" type="passive"/>
        <pin num="2" name="~" type="passive"/>
    <libpart lib="conn" part="CONN_4">
      <description>Symbole general de connecteur</description>
        <field name="Reference">P</field>
        <field name="Value">CONN_4</field>
        <pin num="1" name="P1" type="passive"/>
        <pin num="2" name="P2" type="passive"/>
        <pin num="3" name="P3" type="passive"/>
        <pin num="4" name="P4" type="passive"/>
    <libpart lib="74xx" part="74LS04">
      <description>Hex Inverseur</description>
        <field name="Reference">U</field>
        <field name="Value">74LS04</field>
        <pin num="1" name="~" type="input"/>
        <pin num="2" name="~" type="output"/>
        <pin num="3" name="~" type="input"/>
        <pin num="4" name="~" type="output"/>
        <pin num="5" name="~" type="input"/>
        <pin num="6" name="~" type="output"/>
        <pin num="7" name="GND" type="power_in"/>
        <pin num="8" name="~" type="output"/>
        <pin num="9" name="~" type="input"/>
        <pin num="10" name="~" type="output"/>
        <pin num="11" name="~" type="input"/>
        <pin num="12" name="~" type="output"/>
        <pin num="13" name="~" type="input"/>
        <pin num="14" name="VCC" type="power_in"/>
    <libpart lib="74xx" part="74LS74">
      <description>Dual D FlipFlop, Set &amp; Reset</description>
        <field name="Reference">U</field>
        <field name="Value">74LS74</field>
        <pin num="1" name="Cd" type="input"/>
        <pin num="2" name="D" type="input"/>
        <pin num="3" name="Cp" type="input"/>
        <pin num="4" name="Sd" type="input"/>
        <pin num="5" name="Q" type="output"/>
        <pin num="6" name="~Q" type="output"/>
        <pin num="7" name="GND" type="power_in"/>
        <pin num="8" name="~Q" type="output"/>
        <pin num="9" name="Q" type="output"/>
        <pin num="10" name="Sd" type="input"/>
        <pin num="11" name="Cp" type="input"/>
        <pin num="12" name="D" type="input"/>
        <pin num="13" name="Cd" type="input"/>
        <pin num="14" name="VCC" type="power_in"/>
    <library logical="device">
    <library logical="conn">
    <library logical="74xx">
    <net code="1" name="GND">
      <node ref="U1" pin="7"/>
      <node ref="C1" pin="2"/>
      <node ref="U2" pin="7"/>
      <node ref="P1" pin="4"/>
    <net code="2" name="VCC">
      <node ref="R1" pin="1"/>
      <node ref="U1" pin="14"/>
      <node ref="U2" pin="4"/>
      <node ref="U2" pin="1"/>
      <node ref="U2" pin="14"/>
      <node ref="P1" pin="1"/>
    <net code="3" name="">
      <node ref="U2" pin="6"/>
    <net code="4" name="">
      <node ref="U1" pin="2"/>
      <node ref="U2" pin="3"/>
    <net code="5" name="/SIG_OUT">
      <node ref="P1" pin="2"/>
      <node ref="U2" pin="5"/>
      <node ref="U2" pin="2"/>
    <net code="6" name="/CLOCK_IN">
      <node ref="R1" pin="2"/>
      <node ref="C1" pin="1"/>
      <node ref="U1" pin="1"/>
      <node ref="P1" pin="3"/>

Преобразование списка цепей в другой формат

Применяя сценарии преобразования, можно из промежуточного файла списка цепей получить упрощенный список цепей или перечень элементов. Так как выполняется преобразование из текстового файла в текстовый, то сценарий для преобразования можно составить на языках Python, XSLT или любом другом, умеющем работать с XML данными.

XSLT itself is an XML language very suitable for XML transformations. There is a free program called xsltproc that you can download and install. The xsltproc program can be used to read the Intermediate XML netlist input file, apply a style-sheet to transform the input, and save the results in an output file. Use of xsltproc requires a style-sheet file using XSLT conventions. The full conversion process is handled by KiCad, after it is configured once to run xsltproc in a specific way.

Основы XSLT

Документ, объясняющий преобразования XSL (XSLT - XSL Transformations), доступен здесь:

Создание списка цепей в формате Pads-Pcb

Формат pads-pcb состоит из двух частей.

  • Списка посадочных мест.

  • Списка соединений: контактные площадки сгруппированы по именам цепей.

Сразу под этим, показан сценарий для преобразования промежуточного списка цепей в файл в формате pads-pcb:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--XSL style sheet to Eeschema Generic Netlist Format to PADS netlist format
    Copyright (C) 2010, SoftPLC Corporation.
    GPL v2.

    How to use:

<!DOCTYPE xsl:stylesheet [
  <!ENTITY nl  "&#xd;&#xa;"> <!--new line CR, LF -->

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>

<xsl:template match="/export">
    <xsl:apply-templates select="components/comp"/>
    <xsl:apply-templates select="nets/net"/>

<!-- for each component -->
<xsl:template match="comp">
    <xsl:text> </xsl:text>
    <xsl:value-of select="@ref"/>
    <xsl:text> </xsl:text>
        <xsl:when test = "footprint != '' ">
            <xsl:apply-templates select="footprint"/>

<!-- for each net -->
<xsl:template match="net">
    <!-- nets are output only if there is more than one pin in net -->
    <xsl:if test="count(node)>1">
        <xsl:text>*SIGNAL* </xsl:text>
            <xsl:when test = "@name != '' ">
                <xsl:value-of select="@name"/>
                <xsl:value-of select="@code"/>
        <xsl:apply-templates select="node"/>

<!-- for each node -->
<xsl:template match="node">
    <xsl:text> </xsl:text>
    <xsl:value-of select="@ref"/>
    <xsl:value-of select="@pin"/>


А здесь, показано содержимое выходного файла в формате pads-pcb после работы xsltproc:

P1 unknown
U2 unknown
U1 unknown
C1 unknown
R1 unknown


Командная строка для запуска этого преобразования:

kicad\\bin\\xsltproc.exe -o test.net kicad\\bin\\plugins\\netlist_form_pads-pcb.xsl test.tmp

Создание списка цепей в формате Cadstar

Формат Cadstar состоит из двух частей.

  • Списка посадочных мест.

  • Списка соединений: контактные площадки сгруппированы по именам цепей.

Далее показан файл сценария для выполнения необходимых преобразований:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--XSL style sheet to Eeschema Generic Netlist Format to CADSTAR netlist format
    Copyright (C) 2010, Jean-Pierre Charras.
    Copyright (C) 2010, SoftPLC Corporation.
    GPL v2.

<!DOCTYPE xsl:stylesheet [
  <!ENTITY nl  "&#xd;&#xa;"> <!--new line CR, LF -->

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>

<!-- Netlist header -->
<xsl:template match="/export">
    <xsl:apply-templates select="design/date"/>  <!-- Generate line .TIM <time> -->
    <xsl:apply-templates select="design/tool"/>  <!-- Generate line .APP <eeschema version> -->
    <xsl:apply-templates select="components/comp"/>  <!-- Generate list of components -->
    <xsl:apply-templates select="nets/net"/>          <!-- Generate list of nets and connections -->

 <!-- Generate line .TIM 20/08/2010 10:45:33 -->
<xsl:template match="tool">
    <xsl:text>.APP "</xsl:text>

 <!-- Generate line .APP "eeschema (2010-08-17 BZR 2450)-unstable" -->
<xsl:template match="date">
    <xsl:text>.TIM </xsl:text>

<!-- for each component -->
<xsl:template match="comp">
    <xsl:text>.ADD_COM </xsl:text>
    <xsl:value-of select="@ref"/>
    <xsl:text> </xsl:text>
        <xsl:when test = "value != '' ">
            <xsl:text>"</xsl:text> <xsl:apply-templates select="value"/> <xsl:text>"</xsl:text>

<!-- for each net -->
<xsl:template match="net">
    <!-- nets are output only if there is more than one pin in net -->
    <xsl:if test="count(node)>1">
    <xsl:variable name="netname">
            <xsl:when test = "@name != '' ">
                <xsl:value-of select="@name"/>
                <xsl:value-of select="@code"/>
        <xsl:apply-templates select="node" mode="first"/>
        <xsl:value-of select="$netname"/>
        <xsl:apply-templates select="node" mode="others"/>

<!-- for each node -->
<xsl:template match="node" mode="first">
    <xsl:if test="position()=1">
       <xsl:text>.ADD_TER </xsl:text>
    <xsl:value-of select="@ref"/>
    <xsl:value-of select="@pin"/>
    <xsl:text> </xsl:text>

<xsl:template match="node" mode="others">
        <xsl:when test='position()=1'>
        <xsl:when test='position()=2'>
           <xsl:text>.TER     </xsl:text>
           <xsl:text>         </xsl:text>
    <xsl:if test="position()>1">
        <xsl:value-of select="@ref"/>
        <xsl:value-of select="@pin"/>


Это выходной файл в формате Cadstar.

.TIM 21/08/2010 08:12:08
.APP "eeschema (2010-08-09 BZR 2439)-unstable"
.ADD_COM U2 "74LS74"
.ADD_COM U1 "74LS04"

.TER     C1.2
.TER     U1.14
.ADD_TER U1.2 "N-4"
.TER     U2.3
.TER     U2.5
.TER     C1.1


Создание списка цепей в формате OrcadPCB2

Этот формат имеет только одну часть, которая является списком посадочных мест. Каждое посадочное место содержит перечень его контактных площадок с указанием подсоединённых цепей.

Здесь приведён сценарий для выполнения необходимых преобразований:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--XSL style sheet to Eeschema Generic Netlist Format to CADSTAR netlist format
    Copyright (C) 2010, SoftPLC Corporation.
    GPL v2.

    How to use:

<!DOCTYPE xsl:stylesheet [
  <!ENTITY nl  "&#xd;&#xa;"> <!--new line CR, LF -->

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>

    Netlist header
    Creates the entire netlist
    (can be seen as equivalent to main function in C
<xsl:template match="/export">
    <xsl:text>( { Eeschema Netlist Version 1.1  </xsl:text>
    <!-- Generate line .TIM <time> -->
<xsl:apply-templates select="design/date"/>
<!-- Generate line eeschema version ... -->
<xsl:apply-templates select="design/tool"/>

<!-- Generate the list of components -->
<xsl:apply-templates select="components/comp"/>  <!-- Generate list of components -->

<!-- end of file -->

    Generate id in header like "eeschema (2010-08-17 BZR 2450)-unstable"
<xsl:template match="tool">

    Generate date in header like "20/08/2010 10:45:33"
<xsl:template match="date">

    This template read each component
    (path = /export/components/comp)
    creates lines:
     ( 3EBF7DBD $noname U1 74LS125
      ... pin list ...
    and calls "create_pin_list" template to build the pin list
<xsl:template match="comp">
    <xsl:text> ( </xsl:text>
        <xsl:when test = "tstamp != '' ">
            <xsl:apply-templates select="tstamp"/>
    <xsl:text> </xsl:text>
        <xsl:when test = "footprint != '' ">
            <xsl:apply-templates select="footprint"/>
    <xsl:text> </xsl:text>
    <xsl:value-of select="@ref"/>
    <xsl:text> </xsl:text>
        <xsl:when test = "value != '' ">
            <xsl:apply-templates select="value"/>
    <xsl:call-template name="Search_pin_list" >
        <xsl:with-param name="cmplib_id" select="libsource/@part"/>
        <xsl:with-param name="cmp_ref" select="@ref"/>
    <xsl:text> )&nl;</xsl:text>

    This template search for a given lib component description in list
    lib component descriptions are in /export/libparts,
    and each description start at ./libpart
    We search here for the list of pins of the given component
    This template has 2 parameters:
        "cmplib_id" (reference in libparts)
        "cmp_ref"   (schematic reference of the given component)
<xsl:template name="Search_pin_list" >
    <xsl:param name="cmplib_id" select="0" />
    <xsl:param name="cmp_ref" select="0" />
        <xsl:for-each select="/export/libparts/libpart">
            <xsl:if test = "@part = $cmplib_id ">
                <xsl:apply-templates name="build_pin_list" select="pins/pin">
                    <xsl:with-param name="cmp_ref" select="$cmp_ref"/>

    This template writes the pin list of a component
    from the pin list of the library description
    The pin list from library description is something like
            <pin num="1" type="passive"/>
            <pin num="2" type="passive"/>
    Output pin list is ( <pin num> <net name> )
    something like
            ( 1 VCC )
            ( 2 GND )
<xsl:template name="build_pin_list" match="pin">
    <xsl:param name="cmp_ref" select="0" />

    <!-- write pin numner and separator -->
    <xsl:text>  ( </xsl:text>
    <xsl:value-of select="@num"/>
    <xsl:text> </xsl:text>

    <!-- search net name in nets section and write it: -->
    <xsl:variable name="pinNum" select="@num" />
    <xsl:for-each select="/export/nets/net">
        <!-- net name is output only if there is more than one pin in net
             else use "?" as net name, so count items in this net
        <xsl:variable name="pinCnt" select="count(node)" />
        <xsl:apply-templates name="Search_pin_netname" select="node">
            <xsl:with-param name="cmp_ref" select="$cmp_ref"/>
            <xsl:with-param name="pin_cnt_in_net" select="$pinCnt"/>
            <xsl:with-param name="pin_num"> <xsl:value-of select="$pinNum"/>

    <!-- close line -->
    <xsl:text> )&nl;</xsl:text>

    This template writes the pin netname of a given pin of a given component
    from the nets list
    The nets list description is something like
        <net code="1" name="GND">
          <node ref="J1" pin="20"/>
              <node ref="C2" pin="2"/>
        <net code="2" name="">
          <node ref="U2" pin="11"/>
    This template has 2 parameters:
        "cmp_ref"   (schematic reference of the given component)
        "pin_num"   (pin number)

<xsl:template name="Search_pin_netname" match="node">
    <xsl:param name="cmp_ref" select="0" />
    <xsl:param name="pin_num" select="0" />
    <xsl:param name="pin_cnt_in_net" select="0" />

    <xsl:if test = "@ref = $cmp_ref ">
        <xsl:if test = "@pin = $pin_num">
        <!-- net name is output only if there is more than one pin in net
             else use "?" as net name
            <xsl:if test = "$pin_cnt_in_net>1">
                    <!-- if a net has a name, use it,
                        else build a name from its net code
                    <xsl:when test = "../@name != '' ">
                        <xsl:value-of select="../@name"/>
                        <xsl:text>$N-0</xsl:text><xsl:value-of select="../@code"/>
            <xsl:if test = "$pin_cnt_in_net &lt;2">



Здесь показан выходной файл в формате OrcadPCB2.

( { Eeschema Netlist Version 1.1  29/08/2010 21:07:51
eeschema (2010-08-28 BZR 2458)-unstable}
 ( 4C6E2141 $noname P1 CONN_4
  (  1 VCC )
  (  2 /SIG_OUT )
  (  3 /CLOCK_IN )
  (  4 GND )
 ( 4C6E20BA $noname U2 74LS74
  (  1 VCC )
  (  2 /SIG_OUT )
  (  3 N-04 )
  (  4 VCC )
  (  5 /SIG_OUT )
  (  6 ? )
  (  7 GND )
  (  14 VCC )
 ( 4C6E20A6 $noname U1 74LS04
  (  1 /CLOCK_IN )
  (  2 N-04 )
  (  7 GND )
  (  14 VCC )
 ( 4C6E2094 $noname C1 CP
  (  1 /CLOCK_IN )
  (  2 GND )
 ( 4C6E208A $noname R1 R
  (  1 VCC )
  (  2 /CLOCK_IN )

Netlist plugins interface

Intermediate Netlist converters can be automatically launched within the Schematic Editor.

Настройка диалогового окна

Каждый может добавить вкладку для нового плагина генерации списка соединений с помощью кнопки "Добавить плагин".


Здесь показано как выглядит вкладка с параметрами нового плагина PadsPcb:

Параметры плагина

The netlist plug-in configuration dialog requires the following information:

  • Наименование: имя формата списка цепей, к примеру.

  • Командная строка для запуска преобразования.

Как только будет нажата кнопка Сформировать, произойдет следующее:

  1. KiCad creates an intermediate netlist file *.xml, for instance test.xml.

  2. KiCad runs the plug-in by reading test.xml and creates test.net.

Создание списка цепей с помощью командной строки

Предположим, используется приложение xsltproc.exe для выполнения сценария по преобразованию промежуточного файла, тогда командная строка для запуска xsltproc.exe будет выглядеть так:

xsltproc.exe -o <имя выходного файла> <имя сценария> <имя входного XML файла для преобразования>

Если KiCad работает в операционной системе Windows, то командная строка будет иметь следующий вид:

f:/kicad/bin/xsltproc.exe -o "%O" f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"

В операционных системах на базе Linux командная строка будет такой:

xsltproc -o "%O" /usr/local/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"

Where netlist_form_pads-pcb.xsl is the style-sheet that you are applying. Do not forget the double quotes around the file names, this allows them to have spaces after the substitution by KiCad.

Командная строка поддерживает команды для указания имен файлов:

Поддерживаемые параметры форматирования.

  • %B ⇒ базовое имя — полное имя выходного файла без пути и расширения.

  • %I ⇒ полное имя временного входного файла (промежуточный файл списка цепей).

  • %O ⇒ полное имя выходного файла.

%I будет заменено актуальным именем промежуточного файла

%O будет заменено актуальным именем выходного файла.

Формат командной строки: пример для xsltproc

Формат командной строки для xsltproc следующий:

<путь к xsltproc> xsltproc <параметры для xsltproc>

В Windows:

f:/kicad/bin/xsltproc.exe -o "%O" f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"

В Linux:

xsltproc -o "%O" /usr/local/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"

В приведённых выше примерах предполагается, что все файлы xsltproc на ПК с ОС Windows установлены в каталог kicad/bin.

Создание перечня элементов

Так как промежуточный файл списка цепей содержит всю информацию об использованных компонентах, то из него можно извлечь перечень элементов. Далее показано диалоговое окно с настроенным плагином (в Linux) для генерации перечня элементов (Bill Of Materials — BOM):


Путь к файлу сценария bom2csv.xsl зависит от используемой операционной системы. На данный момент, лучший сценарий XSLT для создания перечня элементов называется bom2csv.xsl. Если нужно, его всегда можно изменить и, если в результате получится что-то полезное для всех, попросить сделать новый сценарий частью проекта KiCad.

Формат командной строки: пример сценария на языке Python

Командная строка для скрипта на языке Python выглядит, приблизительно, так:

python <имя файла скрипта> <имя входного файла> <имя выходного файла>

В Windows:

python *.exe f:/kicad/python/my_python_script.py "%I" "%O"

В Linux:

python /usr/local/kicad/python/my_python_script.py "%I" "%O"

Предполагается, что Python уже установлен на ПК.

Структура промежуточного файла списка цепей

Этот пример даёт представление о формате файла списка цепей.

<?xml version="1.0" encoding="utf-8"?>
<export version="D">
    <date>29/08/2010 21:07:51</date>
    <tool>eeschema (2010-08-28 BZR 2458)-unstable</tool>
    <comp ref="P1">
      <libsource lib="conn" part="CONN_4"/>
      <sheetpath names="/" tstamps="/"/>
    <comp ref="U2">
      <libsource lib="74xx" part="74LS74"/>
      <sheetpath names="/" tstamps="/"/>
    <comp ref="U1">
      <libsource lib="74xx" part="74LS04"/>
      <sheetpath names="/" tstamps="/"/>
    <comp ref="C1">
      <libsource lib="device" part="CP"/>
      <sheetpath names="/" tstamps="/"/>
    <comp ref="R1">
      <libsource lib="device" part="R"/>
      <sheetpath names="/" tstamps="/"/>
    <net code="1" name="GND">
      <node ref="U1" pin="7"/>
      <node ref="C1" pin="2"/>
      <node ref="U2" pin="7"/>
      <node ref="P1" pin="4"/>
    <net code="2" name="VCC">
      <node ref="R1" pin="1"/>
      <node ref="U1" pin="14"/>
      <node ref="U2" pin="4"/>
      <node ref="U2" pin="1"/>
      <node ref="U2" pin="14"/>
      <node ref="P1" pin="1"/>
    <net code="3" name="">
      <node ref="U2" pin="6"/>
    <net code="4" name="">
      <node ref="U1" pin="2"/>
      <node ref="U2" pin="3"/>
    <net code="5" name="/SIG_OUT">
      <node ref="P1" pin="2"/>
      <node ref="U2" pin="5"/>
      <node ref="U2" pin="2"/>
    <net code="6" name="/CLOCK_IN">
      <node ref="R1" pin="2"/>
      <node ref="C1" pin="1"/>
      <node ref="U1" pin="1"/>
      <node ref="P1" pin="3"/>

Основные элементы файла списка цепей

Промежуточный файл насчитывает пять разделов.

  • Раздел оглавления (design).

  • Раздел компонентов (components).

  • Раздел частей компонента (libparts).

  • Раздел библиотек (libraries).

  • Раздел цепей (nets).

Содержимое файла ограничивается разделителем <export>

<export version="D">


Оглавление ограничивается разделителем <design>

<date>21/08/2010 08:12:08</date>
<tool>eeschema (2010-08-09 BZR 2439)-unstable</tool>

Этот раздел может содержать подраздел с комментариями.


Раздел компонентов ограничивается разделителем <components>

<comp ref="P1">
<libsource lib="conn" part="CONN_4"/>
<sheetpath names="/" tstamps="/"/>

Этот раздел содержит перечень компонентов используемых в схеме. Каждый компонент имеет следующее описание:

<comp ref="P1">
<libsource lib="conn" part="CONN_4"/>
<sheetpath names="/" tstamps="/"/>
libsource имя библиотеки, из которой был взят компонент.


имя компонента в библиотеке.


путь к листу иерархии: указан лист из всей иерархии схемы

tstamps (time stamps)

метка времени файла схемы.

tstamp (time stamp)

метка времени компонента.

Замечание о метке времени компонента

Для сопоставления компонентов из списка цепей, компонентам из печатной платы, используют метки времени в качестве уникального идентификатора для каждого компонента. Этот способ используется в KiCad как вспомогательный, для нахождения соответствующего компонента из списка цепей на печатной плате. Это позволяет заново обозначать компоненты в проекте схемы и не терять при этом связь с посадочным местом.

Метка времени — это уникальный идентификатор для каждого компонента или листа в проекте схемы. Но, в сложных иерархиях, где один файл схемы может использоваться несколькими листами, компоненты из этих листов имеют одни и те же метки времени.

Каждый лист сложной иерархии имеет свой уникальный идентификатор: его путь (sheetpath). Каждый компонент (из листа сложной иерархии), тоже, имеет уникальный идентификатор: путь листа + его метка времени.

Части компонента

Раздел частей компонента ограничивается разделителем <libparts> и содержит описания из библиотеки схемы. Этот раздел содержит:

  • Допустимые имена посадочных мест (можно использовать маски) — разделитель <fp>.

  • Поля, указанные в библиотеке — разделитель <fields>.

  • Перечень выводов — разделитель <pins>.

<libpart lib="device" part="CP">
  <description>Condensateur polarise</description>
    <field name="Reference">C</field>
    <field name="Valeur">CP</field>
    <pin num="1" name="1" type="passive"/>
    <pin num="2" name="2" type="passive"/>

Строки типа <pin num="1" type="passive"/> также содержат электрический тип вывода. Доступны следующие электрические типы:


Вход — обычный входной вывод


Выход — обычный выходной вывод


Двунаправленный — может быть как входом, так и выходом


Трехстабильный — ввод/вывод шины


Пассивный — обычный вывод пассивных компонентов


Не определено — не известный электрический тип

Power input

Вход питания — вход питания компонента

Power output

Выход питания — выход, на подобии выхода стабилизатора напряжения

Open collector

Открытый коллектор — часто используется в аналоговых компараторах

Open emitter

Открытый эмиттер — иногда используется в логических элементах

Not connected

Не подсоединен — должен остаться без подключения в схеме


Раздел библиотек ограничивается разделителем <libraries>. Этот раздел состоит из списка библиотек компонентов, используемых в проекте схемы.

  <library logical="device">
  <library logical="conn">


Раздел цепей ограничивается разделителем <nets>. Этот раздел состоит из "подключений" в схеме.

  <net code="1" name="GND">
    <node ref="U1" pin="7"/>
    <node ref="C1" pin="2"/>
    <node ref="U2" pin="7"/>
    <node ref="P1" pin="4"/>
  <net code="2" name="VCC">
    <node ref="R1" pin="1"/>
    <node ref="U1" pin="14"/>
    <node ref="U2" pin="4"/>
    <node ref="U2" pin="1"/>
    <node ref="U2" pin="14"/>
    <node ref="P1" pin="1"/>

В этом разделе перечисляются все цепи, присутствующие в схеме.

Обычно цепь состоит из следующего:

<net code="1" name="GND">
  <node ref="U1" pin="7"/>
  <node ref="C1" pin="2"/>
  <node ref="U2" pin="7"/>
  <node ref="P1" pin="4"/>

net code

внутренний идентификатор данной цепи


имя цепи


содержит ссылку на вывод компонента, подключенного к данной цепи

Более подробно о xsltproc

Просмотрите страницу: http://xmlsoft.org/XSLT/xsltproc.html


xsltproc — это консольное приложение для выполнения сценариев XSLT по преобразованию XML-файлов. На данный момент оно разрабатывается как часть проекта GNOME, но может использоваться отдельно от рабочего окружения GNOME.

xsltproc вызывается из командной строки (терминала) с указанием сценария и имени файла, к которому этот сценарий должен быть применён. Если нужно преобразовать стандартный ввод вместо файла, используют - (дефис).

Если сценарий содержится в самом XML-файле, то его не нужно указывать в командной строке. xsltproc автоматически определит наличие сценария в файле и применит его. По умолчанию, результат преобразования будет выведен на экран (stdout). Можно, вместо этого, указать имя выходного файла с помощью параметра -o.

Формат командной строки

xsltproc [[-V] | [-v] | [-o *file* ] | [--timing] | [--repeat] |
[--debug] | [--novalid] | [--noout] | [--maxdepth *val* ] | [--html] |
[--param *name* *value* ] | [--stringparam *name* *value* ] | [--nonet] |
[--path *paths* ] | [--load-trace] | [--catalogs] | [--xinclude] |
[--profile] | [--dumpextensions] | [--nowrite] | [--nomkdir] |
[--writesubtree] | [--nodtdattr]] [ *stylesheet* ] [ *file1* ] [ *file2* ]
[ *....* ]

Параметры командной строки

-V или --version

Показать версию используемых библиотек libxml и libxslt.

-v или --verbose

Выводить описание каждого шага работы xsltproc в процессе применения сценария к документу.

-o или --output имя_файла

Направляет вывод в файл под именем имя_файла. При множественном выводе параметр -o имя_каталога/ указывает выводить файлы в указанный каталог. Данный каталог должен существовать.


Отобразить время, затраченное на считывание сценария, выполнение преобразования и сохранение результата. Отображается в миллисекундах.


Выполнить преобразование 20 раз. Используется для тестирования времени обработки.


Выводит дополнительный файл с древовидной XML-структурой в целях отладки.


Пропустить загрузку элемента DTD из документа.


Не выводить результат.

--maxdepth значение

Настроить максимальную глубину стека, чтобы обеспечить выход из бесконечного цикла в libxslt. Значение по умолчанию — 500.


Входной файл в формате HTML.

--param параметр значение

Передать параметр параметр со значением значение в сценарий. Можно передавать несколько параметров (до 32). Если в качестве значения будет передаваться строка, нужно использовать параметр --stringparam.

--stringparam параметр значение

Передать параметр параметр со значением значение, где значение — строка. (Примечание: строка должна быть в формате utf-8).


Не использовать Интернет для получения DTD, объектов или документов.

--path пути

Использовать список (разделённый пробелами или точками с запятой) путей файловой системы, указанных в пути для загрузки DTD, объектов или документов.


Показать в стандартном выводе stderr все документы, загруженные в процессе работы.


Использовать каталог SGML, указанный в SGML_CATALOG_FILES, для установки расположения внешних объектов. По умолчанию, xsltproc ищет их в каталоге, указанном в XML_CATALOG_FILES. Если он не задан, используется /etc/xml/catalog.


Преобразовать входной документ используя спецификацию Xinclude. Больше информации об этом можно найти здесь: http://www.w3.org/TR/xinclude/

--profile --norman

Выводить профильную информацию с детальным описанием времени, потраченного на каждую часть сценария. Это будет полезным для оптимизации быстродействия сценария.


Вывести перечень всех зарегистрированных расширений на экран.


Запретить запись в любой файл или источник.


Запретить создание каталогов.

--writesubtree каталог

Разрешить записывать файл только внутри указанного каталога.


Не применять значение по умолчанию для атрибута DTD в файле.

Возвращаемые значения xsltproc

xsltproc возвращает код результата, который может быть очень полезен при работе из командной строки.

0: норма

1: нет аргументов

2: слишком много параметров

3: неизвестный параметр

4: невозможно загрузить сценарий

5: ошибка в сценарии

6: ошибка в одном из документов

7: не поддерживаемый метод вывода xsl

8: строковый параметр содержит как одинарные, так и двойные кавычки

9: внутренняя ошибка обработки

10: работа была прервана внешним сигналом

11: невозможно записать результат в выходной файл

Больше подробностей о xsltproc

Страница о libxml: http://www.xmlsoft.org/

Страница о W3C XSLT: http://www.w3.org/TR/xslt


KiCad provides an embedded electrical circuit simulator using ngspice as the simulation engine.

При работе с симулятором, будут полезны официальные библиотеки pspice. Они содержат основные компоненты, используемые при симуляции, такие как источники напряжения/тока или транзисторы с нумерацией выводов, которая соответствует порядку узлов (node) в спецификации ngspice.

Также, имеется несколько демонстрационных проектов, показывающих возможности симулятора. Их можно найти в каталоге demos/simulation.

Назначение моделей

Перед началом симуляции, необходимо назначить компонентам Spice-модели.

Каждому компоненту можно назначить только одну модель, даже если компонент состоит из нескольких частей. В последнем случае, модель назначается первой части.

Пассивным компонентам, обозначения которых совпадают с типом элемента в Spice-записи (R* для резисторов, C* для конденсаторов, L* для индуктивностей), модели будут назначены косвенно, а поле значения будет восприниматься как свойство модели.

Имейте в виду, что в Spice множитель 'M' обозначает мили, а 'Meg' — мега. Если желаете использовать 'M' в качестве множителя мега, установите соответствующий параметр в диалоговом окне настройки симуляции.

Информация для spice-моделей хранится в виде текста в полях компонента и её можно легко указать с помощью редактора компонентов или непосредственно в редакторе схем. Откройте диалог редактирования свойств компонента и нажмите кнопку Редактировать Spice модель для вызова диалогового окна редактора Spice модели.

Редактор Spice моделей имеет три вкладки, которые соответствуют трём разным типам моделей. Также имеется два параметра, общих для всех типов:

Не симулировать компонент

Если отмечен, компонент исключается из симуляции.

Изменить последовательность выводов

Позволяет переопределить выводы компонента для соответствия описанию узлов модели. Необходимо указать номера выводов в той последовательности, в которой их ожидает модель.


* connections:
* 1: non-inverting input
* 2: inverting input
* 3: positive power supply
* 4: negative power supply
* 5: output
.subckt tl071 1 2 3 4 5

Обозначение обычного операционного усилителя

To match the symbol pins to the Spice model nodes shown above, one needs to use an alternate node sequence option with value: "1 3 5 2 4". It is a list of pin numbers corresponding to the Spice model nodes order.


Вкладка Пассивный позволяет назначить модель (резистор, конденсатор или индуктивность) компоненту. Этот параметр используется редко, так как обычно пассивным элементам модели назначаются косвенно. Если же обозначение компонента не совпадает с необходимым типом модели, то нужно явно указать параметры на данной вкладке.

Явно указанные модели имеют больший приоритет перед косвенно назначенными моделями. Это значит, что как только модель назначена вручную, поля обозначения и значения не принимаются во внимание при симуляции. Это может привести к путанице, когда значение модели не совпадает со значением, указанным на схеме.
Вкладка Пассивный в редакторе моделей


Выбор типа компонента (резистор, конденсатор или индуктор).


Определяет свойства компонента (сопротивление, ёмкость или индуктивность). В значении могут использоваться приставки, которые используются в описании Spice-моделей (они перечислены под текстовым полем ввода). В качестве десятичного разделителя необходимо использовать точку. Заметьте, Spice неверно воспринимает значения, в которых приставка выступает в роли десятичного разделителя (например: 1k5).


Вкладка Модель используется для назначения полупроводниковых или сложных моделей, которые определены в отдельном файле библиотеки. Библиотеки Spice-моделей часто предоставляются производителями компонентов.

В основном текстовом поле отображается содержимое выбранного файла библиотеки. Обычно в библиотеке дополнительно содержится описание моделей и порядок их узлов.

Вкладка Модель редактора параметров симуляции


Путь к файлу Spice-библиотеки. Этот файл будет использоваться симулятором, он подключается с помощью директивы .include.


Выбранная модель компонента. После выбора файла библиотеки, список заполняется доступными моделями для выбора.


Выбранный тип модели (макромодель (subcircuit), BJT, MOSFET или диод). Обычно тип устанавливается автоматически при выборе модели.


Вкладка Источник используется для настройки моделей питания или источников сигналов. Здесь имеется две секции: Анализ DC/AC и Анализ переходных процессов. В каждой задаются параметры источника для соответствующего типа симуляции.

Параметр Тип источника применяется ко всем типам симуляций.

Вкладка Источник редактора параметров симуляции

Для получения более подробной информации об источниках обратитесь к разделу 4 (Источники напряжения и тока) документации ngspice.

Директивы Spice

Существует возможность добавлять Spice-директивы, размещая их в текстовых полях на листе схемы. С помощью этого свойства удобно указывать текущий тип симуляции. Однако, функционал ограничен, можно использовать только Spice-директивы, которые начинаются с точки (например: ".tran 10n 1m"). Нельзя добавлять компоненты в виде их описания в текстовых полях.


Для запуска симуляции откройте окно Spice симулятора через меню редактора схем Инструменты→Симулятор.

Основное окно симулятора

Окно разделено на несколько секций:


Меню "Файл"

Новый график

Создать новую вкладку на панели графиков.

Открыть работу

Открыть перечень сигналов для построения графиков.

Сохранить работу

Сохранить перечень сигналов, построенных на графике.

Сохранить как изображение

Экспорт текущего графика в png-файл.

Сохранить как файл .csv

Экспорт данных текущего графика в csv-файл.

Выйти из симуляции

Закрыть окно симулятора.


Запустить симуляцию

Выполнить симуляцию используя текущие настройки.

Добавить сигналы…​

Открыть диалог для выбора сигналов, графики которых нужно построить.

Пробник из схемы

Запустить инструмент для работы со схемой Пробник.

Подстроить значение компонента

Запустить инструмент Подстройка.

Показать Spice список цепей…​

Открыть окно, в котором будет показан список цепей для исследуемой схемы.


Открыть диалоговое окно настройки симуляции.

Меню "Вид"


Увеличить масштаб текущего графика.


Уменьшить масштаб текущего графика.

Вписать в экран

Подстроить масштаб графика так, чтобы он полностью поместился на экране.

Показать сетку

Показать или скрыть сетку.

Показать надписи

Показать или скрыть надписи графика.

Панель инструментов

Панель инструментов окна симуляции

Эта панель предоставляет доступ к часто используемым командам.

Запустить/остановить симуляцию

Начать или остановить работу симулятора.

Добавить сигналы

Открыть диалоговое окно для выбора сигналов, графики которых нужно построить.


Активировать инструмент для работы со схемой Пробник.


Активировать инструмент Подстройка.


Открыть диалоговое окно настройки симуляции.

Панель графиков

Результат симуляции отображается в виде графиков. Можно создать несколько графиков на отдельных вкладках, но только текущий график будет обновляться при выполнении симуляции. Это позволяет сравнивать результаты симуляции при разных условиях.

Вид графиков можно настроить включая/выключая сетку или надписи через меню Вид. Если надписи отображаются, их положение можно менять, перетаскивая левой кнопкой мыши.

Управление панелью графиков:

  • колесо мыши увеличивает или уменьшает масштаб

  • правая кнопка мыши открывает контекстное меню для настройки изображения

  • выделите прямоугольную область для её увеличения во весь экран

  • перетащите курсор для изменения координат

Сообщения консоли

Сообщения консоли — это сообщения от симулятора. Рекомендуется следить за этими сообщениями и проверять наличие ошибок или предупреждений.

Перечень сигналов

Содержит список сигналов, которые отображены на графике.

Управление перечнем сигналов:

  • щелчок правой кнопки мыши открывает контекстное меню для скрытия сигналов или включения/выключения курсора

  • двойной щелчок мыши скроет сигнал

Перечень курсоров

Содержит список курсоров и их координаты. Для каждого сигнала может быть показан свой курсор. Видимость курсора включается/выключается в перечне Сигналов.

Панель подстройки

Здесь содержаться компоненты, выбранные с помощью инструмента Подстройка. Панель подстройки позволяет пользователю быстро изменять параметры компонента и наблюдать влияние на результат симуляции — каждый раз при изменении значения компонента, симуляция запускается заново и график обновляется.

У каждого компонента на панели имеется несколько элементов управления:

  • В верхнем текстовом поле устанавливается максимальное значение.

  • В среднем текстовом поле устанавливается текущее значение.

  • В нижнем текстовом поле устанавливается минимальное значение.

  • Ползунок позволяет пользователю плавно менять значение компонента.

  • Кнопка Сохранить записывает текущее значение, выбранное с помощью ползунка, в поле значения компонента на схеме.

  • Кнопка Х удаляет компонент из панели подстройки и восстанавливает его начальное значение.

В трёх текстовых полях можно использовать множители единиц измерения в формате Spice.


Инструмент подстройки позволяет пользователю выбрать компоненты для настройки его значения.

Чтобы выбрать компонент для подстройки, после активации инструмента щёлкните левой кнопкой мыши на компоненте в редакторе схем. Выбранные компоненты появятся на панели подстройка. Подстраивать можно только пассивные компоненты.


Инструмент "Пробник" предоставляет простой путь для выбора сигналов, которые нужно отобразить на графике.

Чтобы добавить сигнал на график, активируйте инструмент и нажмите левой кнопкой мыши на интересующем проводнике в редакторе схем.

Параметры симуляции

Диалог параметров симуляции

Диалоговое окно параметров симуляции позволяет пользователю выбрать тип симуляции и её параметры. Здесь имеется четыре вкладки:

  • AC

  • DC переход

  • Переходной процесс

  • Пользовательская

На первых трёх вкладках имеются формы, в которых можно указать параметры симуляции. Последняя вкладка позволяет пользователю настроить процесс симуляции путём ручного ввода Spice-директив. Более подробную информацию о типах симуляции и их параметрах можно найти в разделе 1.2 документации ngspice.

Альтернативный путь настройки процесса симулции — ввести Spice-директивы в текстовых полях на схеме. Любые директивы указанные в текстовых полях и связанные с типом симуляции переопределяются параметрами, выбранными в диалоге настроек. Это значит, что после ввода параметров в диалоге настроек, эти параметры будут использоваться вместо директив указанных на схеме до тех пор, пока процесс симуляции не будет запущен заново.

Имеется два параметра, общих для всех типов симуляции:

Подстроить значения пассивных компонентов

Заменяет значения пассивных компонентов, путём преобразования общего формата записи значений в формат Spice.

Добавить полный путь для директивы .include библиотека

Параметр следит за тем, чтобы файл библиотеки Spice-моделей был сохранён в виде полного пути. Обычно ngspice требует использования полного пути для доступа к файлам библиотек.

Table of Contents