Buku Panduan

Note
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.

All trademarks within this guide belong to their legitimate owners.

Kontributor

Jean-Pierre Charras, Fabrizio Tappero, Wayne Stambaugh, Graham Keeth

Penerjemah

Triyan W. Nugroho.

Umpan balik

Silakan mengirimkan laporan bug, saran atau versi baru ke alamat berikut:

1. Introduction to the KiCad Schematic Editor

1.1. Deskripsi

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:

  • Electrical rules check (ERC), sebagai kontrol otomatis untuk koneksi yang hilang atau tidak tepat

  • Ekspor berkas-berkas plot dalam berbagai format (Postscript, PDF, HPGL, dan SVG)

  • Pembuatan daftar komponen (Bill of Materials), melalui skrip Python atau XSLT, yang mampu menangani berbagai format fleksibel.

1.2. Tinjauan Teknis

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:

  • Hirarki sederhana (setiap skematik hanya digunakan satu kali saja).

  • Hirarki kompleks (beberapa skematik digunakan lebih dari sekali dan dapat dimunculkan beberapa kali).

  • Hirarki datar (skematik tidak terhubung secara eksplisit di dalam diagram utama).

1.3. Konfigurasi Awal

When the Schematic Editor is run for the first time, if the the global symbol library table file sym-lib-table is not found in the KiCad configuration folder then KiCad will ask how to create this file:

symbol library table initial configuration

The first option is recommended (Copy default global symbol library table (recommended)). The default symbol library table includes all of the standard symbol libraries that are installed as part of KiCad.

If this option is disabled, KiCad was unable to find the default global symbol library table. This probably means you did not install the standard symbol libraries with KiCad, or they are not installed where KiCad expects to find them. On some systems the KiCad libraries are installed as a separate package.

  • If you have installed the standard KiCad symbol libraries and want to use them, but the first option is disabled, select the second option and browse to the sym-lib-table file in the directory where the KiCad libraries were installed.

  • If you already have a custom symbol library table that you would like to use, select the second option and browse to your sym-lib-table file.

  • If you want to construct a new symbol library table from scratch, select the third option.

Symbol library management is described in more detail later.

2. Generic Schematic Editor commands

Perintah-perintah yang ada di Eeschema dapat dijalankan dengan cara:

  • Klik pada bilah menu (di bagian atas layar).

  • Klik pada ikon di bagian atas layar (untuk perintah-perintah umum).

  • Klik pada ikon di bagian kanan layar (untuk perintah atau "peralatan" khusus).

  • Klik pada ikon di bagian kiri layar (untuk berbagai opsi tampilan).

  • Menekan tombol tetikus (untuk perintah-perintah tambahan yang penting). Secara khusus, klik kanan pada tetikus akan membuka sebuah menu kontekstual untuk elemen yang berada di bawah kursor (Perbesar atau perkecil, pengaturan grid, dan pengeditan elemen).

  • 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.

Gambaran umum perintah-perintah Eeschema

2.1. Perintah-perintah Tetikus

2.1.1. Perintah-perintah Dasar

Tombol kiri

  • 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.

Tombol kanan

  • 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.

2.1.2. 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.

Note
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.

2.2. Tombol Hotkey

  • 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

Click

Return

Performs left mouse button click

Double-click

End

Performs left mouse button double-click

Cursor Down

Down

Cursor Down Fast

Ctrl+Down

Cursor Left

Left

Cursor Left Fast

Ctrl+Left

Cursor Right

Right

Cursor Right Fast

Ctrl+Right

Cursor Up

Up

Cursor Up Fast

Ctrl+Up

Switch to Fast Grid 1

Alt+1

Switch to Fast Grid 2

Alt+2

Switch to Next Grid

N

Switch to Previous Grid

Shift+N

Reset Grid Origin

Z

Grid Origin

S

Set the grid origin point

New…​

Ctrl+N

Create a new document in the editor

Open…​

Ctrl+O

Open existing document

Pan Down

Shift+Down

Pan Left

Shift+Left

Pan Right

Shift+Right

Pan Up

Shift+Up

Print…​

Ctrl+P

Print

Reset Local Coordinates

Space

Save

Ctrl+S

Save changes

Save As…

Ctrl+Shift+S

Save current document to another location

Always Show Cursor

Ctrl+Shift+X

Display crosshairs even in selection tool

Switch units

Ctrl+U

Switch between imperial and metric units

Update PCB from Schematic…

F8

Update PCB with changes made to schematic

Center

F4

Center

Zoom to Objects

Ctrl+Home

Zoom to Objects

Zoom to Fit

Home

Zoom to Fit

Zoom In at Cursor

F1

Zoom In at Cursor

Zoom Out at Cursor

F2

Zoom Out at Cursor

Refresh

F5

Refresh

Zoom to Selection

Ctrl+F5

Zoom to Selection

Change Edit Method

Ctrl+Space

Change edit method constraints

Copy

Ctrl+C

Copy selected item(s) to clipboard

Cut

Ctrl+X

Cut selected item(s) to clipboard

Delete

Del

Deletes selected item(s)

Duplicate

Ctrl+D

Duplicates the selected item(s)

Find

Ctrl+F

Find text

Find and Replace

Ctrl+Alt+F

Find and replace text

Find Next

F3

Find next match

Find Next Marker

Shift+F3

Paste

Ctrl+V

Paste item(s) from clipboard

Redo

Ctrl+Y

Redo last edit

Select All

Ctrl+A

Select all items on screen

Undo

Ctrl+Z

Undo last edit

List Hotkeys…​

Ctrl+F1

Displays current hotkeys table and corresponding commands

Preferences…​

Ctrl+,

Show preferences for all open tools

Clear Net Highlighting

~

Clear any existing net highlighting

Edit Library Symbol…​

Ctrl+Shift+E

Open the library symbol in the Symbol Editor

Edit with Symbol Editor

Ctrl+E

Open the selected symbol in the Symbol Editor

Highlight Net

`

Highlight net under cursor

Show Datasheet

D

Opens the datasheet in a browser

Add Sheet

S

Add a hierarchical sheet

Add Wire to Bus Entry

Z

Add a wire entry to a bus

Add Global Label

Ctrl+L

Add a global label

Add Hierarchical Label

H

Add a hierarchical label

Add Junction

J

Add a junction

Add Label

L

Add a net label

Add No Connect Flag

Q

Add a no-connection flag

Add Power

P

Add a power port

Add Text

T

Add text

Add Symbol

A

Add a symbol

Add Bus

B

Add a bus

Add Lines

I

Add connected graphic lines

Add Wire

W

Add a wire

Finish Wire or Bus

K

Complete drawing at current segment

Unfold from Bus

C

Break a wire out of a bus

Autoplace Fields

O

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

Edit Footprint…

F

Displays footprint field dialog

Edit Reference Designator…​

U

Displays reference designator dialog

Edit Value…

V

Displays value field dialog

Mirror Horizontally

X

Flips selected item(s) from left to right

Mirror Vertically

Y

Flips selected item(s) from top to bottom

Properties…

E

Displays item properties dialog

Repeat Last Item

Ins

Duplicates the last drawn item

Rotate Counterclockwise

R

Rotates selected item(s) counter-clockwise

Drag

G

Drags the selected item(s)

Move

M

Moves the selected item(s)

Select Connection

Alt+4

Select a complete connection

Select Node

Alt+3

Select a connection item under the cursor

Leave Sheet

Alt+Back

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…​.

2.3. Grid

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.

Ukuran tersebut adalah ukuran yang direkomendasikan untuk meletakkan simbol dan wire di skematik, dan untuk meletakkan pin pada saat mendesain sebuah simbol di Symbol Editor.

Note
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.

Kita juga bisa menggunakan ukuran grid yang lebih kecil, dari 25 mil hingga 10 mil. Ukuran ini hanya dimaksudkan untuk digunakan pada saat mendesain bentuk simbol atau meletakkan teks dan komentar, dan tidak direkomendasikan untuk digunakan pada saat meletakkan pin dan wire.

Note
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.

2.4. Snapping

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.

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

Ctrl

Disable grid snapping.

Shift

Disable snapping wires to pins.

2.5. Pilihan Perbesaran/perkecilan

Untuk mengubah tingkat perbesaran/perkecilan:

  • Klik kanan untuk membuka menu pop-up dan pilih tingkat perbesaran/perkecilan yang diinginkan.

  • 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

  • Perbesar/perkecil Jendela:

    • Mouse wheel: Zoom in/out

    • Shift+Mouse wheel: Pan up/down

    • Ctrl+Mouse wheel: Pan left/right

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

2.6. Menampilkan Koordinat Kursor

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

Informasi berikut ini ditampilkan pada bagian kanan bawah jendela:

  • Faktor perbesaran/perkecilan

  • Posisi absolut kursor

  • Posisi relatif kursor

  • The grid size

  • The active unit system

  • The active tool

Koordinat relatif dapat direset menjadi nol dengan menekan Spasi. Hal ini berguna untuk mengukur jarak antara dua titik atau untuk meluruskan suatu obyek.

status_bar

2.7. Bilah Menu Atas

bilah menu atas digunakan untuk membuka dan menyimpan skematik, konfigurasi program, dan untuk melihat dokumentasi.

menubar

2.8. Bilah Alat Bagian Atas

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:

images/toolbar_schedit_standalone.png

Jika KiCad dijalankan pada mode proyek, maka dua ikon pertama di atas tidak tersedia, karena ikon tersebut hanya bekerja dengan berkas-berkas individual.

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.

2.9. Bilah Alat Bagian Kanan

Bilah alat ini berisi berbagai alat untuk:

  • Meletakkan simbol, wire, bus, junction, label, teks, dsb.

  • Membuat lembar kerja hirarkis dan simbol-simbol koneksi.

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.

2.10. Bilah Alat Sebelah Kiri

Bilah alat ini berfungsi untuk melakukan pengaturan tampilan:

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.

2.11. Menu Pop-up dan Pengeditan Cepat

Klik kanan tetikus akan membuka sebuah menu kontekstual untuk elemen yang dipilih. Menu tersebut berisi:

  • Faktor perbesaran/perkecilan.

  • Pengaturan grid.

  • Copy/Paste/Delete commands.

  • Add Wire/Bus.

  • Parameter-parameter yang sering diedit untuk elemen yang dipilih.

3. Menu Utama

3.1. Menu File

Menu _File_
New Close current schematic and start a new one (only in standalone mode).

Open

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

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

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

Export

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

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

Plot

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

Quit

Terminate the application.

3.1.1. 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.

3.2. Menu Preferences

Menu _Preferences_

Configure Paths…​

Set the default search paths.

Manage Symbol Library Tables…​

Add/remove symbol libraries.

Preferences…​

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

Set Language

Select interface language.

3.2.1. Mengelola Tabel Pustaka Simbol

Tabel Pustaka Simbol

This dialog is used to manage the tables of symbol libraries. Symbol library management is described later.

3.2.2. Preferences

Common Preferences
Note
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.

Tombol Hotkey

Redefine hotkeys.

Hotkeys settings

Anda bisa mengubah tombol hotkey dengan cara klik-ganda pada aksi yang diinginkan. Klik-kanan pada salah satu aksi tersebut akan menampilkan menu pop-up berikut ini:

Edit

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

Grid Size

Grid size selection.

It is recommended to work with normal grid (0.050 inches or 1,27 mm). Smaller grids are used for component building.

Bus thickness

Pen size used to draw buses.

Line thickness

Pen size used to draw objects that do not have a specified pen size.

Part ID notation

Style of suffix that is used to denote symbol units (U1A, U1.A, U1-1, etc.)

Icon scale

Adjust toolbar icons size.

Show Grid

Grid visibility setting.

Restrict buses and wires to H and V orientation

If checked, buses and wires are drawn only with vertical or horizontal lines. Otherwise buses and wires can be placed at any orientation.

Show hidden pins:

Display invisible (or hidden) pins, typically power pins.

Show page limits

If checked, shows the page boundaries on screen.

Footprint previews in symbol chooser

Displays a footprint preview frame and footprint selector when placing a new symbol.

Note: it may cause problems or delays, use at your own risk.

Editing Options
Pengaturan tab _editing_

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.

Tab Colors

Tab ini berisi skema warna untuk berbagai elemen grafis. Klik pada kotak warna untuk memilih warna baru untuk elemen yang diinginkan.

Color settings
Tab Default Fields

Tab ini digunakan untuk membuat atribut-atribut tambahan yang akan muncul pada simbol yang baru diletakkan.

Default Fields settings

3.3. Menu Help

Akses ke bantuan on-line (dokumen ini) yang berisi tutorial 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.

4. Bilah Atas Umum

4.1. Manajemen Lembar Kerja

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

Page Settings

Penomoran lembar kerja diperbarui secara otomatis. Anda dapat mengatur tanggal agar menampilkan tanggal saat ini dengan menekan tombol panah ke kiri pada kotak "Issue Date", tetapi tanggal ini tidak akan berubah secara otomatis.

4.2. Alat Pencari

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

Find dialog

Anda dapat melakukan pencarian referensi, nilai atau teks pada lembar kerja yang sedang dibuka atau pada keseluruhan hirarki. Ketika elemen yang dicari telah ditemukan, kursor akan diposisikan pada elemen tersebut di dalam anak lembar kerja yang sesuai.

4.3. Alat Netlist

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

Alat ini akan membuat sebuah berkas yang berisi penjelasan koneksi pada keseluruhan hirarki.

Pada hirarki dengan banyak lembar kerja, label lokal hanya akan ditampilkan di dalam lembar kerja dimana ia berada. Sebagai contoh, label LABEL1 pada lembar kerja 3 berbeda dengan LABEL1 pada lembar kerja 5 (jika tidak ada koneksi yang dibuat untuk menghubungkan kedua label tersebut). Hal ini karena nama lembar kerja terhubung secara internal dengan label lokal.

Note
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.
Note
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.
Netlist dialog

Opsi:

Default Format

Jika dicentang, maka Pcbnew akan digunakan sebagai format default.

Eeschema juga bisa menghasilkan berkas dengan beberapa format berikut ini:

  • Orcad PCB2

  • CadStar

  • Spice (simulator)

Plugin eksternal juga bisa ditambahkan untuk mendukung format netlist yang lain (Pada gambar di atas, ditambahkan plugin PadsPcb).

Informasi lebih lanjut mengenai pembuatan netlist dapat dilihat pada bagian Membuat Netlist.

4.4. Alat Anotasi

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

Untuk komponen-komponen multi-part (misalnya 7400 TTL yang memiliki 4 gate), kita perlu mengalokasikan sufiks multi-part (maka U3 untuk 7400 TTL akan dibagi menjadi U3A, U3B, U3C, dan U3D).

Anda bisa memberikan anotasi pada keseluruhan komponen atau hanya untuk komponen-komponen baru, yaitu komponen yang belum diberikan anotasi sebelumnya.

annotate-dialog_img

Pilihan Scope

Use the entire schematic All sheets are re-annotated (default).

Use the current page only

Only the current sheet is re-annotated (this option is to be used only in special cases, for example to evaluate the amount of resistors in the current sheet.).

Keep existing annotation

Conditional annotation, only the new components will be re-annotated (default).

Reset existing annotation

Unconditional annotation, all the components will be re-annotated (this option is to be used when there are duplicated references).

Reset, but do not swap any annotated multi-unit parts

Keeps all groups of multiple units (e.g. U2A, U2B) together when reannotating.

Urutan Anotasi (Annotation Order)

Pilih urutan penomoran komponen (secara horisontal atau vertikal).

Pilihan Anotasi (Annotation Choice)

Pilih format referensi yang akan diterapkan.

4.5. Alat Electrical Rules Check

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

Peralatan ini digunakan untuk melakukan verifikasi desain dan mampu mendeteksi koneksi yang belum terhubung, serta inkonsistensi.

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.

4.5.1. Kotak Dialog Utama ERC

ERC dialog

Kesalahan yang ditemukan akan ditampilkan pada kotak dialog ERC, beserta:

  • Jumlah kesalahan dan peringatan.

  • Jumlah kesalahan.

  • Jumlah peringatan.

Opsi:

Create ERC file report

Centang opsi ini untuk membuat berkas laporan ERC.

Perintah:

Delete Markers

Hapus semua penanda kesalahan/peringatan ERC.

Run

Menjalankan Electrical Rules Check.

Close

Tutup kotak dialog.

  • Klik pada pesan kesalahan akan menampilkan penanda yang terkait di skematik.

4.5.2. Kotak Dialog Opsi ERC

ERC Options dialog

Tab ini digunakan untuk mendefinisikan aturan konektivitas antar pin; Anda dapat memilih salah satu dari pilihan berikut, untuk setiap kasus:

  • Tidak ada kesalahan

  • Peringatan

  • Kesalahan

Setiap kotak pada matriks dapat dimodifikasi dengan melakukan klik pada kotak tersebut.

Opsi:

Test similar labels

Melaporkan label yang sama namun menggunakan huruf besar/kecil yang berbeda (contohnya label/Label/LaBeL). Nama net bersifat case-sensitive, sehingga label dengan penggunaan huruf besar/kecil yang berbeda akan diperlakukan sebagai net yang terpisah.

Test unique global labels

Melaporkan label global yang muncul hanya satu kali saja untuk suatu net. Seharusnya diperlukan setidaknya dua buah label untuk membuat satu koneksi.

Perintah:

Initialize to Default

Mengembalikan pengaturan ke awal.

4.6. Footprint Assignment Tool

The footprint assignment tool icon button launches the Footprint Assignment Tool, which can be used to associate PCB footprints with symbols in the schematic. The footprint assignment process is described later in the manual.

4.7. Alat Daftar Komponen (Bill of Materials)

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 dialog

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.

Daftar properti komponen yang diperlukan untuk membuat BOM antara lain:

  • Value - nama unik untuk setiap komponen yang digunakan.

  • Footprint - bisa dibuat secara manual atau dari anotasi-mundur (lihat di bawah).

  • Field1 - nama manufaktur.

  • Field2 - nomor part manufaktur.

  • Field3 - nomor part distibutor.

Contoh:

Component Properties dialog

On MS Windows, BOM generator dialog has a special option (pointed by red arrow) that controls visibility of external plugin window.
By default, BOM generator command is executed console window hidden and output is redirected to Plugin info field. Set this option to show the window of the running command. It may be necessary if plugin has provides a graphical user interface.

BOM dialog extra option on MS Windows

4.8. Alat Pengaturan Atribut

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

Symbol Dialog

Jika Anda sudah selesai memodifikasi nilai suatu atribut, Anda harus menerima perubahan dengan klik tombol 'Apply' atau membatalkan modifikasi dengan klik tombol 'Revert'.

4.8.1. Tricks to simplify fields filling

There are several special copy/paste methods in spreadsheet. They may be useful when entering field values that are repeated in a few components.

These methods are illustrated below.

Copy (Ctrl+C) Selection Paste (Ctrl+V)

1copy

1selection

1paste

2copy

2selection

2paste

3copy

3selection

3paste

4copy

4selection

4paste

5copy

5selection

5paste

Note
These techniques are also available in other dialogs with a grid control element.

4.9. Peralatan Impor Footprint

4.9.1. Cara mengakses:

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.

5. Managing Symbol Libraries

Symbol libraries hold collections of symbols used when creating schematics. Each symbol in a schematic is uniquely identified by a full name that is composed of a library nickname and a symbol name. An example is Audio:AD1853.

5.1. Tabel Pustaka Simbol (Symbol Library Table)

KiCad uses a table of symbol libraries to map symbol libraries to a library nickname. Kicad uses a global symbol library table as well as a table specific to each project. To edit either symbol library table, use PreferencesManage Symbol Libraries…​.

sym lib table dlg

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

The project specific symbol library table contains the list of libraries that are available specifically for the currently loaded project. If there are any project-specific symbol libraries, the table is saved in the file sym-lib-table in the project folder.

5.1.1. Konfigurasi Awal

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 guide the user through setting up a new symbol library table. This process is described above.

5.1.2. Managing Table Entries

Symbol libraries can only be used if they have been added to either the global or project-specific symbol library table.

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

Libraries can be made inactive by unchecking the Active checkbox in the first column. Inactive libraries are still in the library table but do not appear in any library browsers.

A range of libraries can be selected by clicking the first library in the range and then Shift-clicking the last library in the range.

Each library must have a unique nickname: duplicate library nicknames are not allowed in the same table. However, nicknames can be duplicated between the global and project library tables. Libraries in the project table take precedence over libraries with the same name in the global table.

Library nicknames do not have to be related to the library filename or path. The colon character (:) cannot be used in library nicknames or symbol names because it is used as a separator between nicknames and symbols.

Each library entry must have a valid path. Paths can be defined as absolute, relative, or by environment variable substitution.

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).

There is an optional description field to add a description of the library entry. The option field is not used at this time so adding options will have no effect when loading libraries.

5.1.3. Substitusi Environment Variable

The symbol library tables support environment variable substitution, which allows you to define environment variables containing custom paths to where your libraries are stored. Environment variable substitution is supported by using the syntax ${ENV_VAR_NAME} in the symbol library path.

By default, KiCad defines several environment variables:

  • ${KIPROJMOD} points to the current project directory and cannot be modified.

  • ${KICAD6_FOOTPRINT_DIR} points to the default location of KiCad’s standard footprint libraries.

  • ${KICAD6_SYMBOL_DIR} points to the default location of KiCad’s standard symbol libraries.

  • ${KICAD6_3DMODEL_DIR} points to the default location of KiCad’s standard 3D model libraries.

  • ${KICAD6_TEMPLATE_DIR} points to the default location of KiCad’s standard template library.

${KIPROJMOD} cannot be redefined, but the other environment variables can be redefined and new environment variables added in the PreferencesConfigure Paths…​ dialog.

Using environment variables in the symbol library tables allows libraries to be relocated without breaking the symbol library tables, so long as the environment variables are updated when the library location changes.

${KIPROJMOD} allows libraries to be stored in the project folder without having to use an absolute path in the project library table. This makes it possible to relocate projects without breaking their project library tables. 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.

5.1.4. Pola Pemakaian

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.

Ada keuntungan dan kerugian untuk masing-masing metode tersebut. Mendefinisikan keseluruhan pustaka di dalam tabel global berarti pustaka-pustaka tersebut akan selalu tersedia saat dibutuhkan. Namun kerugiannya adalah waktu yang dibutuhkan untuk memuat pustaka-pustaka tersebut akan bertambah.

Mendefinisikan keseluruhan pustaka simbol di dalam tabel proyek berarti bahwa Anda hanya memiliki pustaka yang dibutuhkan oleh proyek saja, sehingga akan mengurangi waktu yang dibutuhkan untuk memuat pustaka-pustaka tersebut. Namun kekurangannya adalah Anda harus selalu mengingat untuk menambahkan setiap pustaka simbol yang dibutuhkan untuk setiap proyek.

Maka pola pemakaian yang baik adalah mendefinisikan secara global pustaka-pustaka yang umum digunakan. Sedangkan untuk pustaka-pustaka yang spesifik yang hanya dibutuhkan oleh proyek, kita definisikan di dalam tabel pustaka proyek. Tidak ada batasan bagi suatu pustaka untuk didefinisikan ke tabel manapun.

5.1.5. 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.

5.1.6. Pemetaan Ulang Proyek 'Legacy'

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:

  • pustaka asli yang digunakan di skematik masih tersedia dan belum berubah dari saat simbol ditambahkan ke dalam skematik.

  • semua operasi penyelamatan telah dilakukan ketika terdeteksi untuk membuat sebuah pustaka penyelamat atau menjaga agar pustaka penyelamat yang ada tetap dalam kondisi terkini.

  • integritas pustaka tembolok simbol proyek tidak dalam kondisi rusak.

Warning

Proses pemetaan ulang akan membuat cadangan untuk keseluruhan berkas yang berubah selama proses pemetaan, di dalam folder 'rescue-backup' di folder proyek. Selalu buat cadangan secara manual untuk proyek Anda sebelum melakukan pemetaan ulang, untuk berjaga-jaga jika pemetaan tidak berjalan sebagaimana mestinya.

Warning

Operasi penyelamatan dilakukan walaupun telah dinonaktifkan, untuk memastikan bahwa simbol-simbol yang tepat telah tersedia untuk dipetakan ulang. Jangan membatalkan operasi ini atau pemetaan ulang akan gagal untuk memetakan simbol-simbol skematik secara benar. Setiap tautan simbol yang rusak harus diperbaiki secara manual.

Note

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.

6. Membuat dan Mengedit Skematik

6.1. Pengenalan

Sebuah skematik dapat direpresentasikan oleh satu lembar kerja saja. Namun jika skematik tersebut berukuran besar, akan dibutuhkan beberapa lembar kerja.

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.

6.2. Pertimbangan Umum

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:

Sebuah skematik berisi sejumlah simbol, wire, label, juction, bus, dan power port. Agar skematik lebih mudah dipahami, Anda bisa meletakkan elemen-elemen grafis tambahan seperti jalur masuk bus, komentar, dan garis poligon.

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.

6.3. Meletakkan dan Mengedit Simbol

6.3.1. Mencari dan Meletakkan Simbol

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.

Choose Component dialog

Kotak Dialog 'Choose Symbols' akan menyaring simbol berdasarkan nama, kata kunci, dan deskripsi menurut apa yang Anda ketikkan ke dalam kotak pencarian. Penyaringan lebih jauh dapat digunakan dengan cara mengetikkan ke dalam kotak pencarian:

  • Wildcards: gunakan karakter ? dan * yang berarti "karakter apapun" dan "karakter sepanjang apapun".

  • Relasional: jika sebuah deskripsi atau kata kunci memiliki tagar dengan format "Key:123", Anda bisa melakukan pencarian relatif terhadap tagar tersebut dengan mengetikkan "Key>123" (lebih besar dari), "Key<123" (kurang dari), dsb. Angka bisa terdiri dari salah satu sufiks berikut ini: (huruf besar dan huruf kecil dianggap sama)

    p

    n

    u

    m

    k

    meg

    g

    t

    10-12

    10-9

    10-6

    10-3

    103

    106

    109

    1012

    ki

    mi

    gi

    ti

    210

    220

    230

    240

  • Regular expression: jika Anda biasa menggunakan regular expression, Anda bisa menggunakannya di sini. Gaya regular expression yang digunakan adalah wxWidgets Advanced Regular Expression style, yang mirip dengan regular expression 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.

Berikut ini contoh peletakan simbol:

component during 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.

6.3.2. 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.

6.3.3. Mengedit dan Modifikasi Simbol (untuk komponen yang telah diletakkan)

Ada dua cara untuk mengedit sebuah simbol:

  • Modifikasi pada simbol itu sendiri: posisi, orientasi, pemilihan satuan pada simbol dengan pilihan satuan.

  • Modifikasi pada atribut simbol: referensi, nilai, footprint, dsb.

Setelah simbol diletakkan pada lembar kerja, Anda mungkin perlu untuk mengubah nilainya (khusunya untuk resistor, kapasitor, dsb.), namun Anda tidak perlu segera memberikan nomor referensi, atau memilih satuan (kecuali untuk komponen dengan satuan terkunci, di mana Anda harus memilih secara manual). Hal ini dapat dilakukan secara otomatis dengan menggunakan fungsi anotasi.

Modifikasi Simbol

Untuk memodifikasi fitur-fitur dari sebuah simbol, letakkan kursor pada simbol, dan lakukan salah satu dari aksi berikut:

  • Klik-ganda pada simbol untuk membuka kotak dialog editor simbol.

  • Klik-kanan untuk membuka menu konteks dan gunakan salah satu dari perintah berikut: Pindahkan, Putar, Edit, Hapus, dsb.

  • 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.

Modifikasi Atribut Teks

Anda dapat memodifikasi referensi, nilai, posisi, orientasi, ukuran teks, dan tampilan dari atribut dengan cara berikut:

  • Klik-ganda pada atribut teks untuk melakukan modifikasi.

  • Klik-kanan untuk membuka menu konteks dan gunakan salah satu dari perintah berikut: Pindahkan, Putar, Edit, Hapus, dsb.

  • 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.

Untuk modifikasi lanjutan, atau untuk membuat suatu atribut, klik-ganda pada simbol untuk membuka kotak dialog 'Symbol Properties'.

Component Properties dialog

Setiap atribut dapat ditampilkan atau disembunyikan, dan dapat ditampilkan secara vertikal atau horisontal. Posisi yang dipilih selalu diindikasikan untuk simbol yang ditampilkan secara normal (tidak diputar atau dicerminkan) dan relatif terhadap titik jangkar dari simbol.

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.

6.3.4. Symbol Fields Table

Note
TODO: Write this section.

6.4. Electrical Connections

6.4.1. Pengenalan

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.

Elemen-elemen tersebut antara lain:

  • 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).

6.4.2. Koneksi (Wire dan Label)

Ada dua cara untuk membuat suatu koneksi:

  • Wire dari pin ke pin.

  • Label.

Gambar berikut menunjukkan dua metode tersebut:

Wires labels
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

Untuk membuat suatu koneksi, satu segmen dari wire ujungnya harus dihubungkan ke segmen yang lain atau ke sebuah pin.

Jika terjadi wire yang saling melintas (jika sebuah wire melewati sebuah pin, namun tidak terhubung ke ujung pin), maka koneksi tidak terjadi.

Note
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.
Note
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.

Note
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.
Note
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.

6.4.3. Wiring

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

6.4.4. Koneksi (Bus)

Pada skematik berikut, ada beberapa pin yang terhubung ke bus.

Example schematic with buses
Anggota Bus

Buses are a way to group related signals in the schematic in order to simplify complicated designs. Buses can be drawn like wires using the bus tool, and are named using labels the same way signal wires are. There are two types of bus in KiCad 6.0 and later: vector buses and group buses.

A vector bus is a collection of signals that start with a common prefix and end with a number. Vector buses are named <PREFIX>[M..N] where PREFIX is any valid signal name, M is the first suffix number, and N is the last suffix number. For example, the bus DATA[0..7] contains the signals DATA0, DATA1, and so on up to DATA7. It doesn’t matter which order M and N are specified in, but both must be non-negative.

A group bus is a collection of one or more signals and/or vector buses. Group buses can be used to bundle together related signals even when they have different names. Group buses use a special label syntax:

<OPTIONAL_NAME>{SIGNAL1 SIGNAL2 SIGNAL3}

The members of the group are listed inside curly braces ({}) separated by space characters. An optional name for the group goes before the opening curly brace. If the group bus is unnamed, the resulting nets on the PCB will just be the signal names inside the group. If the group bus has a name, the resulting nets will have the name as a prefix, with a period (.) separating the prefix from the signal name.

For example, the bus {SCL SDA} has two signal members, and in the netlist these signals will be SCL and SDA. The bus USB1{DP DM} will generate nets called USB1.DP and USB1.DM. For designs with larger buses that are repeated across several similar circuits, using this technique can save time.

Group buses can also contain vector buses. For example, the bus MEMORY{A[7..0] D[7..0] OE WE} contains both vector buses and plain signals, and will result in nets such as MEMORY.A7 and MEMORY.OE on the PCB.

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.

Koneksi Antar Anggota Bus

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.

Pada contoh di atas, koneksi dibuat dengan menggunakan label yang diletakkan pada wire yang terhubung ke pin. Jalur masuk bus (wire dengan sudut 45 derajat) hanya bersifat grafis, dan tidak diperlukan untuk membuat koneksi logis.

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.

  • Tariklah wire di bawah label pertama. Lalu gunakan perintah repetisi untuk meletakkan wire berikutnya di bawah label yang sudah dibuat.

  • Jika diperlukan, letakkan jalur masuk bus dengan cara yang sama (Letakkan jalur masuk yang pertama, lalu gunakan perintah repetisi).

Note

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.).

Bus unfolding

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.

After selecting the bus member, the next click will place the bus member label at the desired location. The tool automatically generates a bus entry and wire leading up to the label location. After placing the label, you can continue placing additional wire segments (for example, to connect to a component pin) and complete the wire in any of the normal ways.

Bus aliases

Bus aliases are shortcuts that allow you to work with large group buses more efficiently. They allow you to define a group bus and give it a short name that can then be used instead of the full group name across the schematic.

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

Bus Definitions Dialog

An alias may be named any valid signal name. Using the dialog, you can add signals or vector buses to the alias. As a shortcut, you can type or paste in a list of signals and/or buses separated by spaces, and they will all be added to the alias definition. In this example, we define an alias called USB with members DP, DM, and VBUS.

After defining an alias, it can be used in a group bus label by putting the alias name inside the curly braces of the group bus: {USB}. This has the same effect as labeling the bus {DP DM VBUS}. You can also add a prefix name to the group, such as USB1{USB}, which results in nets such as USB1.DP as described above. For complicated buses, using aliases can make the labels on your schematic much shorter. Keep in mind that the aliases are just a shortcut, and the name of the alias is not included in the netlist.

Bus aliases are saved in the schematic file. Any aliases created in a given schematic sheet are available to use in any other schematic sheet that is in the same hierarchical design.

Buses with more than one label

KiCad 5.0 and earlier allowed the connection of bus wires with different labels together, and would join the members of these buses during netlisting. This behavior has been removed in KiCad 6.0 because it is incompatible with group buses, and also leads to confusing netlists because the name that a given signal will receive is not easily predicted.

If you open a design that made use of this feature in a modern version of KiCad, you will see the Migrate Buses dialog which guides you through updating the schematic so that only one label exists on any given set of bus wires.

Bus Migration Dialog

For each set of bus wires that has more than one label, you must choose the label to keep. The drop-down name box lets you choose between the labels that exist in the design, or you can choose a different name by manually entering it into the new name field.

6.4.5. 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.

Gambar di bawah ini menampilkan sebuah contoh koneksi port power.

Power ports example

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.

6.4.6. PWR_FLAG

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.

6.4.7. 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.

6.5. Peralatan Pelengkap Gambar

6.5.1. 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.

Frame with comment example

6.5.2. Blok Judul pada Lembar Kerja

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

Page settings dialog

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.

Title block

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

6.6. Menyelamatkan tembolok simbol

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:

Rescue conflicts dialog

Anda bisa melihat pada contoh di atas bahwa proyek yang awalnya menggunakan sebuah dioda dengan katoda berada di atas, namun pustaka yang tersedia sekarang berisi dioda dengan katoda berada di bawah. Perubahan ini akan membuat skematik menjadi rusak! Jika kita menekan tombol OK, maka pustaka tembolok akan disimpan ke dalam pustaka khusus "'rescue'" dan semua simbol akan dinamai ulang untuk mencegah konflik dalam penamaan.

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.

Jika Anda tidak ingin menampilkan kotak dialog ini, Anda bisa memilih tombol "'Never show Again'". Secara default, Eeschema tidak akan melakukan apapun dan akan memuat seluruh komponen baru. Pilihan ini dapat diubah kembali pada menu "'Preferences'".

7. Skematik Hirarkis

7.1. Pengenalan

Representasi hirarkis secara umum menjadi solusi yang baik untuk proyek yang lebih besar dari beberapa lembar kerja. Jika Anda ingin menangani proyek semacam ini, Anda perlu untuk:

  • Menggunakan lembar kerja yang besar, yang akan menyebabkan skematik menjadi sulit ditangani dan dicetak.

  • Menggunakan beberapa lembar kerja, yang akan menjadikan skematik terstruktur secara hirarkis.

Skematik yang lengkap akan terdiri dari satu lembar kerja utama, yang disebut lembar kerja 'root', dan anak lembar kerja yang menyusun hirarki. Pembagian desain menjadi beberapa lembar kerja yang terpisah bisa memudahkan pembacaan.

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.

Ada dua tipe hirarki, di mana keduanya bisa digunakan bersamaan: tipe pertama telah umum digunakan. Tipe kedua terdiri dari pembuatan simbol-simbol pada pustaka yang tampak seperti simbol biasa di skematik, tetapi sebenarnya berhubungan dengan sebuah skematik yang menjelaskan struktur internalnya.

Tipe yang kedua digunakan untuk mengembangkan 'Integrated Circuit', karena dalam kasus ini Anda harus menggunakan pustaka fungsi di dalam skematik.

KiCad currently doesn’t treat this second case.

Sebuah hirarki bisa:

  • sederhana: satu lembar kerja hanya digunakan satu kali saja

  • kompleks: satu lembar kerja dapat digunakan lebih dari satu kali (beberapa kali kemunculan)

  • rata: adalah hirarki yang sederhana, namun koneksi antar lembar kerja tidak digambarkan.

KiCad can deal with all these hierarchies.

Pembuatan skematik hirarkis sangat mudah, keseluruhan hirarki ditangani mulai dari skematik utama, seperti jika anda hanya memiliki satu skematik.

Dua langkah penting untuk dipahami antara lain:

  • Bagaimana cara membuat anak lembar kerja.

  • Bagaimana cara membangun koneksi-koneksi elektrikal antar anak lembar kerja.

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

hierarchy_navigator_dialog_png

Untuk memilih lembar kerja, klik pada nama lembar kerja tersebut. Untuk membuka, klik-kanan pada nama lembar kerja, dan pilih 'Enter Sheet' atau klik-ganda dalam batas lembar kerja.

Untuk keluar dari lembar kerja yang sedang dibuka menuju ke lembar kerja utama, klik-kanan pada skematik, dan pilih 'Leave Sheet' pada menu konteks, atau tekan 'Alt+Backspace'.

7.3. Label Lokal, Hirarkis, dan Global

7.3.1. Properti

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.

Note
Di dalam satu hirarki (sederhana atau kompleks), kita bisa menggunakan label hirarkis maupun label global.

7.4. Membuat Hirarki

Anda perlu melakukan:

  • Meletakkan simbol hirarki "'sheet symbol'" di lembar kerja utama.

  • Masuk ke skematik baru (anak lembar kerja) dengan menggunakan navigator, dan menggambar skematik seperti biasa.

  • Menggambar koneksi-koneksi elektrik antar kedua skematik dengan meletakkan label global (HLabels) pada skematik yang baru (anak lembar kerja), dan label yang memiliki nama yang sama di lembar kerja utama, disebut SheetLabels. SheetLabels akan terhubung ke simbol lembar kerja dari lembar kerja utama ke elemen-elemen yang lain dari skematik, seperti pin-pin simbol standar.

7.5. Simbol Lembar Kerja

Kita perlu membuat sebuah persegi yang akan menggambarkan anak lembar kerja.

Ukuran dari persegi ini harus cukup untuk meletakkan label-label dan pin hirarkis, yang berhubungan dengan label global (HLabels) pada anak lembar kerja.

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

Klik untuk meletakkan sudut kiri atas persegi. Klik sekali lagi untuk meletakkan sudut kanan bawah, dan pastikan ukuran persegi cukup besar.

Akan muncul kotak dialog untuk mengatur nama berkas dan nama lembar kerja yang dibuat. Nama lembar kerja ini digunakan untuk mengakses skematik menggunakan navigator hirarki.

hsheet_properties_1_png

Anda harus menuliskan setidaknya sebuah nama berkas. Jika tidak ada nama lembar kerja, maka nama berkas akan digunakan sebagai nama lembar kerja.

7.6. Koneksi - Pin Hirarkis

Anda akan membuat titik koneksi (pin-pin hirarki) untuk simbol yang telah dibuat.

Titik-titik koneksi tersebut mirip dengan pin simbol normal, namun bisa menghubungkan sebuah bus yang lengkap dengan hanya satu titik koneksi.

7.6.1. 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.

  • Klik di mana Anda ingin meletakkan pin ini.

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

7.7. Koneksi - Label Hirarkis

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.

Lihat contoh lembar kerja utama di bawah ini:

hierarchical_label_root_png

Perhatikan pin VCC_PIC, terhubung ke konektor JP1.

Berikut adalah koneksi yang terkait pada anak lembar kerja:

hierarchical_label_sub_png

Kembali Anda temukan dua label hirarkis yang terkait, yang menghubungkan antar dua lembar kerja hirarkis.

Note
Anda bisa menggunakan label hirarkis dan pin hirarkis untuk menghubungkan dua bus, menurut sintaks (Bus [N..m]) yang telah dijelaskan sebelumnya.

7.7.1. Label, Label Hirarkis, Label Global, dan Pin Power Tersembunyi

Berikut beberapa komentar mengenai berbagai cara untuk membuat suatu koneksi, selain koneksi wire.

Label Sederhana

Label sederhana memiliki koneksi dengan kapasitas lokal, yaitu terbatas pada lembar kerja skematik di mana label tersebut diletakkan. Hal ini karena:

  • Setiap lembar kerja memiliki nomor lembar kerja.

  • Nomor lembar kerja ini terkait dengan label.

Maka, jika Anda meletakkan label "TOTO" pada lembar kerja n° 3, sebenarnya nama label ini adalah "TOTO_3". Jika Anda juga meletakkan sebuah label "TOTO" pada lembar kerja n° 1 (lembar kerja utama), Anda sebenarnya meletakkan label "TOTO_1", berbeda dari "TOTO_3". Hal ini berlaku meskipun hanya ada satu lembar kerja saja.

Label Hirarkis

Sifat-sifat label sederhana juga berlaku untuk label hirarkis.

Dengan demikian pada lembar kerja yang sama, sebuah label hirarkis "TOTO" akan terhubung ke label lokal "TOTO", tetapi tidak terhubung ke label hirarkis atau label "TOTO" di lembar kerja lain.

Label hirarkis akan terhubung ke simbol pin lembar kerja yang sesuai pada simbol hirarkis yang diletakkan di lembar kerja utama.

Pin Power Tersembunyi

Pin power yang tersembunyi akan saling terhubung jika memiliki nama yang sama. Maka pin power tersembunyi dengan nama VCC akan terhubung dengan semua pin power tersembunyi lainnya yang juga bernama VCC, namun hanya di dalam satu lembar kerja saja.

Artinya, jika Anda meletakkan label VCC pada suatu anak lembar kerja, label tersebut tidak akan terhubung ke pin VCC, karena nama sebenarnya dari label ini adalah VCC_n, di mana n adalah nomor lembar kerja.

Jika Anda ingin supaya label VCC tersebut terhubung dengan label VCC di keseluruhan skematik, Anda harus menghubungkannya secara eksplisit ke pin power tersembunyi melalui simbol power VCC.

7.7.2. Label Global

Label global yang memiliki nama yang sama akan terhubung di keseluruhan hirarki.

(label power seperti vcc …​ adalah label global)

7.8. Hirarki Kompleks

Berikut adalah suatu contoh. Skematik yang sama digunakan sebanyak dua kali (dua kemunculan). Dua buah lembar kerja berbagi skematik yang sama karena kedua lembar kerja tersebut menggunakan nama berkas yang sama ("other_sheet.sch"). Sedangkan nama lembar kerja harus unik.

eeschema_complex_hierarchy_png

7.9. Hirarki Datar

Anda bisa membuat sebuah proyek menggunakan banyak lembar kerja tanpa harus membuat koneksi antar lembar kerja tersebut (hirarki datar) jika Anda mengikuti aturan berikut:

  • Buat sebuah lembar kerja utama berisi lembar kerja yang lain, yang berfungsi sebagai tautan antara lembar kerja.

  • Tidak diperlukan koneksi eksplisit.

  • Gunakan label global pada semua lembar kerja, dan jangan menggunakan label hirarkis.

Berikut adalah contoh lembar kerja utama.

eeschema_flat_hierarchy_png

Berikut ini dua halaman yang terhubung oleh label global.

Berikut adalah pic_programmer.sch.

eeschema_flat_hierarchy_1_png

Berikut adalah pic_sockets.sch.

eeschema_flat_hierarchy_2_png

Perhatikan label global yang digunakan.

eeschema_flat_hierarchy_3_png

8. Alat Anotasi Simbol

8.1. Pengenalan

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.

annotate-dialog_img

Berikut skema anotasi yang tersedia:

  • Memberikan anotasi pada semua simbol (mereset pilihan anotasi sebelumnya)

  • Memberikan anotasi pada semua simbol, namun jangan melakukan anotasi ulang pada simbol yang terdiri dari beberapa bagian, yang telah mendapatkan anotasi sebelumnya.

  • Memberikan anotasi hanya pada simbol yang belum mendapatkan anotasi sebelumnya. Simbol yang belum mendapatkan anotasi akan memiliki penunjuk yang berakhiran dengan tanda "'?'".

  • Memberikan anotasi pada keseluruhan hirarki (gunakan opsi 'Use the entire schematic').

  • Memberikan anotasi hanya pada lembar kerja yang sedang dibuka (gunakan opsi 'Use the current page only').

The Reset, but do not swap any annotated multi-unit parts option keeps all existing associations between symbols with multiple units. For example, U2A and U2B may be reannotated to U1A and U1B respectively but they will never be reannotated to U1A and U2A, nor to U2B and U2A. This is useful if you want to ensure that pin groupings are maintained.

Kita bisa memilih urutan anotasi untuk mengatur nomor referensi di dalam setiap lembar kerja pada hirarki.

Kecuali untuk kasus-kasus tertentu, anotasi otomatis dapat diterapkan ke keseluruhan proyek (semua lembar kerja) dan ke komponen baru, jika Anda tidak ingin mengubah hasil anotasi sebelumnya.

Kita bisa memilih metode yang digunakan untuk melakukan kalkulasi referensi:

  • 'Use first free number in schematic': komponen akan diberikan anotasi mulai dari angka 1 (untuk tiap prefiks referensi). Jika sudah ada anotasi sebelumnya, maka nomor yang akan diberikan hanya nomor yang belum digunakan.

  • 'Start to sheet number*100 and use first free number': anotasi akan dimulai dari 101 untuk lembar kerja 1, dari 201 untuk lembar kerja 2, dst. Jika terdapat lebih dari 99 item yang memiliki prefiks referensi yang sama (U, R) di dalam lembar kerja 1, maka alat anotasi akan menggunakan nomor 200 dan seterusnya, dan anotasi untuk lembar kerja 2 akan dimulai dari nomor bebas berikutnya.

  • 'Start to sheet number*1000 and use first free number': anotasi dimulai dari 1001 untuk lembar kerja 1, dari 2001 untuk lembar kerja 2.

8.2. Contoh Penggunaan

8.2.1. Urutan Anotasi

Contoh berikut menunjukkan 5 buah elemen yang telah diletakkan, namun belum dilakukan anotasi.

eeschema_annotation_order_none_png

Setelah alat anotasi dijalankan, didapatkan hasil berikut.

Diurutkan berdasarkan sumbu X.

eeschema_annotation_order_x_png

Diurutkan berdasarkan sumbu Y.

eeschema_annotation_order_y_png

Amati bahwa keempat gate 74LS00 didistribusikan sebagai paket U1, sedangkan 74LS00 yang kelima mendapatkan penomoran berikutnya, yaitu U2.

8.2.2. Pilihan Anotasi

Berikut adalah anotasi pada lembar kerja 2 di mana digunakan opsi 'Use first free number in schematic'.

eeschema_annotation_choice_free_png

Opsi 'start to sheet number*100 and use first free number' memberikan hasil berikut.

eeschema_annotation_choice_x100_png

Opsi 'Start to sheet number*1000 and use first free number' memberikan hasil berikut.

eeschema_annotation_choice_x1000_png

9. Assigning Footprints

Before routing a PCB, footprints need to be selected for every component that will be assembled on the board. Footprints define the copper connections between physical components and the routed traces on a circuit board.

Some symbols come with footprints pre-assigned, but for many symbols there are multiple possible footprints, so the user needs to select the appropriate one.

KiCad offers several ways to assign footprints:

  • Properti Simbol

    • Symbol Properties Dialog

    • Symbol Fields Table

  • While placing symbols

  • Footprint Assignment Tool

Each method will be explained below. Which to use is a matter of preference; one method may be more convenient depending on the situation. All of these methods are equivalent in that they store the name of the selected footprint in the symbol’s Footprint field.

Note
The Footprint Library Table needs to be configured before footprints can be assigned. For information on configuring the Footprint Library Table, please see the PCB Editor manual.

9.1. Assigning Footprints in Symbol Properties

A symbol’s Footprint field can be edited directly in the symbol’s Properties window.

Assigning footprint in Symbol Properties

Clicking the library icon button in the Footprint field opens the Footprint Library Browser, which shows the available footprints and footprint libraries. Single clicking a footprint name selects the footprint and displays it in the preview pane on the right, while double clicking on a footprint closes the browser and sets the symbol’s Footprint field to the selected footprint.

Selecting a footprint in Footprint Library Browser

9.1.1. Assigning Footprints with the Symbol Fields Table

Rather than editing the properties of each symbol individually, the Symbol Fields Table can be used to view and edit the properties of all symbols in the design in one place. This includes assigning footprints by editing the Footprint field of each symbol.

The Symbol Fields Table is accessed with ToolsEdit Symbol Fields…​, or with the Symbol Fields Table Icon button on the top toolbar.

The Footprint field behaves the same here as in the Symbol Properties window: it can be edited directly, or footprints can be selected visually with the Footprint Library Browser.

Bulk editing footprint assignments with the Symbol Fields Table

For more information on the Symbol Fields Table, see the section on editing symbol properties.

9.2. Assigning Footprints While Placing Symbols

Footprints can be assigned to symbols when the symbol is first added to the schematic.

Some symbols are defined with a default footprint. These symbols will have this footprint preassigned when they are added to the schematic. The default footprint is shown in the Add Symbol dialog. For symbols without a default symbol defined, the footprint dropdown will say "No default footprint", and the footprint preview canvas will say "No footprint specified".

Default footprint in Add Symbol dialog

Symbols can have footprint filters that specify which footprints are appropriate to use with that symbol. If footprint filters are defined for the selected symbol, all footprints that match the footprint filters will appear as options in the footprint dropdown. The selected footprint will be displayed in the preview canvas and will be assigned to the symbol when the symbol is added to the schematic.

Note
Footprint options will not appear in the footprint dropdown unless the footprint libraries are loaded. Footprint libraries are loaded the first time the Footprint Editor or Footprint Library Browser are opened in a session.

For more information on footprint filters, see the Symbol Editor Documentation.

9.3. Assigning Footprints with the Footprint Assignment Tool

The Footprint Assignment Tool allows you to associate symbols in your schematic to footprints used when laying out the printed circuit board. It provides footprint list filtering, footprint viewing, and 3D component model viewing to help ensure the correct footprint is associated with each component.

Components can be assigned to their corresponding footprints manually or automatically by creating equivalence files (.equ files). Equivalence files are lookup tables associating each component with its footprint.

Run the tool with ToolsAssign Footprints…​, or by clicking the Footprint Assignment Tool icon icon in the top toolbar.

9.3.1. Footprint Assignment Tool Overview

The image below shows the main window of the Footprint Assignment Tool.

The main window of the Footprint Assignment Tool
  • The left pane contains the list of available footprint libraries associated with the project.

  • The center pane contains the list of symbols in the schematic.

  • The right pane contains the list of available footprints loaded from the project footprint libraries.

  • The bottom pane describes the filters that have been applied to the footprint list and prints information about the footprint selected in the rightmost pane.

The top toolbar contains the following commands:

save 24

Transfer the current footprint associations to the schematic.

library table 24

Edit the global and project footprint library tables.

icon footprint browser 24

View the selected footprint in the footprint viewer.

left 24

Select the previous symbol without a footprint association.

right 24

Select the next symbol without a footprint association.

undo 24

Undo last edit.

redo 24

Redo last edit.

auto associate 24

Perform automatic footprint association using an equivalence file.

delete association 24

Delete all footprint assignments.

module filtered list 24

Filter footprint list by footprint filters defined in the selected symbol.

module pin filtered list 24

Filter footprint list by pin count of the selected symbol.

module library list 24

Filter footprint list by selected library.

The following table lists the keyboard commands for the Footprint Assignment Tool:

Right Arrow / Tab

Activate the pane to the right of the currently activated pane. Wrap around to the first pane if the last pane is currently activated.

Left Arrow

Activate the pane to the left of the currently activated pane. Wrap around to the last pane if the first pane is currently activated.

Up Arrow

Select the previous item of the currently selected list.

Down Arrow

Select the next item of the currently selected list.

Page Up

Select the item one full page upwards of the currently selected item.

Page Down

Select the item one full page downwards of the currently selected item.

Home

Select the first item of the currently selected list.

End

Select the last item of the currently selected list.

9.3.2. Manually Assigning Footprints with the Footprint Assignment Tool

To manually associate a footprint with a component, first select a component in the component (middle) pane. Then select a footprint in the footprint (right) pane by double-clicking on the name of the desired footprint. The footprint will be assigned to the selected component, and the next component without an assigned footprint is automatically selected.

Note
If no footprints appear in the footprint pane, check that the footprint filter options are correctly applied.

When all components have footprints assigned to them, click the OK button to save the assignments and exit the tool. Alternatively, click Cancel to discard the updated assignments, or Apply, Save Schematic & Continue to save the new assignments without exiting the tool.

Filtering the Footprint List

There are four filtering options which restrict which footprints are displayed in the footprint pane. The filtering options are enabled and disabled with three buttons and a textbox in the top toolbar.

  • module filtered list 24: Activate filters that can be defined in each symbol. For example, an opamp symbol might define filters that show only SOIC and DIP footprints.

  • module pin filtered list 24: Only show footprints that match the selected symbol’s pin count.

  • module library list 24: Only show footprints from the library selected in the left pane.

  • Entering text in the textbox hides footprints that do not match the text. This filter is disabled when the box is empty.

When all filters are disabled, the full footprint list is shown.

The applied filters are described in the bottom pane of the window, along with the number of footprints that meet the selected filters. For example, when the symbol’s footprint filters and pin count filters are enabled, the bottom pane prints the footprint filters and pin count:

Filter details when symbol footprint filters and pin count filter are enabled

Multiple filters can be used at once to help narrow down the list of possibly appropriate footprints in the footprint pane. The symbols in KiCad’s standard library define footprint filters that are designed to be used in combination with the pin count filter.

9.3.3. Automatically Assigning Footprints with the Footprint Assignment Tool

The Footprint Assignment Tool allows you to store footprint assignments in an external file and load the assignments later, even in a different project. This allows you to automatically associate symbols with the appropriate footprints.

The external file is referred to as an equivalence file, and it stores a mapping of a symbol value to a corresponding footprint. Equivalence files typically use the .equ file extension. Equivalence files are plain text files with a simple syntax, and must be created by the user using a text editor. The syntax is described below.

You can select which equivalence files to use by clicking PreferencesManage Footprint Association Files in the Footprint Assignment Tool.

Managing equivalence files
  • Add new equivalence files by clicking the Add button.

  • Remove the selected equivalence file by clicking the Remove button.

  • Change the priority of equivalence files by clicking the Move Up and Move Down buttons. If a symbol’s value is found in multiple equivalence files, the footprint from the last matching equivalence file will override earlier equivalence files.

  • Open the selected equivalence file by clicking the Edit File button.

Relevant environment variables are shown at the bottom of the window. When the Relative path option is checked, these environment variables will automatically be used to make paths to selected equivalence files relative to the project or footprint libraries.

Once the desired equivalence files have been loaded in the correct order, automatic footprint association can be performed by clicking the Perform automatic footprint assignment icon button in the top toolbar of the Footprint Assignment Tool.

All symbols with a value found in a loaded equivalence file will have their footprints automatically assigned. However, symbols that already have footprints assigned will not be updated.

Equivalence File Format

Equivalence files consist of one line for each symbol value. Each line has the following structure:

'<symbol value>' '<footprint library>:<footprint name>'

Each name/value must be surrounded by single quotes (') and separated by one or more spaces. Lines starting with # are comments.

For example, if you want all symbols with the value LM4562 to be assigned the footprint Package_SO:SOIC-8_3.9x4.9_P1.27mm, the line in the equivalence file should be:

'LM4562' 'Package_SO:SOIC-8_3.9x4.9_P1.27mm'

Here is an example equivalence file:

#regulators 'LP2985LV' 'Package_TO_SOT_SMD:SOT-23-5_HandSoldering' ```

==== Viewing the Current Footprint

The Footprint Assignment Tool contains a footprint viewer. Clicking the image:images/icons/icon_footprint_browser_24.png[footprint viewer icon] button in the top toolbar launches the footprint viewer and shows the selected footprint.

image::images/en/footprint_view.png[scaledwidth="90%", alt="Viewing a footprint"]

The top toolbar contains the following commands:

[width="90%", cols="10%,90%"]
|=======================================================================
|image:images/icons/refresh_24.png[]
|Refresh view
|image:images/icons/zoom_in_24.png[]
|Zoom in

|image:images/icons/zoom_out_24.png[]
|Zoom out

|image:images/icons/zoom_fit_in_page_24.png[]
|Zoom to fit drawing in display area

|image:images/icons/shape_3d_24.png[]
|Show 3D viewer
|=======================================================================

The left toolbar contains the following commands:

[width="90%", cols="10%,90%"]
|=======================================================================
|image:images/icons/cursor_24.png[]
|Use the select tool

|image:images/icons/measurement_24.png[]
|Interactively measure between two points

|image:images/icons/grid_24.png[]
|Display grid dots or lines

|image:images/icons/polar_coord_24.png[]
|Switch between polar and cartesian coordinate systems

|image:images/icons/unit_inch_24.png[]
|Use inches

|image:images/icons/unit_mil_24.png[]
|Display coordinates in mils (1/1000 of an inch)

|image:images/icons/unit_mm_24.png[]
|Display coordinates in millimeters

|image:images/icons/cursor_shape_24.png[]
|Toggle display of full-window crosshairs

|image:images/icons/pad_number_24.png[]
|Toggle between drawing pads in sketch or normal mode

|image:images/icons/pad_sketch_24.png[]
|Toggle between drawing pads in normal mode or outline mode

|image:images/icons/text_sketch_24.png[]
|Toggle between drawing text in normal mode or outline mode

|image:images/icons/show_mod_edge_24.png[]
|Toggle between drawing graphic lines in normal mode or outline mode
|=======================================================================

===== Viewing the Current 3D Model
Clicking the image:images/icons/shape_3d_24.png[3D Viewer icon] button opens the footprint in the 3D model viewer.

NOTE: If a 3D model does not exist for the current footprint, only the footprint itself will be shown in the 3D Viewer.

image::images/en/3d_window.png[scaledwidth="90%", alt="3D-Model view"]

The 3D Viewer is described in the xref:../pcbnew/pcbnew_inspecting.adoc#threed-viewer[PCB Editor manual].


:experimental:

[[erc]]
== Verifikasi Desain dengan _Electrical Rules Check_

=== Pengenalan

The Electrical Rules Check (ERC) tool performs an automatic check of your schematic. The ERC checks for any errors in your sheet, such as unconnected pins, unconnected hierarchical symbols, shorted outputs, etc. ERC output is reported as errors or warnings depending on the severity of the issue detected.

Naturally, an automatic check is not infallible, and it is not possible to detect all design errors. Such a check is still very useful, because it allows you to detect many oversights and small errors. All detected issues should be checked and addressed before proceeding.

The quality of the ERC is directly related to the care taken in declaring electrical pin properties during symbol library creation.

image::images/en/dialog_erc.png[alt="ERC dialog", scaledwidth="70%"]

[[how-to-use-erc]]
=== Penggunaan ERC

ERC can be started by clicking on the icon image:images/icons/erc_24.png[ERC icon].

Akan muncul penanda pada elemen skematik yang menyebabkan kesalahan ERC (pin atau label).

[NOTE]
====
* Pada kotak dialog ini, saat Anda melakukan klik pada pesan kesalahan, Anda akan diarahkan ke penanda yang terkait pada skematik.
* Pada skematik, klik-kanan pada penanda untuk mengakses pesan hasil pemeriksaan yang terkait.
====

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

image::images/erc_ignore_warning.png[alt="Ignore ERC warning", scaledwidth="70%"]

[[example-of-erc]]
=== Contoh ERC

image::images/erc_pointers.png[alt="ERC pointers", scaledwidth="70%"]

Pada gambar di atas, Anda bisa melihat adanya empat kesalahan:

* Dua keluaran telah tersambung secara tidak sengaja (tanda panah warna merah).
* Dua masukan belum tersambung (tanda panah warna hijau).
* Terdapat kesalahan pada _port power_ tersembunyi, dimana tidak ada bendera _power_ (tanda panah warna hijau di atas).

[[displaying-diagnostics]]
=== Menampilkan Hasil Pemeriksaan

Klik-kanan pada penanda kesalahan. Akan muncul menu _pop-up_ untuk mengakses kotak dialog hasil pemeriksaan ERC.

image::images/en/erc_pointers_info.png[alt="ERC pointers info", scaledwidth="70%"]

Klik 'Marker Error Info' untuk menampilkan deskripsi kesalahan.

image::images/erc_pointers_message.png[alt="ERC pointers message", scaledwidth="80%"]

[[power-pins-and-power-flags]]
=== Pin dan Bendera _Power_

It is common to have an error or a warning on power pins, as shown in the example above, even though all seems normal. This happens in designs where the power is provided through connectors or other components that are not marked as power sources (unlike a regulator output, which is represented by a Power Out pin). Therefore ERC won't detect any Power Out pin connected to the net and will determine it is not driven by a power source.

To avoid this warning, connect the net to `PWR_FLAG` symbol on such a power net as shown in the following example. The `PWR_FLAG` symbol is found in the `power` symbol library. Alternatively, connect any power output pin to the net; `PWR_FLAG` is simply a symbol with a single power output pin.

image::images/eeschema_power_pins_and_flags.png[alt="Power pins and flags", scaledwidth="70%"]

Penanda kesalahan akan menghilang.

Ground nets often need a `PWR_FLAG` as well, because voltage regulators have outputs declared as power outputs, but their ground pins are typically marked as power inputs. Therefore grounds can appear unconnected to a source unless a `PWR_FLAG` symbol is used.

[[configuration]]
=== Konfigurasi

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

image::images/eeschema_erc_options.png[alt="Schematic ERC Pin Conflicts Map", scaledwidth="70%"]

Aturan dapat diubah dengan melakukan klik pada kotak yang diinginkan pada matriks. Pilihan yang tersedia adalah 'normal', 'warning', dan 'error'.

image::images/eeschema_erc_severity.png[alt="Schematic ERC severity settings", scaledwidth="70%"]
The _Violation Severity_ panel in Schematic Setup lets you configure what types of ERC messages should be reported as Errors, Warnings or ignored.

[[erc-report-file]]
=== Berkas Laporan ERC

Berkas laporan ERC dapat dibuat dan disimpan dengan memilih opsi 'Write ERC report'. Ekstensi berkas untuk laporan ERC adalah `.erc`. Berikut adalah contoh dari berkas laporan ERC.

----------------------------------------------------------------------
ERC control (4/1/1997-14:16:4)

***** Sheet 1 (INTERFACE UNIVERSAL)
ERC: Warning Pin input Unconnected @ 8.450, 2.350
ERC: Warning passive Pin Unconnected @ 8.450, 1.950
ERC: Warning: BiDir Pin connected to power Pin (Net 6) @ 10.100, 3.300
ERC: Warning: Power Pin connected to BiDir Pin (Net 6) @ 4.950, 1.400

>> Errors ERC: 4
----------------------------------------------------------------------

:experimental:

[[schematic-to-pcb]]
== Transfer Schematic to PCB

=== Gambaran Umum
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 **Tools** -> **Update PCB from Schematic** (kbd:[F8]) in both the schematic and board editors. You can also use the image:images/icons/update_pcb_from_sch_24.png[Update PCB from Schematic icon] icon in the top toolbar of the Board Editor.

NOTE: 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.

image::images/update_pcb_from_schematic.png[alt="Update PCB from schematic", scaledwidth="70%"]

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.

=== Options

The tool has several options to control its behavior.

[cols="1,2"]
|===
| 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.
|===

:experimental:

[[plot-and-print]]
== _Plot_ dan Cetak

=== Pengenalan

Anda bisa mengakses perintah cetak dan _plot_ melalui menu 'File'.

image::images/eeschema_file_menu_plot.png[alt="eeschema_file_menu_plot_png", scaledwidth="60%"]

The supported output formats are Postscript, PDF, SVG, DXF and HPGL. You can also directly print to your printer.

[[common-printing-commands]]
=== Perintah Pencetak Umum

'Plot Current Page':: Mencetak hanya satu berkas untuk lembar kerja yang saat ini dibuka.

'Plot All Pages':: Mencetak _plot_ untuk keseluruhan hirarki (akan dibuat satu berkas cetak untuk setiap lembar kerja).

[[plot-in-postscript]]
=== _Plot_ dalam Format Postscript

Perintah berikut akan menghasilkan berkas PostScript.

image::images/eeschema_plot_postscript.png[alt="eeschema_plot_postscript_png", scaledwidth="70%"]

Nama berkas yang dihasilkan akan menggunakan nama lembar kerja dengan ekstensi `.ps`. Anda bisa menonaktifkan opsi "'Plot border and title block'". Hal ini berguna jika Anda ingin membuat sebuah berkas Postscript sebagai enkapsulasi (format `.eps`) yang kadang digunakan untuk memasukkan sebuah diagram ke dalam perangkat lunak pengolah kata. Kotak 'Messages' akan menampilkan nama berkas yang berhasil dibuat.

[[plot-in-pdf]]
=== _Plot_ dalam Format PDF

image::images/eeschema_plot_pdf.png[alt="eeschema_plot_pdf.png", scaledwidth="70%"]

Anda bisa membuat berkas _plot_ menggunakan format PDF. Nama berkas yang dihasilkan akan menggunakan nama lembar kerja, dengan ekstensi `.pdf`.

[[plot-in-svg]]
=== _Plot_ dalam Format SVG

image::images/eeschema_plot_svg.png[alt="eeschema_plot_svg_png", scaledwidth="70%"]

Anda bisa membuat berkas _plot_ menggunakan format vektor SVG. Nama berkas yang dihasilkan akan menggunakan nama lembar kerja, dengan ekstensi `.svg`.

[[plot-in-dxf]]
=== _Plot_ dalam Format DXF

image::images/eeschema_plot_dxf.png[alt="eeschema_plot_dxf_png", scaledwidth="70%"]

Anda bisa membuat berkas _plot_ menggunakan format DXF. Nama berkas yang dihasilkan akan menggunakan nama lembar kerja dengan ekstensi `.dxf`.

[[plot-in-hpgl]]
=== _Plot_ dalam Format HPGL

Perintah ini akan menghasilkan sebuah berkas HPGL. Dalam format ini, Anda dapat menentukan:

* Ukuran halaman.
* Pangkal halaman (_origin_).
* Lebar pena (dalam mm).

Berikut tampilan kotak dialog pengaturan _plotter_:

image::images/eeschema_plot_hpgl.png[alt="eeschema_plot_hpgl_png", scaledwidth="70%"]

Nama berkas yang dihasilkan akan menggunakan nama lembar kerja dengan ekstensi `.plt`.

[[sheet-size-selection]]
==== Pemilihan Ukuran Lembar Kerja

Umumnya, ukuran halaman akan menyesuaikan ukuran lembar kerja. Pada kasus ini, akan digunakan ukuran lembar kerja yang dipilih pada pengaturan blok judul, dan skala yang dipilih adalah 1. Jika dipilih ukuran lembar kerja yang lain (A4 dengan A0, atau A dengan E), maka skala akan diatur secara otomatis untuk mengisi halaman.

[[offset-adjustments]]
==== Pengaturan _Offset_

Untuk semua ukuran standar, Anda dapat mengatur _offset_ untuk memposisikan gambar seakurat mungkin di posisi tengah. Karena mesin _plotter_ memiliki titik pangkal (_origin_) di tengah atau di sudut kiri bawah lembar kerja, kita perlu mengatur _offset_ agar hasil _plot_ sesuai keinginan kita.

Secara umum:

* Untuk mesin _plotter_ yang memiliki titik pangkal di tengah lembar kerja, maka _offset_ harus bernilai negatif dan diatur setengah dari ukuran lembar kerja.
* Untuk mesin _plotter_ yang memiliki titik pangkal di sudut kiri bawah lembar kerja, maka _offset_ harus bernilai 0.

Untuk mengatur _offset_:

* Pilih ukuran lembar kerja.
* Atur _offset_ X dan _offset_ Y.
* Klik untuk menerapkan pengaturan.

[[print-on-paper]]
=== Mencetak di Kertas

This command, available via the icon image:images/icons/print_button_24.png[Print icon], allows you to visualize and generate design files for the standard printer.

image::images/print_dialog.png[alt="print_dialog_png", scaledwidth="50%"]

Opsi "'Print sheet reference and title block'" akan mengaktifkan atau menonaktifkan referensi lembar kerja dan blok judul.

Opsi "'Print in black and white'" akan mengatur hasil cetak dengan warna monokrom. Opsi ini diperlukan jika Anda menggunakan mesin cetak laser hitam putih, karena warna selain itu akan dicetak secara buram atau abu-abu, sehingga terkadang sulit dibaca.

:experimental:

[[symbol-editor]]
== Symbol Editor

[[general-information-about-symbol-libraries]]
=== Informasi Umum

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.

[[symbol-library-overview]]
=== Tentang Pustaka Simbol

Suatu pustaka simbol memiliki satu atau lebih simbol. Secara umum, simbol dikelompokkan berdasarkan fungsi, jenis, dan/atau manufaktur.

Sebuah simbol terdiri dari:

* 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.
* Atribut-atribut seperti referensi, nilai, nama _footprint_ yang terkait untuk desain PCB, dsb.

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.

Desain simbol yang baik memerlukan hal-hal sebagai berikut:

* Menentukan apakah simbol perlu dibuat dalam bentuk lebih dari satu bagian.
* Defining if the symbol has an alternate body style (also known as a De Morgan representation).
* Membuat desain representasi simbolis menggunakan garis, persegi, lingkaran, poligon, dan teks.
* Menambahkan pin dengan mendefinisikan secara teliti setiap elemen grafis pin, nama, penomoran, dan properti elektrikal (_input_, _output_, _tri-state_, _power port_, dsb).
* Determining if the symbol should be derived from another symbol with the same graphical design and pin definition.
* Menambahkan atribut opsional seperti nama _footprint_ yang digunakan oleh perangkat lunak desain PCB, dan/atau menentukan bagian-bagian yang perlu ditampilkan.
* Mendokumentasikan simbol dengan menambahkan deskripsi dan tautan ke lembar data, dsb.
* Menyimpan ke dalam pustaka yang diinginkan.

[[symbol-library-editor-overview]]
=== Tentang Editor Pustaka Simbol

Tampilan jendela utama editor pustaka simbol ditunjukkan pada gambar di bawah ini. Editor ini terdiri dari tiga bilah alat yang digunakan untuk mengakses secara cepat fitur-fitur umum, dan satu area untuk melihat/mengedit simbol. Tidak semua perintah tersedia pada bilah alat, namun dapat diakses melalui menu.

image::images/libedit_main_window.png[alt="Symbol Editor main window", scaledwidth="95%"]

[[main-toolbar]]
==== Bilah Alat Utama

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.

image::images/toolbar_libedit.png[alt="Symbol Editor toolbar", scaledwidth="95%"]

[width="100%", cols="20%,80%"]
|=======================================================================
|image:images/icons/new_component_24.png[New symbol icon]
|Create a new symbol in the selected library.

|image:images/icons/save_24.png[Save icon]
|Save the currently selected library. All modified symbols in the library will
be saved.

|image:images/icons/undo_24.png[Undo icon]
|Undo last edit.

|image:images/icons/redo_24.png[Redo icon]
|Redo last undo.

|image:images/icons/refresh_24.png[Refresh icon]|Refresh display.

|image:images/icons/zoom_in_24.png[Zoom in icon]|Zoom in.

|image:images/icons/zoom_out_24.png[Zoom out icon]|Zoom out.

|image:images/icons/zoom_fit_in_page_24.png[Zoom to fit page icon]|Zoom to fit symbol in display.

|image:images/icons/zoom_selection_24.png[Zoom to selection icon]|Zoom to fit selection.

|image:images/icons/rotate_ccw_24.png[Rotate counterclockwise icon]|Rotate counter-clockwise.

|image:images/icons/rotate_cw_24.png[Rotate clockwise icon]|Rotate clockwise.

|image:images/icons/mirror_h_24.png[Mirror horizontally icon]|Mirror horizontally.

|image:images/icons/mirror_v_24.png[Mirror vertically icon]|Mirror vertically.

|image:images/icons/part_properties_24.png[Symbol properties icon]
|Edit the current symbol properties.

|image:images/icons/pin_table_24.png[Pin table icon]
|Edit the symbol's pins in a tablular interface.

|image:images/icons/datasheet_24.png[Datasheet icon]
|Open the symbol's datasheet. The button will be disabled if no datasheet is
defined for the current symbol.

|image:images/icons/erc_24.png[ERC icon]
|Test the current symbol for design errors.

|image:images/icons/morgan1_24.png[Normal body style icon]
|Select the normal body style. The button is disabled if the current
symbol does not have an alternate body style.

|image:images/icons/morgan2_24.png[Alternate body style icon]
|Select the alternate body style. The button is disabled if the current
symbol does not have an alternate body style.

|image:images/toolbar_libedit_part.png[alt="Unit dropdown",width="80%"]
|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.

|image:images/icons/pin2pin_24.png[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
interchangeable units and cannot be enabled for symbols with only one unit.

|image:images/icons/add_symbol_to_schematic_24.png[Add symbol to schematic icon]
Insert current symbol into schematic.

|=======================================================================

[[element-toolbar]]
==== Bilah Alat Elemen

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.

[width="100%", cols="10%,90%"]
|=======================================================================
|image:images/icons/cursor_24.png[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.

|image:images/icons/pin_24.png[Pin icon]
|Pin tool. Left-click to add a new pin.

|image:images/icons/text_24.png[Text icon]
|Graphical text tool. Left-click to add a new graphical text item.

|image:images/icons/add_rectangle_24.png[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.

|image:images/icons/add_circle_24.png[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.

|image:images/icons/add_arc_24.png[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.

|image:images/icons/add_line_24.png[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.

|image:images/icons/anchor_24.png[Anchor icon]
|Anchor tool. Left-click to set the anchor position of the symbol.

|image:images/icons/delete_cursor_24.png[Delete icon]
|Delete tool. Left-click to delete an object from the current symbol.
|=======================================================================

[[options-toolbar]]
==== Bilah Alat Opsi

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

[width="100%", cols="10%,90%"]
|=======================================================================
|image:images/icons/grid_24.png[Grid icon]
|Toggle grid visibility on and off.

|image:images/icons/unit_inch_24.png[Inch unit icon]
|Set units to inches.

|image:images/icons/unit_mil_24.png[Millimeter unit icon]
|Set units to mils (0.001 inch).

|image:images/icons/unit_mm_24.png[Millimeter unit icon]
|Set units to millimeters.

|image:images/icons/cursor_shape_24.png[Cursor shape icon]
|Toggle full screen cursor on and off.

|image:images/icons/pin_show_etype_24.png[Show pintype icon]
|Toggle display of pin electrical types.

|image:images/icons/search_tree_24.png[Symbol tree icon]
|Toggle display of libraries and symbols.
|=======================================================================

[[library-selection-and-maintenance]]
=== Pemilihan dan Pemeliharaan Pustaka

The selection of the current library is possible via the image:images/icons/search_tree_24.png[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.

[[select-and-save-a-symbol]]
==== Memilih dan Menyimpan Simbol

[[symbol-selection]]
===== Pemilihan Simbol

Clicking the image:images/icons/search_tree_24.png[Symbol tree icon] icon on the left tool bar toggles the treeview of libraries and symbols. Clicking on a symbol opens that symbol.

[NOTE]
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.

[[save-a-symbol]]
===== Menyimpan Simbol

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 image:images/icons/save_24.png[Save icon] icon. The modifications will be written to the existing symbol.

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

To save the symbol changes to a new symbol, click **File** -> **Save 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 **File** -> **Export** -> **Symbol...**. This file will be a standard library file which will contain only one symbol.

[[creating-library-symbols]]
=== Membuat Simbol Pustaka

[[create-a-new-symbol]]
==== Membuat Simbol Baru

A new symbol can be created by clicking the image:images/icons/new_component_24.png[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, Symbol Properties window>>.

image::images/eeschema_new_symbol_properties.png[alt="New symbol properties", scaledwidth="50%"]

Simbol yang baru akan dibuat menggunakan properti di atas, dan akan muncul pada layar editor seperti gambar di bawah ini.

image::images/eeschema_libedit_new.png[alt="Newly created symbol", scaledwidth="95%"]

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 image:images/icons/anchor_24.png[Anchor icon] icon and clicking on the new desired anchor position.

[[create-a-symbol-from-another-symbol]]
==== Membuat Simbol dari Simbol yang Lain

Terkadang, simbol yang ingin Anda buat berbentuk mirip dengan simbol yang sudah ada di pustaka. Anda dapat memuat dan memodifikasi simbol yang sudah ada dengan mudah.

* Muat simbol yang akan digunakan sebagai titik mulai.
* Save a new copy of the symbol using **File** -> **Save As...**. The Save As dialog will prompt for a name for the new symbol and the library to save it in.
* Edit simbol baru sesuai keinginan Anda.
* Save the modified symbol.

[[symbol-properties]]
==== Properti Simbol

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 image:images/icons/part_properties_24.png[Symbol properties icon] icon to show the dialog below.

image::images/eeschema_properties_for_symbol.png[alt="Properti Simbol", scaledwidth="60%"]

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.

Contoh di bawah ini menampilkan sebuah simbol dengan opsi "'Place pin name inside'" dicentang. Perhatikan posisi dari nama dan nomor pin.

image::images/eeschema_uncheck_pin_name_inside.png[alt="Place pin name inside unchecked", scaledwidth="95%"]

[[symbol-name-description-and-keywords]]
===== 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.

image::images/eeschema_add_symbol_search_description.png[alt="Searching for a symbol in the add a symbol dialog", scaledwidth="65%"]

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]]
===== 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`.

image::images/eeschema_libedit_footprint.png[alt="Footprint filters", scaledwidth="70%"]

[[symbols-with-alternate-symbolic-representation]]
==== Simbol dengan Representasi Simbolis Alternatif

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 image:images/icons/morgan1_24.png[Normal representation icon] icon.

To edit the alternate representation, click on the image:images/icons/morgan2_24.png[Alternate representation icon] icon. Use the image:images/toolbar_libedit_alias.png[images/toolbar_libedit_part.png] dropdown shown below to select the unit you wish to edit.

image::images/eeschema_libedit_select_unit.png[alt="Selecting a symbol unit", scaledwidth="80%"]

[[graphical-elements]]
=== Elemen Grafis

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

* Garis dan poligon, didefinisikan oleh titik awal dan titik akhir.
* Persegi, didefinisikan oleh dua sudut diagonal.
* Lingkaran, didefinisikan oleh titik tengah dan radius.
* Busur, didefinisikan oleh titik mulai dan titik akhir busur dan titik tengahnya. Busur bisa memiliki sudut 0° hingga 180°.

Bilah alat vertikal di sebelah kanan jendela utama berguna untuk meletakkan semua elemen grafis yang diperlukan untuk mendesain tampilan sebuah simbol.

[[graphical-element-membership]]
==== Keanggotaan Elemen Grafis

Setiap elemen grafis (garis, busur, lingkaran, dsb) dapat didefinisikan sebagai bentuk umum untuk keseluruhan bagian dan/atau gaya bentuk atau spesifik untuk bagian dan/atau gaya bentuk tertentu. Opsi-opsi elemen dapat diakses dengan klik-kanan pada elemen untuk menampilkan menu konteks elemen yang dipilih. Gambar di bawah menampilkan menu konteks untuk elemen garis.

image::images/eeschema_libedit_context_menu.png[alt="Graphic line context menu", scaledwidth="80%"]

Anda juga bisa melakukan klik-ganda pada sebuah elemen untuk mengubah propertinya. Gambar di bawah menampilkan dialog properti untuk elemen poligon.

image::images/eeschema_libedit_polyline_properties.png[alt="Graphic line properties", scaledwidth="50%"]

Properti dari suatu elemen grafis antara lain:

* "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.

[[graphical-text-elements]]
==== Elemen Teks Grafis

The image:images/icons/text_24.png[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.

[[multiple-units-per-symbol-and-alternate-body-styles]]
=== Simbol dengan Beberapa Bagian dan Gaya Bentuk Alternatif

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]]
==== 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.

image::images/eeschema_libedit_not_interchangeable.png[alt="Uncheck all units are interchangeable", scaledwidth="60%"]

===== Unit A

image::images/eeschema_libedit_unit1.png[alt="Relay unit A", scaledwidth="45%"]

===== Unit B

image::images/eeschema_libedit_unit2.png[alt="Relay unit B", scaledwidth="45%"]

===== Unit C

image::images/eeschema_libedit_unit3.png[alt="Relay unit C", scaledwidth="45%"]

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

NOTE: "Synchronized Pins Edit Mode" can be enabled by clicking the image:images/icons/pin2pin_24.png[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.

[[graphical-symbolic-elements]]
===== Elemen Simbolis Grafis

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.

image::images/eeschema_libedit_disable_common.png[alt="Disable common to all units in symbol", scaledwidth="70%"]

[[pin-creation-and-editing]]
=== Membuat dan Mengedit Pin

You can click on the image:images/icons/pin_24.png[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.

[[pin-overview]]
==== Tentang Pin

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.

Catatan penting:

* 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 [overline]#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]]
==== Properti Pin

image::images/eeschema_libedit_pin_properties.png[alt="Pin properties", scaledwidth="95%"]

Kotak dialog properti pin digunakan untuk mengedit karakteristik dari sebuah pin. Kotak dialog ini akan muncul secara otomatis ketika Anda membuat sebuah pin atau melakukan klik-ganda pada pin yang sudah ada. Kotak dialog ini dapat digunakan untuk mengubah:

* The pin name and text size.
* The pin number and text size.
* The pin length.
* The pin electrical type and graphical style.
* Keanggotaan pada bagian dan representasi alternatif.
* Pin visibility.
* <<alternate-pin-definitions,Alternate pin definitions>>.

[[pin-graphic-styles]]
==== 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.

image::images/eeschema_libedit_pin_properties_style.png[alt="Pin graphic styles", scaledwidth="95%"]

[[pin-electrical-types]]
==== Tipe Elektrikal Pin

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.

[width="100%", cols="25%,75%"]
|=======================================================================
| Pin Type | Description
| Input | A pin which is exclusively an input.
| Output | A pin which is exclusively an output.
| Bidirectional | A pin that can be either an input or an output, such as a
microcontroller data bus pin.
| Tri-state | A three state output pin (high, low, or high impedance)
| Passive | A passive symbol pin: resistors, connectors, etc.
| Free | A pin that can be freely connected to any other pin without electrical
concerns.
| Unspecified | 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 <<creating-power-ports, 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.
| Unconnected | A pin that should not be connected to anything.
|=======================================================================

[[pushing-pin-properties-to-other-pins]]
==== 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.

image::images/eeschema_libedit_pin_context_menu.png[alt="Pin context menu", scaledwidth="60%"]

[[defining-pins-for-multiple-units-and-alternate-symbolic-representations]]
==== Mendefinisikan Pin untuk Banyak Bagian dan Representasi Simbolis Alternatif

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 image:images/icons/pin2pin_24.png[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 image:images/icons/morgan2_24.png[Alternate representation icon] button on the tool bar. To edit the pin number for each unit, select the appropriate unit using the image:images/toolbar_libedit_alias.png[images/toolbar_libedit_alias.png] drop down control.

[[pin-table]]
==== Pin Table

Another way to edit pins is to use the Pin Table, which is accessible via the image:images/icons/pin_table_24.png[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 image:images/icons/small_plus_16.png[Plus icon] and image:images/icons/small_trash_16.png[Trash icon] icons, respectively.

NOTE: 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.

image::images/eeschema_libedit_pin_table.png[alt="Pin table", scaledwidth="95%"]

[[alternate-pin-definitions]]
==== 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.

image::images/eeschema_libedit_alternate_pin_definitions.png[alt="Alternate pin definitions", scaledwidth="60%"]

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.

image::images/eeschema_alternate_pin_assignment_selection.png[alt="Selecting an alternate pin definition", scaledwidth="60%"]

[[symbol-fields]]
=== Atribut-atribut Simbol

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.

NOTE: 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.

[[editing-symbol-fields]]
==== Mengedit Atribut Simbol

Untuk mengedit atribut simbol yang sudah ada, klik-kanan pada teks atribut untuk menampilkan menu konteks atribut seperti ditunjukkan pada gambar di bawah ini.

image::images/eeschema_libedit_field_context_menu.png[alt="Symbol field context menu", scaledwidth="35%"]

To add new fields, delete optional fields, or edit existing fields, use the image:images/icons/part_properties_24.png[Component properties icon] icon on the main tool bar to open the <<symbol-properties,Symbol Properties dialog>>.

Fields are text information associated a the symbol. Do not confuse them with text in the graphic representation of a symbol.

Catatan penting:

* 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`.

[[creating-power-ports]]
=== 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.

image::images/eeschema_power_port_example.png[alt="Power port example", scaledwidth="60%"]

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.

image::images/eeschema_libedit_power_symbol.png[alt="Editing a power symbol", scaledwidth="95%"]

==== 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.

NOTE: 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.

image::images/eeschema_libedit_power_symbol_pin.png[alt="Power symbol pin", scaledwidth="60%"]

Untuk membuat sebuah simbol _power_, lakukan langkah-langkah berikut:

* 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, <<creating-a-symbol-from-another-symbol,as described earlier>>.

NOTE: 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.

:experimental:

[[viewlib]]
== Peramban Pustaka Simbol

=== Pengenalan

The Symbol Library Browser allows you to quickly examine the content of symbol libraries. The Symbol Library Viewer can be accessed by clicking image:images/icons/library_browser_24.png[Library viewer icon] icon on the main toolbar, **View** -> **Symbol Library Browser...**, or clicking **Select With Browser** in the "Choose Symbol" window.

image::images/eeschema_viewlib_choose.png[alt="eeschema_viewlib_choose_png", scaledwidth="60%"]

[[viewlib---main-screen]]
=== Viewlib - Tampilan Utama

image::images/eeschema_viewlib_select_library.png[alt="eeschema_viewlib_select_library_png", scaledwidth="95%"]

Untuk memeriksa isi pustaka, pilih satu pustaka dari daftar pada panel sebelah kiri. Semua simbol pada pustaka yang dipilih akan ditampilkan pada panel kedua. Pilh nama simbol untuk melihat simbol tersebut.

image::images/eeschema_viewlib_select_component.png[alt="eeschema_viewlib_select_component_png", scaledwidth="95%"]

[[viewlib-top-toolbar]]
=== Bilah Alat Atas pada Peramban Pustaka Simbol

Bilah alat atas pada Peramban Pustaka Simbol ditampilkan pada gambar di bawah.

image::images/toolbar_viewlib.png[alt="images/toolbar_viewlib.png", scaledwidth="95%"]

The available commands are:

[width="100%", cols="20%,80%"]
|=======================================================================
|image:images/icons/library_browser_24.png[Symbol selection icon]
|Selection of the symbol which can be also selected in the displayed
list.

|image:images/icons/lib_previous_24.png[Previous symbol icon]
|Display previous symbol.

|image:images/icons/lib_next_24.png[Next symbol icon]
|Display next symbol.

|image:images/icons/refresh_24.png[] image:images/icons/zoom_in_24.png[]
image:images/icons/zoom_out_24.png[] image:images/icons/zoom_fit_in_page_24.png[]
|Zoom tools.

|image:images/icons/morgan1_24.png[] image:images/icons/morgan2_24.png[]
|Selection of the representation (normal or alternate) if an alternate
representation exists.

|image:images/toolbar_viewlib_part.png[alt="images/toolbar_viewlib_part.png",width="70%"]
|Selection of the unit for symbols that contain multiple units.

|image:images/icons/datasheet_24.png[icons/datasheet_png]
|If they exist, display the associated documents.

|image:images/icons/add_symbol_to_schematic_24.png[Add symbol to schematic icon]
|Close the browser and place the selected symbol in the schematic.
|=======================================================================

:experimental:

[[create-a-netlist]]
== Membuat Netlist

=== Gambaran Umum

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:

* Perangkat lunak pembuat tata letak PCB.
* Simulator skematik dan sinyal elektrikal.
* Programmable logic (FPGA, CPLD, etc.) compilers.

KiCad supports several netlist formats:

* KiCad format, which can be imported by the KiCad PCB Editor. However, the <<eeschema_schematic_to_pcb.adoc#schematic-to-pcb,"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.

NOTE: In KiCad version 5.0 and later, it is not necessary to create a netlist for transferring a design from the schematic editor to the PCB editor. Instead, use the <<eeschema_schematic_to_pcb.adoc#schematic-to-pcb,"Update PCB from Schematic">> tool.

[[netlist-formats]]
=== Format-format Netlist

Netlists are exported with the Export Netlist dialog (**File**->**Export**->**Netlist...**).

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.

[NOTE]
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 <<adding-new-netlist-generators,the section on adding custom netlist generators>>.

==== KiCad Netlist Format

image::images/eeschema_netlist_dialog_kicad.png[alt="KiCad netlist export", scaledwidth="70%"]

The KiCad netlist exporter does not have any options.

NOTE: In KiCad version 5.0 and later, it is not necessary to create a netlist for transferring a design from the schematic editor to the PCB editor. Instead, use the <<eeschema_schematic_to_pcb.adoc#schematic-to-pcb,"Update PCB from Schematic">> tool.

==== OrCAD PCB2 Netlist Format

image::images/eeschema_netlist_dialog_orcad.png[alt="OrCAD netlist export", scaledwidth="70%"]

The OrCAD netlist exporter does not have any options.

==== CADSTAR Netlist Format

image::images/eeschema_netlist_dialog_cadstar.png[alt="CADSTAR netlist export", scaledwidth="70%"]

The CADSTAR netlist exporter does not have any options.

==== Spice Netlist Format

image::images/eeschema_netlist_dialog_spice.png[alt="Spice netlist export", scaledwidth="70%"]

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:

* `&mu;` and `M` as unit prefixes are replaced with `u` and `Meg`, respectively
* Units are removed (e.g. `4.7k&ohm;` 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 <<eeschema_simulator.adoc#simulator,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.

NOTE: 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-netlists,Spice netlist section>>.

[[netlist-examples]]
=== Contoh Netlist

Below is the schematic from the `sallen_key` project included in KiCad's simulation demos.

image::images/eeschema_netlist_schematic.png[alt="sallen_key demo schematic", scaledwidth="95%"]

The KiCad format netlist for this schematic is as follows:

----
(export (version "E")
  (design
    (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 "/")
      (title_block
        (title)
        (company)
        (rev)
        (date)
        (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 "")))))
  (components
    (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")
      (fields
        (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")
      (fields
        (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")
      (fields
        (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")
      (fields
        (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")
      (fields
        (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")
      (fields
        (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")))
  (libparts
    (libpart (lib "sallen_key_schlib") (part "C")
      (footprints
        (fp "C?")
        (fp "C_????_*")
        (fp "C_????")
        (fp "SMD*_c")
        (fp "Capacitor*"))
      (fields
        (field (name "Reference") "C")
        (field (name "Value") "C"))
      (pins
        (pin (num "1") (name "") (type "passive"))
        (pin (num "2") (name "") (type "passive"))))
    (libpart (lib "sallen_key_schlib") (part "Generic_Opamp")
      (fields
        (field (name "Reference") "U")
        (field (name "Value") "Generic_Opamp"))
      (pins
        (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")
      (footprints
        (fp "R_*")
        (fp "Resistor_*"))
      (fields
        (field (name "Reference") "R")
        (field (name "Value") "R"))
      (pins
        (pin (num "1") (name "") (type "passive"))
        (pin (num "2") (name "") (type "passive"))))
    (libpart (lib "sallen_key_schlib") (part "VSOURCE")
      (fields
        (field (name "Reference") "V")
        (field (name "Value") "VSOURCE")
        (field (name "Fieldname") "Value")
        (field (name "Spice_Primitive") "V")
        (field (name "Spice_Node_Sequence") "1 2"))
      (pins
        (pin (num "1") (name "") (type "input"))
        (pin (num "2") (name "") (type "input")))))
  (libraries
    (library (logical "sallen_key_schlib")
      (uri "/usr/share/kicad/demos/simulation/sallen_key/sallen_key_schlib.kicad_sym")))
  (nets
    (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
V2 VDD GND DC 10
V3 GND VSS DC 10
.ac dec 10 1 1Meg
.end
----


[[notes-on-netlists]]
=== Catatan Mengenai Netlist

[[netlist-name-precautions]]
==== Penamaan Netlist

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 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.

[[other-formats]]
=== Format Lain

KiCad supports custom netlist generators for exporting netlists in other formats. Some examples of netlist generators are given in the <<eeschema_creating_customized_netlists_and_bom_files.adoc#creating-customized-netlists-and-bom-files,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]]
==== Adding new netlist generators

New netlist generators are added by clicking the **Add Generator...** button.

image::images/eeschema_netlist_dialog_add_plugin.png[alt="Custom Netlist Generator", scaledwidth="40%"]

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.

[[command-line-format]]
==== Format Baris Perintah

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:

[width="100%", cols="58%,42%"]
|=======================================================================
|`xsltproc` |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>`.

|`/usr/share/kicad/plugins/netlist_form_pads-pcb.asc.xsl` |XSLT stylesheet which
determines how the output is formatted. This particular stylesheet is included
with KiCad, but custom stylesheets can also be created.

|`%I` |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.

[[intermediate-netlist-file-format]]
==== Format Berkas Netlist Antara

See the <<eeschema_creating_customized_netlists_and_bom_files.adoc#creating-customized-netlists-and-bom-files,custom netlist generators section>> for more information about netlist generators, a description of the intermediate netlist format, and some examples of netlist generators.

:experimental:

[[creating-customized-netlists-and-bom-files]]
== Membuat Netlist dan Berkas BOM Kustom

[[intermediate-netlist-file]]
=== Berkas Netlist Antara

BOM files and netlist files can be converted from an Intermediate netlist file created by KiCad.

Berkas ini menggunakan sintaks XML dan disebut sebagai Netlist antara. Netlist antara berisi sejumlah besar data mengenai papan sirkuit Anda. Maka dari itu, berkas ini bisa digunakan pasca-pemrosesan untuk membuat BOM atau berkas laporan lainnya.

Tergantung dari keluarannya (BOM atau Netlist), sejumlah berkas turunan dari Netlist antara akan digunakan pasca-pemrosesan.

[[schematic-sample]]
==== Contoh Skematik

image::images/schematic-sample.png[alt="Contoh Skematik", scaledwidth="95%"]

[[the-intermediate-netlist-file-sample]]
==== Contoh Berkas Netlist Antara

Netlist antara (menggunakan sintaks XML) yang terkait dengan sirkuit di atas ditunjukkan seperti di bawah ini.

-----------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<export version="D">
  <design>
    <source>F:\kicad_aux\netlist_test\netlist_test.sch</source>
    <date>29/08/2010 20:35:21</date>
    <tool>eeschema (2010-08-28 BZR 2458)-unstable</tool>
  </design>
  <components>
    <comp ref="P1">
      <value>CONN_4</value>
      <libsource lib="conn" part="CONN_4"/>
      <sheetpath names="/" tstamps="/"/>
      <tstamp>4C6E2141</tstamp>
    </comp>
    <comp ref="U2">
      <value>74LS74</value>
      <libsource lib="74xx" part="74LS74"/>
      <sheetpath names="/" tstamps="/"/>
      <tstamp>4C6E20BA</tstamp>
    </comp>
    <comp ref="U1">
      <value>74LS04</value>
      <libsource lib="74xx" part="74LS04"/>
      <sheetpath names="/" tstamps="/"/>
      <tstamp>4C6E20A6</tstamp>
    </comp>
    <comp ref="C1">
      <value>CP</value>
      <libsource lib="device" part="CP"/>
      <sheetpath names="/" tstamps="/"/>
      <tstamp>4C6E2094</tstamp>
    </comp>
    <comp ref="R1">
      <value>R</value>
      <libsource lib="device" part="R"/>
      <sheetpath names="/" tstamps="/"/>
      <tstamp>4C6E208A</tstamp>
    </comp>
  </components>
  <libparts>
    <libpart lib="device" part="C">
      <description>Condensateur non polarise</description>
      <footprints>
        <fp>SM*</fp>
        <fp>C?</fp>
        <fp>C1-1</fp>
      </footprints>
      <fields>
        <field name="Reference">C</field>
        <field name="Value">C</field>
      </fields>
      <pins>
        <pin num="1" name="~" type="passive"/>
        <pin num="2" name="~" type="passive"/>
      </pins>
    </libpart>
    <libpart lib="device" part="R">
      <description>Resistance</description>
      <footprints>
        <fp>R?</fp>
        <fp>SM0603</fp>
        <fp>SM0805</fp>
        <fp>R?-*</fp>
        <fp>SM1206</fp>
      </footprints>
      <fields>
        <field name="Reference">R</field>
        <field name="Value">R</field>
      </fields>
      <pins>
        <pin num="1" name="~" type="passive"/>
        <pin num="2" name="~" type="passive"/>
      </pins>
    </libpart>
    <libpart lib="conn" part="CONN_4">
      <description>Symbole general de connecteur</description>
      <fields>
        <field name="Reference">P</field>
        <field name="Value">CONN_4</field>
      </fields>
      <pins>
        <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"/>
      </pins>
    </libpart>
    <libpart lib="74xx" part="74LS04">
      <description>Hex Inverseur</description>
      <fields>
        <field name="Reference">U</field>
        <field name="Value">74LS04</field>
      </fields>
      <pins>
        <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"/>
      </pins>
    </libpart>
    <libpart lib="74xx" part="74LS74">
      <description>Dual D FlipFlop, Set &amp; Reset</description>
      <docs>74xx/74hc_hct74.pdf</docs>
      <fields>
        <field name="Reference">U</field>
        <field name="Value">74LS74</field>
      </fields>
      <pins>
        <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"/>
      </pins>
    </libpart>
  </libparts>
  <libraries>
    <library logical="device">
      <uri>F:\kicad\share\library\device.lib</uri>
    </library>
    <library logical="conn">
      <uri>F:\kicad\share\library\conn.lib</uri>
    </library>
    <library logical="74xx">
      <uri>F:\kicad\share\library\74xx.lib</uri>
    </library>
  </libraries>
  <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>
    <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>
    <net code="3" name="">
      <node ref="U2" pin="6"/>
    </net>
    <net code="4" name="">
      <node ref="U1" pin="2"/>
      <node ref="U2" pin="3"/>
    </net>
    <net code="5" name="/SIG_OUT">
      <node ref="P1" pin="2"/>
      <node ref="U2" pin="5"/>
      <node ref="U2" pin="2"/>
    </net>
    <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"/>
    </net>
  </nets>
</export>
-----------------------------------------------------------------

[[conversion-to-a-new-netlist-format]]
=== Konversi ke Format Netlist yang Baru

Dengan menerapkan sebuah penyaring pasca-pemrosesan ke berkas Netlist antara, Anda bisa membuat berkas-berkas Netlist asing, demikian pula berkas-berkas BOM. Karena proses konversi ini adalah transformasi dari teks ke teks, penyaring pasca-pemrosesan dapat dibuat menggunakan Python, XSLT, atau peralatan lainnya yang mampu mengolah masukan 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-approach]]
=== Pendekatan XSLT

Dokumen yang menjelaskan Transformasi XSL (XSLT) tersedia di alamat berikut:

*http://www.w3.org/TR/xslt*

[[create-a-pads-pcb-netlist-file]]
==== Membuat Berkas Netlist Pads-Pcb

Format pads-pcb terdiri dari dua bagian.

* Daftar _footprint_.

* Daftar _net_ : pengelompokan referensi _pad_ berdasarkan _net_.

Berikut adalah sebuah _stylesheet_ untuk mengkonversi berkas Netlist antara ke format Netlist 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:
        https://lists.launchpad.net/kicad-developers/msg05157.html
-->

<!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:text>*PADS-PCB*&nl;*PART*&nl;</xsl:text>
    <xsl:apply-templates select="components/comp"/>
    <xsl:text>&nl;*NET*&nl;</xsl:text>
    <xsl:apply-templates select="nets/net"/>
    <xsl:text>*END*&nl;</xsl:text>
</xsl:template>

<!-- for each component -->
<xsl:template match="comp">
    <xsl:text> </xsl:text>
    <xsl:value-of select="@ref"/>
    <xsl:text> </xsl:text>
    <xsl:choose>
        <xsl:when test = "footprint != '' ">
            <xsl:apply-templates select="footprint"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:text>unknown</xsl:text>
        </xsl:otherwise>
    </xsl:choose>
    <xsl:text>&nl;</xsl:text>
</xsl:template>

<!-- 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:choose>
            <xsl:when test = "@name != '' ">
                <xsl:value-of select="@name"/>
            </xsl:when>
            <xsl:otherwise>
                <xsl:text>N-</xsl:text>
                <xsl:value-of select="@code"/>
            </xsl:otherwise>
        </xsl:choose>
        <xsl:text>&nl;</xsl:text>
        <xsl:apply-templates select="node"/>
    </xsl:if>
</xsl:template>

<!-- for each node -->
<xsl:template match="node">
    <xsl:text> </xsl:text>
    <xsl:value-of select="@ref"/>
    <xsl:text>.</xsl:text>
    <xsl:value-of select="@pin"/>
    <xsl:text>&nl;</xsl:text>
</xsl:template>

</xsl:stylesheet>
-------------------------------------------------------------------------------

Dan berikut adalah berkas keluaran pads-pcb setelah menjalankan xsltproc:

------------------
*PADS-PCB*
*PART*
P1 unknown
U2 unknown
U1 unknown
C1 unknown
R1 unknown
*NET*
*SIGNAL* GND
U1.7
C1.2
U2.7
P1.4
*SIGNAL* VCC
R1.1
U1.14
U2.4
U2.1
U2.14
P1.1
*SIGNAL* N-4
U1.2
U2.3
*SIGNAL* /SIG_OUT
P1.2
U2.5
U2.2
*SIGNAL* /CLOCK_IN
R1.2
C1.1
U1.1
P1.3

*END*
------------------

Perintah untuk menjalankan konversi ini adalah:

-------------------------------------------
kicad\\bin\\xsltproc.exe -o test.net kicad\\bin\\plugins\\netlist_form_pads-pcb.xsl test.tmp
-------------------------------------------

[[create-a-cadstar-netlist-file]]
==== Membuat Berkas Netlist Cadstar

Format Cadstar terdiri dari dua bagian.

* Daftar _footprint_.

* Daftar _net_ : pengelompokan referensi _pad_ berdasarkan _net_.

Berikut adalah berkas _stylesheet_ untuk menjalankan konversi ini:

-----
<?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:text>.HEA&nl;</xsl:text>
    <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:text>&nl;&nl;</xsl:text>
    <xsl:apply-templates select="nets/net"/>          <!-- Generate list of nets and connections -->
    <xsl:text>&nl;.END&nl;</xsl:text>
</xsl:template>

 <!-- Generate line .TIM 20/08/2010 10:45:33 -->
<xsl:template match="tool">
    <xsl:text>.APP "</xsl:text>
    <xsl:apply-templates/>
    <xsl:text>"&nl;</xsl:text>
</xsl:template>

 <!-- Generate line .APP "eeschema (2010-08-17 BZR 2450)-unstable" -->
<xsl:template match="date">
    <xsl:text>.TIM </xsl:text>
    <xsl:apply-templates/>
    <xsl:text>&nl;</xsl:text>
</xsl:template>

<!-- for each component -->
<xsl:template match="comp">
    <xsl:text>.ADD_COM </xsl:text>
    <xsl:value-of select="@ref"/>
    <xsl:text> </xsl:text>
    <xsl:choose>
        <xsl:when test = "value != '' ">
            <xsl:text>"</xsl:text> <xsl:apply-templates select="value"/> <xsl:text>"</xsl:text>
        </xsl:when>
        <xsl:otherwise>
            <xsl:text>""</xsl:text>
        </xsl:otherwise>
    </xsl:choose>
    <xsl:text>&nl;</xsl:text>
</xsl:template>

<!-- 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:text>"</xsl:text>
        <xsl:choose>
            <xsl:when test = "@name != '' ">
                <xsl:value-of select="@name"/>
            </xsl:when>
            <xsl:otherwise>
                <xsl:text>N-</xsl:text>
                <xsl:value-of select="@code"/>
        </xsl:otherwise>
        </xsl:choose>
        <xsl:text>"&nl;</xsl:text>
        </xsl:variable>
        <xsl:apply-templates select="node" mode="first"/>
        <xsl:value-of select="$netname"/>
        <xsl:apply-templates select="node" mode="others"/>
    </xsl:if>
</xsl:template>

<!-- 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:text>.</xsl:text>
    <xsl:value-of select="@pin"/>
    <xsl:text> </xsl:text>
    </xsl:if>
</xsl:template>

<xsl:template match="node" mode="others">
    <xsl:choose>
        <xsl:when test='position()=1'>
        </xsl:when>
        <xsl:when test='position()=2'>
           <xsl:text>.TER     </xsl:text>
        </xsl:when>
        <xsl:otherwise>
           <xsl:text>         </xsl:text>
        </xsl:otherwise>
    </xsl:choose>
    <xsl:if test="position()>1">
        <xsl:value-of select="@ref"/>
        <xsl:text>.</xsl:text>
        <xsl:value-of select="@pin"/>
        <xsl:text>&nl;</xsl:text>
    </xsl:if>
</xsl:template>

</xsl:stylesheet>
-----

Berikut adalah berkas keluaran Cadstar.

-----
.HEA
.TIM 21/08/2010 08:12:08
.APP "eeschema (2010-08-09 BZR 2439)-unstable"
.ADD_COM P1 "CONN_4"
.ADD_COM U2 "74LS74"
.ADD_COM U1 "74LS04"
.ADD_COM C1 "CP"
.ADD_COM R1 "R"


.ADD_TER U1.7 "GND"
.TER     C1.2
         U2.7
         P1.4
.ADD_TER R1.1 "VCC"
.TER     U1.14
         U2.4
         U2.1
         U2.14
         P1.1
.ADD_TER U1.2 "N-4"
.TER     U2.3
.ADD_TER P1.2 "/SIG_OUT"
.TER     U2.5
         U2.2
.ADD_TER R1.2 "/CLOCK_IN"
.TER     C1.1
         U1.1
         P1.3

.END
-----

[[create-a-orcadpcb2-netlist-file]]
==== Membuat Berkas Netlist OrcadPCB2

Format ini hanya memiliki satu bagian saja, yaitu daftar _footprint_. Setiap _footprint_ berisi daftar _pad_ dengan referensi ke sebuah _net_.

Berikut adalah _stylesheet_ untuk konversi ini:

-----
<?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:
        https://lists.launchpad.net/kicad-developers/msg05157.html
-->

<!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"/>
<xsl:text>}&nl;</xsl:text>

<!-- Generate the list of components -->
<xsl:apply-templates select="components/comp"/>  <!-- Generate list of components -->

<!-- end of file -->
<xsl:text>)&nl;*&nl;</xsl:text>
</xsl:template>

<!--
    Generate id in header like "eeschema (2010-08-17 BZR 2450)-unstable"
-->
<xsl:template match="tool">
    <xsl:apply-templates/>
</xsl:template>

<!--
    Generate date in header like "20/08/2010 10:45:33"
-->
<xsl:template match="date">
    <xsl:apply-templates/>
    <xsl:text>&nl;</xsl:text>
</xsl:template>

<!--
    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:choose>
        <xsl:when test = "tstamp != '' ">
            <xsl:apply-templates select="tstamp"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:text>00000000</xsl:text>
        </xsl:otherwise>
    </xsl:choose>
    <xsl:text> </xsl:text>
    <xsl:choose>
        <xsl:when test = "footprint != '' ">
            <xsl:apply-templates select="footprint"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:text>$noname</xsl:text>
        </xsl:otherwise>
    </xsl:choose>
    <xsl:text> </xsl:text>
    <xsl:value-of select="@ref"/>
    <xsl:text> </xsl:text>
    <xsl:choose>
        <xsl:when test = "value != '' ">
            <xsl:apply-templates select="value"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:text>"~"</xsl:text>
        </xsl:otherwise>
    </xsl:choose>
    <xsl:text>&nl;</xsl:text>
    <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:call-template>
    <xsl:text> )&nl;</xsl:text>
</xsl:template>

<!--
    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"/>
                </xsl:apply-templates>
            </xsl:if>
        </xsl:for-each>
</xsl:template>


<!--
    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
          <pins>
            <pin num="1" type="passive"/>
            <pin num="2" type="passive"/>
          </pins>
    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"/>
            </xsl:with-param>
        </xsl:apply-templates>
    </xsl:for-each>

    <!-- close line -->
    <xsl:text> )&nl;</xsl:text>
</xsl:template>

<!--
    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
      <nets>
        <net code="1" name="GND">
          <node ref="J1" pin="20"/>
              <node ref="C2" pin="2"/>
        </net>
        <net code="2" name="">
          <node ref="U2" pin="11"/>
        </net>
    </nets>
    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">
                <xsl:choose>
                    <!-- 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:when>
                    <xsl:otherwise>
                        <xsl:text>$N-0</xsl:text><xsl:value-of select="../@code"/>
                    </xsl:otherwise>
                </xsl:choose>
            </xsl:if>
            <xsl:if test = "$pin_cnt_in_net &lt;2">
                <xsl:text>?</xsl:text>
            </xsl:if>
        </xsl:if>
    </xsl:if>

</xsl:template>

</xsl:stylesheet>
-----

Berikut adalah berkas keluaran 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 )
 )
)
*
-----------------------------------------------------

[[eeschema-plugins-interface]]
==== Netlist plugins interface

Intermediate Netlist converters can be automatically launched within the Schematic Editor.

[[init-the-dialog-window-1]]
===== Membuka Kotak Dialog _Plugin_

Kita bisa menambahkan sebuah tab antarmuka _plugin_ Netlist yang baru dengan klik pada tombol 'Add Plugin'

image::images/eeschema_plugin_add_plugin.png[alt="eeschema_plugin_add_plugin_png", scaledwidth="50%"]

Berikut adalah bentuk data konfigurasi untuk tab PadsPcb:

image::images/eeschema_plugin_padspcb.png[alt="eeschema_plugin_padspcb_png", scaledwidth="80%"]

[[plugin-configuration-parameters]]
===== Parameter Konfigurasi _Plugin_

The netlist plug-in configuration dialog requires the following information:

* Judul: misalnya nama dari format Netlist.

* Perintah untuk menjalankan konverter.

Setelah Anda menekan tombol Netlist, akan terjadi hal berikut ini:

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.

[[generate-netlist-files-with-the-command-line]]
===== Membuat Berkas Netlist dengan Baris Perintah

Diasumsikan kita menggunakan program _xsltproc.exe_ untuk menerapkan _stylesheet_ ke berkas antara, maka _xsltproc.exe_ dieksekusi dengan perintah berikut:

_xsltproc.exe -o <nama berkas keluaran> <nama berkas style-sheet> <berkas XML yang akan dikonversi>_

Berikut baris perintah yang digunakan KiCad di sistem operasi Windows:

_f:/kicad/bin/xsltproc.exe -o "%O" f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"_

Di sistem operasi Linux, baris perintahnya adalah:

_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.

Baris perintah menerima parameter berikut untuk nama berkas:

Parameter yang didukung adalah:

* %B => nama berkas dan _path_ untuk berkas keluaran yang dipilih, tanpa _path_ dan ekstensi.

* %I => nama berkas lengkap dan _path_ dari berkas masukan sementara (berkas Netlist antara).

* %O => nama berkas lengkap dan _path_ untuk berkas keluaran yang dipilih.

_%I_ akan diganti dengan nama berkas antara yang sesungguhnya.

_%O_ akan diganti dengan nama berkas keluaran yang sesungguhnya.

[[command-line-format-example-for-xsltproc]]
===== Format Baris Perintah: Contoh xsltproc

Format baris perintah untuk xsltproc adalah sebagai berikut:

<path ke xsltproc> xsltproc <parameter xsltproc>

Penggunaan di Windows:

*f:/kicad/bin/xsltproc.exe -o "%O" f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"*

Penggunaan di Linux:

*xsltproc -o "%O" /usr/local/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"*

Contoh di atas mengasumsikan xsltproc terinstal pada komputer Windows dan semua berkas berada di direktori `kicad/bin`.

[[bill-of-materials-generation]]
==== Pembuatan _Bill of Materials_

Karena berkas Netlist antara berisi semua informasi mengenai komponen-komponen yang digunakan, maka kita bisa membuat BOM berdasarkan berkas tersebut. Berikut adalah tampilan jendela pengaturan _plugin_ (di Linux) untuk membuat berkas _Bill of Materials_ (BOM) kustom:

image::images/en/bom-netlist-tab.png[alt="bom-netlist-tab_png", scaledwidth="80%"]

_Path_ menuju berkas _stylesheet_ `bom2csv.xsl` tergantung pada sistem yang kita gunakan. _Stylesheet_ XSLT terbaik yang ada saat ini untuk pembuatan BOM adalah __bom2csv.xsl__. Anda bebas melakukan modifikasi sesuai kebutuhan, dan jika Anda merasa hasil modifikasi tersebut akan bermanfaat untuk orang lain, Anda bisa memasukkan hasil modifikasi tersebut sebagai bagian dari proyek KiCad.

[[command-line-format-example-for-python-scripts]]
=== Format Baris Perintah: Contoh Skrip Python

Format baris perintah untuk Python adalah sebagai berikut:

python <nama berkas skrip> <nama berkas masukan> <nama berkas keluaran>

Penggunaan di Windows:

*python *.exe f:/kicad/python/my_python_script.py "%I" "%O"*

Penggunaan di Linux:

*python /usr/local/kicad/python/my_python_script.py "%I" "%O"*

Dengan asumsi Python telah terinstal di komputer Anda.

[[intermediate-netlist-structure]]
=== Struktur Netlist Antara

Contoh berikut ini menunjukkan format berkas Netlist.

---------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<export version="D">
  <design>
    <source>F:\kicad_aux\netlist_test\netlist_test.sch</source>
    <date>29/08/2010 21:07:51</date>
    <tool>eeschema (2010-08-28 BZR 2458)-unstable</tool>
  </design>
  <components>
    <comp ref="P1">
      <value>CONN_4</value>
      <libsource lib="conn" part="CONN_4"/>
      <sheetpath names="/" tstamps="/"/>
      <tstamp>4C6E2141</tstamp>
    </comp>
    <comp ref="U2">
      <value>74LS74</value>
      <libsource lib="74xx" part="74LS74"/>
      <sheetpath names="/" tstamps="/"/>
      <tstamp>4C6E20BA</tstamp>
    </comp>
    <comp ref="U1">
      <value>74LS04</value>
      <libsource lib="74xx" part="74LS04"/>
      <sheetpath names="/" tstamps="/"/>
      <tstamp>4C6E20A6</tstamp>
    </comp>
    <comp ref="C1">
      <value>CP</value>
      <libsource lib="device" part="CP"/>
      <sheetpath names="/" tstamps="/"/>
      <tstamp>4C6E2094</tstamp>
    <comp ref="R1">
      <value>R</value>
      <libsource lib="device" part="R"/>
      <sheetpath names="/" tstamps="/"/>
      <tstamp>4C6E208A</tstamp>
    </comp>
  </components>
  <libparts/>
  <libraries/>
  <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>
    <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>
    <net code="3" name="">
      <node ref="U2" pin="6"/>
    </net>
    <net code="4" name="">
      <node ref="U1" pin="2"/>
      <node ref="U2" pin="3"/>
    </net>
    <net code="5" name="/SIG_OUT">
      <node ref="P1" pin="2"/>
      <node ref="U2" pin="5"/>
      <node ref="U2" pin="2"/>
    </net>
    <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"/>
    </net>
  </nets>
</export>
---------------------------------------------------------------

[[general-netlist-file-structure]]
==== Struktur Berkas Netlist Umum

Berkas Netlist antara terdiri dari lima bagian.

* Bagian _header_.
* Bagian komponen.
* Bagian _lib parts_.
* Bagian pustaka.
* Bagian _net_.

Isi berkas ini memiliki pembatas <export>

--------------------
<export version="D">
...
</export>
--------------------

[[the-header-section]]
==== Bagian _Header_

Bagian _header_ memiliki pembatas <design>

-----------------------------------------------------------
<design>
<source>F:\kicad_aux\netlist_test\netlist_test.sch</source>
<date>21/08/2010 08:12:08</date>
<tool>eeschema (2010-08-09 BZR 2439)-unstable</tool>
</design>
-----------------------------------------------------------

Bagian ini bisa dianggap sebagai bagian komentar.

[[the-components-section]]
==== Bagian Komponen

Bagian komponen memiliki pembatas <components>

-------------------------------------
<components>
<comp ref="P1">
<value>CONN_4</value>
<libsource lib="conn" part="CONN_4"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>4C6E2141</tstamp>
</comp>
</components>
-------------------------------------

Bagian ini berisi daftar komponen yang ada pada skematik Anda. Setiap komponen dijelaskan seperti ini:

-------------------------------------
<comp ref="P1">
<value>CONN_4</value>
<libsource lib="conn" part="CONN_4"/>
<sheetpath names="/" tstamps="/"/>
<tstamp>4C6E2141</tstamp>
</comp>
-------------------------------------

[width="100%", cols="37%,63%"]
|=======================================================================
|*libsource* |name of the lib where this component was found.

|*part* |component name inside this library.

|*sheetpath* |path of the sheet inside the hierarchy: identify the sheet
within the full schematic hierarchy.

|*tstamps (time stamps)* |time stamp of the schematic file.

|*tstamp (time stamp)* |time stamp of the component.
|=======================================================================

[[note-about-time-stamps-for-components]]
===== Catatan Mengenai Tanda Waktu Komponen

Untuk mengidentifikasi sebuah komponen di dalam Netlist dan kemudian di papan sirkuit, digunakan referensi tanda waktu yang bersifat unik untuk setiap komponen. KiCad juga menyediakan cara lain untuk mengidentifikasi sebuah komponen dengan _footprint_ yang terkait di papan sirkuit. Dengan demikian, bisa dilakukan anotasi ulang komponen-komponen pada proyek skematik, dan tautan antara komponen dan _footprint_ akan tetap terjaga.

Tanda waktu menjadi pengidentifikasi yang bersifat unik untuk setiap komponen atau lembar kerja pada suatu proyek skematik. Namun di hirarki kompleks, satu lembar kerja yang sama bisa digunakan lebih dari satu kali, sehingga lembar kerja ini akan berisi komponen-komponen dengan tanda waktu yang sama.

Lembar kerja tersebut memiliki sebuah pengidentifikasi unik di hirarki kompleks: _path_ lembar kerja. Maka, komponen (di dalam hirarki kompleks) memiliki pengidentifikasi unik berupa: _path_ lembar kerja + tanda waktu.

[[the-libparts-section]]
==== Bagian _Libparts_

Bagian _libparts_ memiliki pembatas <libparts>, dan isi dari bagian ini didefinisikan di pustaka skematik. Bagian ini berisi:

* The allowed footprints names (names use wildcards) delimiter <fp>.
* Pembatas <fields>, atribut-atribut yang didefinisikan di dalam pustaka.
* Pembatas <pins>, daftar pin.

--------------------------------------------------
<libparts>
<libpart lib="device" part="CP">
  <description>Condensateur polarise</description>
  <footprints>
    <fp>CP*</fp>
    <fp>SM*</fp>
  </footprints>
  <fields>
    <field name="Reference">C</field>
    <field name="Valeur">CP</field>
  </fields>
  <pins>
    <pin num="1" name="1" type="passive"/>
    <pin num="2" name="2" type="passive"/>
  </pins>
</libpart>
</libparts>
--------------------------------------------------

Baris seperti <pin num="1" type="passive"/> juga menampilkan tipe pin elektrikal. Tipe pin elektrikal yang bisa digunakan antara lain:

[width="94%", cols="25%,75%"]
|================================================================
|Input |Pin masukan biasa
|Output |Pin keluaran biasa
|Bidirectional |Masukan atau keluaran
|Tri-state |_Bus_ masukan/keluaran
|Passive |Komponen pasif biasa
|Unspecified |Tipe elektrikal yang tidak diketahui
|Power input |Masukan _power_ suatu komponen
|Power output |Keluaran _power_, seperti keluaran regulator
|Open collector |_Open collector_ yang biasanya ada di komparator analog
|Open emitter |_Open emitter_ yang terkadang ada di logika
|Not connected |Harus dibiarkan terbuka di skematik
|================================================================

[[the-libraries-section]]
==== Bagian Pustaka

Bagian pustaka memiliki pembatas <libraries>. Bagian ini berisi daftar pustaka skematik yang digunakan pada proyek.

------------------------------------------------
<libraries>
  <library logical="device">
    <uri>F:\kicad\share\library\device.lib</uri>
  </library>
  <library logical="conn">
    <uri>F:\kicad\share\library\conn.lib</uri>
  </library>
</libraries>
------------------------------------------------

[[the-nets-section]]
==== Bagian _Net_

Bagian _net_ memiliki pembatas <nets>. Bagian ini berisi "konektivitas" skematik.

-----------------------------
<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>
  <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>
</nets>
-----------------------------

Bagian ini menampilkan daftar semua _net_ pada skematik.

Sebuah _net_ bisa memiliki daftar seperti berikut ini.

--------------------------
<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>
--------------------------

[width="77%", cols="20%,80%"]
|================================================
|net code |Pengidentifikasi internal untuk _net_ ini
|name |Nama _net_
|node |Referensi pin yang terhubung ke _net_ ini
|================================================

[[more-about-xsltproc]]
=== Lebih Lanjut Tentang xsltproc

Silakan mengacu pada halaman: _http://xmlsoft.org/XSLT/xsltproc.html_

[[introduction-7]]
==== Pengenalan

xsltproc adalah sebuah alat baris perintah untuk menerapkan _stylesheet_ XSLT ke dokumen XML. Alat ini dkembangkan sebagai bagian dari proyek GNOME, namun dapat digunakan secara independen di luar desktop GNOME.

xsltproc dijalankan melalui baris perintah dengan nama _stylesheet_ yang akan digunakan diikuti dengan nama berkas yang mana _stylesheet_ akan diterapkan. Alat ini akan menggunakan masukan standar jika nama berkas yang diberikan berupa -.

Jika tersedia sebuah _stylesheet_ di dalam dokumen XML dengan 'Style-sheet Processing Instruction', kita tidak perlu lagi menyebutkan sebuah _stylesheet_ pada baris perintah. xsltproc akan secara otomatis mendeteksi _stylesheet_ yang tersedia dan menggunakannya. Secara _default_, keluaran dari perintah ini adalah ke __stdout__. Keluaran bisa disimpan ke sebuah berkas dengan menggunakan opsi -o.

[[synopsis]]
==== Sinopsis

---------------------------------------------------------------------------
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* ]
[ *....* ]
---------------------------------------------------------------------------

[[command-line-options]]
==== Opsi-opsi Baris Perintah

_-V_ atau _--version_

Menampilkan versi libxml dan libxslt yang digunakan.

_-v_ atau _--verbose_

Menampilkan setiap langkah yang diambil oleh xsltproc dalam memproses _stylesheet_ dan dokumen.

_-o_ atau _--output file_

Mengarahkan keluaran ke berkas dengan nama __file__. Untuk keluaran lebih dari satu, juga dikenal sebagai "'chunking'", -o direktori/ akan mengarahkan berkas keluaran ke direktori yang ditentukan. Direktori tersebut harus sudah ada sebelumnya.

_--timing_

Menampilkan waktu yang digunakan untuk menguraikan _stylesheet_, menguraikan dokumen, dan menerapkan _stylesheet_ dan menyimpan hasilnya. Ditampilkan dalam satuan milidetik.

_--repeat_

Menjalankan transformasi sebanyak 20 kali. Digunakan untuk pengujian pewaktuan.

_--debug_

Menghasilkan sebuah pohon XML dari dokumen yang ditransformasikan, untuk keperluan _debugging_.

_--novalid_

Lewati memuat DTD dokumen.

_--noout_

Jangan mengeluarkan hasilnya.

_--maxdepth value_

Atur kedalaman maksimum dari tumpukan templat sebelum libxslt menyimpulkan bahwa ini adalah putaran tak terbatas. Nilai _default_ adalah 500.

_--html_

Dokumen masukan berupa berkas HTML.

_--param name value_

Memberikan parameter nama _name_ dan nilai _value_ ke _stylesheet_. Anda bisa memberikan beberapa pasang nama/nilai hingga jumlah maksimum 32. Jika nilai yang diberikan berupa 'string' dan bukan 'node identifier', gunakan --stringparam.

_--stringparam name value_

Memberikan parameter berupa nama _name_ dan nilai _value_ di mana _value_ adalah 'string' dan bukan 'node identifier'. (Catatan: 'string' harus utf-8.)

_--nonet_

Jangan menggunakan Internet untuk mengambil DTD, entitas atau dokumen.

_--path paths_

Menggunakan daftar (dipisahkan oleh spasi atau kolom) _path_ sistem berkas untuk memuat DTD entitas atau dokumen.

_--load-trace_

Menampilkan ke stderr semua dokumen yang dimuat selama pemrosesan.

_--catalogs_

Gunakan katalog SGML yang disebutkan di SGML_CATALOG_FILES untuk menyelesaikan lokasi entitas eksternal. Secara _default_, xsltproc akan melihat katalog yang disebutkan di XML_CATALOG_FILES. Jika tidak disebutkan di situ, maka digunakan /etc/xml/catalog.

_--xinclude_

Memproses dokumen masukan menggunakan spesifikasi Xinclude. Lebih lanjut mengenai hal ini bisa ditemukan pada spesifikasi Xinclude: http://www.w3.org/TR/xinclude/[http://www.w3.org/TR/xinclude/]

_--profile --norman_

Menghasilkan keluaran berupa informasi _profiling_ yang menjelaskan jumlah waktu yang dihabiskan dalam setiap bagian _stylesheet_. Hal ini berguna untuk mengoptimasi performa _stylesheet_.

_--dumpextensions_

Mengeluarkan daftar semua ekstensi terdaftar ke stdout.

_--nowrite_

Jangan menulis ke berkas atau sumber apapun.

_--nomkdir_

Jangan membuat direktori.

_--writesubtree path_

Diperbolehkan menulis berkas hanya di dalam _path_.

_--nodtdattr_

Jangan menerapkan atribut _default_ dari DTD dokumen.

[[xsltproc-return-values]]
==== Nilai Kembali Xsltproc

xsltproc akan mengembalikan sebuah nomor status yang akan berguna saat kita menjalankannya di dalam sebuah skrip.

0: normal

1: tidak ada argumen

2: terlalu banyak parameter

3: opsi tidak diketahui

4: gagal mengurai _stylesheet_

5: terdapat kesalahan pada _stylesheet_

6: terdapat kesalahan pada salah satu dokumen

7: metode xsl:output tidak didukung

8: parameter 'string' berisi tanda petik dan tanda petik ganda

9: kesalahan pemrosesan internal

10: pemrosesan terhenti oleh suatu pesan penghentian

13: tidak dapat menulis hasil ke berkas keluaran

[[more-information-about-xsltproc]]
==== Informasi Lebih Lanjut Tentang xsltproc

Halaman web libxml: http://www.xmlsoft.org/[http://www.xmlsoft.org/]

Halaman XSLT W3C: http://www.w3.org/TR/xslt[http://www.w3.org/TR/xslt]

:experimental:

[[simulator]]
== Simulator ==

KiCad provides an embedded electrical circuit simulator using http://ngspice.sourceforge.net[ngspice] as the simulation engine.

Ketika bekerja dengan simulator, Anda akan membutuhkan pustaka resmi _pspice_. Pustaka ini memiliki simbol-simbol umum yang digunakan untuk simulasi seperti sumber tegangan/arus atau transistor dengan pin yang penomorannya sesuai dengan spesifikasi urutan _node_ ngspice.

Disediakan pula beberapa proyek demo untuk menunjukkan kemampuan simulator. Anda bisa membukanya di direktori _demos/simulation_.

=== Menerapkan Model

Sebelum melakukan simulasi, kita harus menentukan model Spice untuk masing-masing komponen.

Setiap komponen hanya bisa mendapatkan satu model, meskipun komponen tersebut terdiri dari beberapa bagian. Dalam hal ini, model Spice diterapkan pada bagian yang pertama.

[[sim-passive-models]] Komponen-komponen pasif dengan referensi yang cocok dengan suatu tipe divais dalam notasi Spice (_R*_ untuk resistor, _C*_ untuk kapasitor, _L*_ untuk induktor) akan memiliki model yang diterapkan secara implisit dan menggunakan atribut nilai untuk menentukan propertinya.

[NOTE]
Ingat bahwa di Spice, penggunaan 'M' berarti milli dan 'Meg' berarti mega. Jika Anda lebih suka menggunakan 'M' untuk mengindikasikan mega, Anda bisa melakukan pengaturan di <<sim-settings, kotak dialog pengaturan simulasi>>.

Informasi model Spice disimpan sebagai teks pada atribut-atribut simbol. Anda bisa mendefinisikannya di _Symbol Editor_ atau di _Schematics Editor_. Buka kotak dialog _Symbol Properties_ dan klik pada tombol _Edit Spice Model_ untuk membuka dialog _Spice Model Editor_.

Kotak dialog 'Spice Model Editor' mempunyai tiga tab sesuai dengan tipe modelnya. Ada dua opsi umum untuk semua tipe model:

[width="90%", cols="30%a,70%a"]
|====
|Disable symbol for simulation
|When checked the component is excluded from simulation.
|Alternate node sequence
|Allows one to override symbol pin to model node mapping.
To define a different mapping, specify pin numbers in order expected by the model.

'Example:' +
____
`* 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`
____

image::images/opamp_symbol.png[alt="Generic operational amplifier symbol"]

To match the symbol pins to the Spice model nodes shown above, one needs to use an alternate node sequence option with value: "1{nbsp}3{nbsp}5{nbsp}2{nbsp}4". It is a list of pin numbers corresponding to the Spice model nodes order.
|====

==== Tab _Passive_

Di tab _Passive_, kita bisa menerapkan sebuah model divais pasif (resistor, kapasitor, atau induktor) ke suatu komponen. Namun hal ini jarang digunakan, karena umumnya komponen pasif telah memiliki model yang diterapkan <<sim-passive-models,secara implisit>>, kecuali jika referensi komponen tidak cocok dengan tipe divais aktual.

[NOTE]
Model divais pasif yang ditetapkan secara eksplisit memiliki prioritas lebih tinggi daripada model divais yang ditetapkan secara implisit. Artinya, setelah model divais pasif telah ditetapkan, atribut referensi dan nilai akan diabaikan selama simulasi. Hal ini mungkin akan membingungkan ketika nilai model yang ditetapkan tidak sesuai dengan nilai yang ditampilkan pada lembar kerja skematik.

image::images/sim_model_passive.png[alt="Passive device model editor tab"]

[width="90%", cols="30%a,70%a"]
|====
|Type
|Memilih tipe divais (resistor, kapasitor, atau induktor).
|Value
|Menentukan properti divais (resistansi, kapasitansi, atau induktansi). Nilainya
bisa menggunakan prefiks satuan Spice (seperti ditampilkan di bawah kotak masukan teks) dan
harus menggunakan titik sebagai pemisah desimal. Ingat bahwa Spice tidak bisa menginterpretasikan secara tepat
prefiks yang disilangkan dengan nilai (misalnya 1k5).
|====

==== Tab _Model_

Tab _Model_ digunakan untuk menetapkan suatu semikonduktor atau model kompleks yang didefinisikan pada sebuah berkas pustaka eksternal. Pustaka model Spice terkadang disediakan oleh manufaktur.

Kotak teks utama menampilkan isi berkas pustaka yang dipilih. Sudah menjadi praktik yang umum untuk memasukkan penjelasan model ke dalam berkas pustaka, termasuk urutan _node_.

image::images/sim_model_subckt.png[alt="Semiconductor device model editor tab"]

[width="90%", cols="30%a,70%a"]
|====================
|File
|_Path_ menuju ke berkas pustaka Spice. Berkas ini akan digunakan oleh
simulator, dan ditambahkan dengan direktif _.include_.
|Model
|Model divais yang dipilih. Ketika ada sebuah berkas yang dipilih, daftar ini akan diisi dengan model yang tersedia untuk dipilih.
|Type
|Pilihan tipe model (subsirkuit, BJT, MOSFET atau dioda).
Normalnya, pilihan ini ditentukan secara otomatis ketika sebuah model dipilih.
|====================

==== Tab _Source_

Tab _Source_ digunakan untuk menetapkan model sumber sinyal atau _power_. Ada dua bagian: _DC/AC analysis_ dan _Transient analysis_. Masing-masing mendefinisikan parameter sumber untuk tipe simulasi yang terkait.

Opsi _Source type_ diaplikasikan untuk semua tipe simulasi.

image::images/sim_model_source.png[alt="Source model editor tab"]

Silakan mengacu ke http://ngspice.sourceforge.net/docs/ngspice-27-manual.pdf[dokumentasi ngspice], Bab 4 (_Voltage and Current Sources_) untuk informasi lebih lanjut.

[[sim-directives]]
=== Direktif Spice

It is possible to add Spice directives by placing them in text fields on a schematic sheet. This approach is convenient for defining the default simulation type. This functionality is limited to Spice directives starting with a dot (e.g. `.tran 10n 1m`), it is not possible to place additional components using text fields.

=== Simulasi

Untuk menjalankan simulasi, buka kotak dialog _Spice Simulator_ dengan memilih menu _Tools -> Simulator_ pada jendela editor skematik.

image::images/sim_main_dialog.png[alt="Main simulation dialog"]

Kotak dialog ini dibagi menjadi beberapa bagian:

* <<sim-toolbar,Bilah alat>>
* <<sim-plot-panel,Panel _Plot_>>
* <<sim-output-console,Konsol keluaran>>
* <<sim-signals-list,Daftar sinyal>>
* <<sim-cursors-list,Daftar kursor>>
* <<sim-tune-panel,Panel _Tune_>>

==== Menu

[[sim-menu-file]]
===== Menu _File_
[width="90%", cols="30%,70%"]
|====
|New Plot | Membuat tab baru pada panel _plot_.
|Open Workbook | Membuka daftar sinyal yang di-plot.
|Save Workbook | Menyimpan daftar sinyal yang di-plot.
|Save as image | Mengekspor _plot_ yang aktif ke berkas `.png`.
|Save as .csv file | Mengekspor data mentah titik-titik _plot_ ke berkas `.csv`.
|Exit Simulation | Menutup kotak dialog.
|====

[[sim-menu-simulation]]
===== Simulasi
[width="90%", cols="30%,70%"]
|====
|Run Simulation | Menjalankan simulasi menggunakan pengaturan saat ini.
|Add signals... | Membuka kotak dialog untuk memilih sinyal yang akan diplot.
|Probe from schematics | Menjalankan alat <<sim-probe-tool,Probe>> skematik.
|Tune component value | Menjalankan alat <<sim-tuner-tool,Tuner>>.
|Show SPICE Netlist... | Membuka kotak dialog yang menampilkan Netlist yang
telah dibuat untuk sirkuit yang disimulasikan.
|Settings... | Membuka <<sim-settings,kotak dialog pengaturan simulasi>>.
|====

[[sim-menu-view]]
===== Menu _View_
[width="90%", cols="30%,70%"]
|====
|Zoom In | Perbesar tampilan pada _plot_ yang aktif.
|Zoom Out | Perkecil tampilan pada plot yang aktif.
|Fit on Screen | Mengatur tampilan untuk menampilkan semua _plot_.
|Show grid | Tampilkan/sembunyikan grid.
|Show legend | Tampilkan/sembunyikan legenda _plot_.
|====

[[sim-toolbar]]
==== Bilah Alat
image::images/sim_main_toolbar.png[alt="Simulation dialog top toolbar"]
Bilah alat bagian atas digunakan untuk mengakses perintah-perintah yang sering dijalankan.

[width="90%", cols="30%,70%"]
|====
|Run/Stop Simulation | Jalankan atau hentikan simulasi.
|Add Signals | Membuka kotak dialog untuk memilih sinyal yang akan di-plot.
|Probe | Menjalankan alat <<sim-probe-tool,Probe>> skematik.
|Tune | Menjalankan alat <<sim-tuner-tool,Tuner>>.
|Settings | Membuka <<sim-settings,kotak dialog pengaturan simulasi>>.
|====

[[sim-plot-panel]]
==== Panel _Plot_
Memvisualisasikan hasil simulasi dalam bentuk _plot_. Kita bisa membuka beberapa _plot_ pada tab yang berbeda, namun ketika simulasi dijalankan, hanya tab yang aktif saja yang akan diperbarui. Dengan demikian dimungkinkan untuk membandingkan hasil simulasi dengan parameter yang berbeda.

_Plot_ dapat diatur dengan menampilkan/menyembunyikan grid dan legenda menggunakan menu <<sim-menu-view,View>>. Ketika legenda ditampilkan, kita bisa menggeser untuk mengubah posisinya.

Interaksi panel _plot_:

* Putar roda tetikus untuk memperbesar/memperkecil tampilan.
* Klik-kanan untuk membuka menu konteks untuk mengatur tampilan.
* Gambar sebuah kotak pemilih untuk memperbesar area yang dipilih.
* Geser kursor untuk mengubah koordinatnya.

[[sim-output-console]]
==== Konsol Keluaran
Konsol keluaran menampilkan pesan-pesan dari simulator. Kita perlu memeriksa konsol untuk memastikan tidak ada pesan kesalahan dan peringatan.

[[sim-signals-list]]
==== Daftar Sinyal
Menampilkan daftar sinyal yang ditampilkan pada _plot_ yang aktif.

Interaksi daftar sinyal:

* Klik-kanan untuk membuka menu konteks untuk menyembunyikan sinyal atau mengubah kursor.
* Klik-ganda untuk menyembunyikan sinyal.

[[sim-cursors-list]]
==== Daftar Kursor
Menampilkan daftar kursor dan koordinatnya. Setiap sinyal bisa memiliki satu kursor yang ditampilkan. Konfigurasi visibilitas kursor diatur menggunakan daftar <<sim-signals-list,Signals>>.

[[sim-tune-panel]]
==== Panel _Tune_
Menampilkan komponen-komponen yang diambil menggunakan alat <<sim-tuner-tool,Tuner>>. Panel ini digunakan untuk memodifikasi nilai komponen secara cepat dan mengamati pengaruhnya pada hasil simulasi - setiap kali nilai sebuah komponen diubah, simulasi akan dijalankan ulang dan _plot_ akan diperbarui.

Untuk setiap komponen, ada beberapa kendali yang terkait:

* Atribut teks _top_ mengatur nilai maksimum komponen.
* Atribut teks _middle_ mengatur nilai aktual komponen.
* Atribut teks _bottom_ mengatur nilai minimum komponen.
* _Slider_ digunakan untuk mengubah nilai komponen secara halus.
* Tombol _Save_ memodifikasi nilai komponen pada skematik ke nilai yang dipilih dengan menggunakan _slider_.
* Tombol _X_ menghapus komponen dari panel _Tune_ dan mengembalikan ke nilai aslinya.

Ketiga atribut teks di atas mengenali prefiks satuan Spice.

[[sim-tuner-tool]]
==== Alat _Tuner_
Alat _Tuner_ digunakan untuk memilih komponen untuk keperluan _tuning_.

Untuk memilih komponen untuk _tuning_, klik pada satu komponen di editor skematik ketika alat ini aktif. Komponen yang dipilih akan muncul di panel <<sim-tune-panel,Tune>>. Kita hanya bisa melakukan _tuning_ komponen pasif.

[[sim-probe-tool]]
==== Alat _Probe_
Alat _Probe_ digunakan untuk memilih sinyal untuk dilakukan _plotting_.

Untuk menambahkan sinyal yang akan diplot, klik pada _wire_ yang diinginkan di editor skematik ketika alat ini aktif.

[[sim-settings]]
==== Pengaturan Simulasi

image::images/sim_settings.png[alt="Simulation settings dialog"]

Kotak dialog pengaturan simulasi digunakan untuk mengatur tipe dan parameter-parameter simulasi. Ada empat tab pada kotak dialog ini:

* Tab _AC_
* Tab _DC Transfer_
* Tab _Transient_
* Tab _Custom_

Tiga tab pertama digunakan untuk memasukan parameter-parameter simulasi. Tab yang terakhir digunakan untuk menuliskan direktif kustom Spice untuk membuat sebuah simulasi. Untuk informasi lebih lanjut mengenai tipe dan parameter-parameter simulasi, lihat http://ngspice.sourceforge.net/docs/ngspice-27-manual.pdf[dokumentasi ngspice], Bab 1.2.

Cara lain untuk mengkonfigurasi sebuah simulasi adalah dengan menuliskan <<sim-directives,direktif Spice>> ke atribut teks pada skematik. Setiap direktif atribut teks yang berhubungan dengan tipe simulasi akan ditimpa dengan pengaturan yang dipilih pada kotak dialog. Hal ini berarti bahwa setelah Anda menggunakan kotak dialog simulasi, kotak dialog akan menimpa direktif-direktif skematik hingga simulator dibuka kembali.

Ada dua opsi yang umum untuk semua tipe simulasi:
[width="90%", cols="30%,70%"]
|====
|Adjust passive symbol values | Mengganti nilai simbol pasif untuk mengkonversi notasi
nilai komponen umum ke notasi Spice.
|Add full path for .include library directives | Menambahkan nama berkas pustaka
model Spice dengan _path_ lengkap. Normalnya, ngspice memerlukan _path_ lengkap
untuk mengakses sebuah berkas pustaka.
|====