Manuale di riferimento

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.

Questo documento è coperto dal Copyright © 2010-2022 dei suoi autori come elencati in seguito. È possibile distribuirlo e/o modificarlo nei termini sia della GNU General Public License (http://www.gnu.org/licenses/gpl.html), versione 3 o successive, che della Creative Commons Attribution License (http://creativecommons.org/licenses/by/3.0/), versione 3.0 o successive.

Tutti i marchi registrati all’interno di questa guida appartengono ai loro legittimi proprietari.

Collaboratori

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

Traduzione

Marco Ciampa <ciampix@posteo.net>, 2014-2018.

Feedback

Si prega di inviare qualsiasi rapporto bug, suggerimento o nuova versione a:

1. Introduzione all’editor schemi elettrici di KiCad

1.1. Descrizione

L’editor degli schemi di KiCad è un software distribuito come parte della suite KiCad, e disponibile per i seguenti sistemi operativi:

  • Linux

  • Apple macOS

  • Windows

Indipendentemente dal sistema operativo, tutti i file KiCad sono 100% compatibili da un sistema all’altro.

L’editor degli schemi è un’applicazione integrata dove tutte le funzioni di disegno, controllo, disposizione, gestione librerie e accesso al software di progettazione di circuiti stampati sono svolte all’interno dell’editor stesso.

L’editor degli schemi elettrici di KiCad è stato concepito per cooperare il programma per la progettazione di circuiti stampati della suite di KiCad. Esso può anche esportare file di netlist, che descrivono le connessioni elettriche dello schema usabili da altri software.

L’editor degli schemi include un editor di librerie di simboli, che può creare e modificare simboli e gestire librerie. Esso integra le seguenti funzioni, aggiuntive ma essenziali, necessarie in ogni moderno software di elaborazione schemi elettrici:

  • Controllo regole di progettazione (ERC) per il controllo automatico di connessioni errate o sconnesse

  • Esportazione di file del disegno dello schema in molti formati (Postscript, PDF, HPGL e SVG).

  • Generazione della distinta materiali (tramite script Python o XSLT, che consentono di modellarla in molti formati).

1.2. Panoramica tecnica

L’editor degli schemi è limitato solo dalla disponibilità di memoria. Non c’è perciò praticamente nessun limite al numero di componenti, numero di pin nei componenti, numero di connessioni o fogli. In caso di schemi elettrici formati da più fogli, la rappresentazione è gerarchica.

L’editor degli schemi può usare schemi multifoglio in alcune modalità:

  • Gerarchie semplici (ogni schema elettrico viene usato solo una volta).

  • Gerarchie complesse (alcuni schemi sono usati più di una volta con istanze multiple).

  • Gerarchie piatte (schemi esplicitamente connessi ad uno schema principale).

1.3. Configurazione iniziale

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. Comandi generici editor degli schemi elettrici

I comandi possono essere eseguiti da:

  • Facendo clic sulla barra del menu (in cima allo schermo).

  • Facendo clic sulle icone in cima allo schermo (comandi generali).

  • Facendo clic sulle icone sul lato destro dello schermo (comandi particolari o "strumenti").

  • Facendo clic sulle icone sul lato sinistro dello schermo (opzioni di visualizzazione).

  • Premendo i pulsanti del mouse (comandi complementari importanti). In particolare un clic sul pulsante destro apre un menu contestuale che dipende dall’elemento sottostante il puntatore (zoom, griglia e modifica di elementi).

  • Tasti funzione (F1, F2, F3, F4, Ins e Spazio). Nello specifico: il tasto Esc spesso permette l’annullamento del comando in corso. Il tasto Ins permette la duplicazione dell’ultimo elemento creato.

  • Pressione dei comandi da tastiera. Per un elenco dei comandi da tastiera, consultare la voce di menu Aiuto→Elenco tasti o premere Ctrl+F1. Molti comandi da tastiera selezionano uno strumento ma non eseguono l’azione dello strumento fino al clic del mouse sull’area di lavoro. Questo comportamento è modificabile deselezionando Il tasto seleziona lo strumento nella scheda opzioni Comuni del pannello delle preferenze. Con questa opzioni deselezionata, la pressione di un comando da tastiera selezionerà lo strumento ed eseguirà immediatamente l’azione dello strumento alla posizione corrente del puntatore.

Panoramica comandi

2.1. Comandi da mouse

2.1.1. Comandi di base

Pulsante sinistro

  • Clic singolo: seleziona l’elemento sotto il puntatore e ne mostra le caratteristiche nella barra di stato.

  • Doppio clic: modifica l’elemento se modificabile.

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

Pulsante destro

  • Apre un menu a scomparsa. Se un elemento è selezionato, gli elementi nel menu sono relativi a questo. Se un elemento è sotto il puntatore quando viene premuto il tasto destro del mouse, l’elemento viene selezionato.

2.1.2. Operazioni di selezione

Gli elementi dell’editor degli schemi possono essere selezionati facendo clic su di essi. Più elementi possono essere selezionati simultaneamente. Aggiungere elementi alla selezione con Maiusc + clic, e rimuoverli dalla selezione con Ctrl+Maiusc + clic.

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.

Le aree possono essere selezionate anche disegnando un riquadro attorno ad esse usando il tasto sinistro del mouse.

Trascinando da sinistra a destra vengono inclusi tutti gli elementi completamente raccolti dal riquadro di selezione. Trascinando da destra a sinistra vengono inclusi tutti gli elementi toccati dal riquadro di selezione, anche se non sono stati racchiusi completamente.

I tasti modificatori Maiusc e Ctrl+Maiusc lavorano rispettivamente anche con il trascinamento di selezione per aggiungere e per rimuovere elementi dalla selezione.

2.2. Comandi da tastiera

  • Il tasto Ctrl+F1 mostra l’elenco corrente dei comandi da tastiera.

  • Tutti i comandi da tastiera possono essere ridefiniti usando lo specifico editor (PreferenzePreferenze…​Comandi da tastiera).

Ecco di seguito l’elenco dei comandi da tastiera predefiniti. Molte azioni aggiuntive non hanno un tasto predefinto assegnato, ma questi possono essere assegnati con lo specifico 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.

Azione Tasto predefinito Descrizione

Clic

Invio

Esegue l’azione corrispondente a fare clic con il tasto sinistro del mouse

Doppio-clic

Fine

Esegue l’azione corrispondente al doppio clic con il tasto sinistro del mouse

Puntatore in basso

Giù

Puntatore in basso veloce

Ctrl+Giù

Puntatore a sinistra

Sinistra

Puntatore a sinistra veloce

Ctrl+Sinistra

Puntatore a destra

Destra

Puntatore a destra veloce

Ctrl+Destra

Puntatore in altro

Su

Puntatore in alto veloce

Ctrl+Su

Passa a griglia veloce 1

Alt+1

Passa a griglia veloce 2

Alt+2

Passa alla griglia successiva

N

Passa alla griglia precedente

Maiusc+N

Reimposta origine griglia

Z

Origine griglia

S

Iposta il punto di origine della griglia

Nuovo…​

Ctrl+N

Create a new document in the editor

Apri…​

Ctrl+O

Open existing document

Pan in basso

Maiusc+Giù

Pan a sinistra

Maiusc+Sinistra

Pan a destra

Maiusc+Destra

Pan in alto

Maiusc+Su

Stampa…​

Ctrl+P

Stampa

Reimposta le coordinate locali

Spazio

Salva

Ctrl+S

Salva i cambiamenti

Salva con nome…

Ctrl+Maiusc+S

Salva il documento corrente con un altro nome o posizione

Mostra sempre il puntatore

Ctrl+Maiusc+X

Mostra il crocino anche nello strumento di selezione

Cambia unità

Ctrl+U

Passa da unità di misura imperiali a SI

Aggiorna il C.S. dallo schema…

F8

Aggiorna il C.S. con i cambiamenti fatti sullo schema

Centra

F4

Centra

Zoom agli oggetti

Ctrl+Iniz

Inquadra tutti gli oggetti

Zoom to Fit

Home

Inquadra il foglio

Zoom In at Cursor

F1

Aumenta l’ingrandimento al puntatore

Zoom Out at Cursor

F2

Diminusci l’ingrandimento al puntatore

Aggiorna

F5

Ridisegna lo schermo

Zoom alla selezione

Ctrl+F5

Inquadra la selezione

Cambia la modalità di modifica

Ctrl+Spazio

Cambia i vincoli della modalità di modifica

Copia

Ctrl+C

Copia gli elementi selezionati negli appunti

Taglia

Ctrl+X

Taglia gli elementi selezionati e li copia negli appunti

Elimina

Canc

Elimina gli elementi selezionati

Duplica

Ctrl+D

Duplica gli elementi selezionati

Cerca

Ctrl+F

Trova del testo

Trova e sostituisci

Ctrl+Alt+F

Trova e rimpiazza del testo

Cerca ancora

F3

Trova la prossima occorrenza del testo cercato

Trova il prossimo marcatore

Maiusc+F3

Incolla

Ctrl+V

Incolla gli elementi presenti negli appunti

Rifa

Ctrl+Y

Esegue nuovamente l’ultima modifica

Seleziona tutto

Ctrl+A

Seleziona tutti gli elementi sullo schermo

Annulla

Ctrl+Z

Annulla l’ultima modifica

Elenco comandi da tastiera…​

Ctrl+F1

Mostra i tasti correnti e i comandi corrispondenti

Preferenze…​

Ctrl+,

Mostra le preferenze per tutti gli strumenti aperti

Cancella evidenziazione net

~

Cancella un’esistente evidenziazione collegamento (net)

Modifica simbolo di libreria…​

Ctrl+Maiusc+E

Apre il simbolo di libreria nell’editor dei simboli

Modifica con l’editor di simboli

Ctrl+E

Apre il simbolo selezionato nell’editor di simboli

Evidenzia net

`

Evidenzia il collegamento (net) sotto il puntatore

Mostra datasheet

D

Apre il datasheet in un visualizzatore

Aggiungi foglio

S

Aggiunge un foglio gerarchico

Aggiungi filo ad un bus

Z

Aggiunge un filo di collegamento ad un elemento bus

Aggiungi etichetta globale

Ctrl+L

Aggiunge un’etichetta globale

Aggiungi etichetta gerarchica

H

Aggiunge un’etichetta gerarchica

Aggiungi giunzione

J

Aggiunge un punto di giunzione

Aggiungi etichetta

L

Aggiunge un’etichetta al collegamento (net)

Aggiungi flag non connesso

Q

Aggiunge una segnalazione di non connessione

Aggiungi potenza

P

Aggiunge un simbolo di porta di potenza

Aggiungi testo

T

Aaggiunge un testo

Aaggiungi simbolo

A

Aggiunge un simbolo

Aggiungi bus

B

Aggiunge un bus

Aggiungi linee

I

Aggiunge linee grafiche

Aggiungi filo

W

Aggiunge un filo

Termina filo o bus

K

Completa il disegno del segmento corrente

Stacca da bus

C

Separa un filo da un bus

Autopiazza campi

O

Eseguie l’algoritmo di piazzamento automatico sui campi del simbolo o del foglio

Modifica impronta…

F

Mostra la finestra di dialogo del campo impronta

Modifica riferimento…​

U

Mostra la finestra di dialogo del riferimento

Modifica valore…

V

Mostra la finestra di dialogo del campo valore

Rifletti orizzontalmente

X

Scambia gli elementi selezionati da sinistra a destra

Rifletti verticalmente

Y

Scambia gli elementi selezionati dall’alto in basso

Proprietà…

E

Mostra la finestra di dialogo delle proprietà

Ripeti ultimo elemento

Ins

Duplica l’ultimo elemento disegnato

Ruota antiorario

R

Ruota gli elementi selezionati in senso antiorario

Trascina

G

Trascina gli elementi selezionati

Sposta

M

Sposta gli elementi selezionati

Seleziona connessione

Alt+4

Seleziona una connessione completa

Seleziona nodo

Alt+3

Seleziona l’elemento della connessione sotto il puntatore

Lascia il foglio

Alt+Back

Mostra il foglio genitore nell’editor degli schemi

I comandi da tastiera sono memorizzati nel file user.hotkeys nella cartella di configurazione di KiCad. La posizione cambia a seconda della piattaforma:

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

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

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

È possibile importare le impostazioni dei comandi da tastiera usando: menu PreferenzePreferenze…​Comandi da tastieraImporta tasti…​.

2.3. Griglia

Nell’editor degli schemi il puntatore si sposta sempre sopra una griglia. La griglia può essere personalizzata:

  • La dimensione è modificabile usando il tasto destro del mouse o usando VisualizzaProprietà griglia…​.

  • I colori possono essere modificati tramite la scheda Colori presente nella finestra di dialogo delle Preferenze (menu PreferenzeOpzioni generali).

  • La visibilità può essere accesa/spenta usando il pulsante corrispondente nella barra strumenti di sinistra.

La dimensione predefinita della griglia è 50 mils (0.050") o 1,27 millimetri.

Questa è la griglia preferita per piazzare simboli e fili in uno schema elettrico, e per piazzare piedini durante la progettazione di un simbolo nell’editor dei simboli.

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.

Si può anche lavorare con una griglia più piccola da 25 mil a 10 mil, ma in genere queste sono usate per la creazione dei corpi dei simboli o per posizionare testi e commenti, non per i fili o piedini.

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

Per cambiare il livello di zoom:

  • Fare clic destro per aprire il menu a scomparsa e selezionare il livello di zoom desiderato.

  • O usare i tasti rapidi:

    • F1: Zoom in

    • F2: Zoom out

    • F4: centra la vista attorno alla posizione del puntatore

    • Home: regola e centra la vista per visualizzare tutto il foglio schema

    • Ctrl+Home: regola e centra la vista per visualizzare tutti gli oggetti nello schema

    • Ctrl+F5: attiva lo strumento di zoom a selezione

  • Zoom finestra:

    • Rotellina del mouse: zoom avanti/indietro

    • Maiusc+rotellina del mouse: pan su/giù

    • Ctrl+rotellina del mouse: pan sinistra/destra

Le azioni innescate dagli scorrimenti sono configurabili nella pagina Mouse e touchpad della finestra delle Preferenze.

2.6. Visualizzazione coordinate puntatore

Le unità di visualizzazione della griglia sono pollici, mils o millimetri.

Le seguenti informazioni sono mostrate sulla parte in basso a destra della finestra:

  • Fattore di zoom

  • Posizione assoluta del puntatore

  • Posizione relativa del puntatore

  • La dimensione griglia

  • L’unità di misura attiva

  • Lo strumento attivo

Le coordinate relative possono essere azzerate con la barra spazio. È utile per effettuare misure tra due punti.

][alt="barra di stato"

2.7. Barra menu in cima

La barra menu in cima permette l’apertura e il salvataggio degli schemi elettrici, la configurazione del programma, e la visualizzazione della documentazione.

barra dei menu

2.8. Barra strumenti in alto

Questa barra strumenti dà accesso alle funzioni principali dell’editor degli schemi elettrici.

Se l’editor degli schemi viene eseguito in modalità autonoma, questo è l’insieme degli strumenti a disposizione:

images/toolbar_schedit_standalone.png

Si noti che quando KiCad viene eseguito in modalità progetto, le prime due icone non sono disponibili dato che esse lavorano sui singoli file.

Icona nuovo schema

Crea un nuovo schema (solo in modalità autonoma).

Icona apri schema

Apri uno schema (solo in modalità autonoma).

Icona salva schema

Salva progetto schema completo.

Icona impostazioni schema

Imposta le opzioni specifiche dello schema.

Icona impostazioni pagina

Seleziona la dimensione del foglio e modifica il blocco iscrizioni.

Icona stampa

Apri la finestra di stampa.

Icona traccia

Apri la finestra di tracciatura.

Icona incolla

Incolla un elemento copiato/tagliato o blocco al foglio corrente.

Icona annulla

Annulla: annulla l’ultima modifica.

Icona rifa

Rifa: annulla l’ultima operazione di annullamento.

Icona cerca

Mostra la finestra di dialogo di ricerca simboli e testi nello schema.

Icona trova e sostituisci

Mostra la finestra di dialogo trova e sostituisci testi nello schema.

Icona ricarica

Ricarica lo schermo.

Icona zoom in

Zoom in, ingrandisce l’immagine.

Icona zoom out

Zoom out, rimpicciolisce l’immagine.

Icona zoom al foglio

Adatta l’ingrandimento immagine al foglio dello schema.

Icona zoom agli oggetti

Adatta l’ingrandimento immagine agli oggetti nello schema.

Icona zoom alla selezione

Adatta l’ingrandimento immagine alla selezione degli oggetti.

Icona navigazione gerarchia

Mostra e naviga attraverso l’albero gerarchico.

Icona lascia il foglio

Lascia il foglio corrente e sale nella gerarchia.

Icona ruota in senso antiorario

Ruota gli elementi selezionati in senso antiorario.

Icona ruota in senso orario

Ruota gli elementi selezionati in senso orario.

Icona ribalta verticalmente

Scambia gli elementi selezionati tra cima e fondo, ovvero ribalta verticalmente.

Icona ribalta orizzontalmente

Scambia gli elementi selezionati tra destra e sinistra, ovvero ribalta orizzontalmente.

Icona editor dei simboli

Chiama l’editor della libreria di simboli per visualizzare e modificare librerie e simboli.

Icona browser librerie

Sfoglia le librerie di simboli.

Icona editor impronte

Apre l’editor librerie di impronte per visualizzare e modificare librerie e impronte.

Icona annota

Annota i simboli.

Icona ERC

Controllo regole elettriche (ERC), valida automaticamente le connessioni elettriche.

Icona esegui assegnamento impronte

Apre lo strumento di assegnamento impronte per assegnare le impronte ai simboli.

Icona editor campi simbolo

Modifica campi simbolo in blocco con interfaccia a foglio elettronico.

Icona DIBA

Genera la distinta di base (BOM).

Icona editor C.S.

Apre l’editor dei circuiti stampati.

Icona console di scripting python

Apre la console di scripting Python.

2.9. Icone della barra strumenti di destra

Questa barra contiene strumenti per:

  • Piazzare simboli, fili, bus, connessioni, etichette, testi, ecc.

  • Creare sotto-fogli gerarchici e simboli di connessione.

Icona strumento selezione

Annulla il comando o lo strumento attivo e va in modalità selezione.

Icona evidenzia net

Evidenzia una net rendendo visibili i suoi fili ed etichette con un colore diverso. Se viene aperto anche l’editor del C.S. allora il rame corrispondente alla net selezionata verrà anch’esso evidenziato.

Icona nuovo simbolo

Mostra la finestra di selezione dei simboli per selezionare un nuovo simbolo da piazzare.

Icona aggiungi simbolo di potenza

Mostra la finestra di selezione dei simboli di potenza per selezionare un simbolo da piazzare.

Icona disegna un filo

Disegna un filo.

Icona disegna un bus

Disegna un bus.

Icona disegna un filo verso un bus

Disegna un elemento di connessione filo-a-bus. Questi elementi sono solo grafici e non creano una connessione, perciò non vanno usati per collegare fili assieme.

Icona segnalazione di non connesso

Piazza una segnalazione di "Non connesso". Queste segnalazioni dovrebbero essere messe su pin di simboli che devono essere lasciati scollegati. Viene fatto per notificare al controllo regole elettriche che la mancanza di connessione per un dato pin è intenzionale e che non dovrebbe venir segnalata.

Icona piazza giunzione

Piazza una giunzione. Questa connette due fili che si incrociano o un filo e un pin, quando questo può essere ambiguo (cioè se il capo di un filo o un pin non è direttamente connesso al capo di un altro filo).

Icona etichetta locale

Piazza un’etichetta locale. Le etichette locali connettono elementi posizionati nello stesso foglio. Per connessioni tra due fogli diversi, bisogna usare etichette globali o gerarchiche.

Icona etichetta globale

Piazza un’etichetta globale. Tutte le etichette globali con lo stesso nome sono connesse assieme, anche se poste su fogli diversi.

Icona etichetta gerarchica

Piazza una etichetta gerarchica. Le etichette gerarchiche vengono usate per creare una connessione tra un sottofoglio e il foglio genitore che lo contiene.

Icona sottofoglio gerarchico

Piazza un sottofoglio gerarchico. Bisogna specificare il nome del file per questo sottofoglio.

Icona importa etichetta gerarchica

Importa un pin gerarchico da un sottofoglio. Questo comando può essere eseguito solo su sottofogli gerarchici. Creerà pin gerarchici corrispondenti alle etichette gerarchiche piazzate nel sottofoglio obiettivo.

Icona disegna linea tratteggiata

Disegna una linea. Queste sono solo grafiche e non connettono nulla.

Icona piazza testo

Piazza un testo di commento.

Icona piazza bitmap

Piazza un’immagine bitmap.

Icona strumento di cancellazione interattiva

Elimina gli elementi clic-cati.

2.10. Icone barra degli strumenti di sinistra

Questa barra strumenti gestisce le opzioni di visualizzazione:

Icona visibilità griglia

Commuta la visibilità griglia.

Icona u. di m. in pollici

Cambia le unità di misura in pollici.

Icona u. di m. in in mm

Cambia le unità di misura in millimetri.

Icona forma puntatore

Seleziona la forma del puntatore (pieno schermo/piccolo).

Icona pin nascosto

Commuta la visibilità dei pin "invisibili".

Icona fili ad angoli liberi

Commuta angoli liberi/90 gradi per il piazzamento di fili e bus.

2.11. Menu a scomparsa e modifiche veloci

Un click destro apre un menu contestuale per l’elemento selezionato. Quest’ultimo contiene:

  • Fattore di zoom.

  • Regolazione della griglia.

  • Comandi copia/incolla/elimina.

  • Aggiungi filo/bus.

  • Parametri modificati comunemente per l’elemento selezionato.

3. Menu principale in alto

3.1. Menu file

Menu file
Nuovo Chiude lo schema corrente e ne comincia uno nuovo (solo in modalità autonoma).

Apri

Carica un nuovo progetto (solo in modalità autonoma).

Apri recente

Apre uno schema da un elenco di file aperti recentemente (solo in modalità autonoma).

Salva

Salva il foglio corrente e tutti i suoi sottofogli.

Salva come…​

Salva il foglio corrente con un nuovo nome (solo in modalità autonoma).

Salva copia foglio corrente come…​

Salva una copia del foglio corrente con un nuovo nome (solo in modalità progetto).

Inserisci i contenuti del foglio schema…​

Inserisce i contenuti di un altro foglio schema nel foglio schema corrente (solo in modalità autonoma).

Importa

Importa uno schema non KiCad o un file di assegnamento impronte.

Esporta

Esporta una netlist o un disegno dello schema elettrico negli appunti.

Impostazioni schema…​

Imposta la formattazione dello schema, le regole elettriche, le netclass, e le variabili di testo.

Impostazioni pagina…​

Configura le dimensioni pagina e il riquadro iscrizioni.

Stampa

Stampa lo schema (vedere anche il capitolo Traccia e stampa).

Traccia

Esporta nei formati PDF, PostScript, HPGL o SVG (vedere il capitolo Traccia e stampa).

Chiudi

Termina l’esecuzione del programma.

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 preferenze

Menu preferenze

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. Gestione tabelle di librerie di simboli

Tabelle di librerie di simboli

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

Comandi da tastiera

Ridefinire i comandi da tastiera.

Impostazioni comandi da tastiera

Seleziona un nuovo comando da tastiera facendo doppio clic su un’azione o tasto destro su un’azione per mostrare un menu a scomparsa:

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

Dimensione griglia

Selezione della dimensione della griglia.

Si raccomanda di lavorare con una griglia normale (0.050 pollici o 1,27 mm). Griglie più piccole vengono unsate per la creazione di componenti.

Spessore bus

Dimensione della penna usata per disegnare i bus.

Spessore linea

Dimensione della penna usata per disegnare oggetti che non hanno una specifica dimensione penna.

Notazione ID parti

Stile del suffisso usato per denotare le unità del simbolo (U1A, U1.A, U1-1, ecc.)

Scala icone

Regola la dimensione delle icone della barra strumenti.

Mostra griglia

Impostazione di visibilità griglia.

Restringi orientamento bus e fili a O e V

Se selezionata, bus e fili vengono disegnati solo con linee verticali o orizzontali. Altrimenti bus e fili possono essere disegnati con qualunque angolazione.

Mostra pin nascosti

Mostra pin invisibili (o nascosti), tipicamente pin di potenza.

Mostra limiti di pagina

Se selezionata, mostra i bordi pagina sullo schermo.

Mostra anteprime impronte nel selettore simboli

Mostra un riquadro di anteprima dell’impronta quando si inserisce un nuovo simbolo.

Nota: potrebbe provocare problemi o ritardi, usare con cautela.

Editing Options
Impostazioni di modifica

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.

Colori

Schemi di colore per vari elementi grafici. Fare clic su uno qualsiasi dei campioni di colore per selezionare un nuovo colore per quel particolare elemento.

Impostazioni di colore
Campi predefiniti

Definisce campi aggiuntivi personalizzati e valori corrispondenti che appariranno nei nuovi simboli piazzati.

Impostazioni campi predefinite

3.3. Menu di aiuto

Accedere alla guida in linea (questo documento) per accedere ad un vasto tutorial su 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. Barra degli strumenti in alto generale

4.1. Gestione del foglio

L’icona di impostazione del foglio Icona impostazione foglio permette di impostare la dimensione del foglio e il contenuto del riquadro iscrizioni.

Impostazioni di pagina

La numerazione dei fogli è automaticamente aggiornata. È possibile impostare la data ad oggi premendo il pulsante con la freccia a sinistra di "Data versione", visto che questa non viene cambiata automaticamente.

4.2. Strumento di ricerca

L’icona trova (Icona trova) serve per accedere allo strumento di ricerca.

Finestra di dialogo trova

È possibile cercare un riferimento, un valore o una stringa di testo nel foglio corrente o in tutta la gerarchia. Una volta trovato, il puntatore del mouse verrà posizionato sull’elemento trovato nel sotto-foglio in questione.

4.3. Lo strumento netlist

L’icona netlist (Icona netlist) apre lo strumento di generazione delle netlist.

Lo strumento crea un file che descrive tutte le connessioni dell’intera gerarchia.

In una gerarchia multifoglio, ogni etichetta locale è visibile solo dentro il foglio al quale appartiene. Per esempio l’etichetta LABEL1 del foglio 3 è diversa dall’etichetta TOTO del foglio 5 (se non è stata introdotta intenzionalmente una connessione per collegarle). Ciò è dovuto al fatto che il nome del percorso del foglio è associato internamente all’etichetta locale.

Note
Anche se non c’è limite alla lunghezza del testo per le etichette in KiCad, si tenga in considerazione che altri programmi che dovessero leggere le netlist generate potrebbero avere delle limitazioni.
Note
Evitare gli spazi nelle etichette, dato che potrebbero far sembrare una etichetta come più etichette separate da spazi. Non è un limite di KiCad, ma di molti formati di netlist che spesso assumono che un’etichetta non abbia spazi.
Finestra di dialogo netlist

Opzioni:

Formato predefinito

Imposta per selezionare Pcbnew come formato predefinito.

Si possono generare anche altri formati:

  • Orcad PCB2

  • CadStar

  • Spice (simulatori)

Plugin esterni possono essere aggiunti per estendere l’elenco dei formati di netlist (nell’immagine precedente è stato aggiunto un plugin per PadsPcb).

Si possono trovare ulteriori informazioni sulla creazione delle netlist nel capitolo Creazione di una netlist.

4.4. Strumento di annotazione

L’icona Icona annota lancia l’esecuzione dello strumento di annotazione. Questo strumento assegna automaticamente i nomi a tutti i componenti nello schema.

Per componenti multiparte (come l’integrato TTL 7400 che contiene 4 porte), viene assegnato anche un suffisso per ogni parte (perciò un TTL 7400 identificato come U3 sarà diviso in U3A, U3B, U3C e U3D).

Si può annotare incondizionatamente tutti i componenti, o solamente quelli nuovi, cioè quelli che non erano stati annotati in precedenza.

annotate-dialog_img

Ambito

Usa l’intero schema Tutti i foglio verranno riannotati (predefinito).

Usa solo la pagina corrente

Solo il foglio corrente verrà riannotato (questa opzione è da usare solo in casi speciali, per esempio per estrarre la quantità di resistenze nel foglio corrente.).

Mantieni l’annotazione esistente

Annotazione condizionale, solo i nuovi componenti verranno riannotati (predefinito).

Reimposta annotazione esistente

Annotazione incondizionata, tutti i componenti verranno riannotati (questa opzione è da usare quando ci sono riferimenti duplicati).

Reimposta, ma non scambiare nessuna parte annotata multicomponente

Mantiene tutti i gruppi di unità multiple (per es. U2A, U2B) assieme durante la riannotazione.

Ordine di annotazione

Seleziona l’ordine nel quale i componenti verranno numerati (sia orizzontalmente che verticalmente).

Scelte di annotazione

Seleziona il formato di riferimento assegnato.

4.5. Strumento di controllo regole elettriche (ERC)

L’icona Icona ERC avvia lo strumento di controllo regole elettriche (ERC).

Questo strumento esegue la verifica del progetto ed è in grado di rivelare connessioni mancanti o errate.

All’esecuzione del controllo ERC, KiCad piazza dei marcatori per evidenziare i problemi rilevati. La descrizione dell’errore viene mostrata facendo clic sinistro sul marcatore. Si può generare anche un file di rapporto problemi.

4.5.1. La finestra di dialogo ERC principale

Finestra di dialogo ERC

Gli errori vengono mostrati nella finestra del controllo regole elettriche:

  • Totale errori e avvertimenti.

  • Totale errori.

  • Totale avvertimenti.

Opzioni:

Crea file di rapporto ERC

selezionare questa opzione per generare un file di rapporto ERC.

Comandi:

Cancella marcatori

Rimuove tutti i marcatori di avvertimento/errore ERC.

Esegui

Avvia il controllo regole elettriche.

Chiudi

Chiude la finestra.

  • Facendo clic su un messaggio di errore si salta sul marcatore corrispondente nello schema elettrico.

4.5.2. Finestra di dialogo delle opzioni ERC

Finestra di dialogo delle opzioni ERC

Questa scheda permette di definire le regole di connettività tra pin; si può scegliere tra 3 opzioni per ogni caso:

  • Nessun errore

  • Attenzione

  • Errore

Ogni riquadro della matrice può essere modificato facendo clic su di esso.

Opzioni:

Controllo etichette simili

Segnala le etichette che differiscono solo per le maiuscole (per es. label/Label/LaBeL). I nomi dei collegamenti sono case-sensitive quindi etichette come quelle dell’esempio sono considerate collegamenti separati.

Controllo etichette globali uniche

Segnala le etichette globali che ricorrono solo una volta per un singolo collegamento. Normalmente si richiede che ce ne siano almeno due per fare una connessione.

Comandi:

Inizializza al predefinito

Ripristina le impostazioni originali.

4.6. Strumento di assegnamento impronte

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. Strumento per la distinta materiali

L’icona Incona DIBA avvia la generazione di distinta materiali (DIBA, in inglese detta BOM - Bill Of Materials). Questo strumento permette la generazione di un file elenco di tutti i componenti e connessioni gerarchiche (etichette globali).

Finestra della distinta materiali

Il generatore di distinte materiali dell’editor degli schemi elettrici fa uso di plugin esterni, in forma di script XSLT o Python. Alcuni esempi sono installati nella cartella dei file eseguibili di KiCad.

Un utile insieme di proprietà di componenti da usare per una distinta componenti sono:

  • Value - valore: nome univoco per ogni parte usata.

  • Footprint - Impronta: sia inserita manualmente che per back-annotation (vedere sotto).

  • Field1 - Campo1: nome costruttore.

  • Field2 - Campo2: numero parte del costruttore.

  • Field3 - Campo3: numero parte distributore.

Per esempio:

Finestra di dialogo proprietà componente

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.

Opzioni extra della finestra di dialogo della distinta materiali in MS Windows

4.8. Strumento di modifica dei campi

L’icona Icona modifica campi apre un foglio elettronico che consente di visualizzare e modificare i valori dei campi di tutti i simboli.

Finestra dei simboli

Una volta modificati i valori dei campi, è necessario accettare i cambiamenti facendo clic sul pulsante 'Applica i cambiamenti' o annullarli facendo clic sul pulsante 'Annulla i cambiamenti'.

4.8.1. Trucchi per semplificare lo riempimento dei campi

Ci sono diversi metodi speciali di copia/incolla nel foglio di calcolo. Essi possono tornare utili quando si inseriscono campi valore ripetuti in diversi componenti.

Questi metodi sono illustrati sotto.

Copia (Ctrl+C) Selezione Incolla (Ctrl+V)

1copy

1selection

1paste

2copy

2selection

2paste

3copy

3selection

3paste

4copy

4selection

4paste

5copy

5selection

5paste

Note
Queste tecniche sono disponibili anche in altre finestre di dialogo con elementi di controllo a griglia.

4.9. Strumento di importazione per assegnazione impronte

4.9.1. Accesso:

L’icona Icona importazione nomi impronte avvia lo strumento di per la contro-annotazione (back-annotation).

Questo strumento permette di importare i cambiamenti alle impronte effettuati nell’editor dei circuiti stampati, tramite i campi impronte, indietro nell’editor degli schemi elettrici.

5. Managing Symbol Libraries

Le librerie di simboli contengono raccolte di simboli utilizzati durante la creazione degli schemi elettrici. Ogni simbolo in uno schema è identificato in modo univoco da un nome completo composto da un nickname di libreria e da un nome di simbolo. Un esempio è Audio: AD1853.

5.1. Tabella librerie di simboli

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

finestra tabella librerie di simboli

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

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. Sostituzione delle variabili ambiente

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. Modelli di utilizzo

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.

Ci sono vantaggi e svantaggi per ogni metodo. Definire tutte le librerie nella tabella globale significa che queste saranno sempre disponibili alla bisogna. Lo svantaggio di ciò è aumenterà che il tempo di caricamento.

Definire tutte le librerie di simboli su base specifica del progetto significa che si avranno solamente le librerie necessarie per quel progetto e ciò diminuirà il tempo di caricamento dei simboli. Lo svantaggio è che sarà sempre necessario ricordarsi di aggiungere ogni libreria di simboli necessaria per ogni progetto.

Uno schema di utilizzo potrebbe essere quello di definire le librerie di uso comune a livello globale e le librerie richieste solo per il progetto nella tabella della libreria specifica del progetto.

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. Rimappatura dei vecchi progetti

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:

  • le librerie originali usate nello schema sono ancora disponibili e invariate da quando il simbolo è stato aggiunto allo schema.

  • tutte le operazioni di salvataggio sono state eseguite quando sono state rilevate per creare una libreria di salvataggio o mantenere aggiornata la libreria di salvataggio esistente.

  • l’integrità della libreria cache dei simboli del progetto non è stata danneggiata.

Warning

La rimappatura eseguirà un salvataggio di tutti i file che vengono modificati durante l’operazione, nella cartella di salvataggio all’interno della cartella del progetto. Effettuare sempre un salvataggio del progetto prima di rimappare, (N.d.T. per evitare brutte sorprese) nel caso in cui qualcosa vada storto.

Warning

L’operazione di recupero viene eseguita anche se è stata disabilitata per garantire che i simboli corretti siano disponibili per la rimappatura. Non annullare questa operazione o la rimappatura non riuscirà a rimappare correttamente i simboli degli schemi. Eventuali collegamenti a simboli spezzati dovranno essere corretti manualmente.

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. Creazione e modifica di schemi elettrici

6.1. Introduzione

Uno schema elettrico può essere rappresentato da un foglio singolo ma, se è grande abbastanza, potrà richiedere molti fogli.

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

Uno schema elettrico progettato con KiCad è più di una semplice rappresentazione grafica di un dispositivo elettronico. Esso normalmente è il punto di ingresso di una catena di sviluppo che permette:

Uno schema elettrico consiste principalmente di simboli, fili, etichette, giunzioni, porte bus e pin di potenza. Per chiarezza, negli schemi elettrici, è possibile inserire elementi puramente grafici come elementi bus, commenti, e polilinee.

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. Modifica e inserimento simboli

6.3.1. Trova e piazza un simbolo

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.

Finestra di dialogo di scelta del componente

La finestra di dialogo di scelta del simbolo filtrerà i simboli per nome, parolachiave, e descrizione secondo quanto si inserirà nel campo di ricerca. Filtri avanzati possono essere usati semplicemente digitandoli:

  • Caratteri jolly: usare i caratteri ? e * rispettivamente per significare qualsiasi carattere'' e qualsiasi carattere in qualsiasi numero''.

  • Relazionali: se la descrizione di un componente di libreria o parola chiave contiene un marcatore del formato chiave:123'', è possibile corrispondere relativamente a quello battendo chiave>123'' (maggiore di), ``chiave<123'' (minore di), ecc. I numeri possono includere uno dei seguenti suffissi indipendenti da maiuscole o minuscole:

    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

  • Espressioni regolari: se si ha familiarità con le espressioni regolari, si possono usare anch’esse. Il tipo di espressione regolare usato è di stile espressione regolare avanzato dei wxWidgets, che è simile alle espressioni regolari 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.

Ecco un simbolo durante il piazzamento:

componente durante il piazzamento

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. Piazzamento porte di potenza

Un simbopo di porta di potenza è un simbolo che rappresenta una connessione ad un collegamento (net) di potenza. I simboli sono raggruppati nella libreria power, in modo tale che possano essere piazzati usando la finestra di selezione dei simboli. Comunque, dato che il piazzamento di questi simboli è frequente, è disponibile anche lo strumento Icona piazza porta di potenza. Questo strumento è del tutto simile all’inserimento simboli, eccetto per il fatto che la ricerca viene effettuata già direttamente nella libreria power.

6.3.3. Modifica di simboli (piazzati)

Ci sono due modi per modificare un simbolo:

  • La modifica del simbolo stesso: posizione, orientamento, selezione unità di un simbolo multi-unità.

  • La modifica di uno dei campi del simbolo: riferimento, valore, impronta, ecc.

Quando un simbolo è stato appena piazzato, si può doverne modificarne i valori (in particolare per le resistenze, condensatori, ecc.), mentre non serve assegnare un numero di riferimento direttamente, o selezionare l’unità (eccetto per simboli con unità bloccate, che devono essere assegnate manualmente). Ciò può essere svolto automaticamente dalla funzione di annotazione.

Modifica di un simbolo

Per modificare delle caratteristiche di un simbolo, posizionare il puntatore sul simbolo e fare:

  • Fare doppio clic sul simbolo per aprire la finestra di dialogo di modifica.

  • Clic destro per aprire il menu contestuale e usare uno dei comandi: sposta, orienta, modifica, cancella, ecc.

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

Modifiche dei campi di testo

Si possono modificare i riferimenti, valori, posizioni, orientamenti, dimensioni del testo e visibilità dei campi:

  • Doppio clic sul campo testo per modificarlo.

  • Clic destro per aprire il menu contestuale e usare uno de comandi: sposta, ruota, modifica, cancella, ecc.

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

Per ottenere ulteriori opzioni, o per creare altri campi, doppio clic sul simbolo per aprire la finestra di dialogo delle proprietà del simbolo.

Finestra di dialogo proprietà componente

Ogni campo può essere visibile o nascosto, e mostrato orizzontalmente o verticalmente. La posizione mostrata è sempre indicata per un simbolo mostrato normalmente (nessuna rotazione o ribaltamento speculare) ed è relativa al punto di ancoraggio del simbolo.

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

6.4.1. Introduzione

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.

Questi elementi sono:

  • Fili: connessioni dirette tra pin.

  • Bus: connessioni per gruppi di segnali.

  • Accessi bus: connessioni tra fili e bus.

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

  • Giunzioni: connessioni tra fili o bus che si incrociano.

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

  • Linee grafiche: linee grafiche di presentazione.

  • Testi: per commenti e annotazioni.

  • Immagini bitmap: grafiche raster da file esterni.

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

  • Porte di potenza: simboli per collegare fili a net di potenza o massa.

  • 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. Connessioni (fili ed etichette)

Ci sono due metodi per instaurare connessioni:

  • Fili tra pin.

  • Etichette.

La figura seguente mostra i due metodi:

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

Per stabilire una connessione, un segmento di filo deve essere connesso ai suoi capi ad un altro segmento o a un piedino.

Se c’è una sovrapposizione (se un filo passa sopra un pin, ma senza essere connesso alla fine del piedino) non c’è connessione.

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.
Giunzioni di fili

I fili che si incrociano non sono implicitamente connessi. È necessario attaccarli assieme con un punto di giunzione se si vuole proprio stabilire una connessione. I punti di giunzione verranno aggiunti automaticamente ai fili che cominciano o finiscono su altri fili esistenti.

I punti di giunzione sono utilizzati nella figura precedente sui fili collegati ai pin 18, 19, 20, 21, 22 e 23 di P1.

Net con nomi multipli

Un segnale può avere un solo nome. Se due diverse etichette vengono poste sullo stesso collegamento (o collegamenti connessi), verrà generato un errore ERC. Solo uno dei nomi della net verrà usato nella netlist.

Hidden Power Pins

Quando i piedini di potenza dei simboli sono visibili, devono essere connessi, come ogni altro segnale.

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.

Non è raccomandabile usare le etichette per le connessioni di potenza. Queste hanno solo ambito di connessione “locale”, e non connetterebbero i piedini di potenza nascosti.

6.4.3. Fili

Per iniziare a collegare gli elementi, puoi utilizzare gli strumenti "Filo" o "Bus" dalla barra degli strumenti a destra, oppure puoi avviare automaticamente un nuovo filo da qualsiasi pin esistente o filo non collegato.

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. Connessioni (Bus)

Nello schema elettrico seguente, molti piedini sono connessi a dei bus.

Esempio di schema elettrico con bus
Membri di bus

I bus sono un modo per raggruppare segnali in relazione tra loro in uno schema elettrico, in modo da semplificare i progetti complessi. I bus possono essere disegnati come i fili usando lo strumento bus, e i loro nomi vengono assegnati usando le etichette allo stesso modo di come si fa con i fili dei segnali. Ci sono due tipi di bus in KiCad 6.0 e successivi: bus vettoriali e bus di gruppo.

Un bus vettoriale è un insieme di segnali che cominciano con un prefisso comune e finiscono con un numero. I bus vettoriali hanno nome nella forma <PREFISSO>[M..N] dove PREFISSO è un qualsiasi nome di segnale valido, M è il primo numero del suffisso, e N è l’ultimo numero del suffisso. Per esempio, il bus DATA[0..7] contiene i segnali DATA0, DATA1, e così via fino a DATA7. Non importa in quale ordine M ed N vengono specificati, ma entrambi devono essere positivi.

Un bus di gruppo è un insieme di uno o più segnali e/o bus vettoriali. I bus di gruppo possono essere usati per tenere assieme segnali correlati anche quando questi hanno nomi diversi. I bus di gruppo usano una sintassi etichetta speciale:

<NOME_OPZIONALE>{SEGNALE1 SEGNALE2 SEGNALE3}

I membri del gruppo sono elencati dentro parentesi graffe ({}) separati da spazi. Il nome opzionale del gruppo va prima della prima parentesi. Se il bus di gruppo è anonimo, i collegamenti risultanti sul C.S. saranno semplicemente i nomi dei segnali dentro il gruppo. Se il bus di gruppo possiede un nome, i collegamenti risultanti avranno il nome come prefisso, con un punto (.) di separazione tra il prefisso e il nome del segnale.

Per esempio, il bus {SCL SDA} ha due segnali membri, e nella netlist questi segnali saranno SCL e SDA. Il bus USB1{DP DM} genererà collegamenti chiamati USB1.DP e USB1.DM. Per progetti con bus grandi, ripetuti tra diversi circuiti simili, l’uso di questa tecnica può far risparmiare tempo.

I bus di gruppo possono contenere anche bus vettoriali. Per esempio, il bus MEMORY{A[7..0] D[7..0] OE WE} contiene sia bus vettoriali che segnali normali, il ché porterà a del collegamenti del tipo MEMORY.A7 e MEMORY.OE sul C. S. .

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.

Connessioni tra membri di 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.

Nell’esempio sopra, le connessioni vengono effettuate dalle etichette piazzate sui fili connessi ai piedini. Le voci di bus (segmenti di filo a 45 gradi) sono solo elementi grafici, e non sono necessarie per formare connessioni logiche.

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.

  • Disegnare il filo sotto la prima etichetta. Usare poi il comando di ripetizione per piazzare gli altri fili sotto le etichette.

  • Se necessario, piazzare le voci di bus allo stesso modo (piazzare la prima voce, poi usare il tasto di ripetizione).

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

Dispiegamento bus

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.

Dopo aver selezionato il membro del bus, il successivo clic posizionerà l’etichetta del membro del bus alla posizione desiderata. Lo strumento genera automaticamente una voce bus ed un filo in direzione della posizione dell’etichetta. Dopo il posizionamento dell’etichetta, si può continuare a posizionare altri segmenti di filo (per esempio, per connetterli ai pin di un componente) e completare il collegamento in uno qualsiasi dei normali metodi.

Alias di bus

Gli alias di bus sono scorciatoie che permettono di lavorare con grandi insiemi di bus in modo più efficiente. Essi permettono di definire un gruppo di bus e dare ad esso un nome corto che può essere usato poi al posto del nome completo in tutto lo schema elettrico.

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

Finestra di dialogo di definizione dei bus

Ad un alias si può dare come nome un qualsiasi nome di segnale valido. Usando la finestra di dialogo, si possono aggiungere segnali o bus vettoriali all’alias. Come scorciatoia, si può battere o incollare dentro un’elenco di segnali e/o buse separati da spazi, e questi verranno aggiunti alla definizione di alias. In questo esempio, definiamo un alias chiamato USB con membri DP, DM, e VBUS.

Dopo la definizione di un alias, esso può essere usato in una etichetta di bus di gruppo mettendo il nome dell’alias dentro le parentesi graffe del bus di gruppo: {USB}. Ciò ha lo stesso effetto dell’etichettare il bus {DP DM VBUS}. Si può anche aggiungere un nome prefisso al gruppo, come USB1{USB}, il che da come risultati collegamenti come USB1.DP come descritto sopra. Per bus complessi, l’uso di alias può rendere l’etichettatura dello schema elettrico molto più corta. Si faccia attenzione al fatto che gli alias sono solo scorciatoie, e che il nome dell’alias non viene incluso nella netlist.

Gli alias dei bus vengono salvati nel file dello schema elettrico. Qualunque alias creato in un dato foglio dello schema elettrico è disponibile all’uso in qualunque altro foglio della gerarchia dello progetto.

Bus con più di una etichetta

KiCad 5.0 e versioni precedenti permettevano la connessione di bus con diverse etichette assieme, e collegavano assieme i membri di detti bus durante la creazione della netlist. Questo comportamento è stato eliminato in KiCad 6.0 perché è incompatibile con i bus di gruppo, e anche perché tendeva a creare confusione nelle netlist perché il nome che un dato segnale avrebbe ricevuto non era facilmente predicibile.

Se si apre un progetto che faceva uso di questa caratteristica in una versione moderna di KiCad, si potrà osservare la finestra di dialogo di ``Migrazione bus'' che vi guiderà attraverso la procedura di aggiornamento dello schema in modo tale da garantire l’esistenza di una sola etichetta per un dato insieme di collegamenti bus.

Finestra di dialogo di migrazione bus

Per ogni insieme di fili di bus che ha più di una etichetta, è necessario scegliere l’etichetta da tenere. Il menu a discesa permette di scegliere tra le etichette che esistono nel progetto, oppure è anche possibile scegliere un nome ancora diverso inserendolo manualmente nel campo del nuovo nome.

6.4.5. Porte di potenza

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.

La figura sottostante mostra un esempio di connessioni di porte di potenza.

Esempio di porte di potenza

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

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.

Esempio di riquadro con testo

6.5.2. Blocco del titolo del foglio

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

Finestra di dialogo delle impostazioni pagina

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.

Blocco del titolo

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. Recupero di simboli dalla cache

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:

Finestra di dialogo di conflitti nel recupero

Si può vedere in questo esempio che il progetto in origine aveva usato un diodo con il catodo verso l’alto, ma ora la libreria ne contiene uno con il catodo verso il basso. Questo cambiamento può danneggiare il progetto! Premendo OK qui farà in modo di salvare il vecchio simbolo in una speciale libreria di ``recupero'', e tutti i componenti che usano quel simbolo verranno rinominati per evitare conflitti di nome.

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.

Se si preferisce non visualizzare questa finestra di dialogo, è possibile premere ``Non mostrare più''. L’impostazione predefinita non farà nulla e permetterà di caricare i nuovi componenti. Questa opzione può essere ripristinata nelle preferenze delle librerie.

7. Schemi elettrici gerarchici

7.1. Introduzione

Una rappresentazione gerarchica è in genere una buona soluzione al problema dei progetti consistenti in più di qualche foglio. Se si vuole gestire questa tipologia di progetti, è necessario:

  • Usare fogli grandi, con il risultato di avere poi problemi di stampa e di gestione dei fogli.

  • Usare diversi fogli gerarchici, che portano ad una struttura gerarchica.

Lo schema elettrico completo consisterà quindi in un foglio principale, chiamato foglio radice, e dei sotto-fogli costituenti la gerarchia. Inoltre, una attenta suddivisione del progetto in fogli separati migliora la sua leggibilità.

Dal foglio radice, si possono trovare tutti i sottofogli. La gestione gerarchica degli schemi elettrici è molto facile con Eeschema, grazie ad un "Navigatore gerarchia" integrato accessibile tramite l’icona Icona nevigatore gerarchia sulla barra strumenti in cima.

Ci sono due tipi di gerarchie che possono esistere simultaneamente: la prima è stata appena menzionata ed è di uso generale. La seconda consiste nella creazione simboli nella libreria che appaiono come simboli tradizionali nello schema, ma che effettivamente consistono a loro volta di uno schema elettrico che descrive la loro struttura interna.

Questo secondo tipo viene usato per sviluppatr circuiti integrati, dato che in questo caso è necessario usare funzioni di libreria nello schema che si sta progettando.

KiCad attualmente non gestisce questo secondo caso.

Una gerarchia può essere:

  • semplice: un dato foglio è usato solo una volta

  • complessa: un dato foglio viene usato più di una volta (istanze multiple)

  • piatta: che consiste in una gerarchia semplice, ma le connessioni tra fogli non sono disegnate.

KiCad può gestire tutte queste gerarchie.

La creazione di uno schema elettrico gerarchico è semplice, l’intera gerarchia viene gestita partendo dallo schema radice, come se si trattasse di un unico schema elettrico.

Due passi importanti da comprendere sono:

  • Come creare un sotto-foglio.

  • Come creare connessioni elettriche tra sotto-fogli.

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

Ogni foglio è raggiungibile facendo clic sul suo nome. Per accedere velocemente, clic destro su un nome foglio, e scegliere Accedi al foglio o fare doppio clic all’interno dei limiti del foglio.

Per uscire dal foglio corrente sul foglio genitore, fare clic con il tasto destro del mouse ovunque sullo schema in cui non vi siano oggetti e selezionare la voce del menu di scelta rapida ``Lascia il foglio'' o premere Alt+Backspace.

7.3. Locale, etichette gerarchiche e globali

7.3.1. Proprietà

Le etichette locali, strumento Icona etichetta locale, sono simboli di connessione solo dentro un foglio. Le etichette gerarchiche (strumento Icona etichetta gerarchica) sono simboli di connessione solo dentro un foglio ed ad un piedino gerarchico piazzato nel foglio genitore.

Le etichette globali (strumento Icona etichetta globale) sono simboli di connessione attraverso tutta la gerarchia. I piedini di potenza (tipo power in e power out) invisibili sono come le etichette globali poiché sono visti come connessi tra loro attraverso tutta la gerarchia.

Note
Dentro una gerarchia (semplice o complessa) si può usare sia etichette gerarchiche, assieme o in alternativa a, etichette globali.

7.4. Riepilogo della creazione della gerarchia

Si deve:

  • Piazzare nel foglio radice un simbolo gerarchico chiamato "simbolo foglio".

  • Inserire nel nuovo schema (sotto-foglio) con il navigatore e disegnarlo, come ogni altro schema elettrico.

  • Disegnare le connessioni elettriche tra due schemi piazzando etichette globali (hlabel) nel nuovo schema (sotto-foglio), ed etichette con lo stesso nome nel foglio radice, queste ultime conosciute anche come EtichetteFoglio. Queste EtichetteFoglio saranno connesse al simbolo del foglio, del foglio radice, ad altri elementi dello schema come normali pin di simboli.

7.5. Simbolo di foglio

Disegna un rettangolo definito dai due punti diagonali che simboleggiano il sotto-foglio.

La dimensione di questo rettangolo deve consentire di piazzare in seguito etichette particolari, piedini gerarchici, corrispondenti alle etichette globali (hlabel) nel sotto-foglio.

Queste etichette sono simili a normali piedini di simboli. Selezionare lo strumento Icona aggiungi sottofoglio gerarchico.

Fare clic per piazzare l’angolo sinistro alto del rettangolo. Fare clic nuovamente per piazzare l’angolo destro basso, verificando di creare un rettangolo sufficientemente dimensionato.

Verrà richiesto di inserire un nome file e un nome foglio per questo sotto-foglio (in modo da poter raggiungere lo schema corrispondente, usando il navigatore della gerarchia).

hsheet_properties_1_png

Bisogna per lo meno dare un nome file. Se non c’è un nome foglio, il nome file verrà usato come nome foglio (solitamente si lascia così).

7.6. Connessioni - piedini gerarchici

Qui si devono creano i punti di connessione (punti gerarchici) per il simbolo appena creato.

Questi punti di connessione sono simili ai piedini di normali simboli, ma con la possibilità di connettere un bus completo con solo un punto di connessione.

7.6.1. Importazione pin fogli gerarchici

  • Selezionare lo strumento Icona importazione pin fogli gerarchici.

  • Fare clic sul simbolo gerarchico da dove si vuole importare i pin corrispondenti alle etichette gerarchiche piazzate nello schema corrispondente. Se esiste una nuova etichetta gerarchica, cioè non corrispondente ad un pin già piazzato, apparirà un pin gerarchico.

  • Fare clic dove si vuole piazzare questo piedino.

Tutti i pin necessari possono perciò essere piazzati velocemente e senza errori. Il loro aspetto sarà in accordo con le etichette gerarchiche corrispondenti.

7.7. Connessioni - etichette gerarchiche

Ogni pin del simbolo del foglio appena creato, deve corrispondere ad una etichetta chiamata etichetta gerarchica nel sotto-foglio. Le etichette gerarhiche sono simili alle etichette, ma forniscono connessioni tra i sotto-fogli ed il foglio radice. La rappresentazione grafica delle due etichette complementari (pin ed etichetta gerarchica) è simile. La creazione delle etichette gerarchiche viene fatta con lo strumento Icona aggiungi etichetta gerarchica.

Di seguito un esempio di foglio radice:

hierarchical_label_root_png

Si noti il pin VCC_PIC, collegato al connettore JP1.

Ecco le connessioni corrispondenti nel sotto-foglio:

hierarchical_label_sub_png

Si troverà ancora, le due corrispondenti etichette gerarchiche, che forniscono connessione tra i due fogli gerarchici.

Note
Si può usare etichette gerarchiche e pin gerarchici per connettere due bus, secondo la sintassi (Bus [N. .m]) descritta in precedenza.

7.7.1. Etichette, etichette gerarchiche, etichette globali e pin di potenza invisibili

Ecco alcune note sulle varie modalità di fornire connessioni, a parte le connessioni tramite i semplici fili disegnati.

Etichette semplici

Le etichette semplici hanno una capacità di connessione locale, cioè limitata al foglio dello schema dove sono collocate. Ciò è dovuto al fatto che:

  • Ogni foglio ha un numero di foglio.

  • Questo numero di foglio è associato ad una etichetta.

Perciò, se si piazza l’etichetta "TOTO" nel foglio n° 3, in effetti l’etichetta vera è "TOTO_3". Se si piazza anche un’etichetta "TOTO" nel foglio n° 1 (foglio radice) si piazza in effetti un’etichetta di nome "TOTO_1", differente da "TOTO_3". Ciò si verifica sempre, anche quando c’è un solo foglio.

Etichette gerarchiche

Quanto detto per le etichette semplici risulta vero anche per le etichette gerarchiche.

Perciò nello stesso foglio, un’etichetta gerarchica "TOTO" viene considerata connessa ad un’etichetta locale "TOTO", ma non connessa ad un’etichetta gerarchica o un’etichetta di nome "TOTO" in un altro foglio.

Comunque, un’etichetta gerarchica viene considerata connessa al corrispondente simbolo di piedino foglio nel simbolo gerarchico piazzato nel foglio genitore.

Pin di potenza invisibili

Si era visto che i piedini di potenza invisibili sono connessi assieme se posseggono lo stesso nome. Perciò tutti i piedini di potenza dichiarati "Piedini di potenza invisibili" e chiamati VCC sono interconnessi e formano la connessione VCC, ma solo nel foglio dove essi siano stati piazzati.

Ciò significa che se si piazza un’etichetta VCC in un sotto-foglio, essa non verrà connessa ai piedini VCC, dato che questa etichetta è in realtà VCC_n, dove n è il numero di foglio.

Se si vuole che questa etichetta VCC sia veramente connessa alla VCC dell’intero schema, essa dovrà essere esplicitamente connessa ad un piedino di potenza invisibile, attraverso simbolo di porta di potenza VCC.

7.7.2. Etichette globali

Le etichette globali che posseggono un nome identico sono connesse attraverso l’intera gerarchia.

(etichette di potenza come vcc …​ sono etichette globali)

7.8. Gerarchia complessa

Ecco un esempio. Lo stesso schema viene usato due volte (due istanze). I due fogli condividono lo stesso schema perché il nome del file è lo stesso per i due fogli (``other_sheet.sch''). Ma i nomi dei fogli devono essere univoci.

Gerarchia Eeschema complessa

7.9. Gerarchia piatta

Si può creare un progetto usando molti fogli, senza creare connessioni tra questi fogli (gerarchia piatta) se le seguenti regole vengono rispettate:

  • Creare un foglio radice contenente gli altri fogli, che agisce come un collegamento tra gli altri fogli.

  • Non sono necessarie connessioni esplicite.

  • Usare etichette globali invece di etichette gerarchiche in tutti i fogli.

Ecco un esempio di un foglio radice.

Gerarchia Eeschema piatta

Ecco le due pagine, connesse tramite etichette globali.

Ecco il pic_programmer.sch.

Gerarchia Eeschema piatta 1

Ecco il pic_sockets.sch.

Gerarchia Eeschema piatta 2

Guardare le etichette globali.

Gerarchia Eeschema piatta 3

8. Strumento di annotazione simboli

8.1. Introduzione

Lo strumento di annotazione automatica permette di assegnare automaticamente un riferimento a simboli nello schema. Per componenti multipli, assegna un suffisso multi-unità per minimizzare il numero di questi simboli. Lo strumento di annotazione automatica è accessibile tramite l’icona Icona annota. Qui sotto si può osservare la sua finestra principale.

annotate-dialog_img

Schemi di annotazione disponibili:

  • Annota tutti i simboli (reimpostando le opzioni di annotazione esistenti)

  • Annota tutti i simboli, ma non scambiare nessuna unità multipla annotata precedentemente.

  • Annota solo i simboli che al momento non sono annotati. I simboli che non sono annotati avranno un designatore che termina con un '?' carattere.

  • Annota l’intera gerarchia (usa l’opzione schema intero).

  • Annota solo il foglio attuale (usa l’opzione solo pagina corrente).

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.

La scelta dell’ordine di annotazione fornisce il metodo usato per impostare il numero di riferimento dentro ogni foglio della gerarchia.

Ad eccezione di casi particolari, l’annotazione automatica si applica all’intero progetto (tutti i fogli) e ad i nuovi componenti, se non si vuole modificare le annotazioni precedenti.

La scelta annotazione fornisce il metodo usato per calcolare il riferimento:

  • Usa il primo numero libero nello schema: i componenti vengono annotati da 1 (per ogni prefisso di riferimento). Se esiste una precedente annotazione, verranno usati i numeri non ancora in uso.

  • Comincia dal foglio numero*100 e usa il primo numero libero: l’annotazione comincia da 101 per il foglio numero 1, da 201 per il foglio numero 2, ecc. Se ci sono più di 99 elementi con lo stesso prefisso di riferimento (U, R) nel foglio 1, lo strumento di annotazione usa il numero 200 e più, e l’annotazione per il foglio 2 comincerà dal prossimo numero libero.

  • Comincia dal foglio numero*1000 e usa il primo numero libero. L’annotazione comincia da 1001 per il foglio 1, 2001 per il foglio 2.

8.2. Alcuni esempi

8.2.1. Ordine di annotazione

Questo esempio mostra 5 elementi piazzati, ma non annotati.

eeschema_annotation_order_none_png

Dopo che lo strumento di annotazione viene eseguito, viene ottenuto il seguente risultato.

Ordinato per posizione X.

eeschema_annotation_order_x_png

Ordinato per posizione Y.

eeschema_annotation_order_y_png

Si può osservare che quattro porte 74LS00 sono state distribuite nel contenitore U1, e che la quinta 74LS00 è stata assegnata al successivo U2.

8.2.2. Scelte di annotazione

Ecco un’annotazione nel foglio 2 dove è stata impostata l’opzione usa il primo numero libero nello schema.

eeschema_annotation_choice_free_png

L’optione comincia dal foglio numero*100 e usa il prino numero libero produce il seguente risultato.

eeschema_annotation_choice_x100_png

L’opzione comincia dal numero*1000 e usa il primo numero libero produce il seguente risultato.

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:

  • Proprietà del simbolo

    • Symbol Properties Dialog

    • Symbol Fields Table

  • While placing symbols

  • Strumento di assegnamento impronte

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.

Filtro dell’elenco impronte

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.

Formato file delle equivalenze

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'

Ecco un esempio di file di equivalenze:

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

==== Visualizzazione dell'impronta corrente

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/it/footprint_view.png[scaledwidth="90%", alt="Visualizzazione di un'impronta"]

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

===== Visualizzazione del modello 3D corrente
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/it/3d_window.png[scaledwidth="90%", alt="Vista modello 3D"]

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


:experimental:

[[erc]]
== Verifica della progettazione con il Controllo Regole Elettriche (ERC)

=== Introduzione

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/it/dialog_erc.png[alt="Finestra di dialogo ERC", scaledwidth="70%"]

[[how-to-use-erc]]
=== Come usare l'ERC

l'ERC può essere avviato facendo clic sull'icona image:images/icons/erc_24.png[Icona ERC].

Gli avvertimenti vengono piazzati sugli elementi dello schema elettrico che provocano gli errori ERC (piedini o etichette).

[NOTE]
====
* In questa finestra di dialogo, facendo clic su un messaggio di errore, si salta direttamente al corrispettivo marcatore sullo schema elettrico.
* Sullo schema elettrico, facendo clic destro su un marcatore si accedere al corrispondente messaggio diagnostico.
====

È anche possibile cancellare i marcatori di errore dalla finestra di dialogo e impostare che specifici messaggi ERC vengano soppressi usando il menu contestuale del tasto destro del mouse.

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

[[example-of-erc]]
=== Esempio di ERC

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

Qui si può osservare quattro errori:

* Due uscite sono state erroneamente collegate assieme (freccia rossa).
* Due ingressi sono stati lasciati sconnessi (freccia verde).
* C'è un errore su una porta di potenza invisibile, manca la segnalazione di potenza (freccia verde in cima).

[[displaying-diagnostics]]
=== Mostrare i messaggi diagnostici

Facendo clic destro su un marcatore si apre un menu che permette di accedere alla finestra diagnostica del marcatore ERC.

image::images/it/erc_pointers_info.png[alt="Informazioni sui puntatori ERC", scaledwidth="70%"]

e se si fa clic su 'Info errore marcatore' si ottiene una descrizione dell'errore.

image::images/it/erc_pointers_message.png[alt="Messaggio puntatori ERC", scaledwidth="80%"]

[[power-pins-and-power-flags]]
=== Piedini e segnalazioni di potenza

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="Piedini e segnalazioni di potenza", scaledwidth="70%"]

Il marcatore d'errore allora sparirà.

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

Il pannello _Mappa conflitti pin_ nelle `Impostazioni dello schema`, permette di configurare le regole di connessione per definire le condizioni elettriche per il controllo di errori e avvertimenti in base al tipo di pin connesso uno con l'altro.

image::images/it/eeschema_erc_options.png[alt="Mappa conflitti pin ERC dello schema", scaledwidth="70%"]

Le regole possono essere cambiate facendo clic sul riquadro desiderato della matrice, in modo da selezionare la scelta desiderata: normale, avvertimento, errore.

image::images/eeschema_erc_severity.png[alt="Impostazioni importanza ERC schema", scaledwidth="70%"]
Il pannello _Importanza violazione_ nella `Impostazione dello schema` permette di configurare che tipo di messaggi ERC devono essere riportati come errori, semplici avvertimenti o ignorati.

[[erc-report-file]]
=== File rapporto ERC

Un file di rapporto ERC può essere generato e salvato selezionando l'opzione “Scrivi rapporto ERC”. L'estensione del file per i file di rapporto ERC è “.erc”. Ecco un esempio di file rapporto 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

=== Panoramica
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]]
== Traccia e stampa

=== Introduzione

Si accede ai comandi di stampa e di tracciamento (N.d.T. ovvero una stampa esportata in un formato vettoriale) tramite il file menu.

image::images/it/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]]
=== Comandi di stampa comuni

Traccia pagina corrente:: stampa solo un file solo per il foglio corrente.

Traccia tutte le pagine:: permette di tracciare l'intera gerarchia (viene generato un file di stampa per ogni foglio).

[[plot-in-postscript]]
=== Traccia in Postscript

Questo comando permette di creare file in formato Postscritp.

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

Il nome file è il nome del foglio con estensione .ps. È possibile disabilitare l'opzione "Traccia squadratura e riquadro iscrizioni". È utile se si vuole creare un file postscript per incapsulato (formato .eps) usato spesso per inserire uno schema per esempio in un programma di videoscrittra. La finestra messaggi mostra i nomi (con i percorsi) dei file creati.

[[plot-in-pdf]]
=== Traccia in PDF

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

Permette di creare file di tracciature usando il formato PDF. Il nome file è in nome del foglio con estensione .pdf .

[[plot-in-svg]]
=== Traccia in SVG

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

Permette di creare file di tracciatura usando il formato SVG. Il nome del file è il nome del foglio con estensione .svg .

[[plot-in-dxf]]
=== Traccia in DXF

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

Permette di creare un file di tracciatura in formato DXF. Il nome del file è il nome del foglio con estensione .dxf .

[[plot-in-hpgl]]
=== Traccia in HPGL

Questo comando permette di creare un file HPGL. Per questo formato è possibile impostare:

* Dimensione pagina.
* Origine.
* Dimensione penna (in mm).

La finestra di dialogo di impostazione del plotter appare come questa:

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

Il nome del file risultante avrà il nome del foglio più estensione .plt .

[[sheet-size-selection]]
==== Selezione dimensione foglio

La dimensione del foglio normalmente viene controllata. In questo caso, verrà usata la dimensione del foglio definita nel menu del blocco del titolo e la scala scelta sarà di 1. Se viene selezionata una diversa dimensione del foglio (A4 con A0, o A con E), la scala viene automaticamente regolata per riempire la pagina.

[[offset-adjustments]]
==== Regolazioni di posizionamento

Per tutte le dimensioni standard, è possibile regolare la posizione per centrare il più possibile il disegno. Dato che i plotter hanno il punto di origine al centro o nell'angolo in basso a sinistra del foglio, è necessario poter introdurre uno spostamento in maniera tale da permettere una tracciatura regolare.

Parlando in generale:

* Per plotter con il punto di origine al centro del foglio lo spostamento deve essere negativo e impostato a metà delle dimensioni del foglio.
* Per plotter con punto di origine nell'angolo in basso a sinistra del foglio lo spostamento deve essere impostato a 0.

Per impostare uno spostamento:

* Selezionare la dimensione del foglio.
* Impostare lo spostamento X e Y.
* Fare clic per accettare lo spostamento.

[[print-on-paper]]
=== Stampa su carta

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/it/print_dialog.png[alt="finestra di dialogo stampa", scaledwidth="50%"]

L'opzione “Stampa squadratura e riquadro iscrizioni del foglio" abilita o disabilita la stampa di questi particolari.

L'opzione “Stampa in bianco e nero” imposta la stampante come monocromatica. Questa opzione è in genere necessaria se si usa una stampante laser in bianco e nero, dato che i colori vengono stampati come mezzi-toni e spesso non sono molto leggibili.

:experimental:

[[symbol-editor]]
== Editor dei simboli

[[general-information-about-symbol-libraries]]
=== Informazioni generali sulle librerie di simboli

Un simbolo è un elemento dello schema elettrico che contiene una rappresentazione grafica, connessioni elettriche e campi di testo che definiscono il simbolo stesso. I simboli usati in uno schema elettrico vengono memorizzati in librerie di simboli. KiCad fornisce uno strumento per la modifica dei simboli che permette di creare librerie, aggiungere, eliminare o trasferire simboli tra librerie, esportare simboli su file e importare simboli da file. In breve, lo strumento di modifica dei simboli fornisce un modo semplice per gestire simboli e librerie di simboli.

[[symbol-library-overview]]
=== Panoramica delle librerie di simboli

Una libreria di simboli è composta da uno o più simboli. Generalmente i simboli sono raggruppati per funzione, tipo e/o produttore.

Un simbolo è composto di:

* Elementi grafici (linee, cerchi, archi, testo, ecc.) che determinano l'aspetto del simbolo nello schema elettrico.
* I piedini hanno sia proprietà grafiche (linea, clock, inversione, attivo basso, ecc.) che proprietà elettriche (ingresso, uscita, bidirezionale, ecc.) usate dallo strumento di controllo regole elettriche (ERC).
* Campi come riferimenti, valori, nomi impronte corrispondenti per la progettazione del circuito stampato, ecc.

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.

La corretta progettazione di simboli richiede:

* Specificare se il simbolo è formato da più di un'unità.
* Specificare se il simbolo possiede uno stile corpo alternativo (altrimenti detto rappresentazione De Morgan).
* La progettazione della sua rappresentazione simbolica usando linee, rettangoli, cerchi, poligoni e testo.
* L'aggiunta di pin definendo con cura l'elemento grafico di ogni pin, il nome, il numero, e le sue proprietà elettriche (ingresso, uscita, tri-state, potenza, ecc.).
* Determining if the symbol should be derived from another symbol with the same graphical design and pin definition.
* L'aggiunta di campi opzionali come il nome dell'impronta usata dal software di progettazione di circuiti stampati e/o la definizione della loro visibilità.
* La documentazione del simbolo aggiungendo una stringa di descrizione, collegamenti ai datasheet, ecc.
* Il salvataggio nella libreria scelta.

[[symbol-library-editor-overview]]
=== Panoramica dell'editor dei simboli di libreria

Di seguito si può osservare la finestra principale dell'editor di librerie di simboli. Esso consiste in tre barre degli strumenti che servono a velocizzare l'accesso alle funzioni più comuni, e un'area di visualizzazione/modifica del simbolo. Sulle barre degli strumenti non sono disponibili tutti comandi, ma quelli che mancano sono comunque accessibili tramite i menu.

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

[[main-toolbar]]
==== Barra strumenti principale

La barra degli strumenti principale è collocata in cima alla finestra principale, come mostrato sotto, e consiste nei comandi di annullamento e ripetizione delle ultime operazioni, zoom, finestre di dialogo delle proprietà dei simboli, controlli di gestione unità/rappresentazione.

image::images/it/toolbar_libedit.png[alt="Barra editor dei simboli", 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]]
==== Barra strumenti elementi

La barra strumenti verticale sul lato destro della finestra principale permette di piazzare tutti gli elementi richiesti per progettare un simbolo.

[width="100%", cols="10%,90%"]
|=======================================================================
|image:images/icons/cursor_24.png[Icona puntatore]
|Strumento di selezione. Clic destro con lo strumento di selezione apre il
menu contestuale per l'oggetto sottostante il puntatore. Clic sinistro con
lo strumento di selezione visualizza gli attributi dell'oggetto nel pannello
messaggi in fondo alla finestra principale. Doppio clic sinistro con lo
strumento di selezione apre la finestra di dialogo delle proprietà dello
stesso oggetto.

|image:images/icons/pin_24.png[Icona pin]
|Strumento pin. Clic sinistro per aggiungere un nuovo piedino.

|image:images/icons/text_24.png[Icona testo]
|Strumento testo grafico. Clic sinistro per aggiungere un nuovo elemento di testo grafico.

|image:images/icons/add_rectangle_24.png[Icona aggiungi rettangolo]
|Strumento rettangolo. Clic sinistro per cominciare a disegnare il primo
vertice di un rettangolo grafico. Un secondo clic sinistro per piazzare
il vertice opposto del rettangolo.

|image:images/icons/add_circle_24.png[Icona aggiungi cerchio]
|Strumento cerchio. Clic sinistro per cominciare a disegnare un nuovo cerchio
grafico dal centro. Un secondo clic sinistro imposta il raggio del cerchio.

|image:images/icons/add_arc_24.png[Icona aggiungi arco]
|Strumento arco. Clic sinistro per cominciare a disegnare un nuovo elemento
arco grafico dal primo capo. Altro clic sinistro per impostare il secondo capo.
Per regolare il raggio trascinare il punto di centro dell'arco.

|image:images/icons/add_line_24.png[Icona aggiungi linea]
|Strumento linea connessa. Clic sinistro per cominciare a disegnare un nuovo elemento
grafico linea nel simbolo corrente. Clic sinistro per ogni linea connessa aggiuntiva.
Doppio clic sinistro per completare la linea.

|image:images/icons/anchor_24.png[Icona àncora]
|Strumento àncora. Clic sinistro per impostare la posizione dell'àncora del simbolo.

|image:images/icons/delete_24.png[Icona elimina]
|Strumento elimina. Clic sinistro per eliminare un oggetto dal simbolo corrente.
|=======================================================================

[[options-toolbar]]
==== Barra opzioni

La barra strumenti verticale, posizionata sul lato sinistro della finestra principale, permette di impostare alcune opzioni di disegno dell'editor.

[width="100%", cols="10%,90%"]
|=======================================================================
|image:images/icons/grid_24.png[Icona griglia]
|Commuta la visibilità griglia.

|image:images/icons/unit_inch_24.png[Icona unità griglia]
|Imposta le unità a pollici.

|image:images/icons/unit_mil_24.png[Icona unità mils]
|Imposta le unità a mils (0.001 pollici).

|image:images/icons/unit_mm_24.png[Icona unità millimetri]
|Imposta le unità a millimetri.

|image:images/icons/cursor_shape_24.png[Icona forma puntatore]
|Commuta la forma del puntatore (pieno schermo/piccolo).

|image:images/icons/pin_show_etype_24.png[Icona mostra tipo di pin]
|Commuta la visibilità della tipologia elettrica dei pin.

|image:images/icons/search_tree_24.png[Icona albero dei simboli]
|Commuta la visibilità delle librerie e dei simboli.
|=======================================================================

[[library-selection-and-maintenance]]
=== Selezione e manutenzione librerie

La selezione della libreria corrente è possibile tramite l'icona image:images/icons/search_tree_24.png[Icona albero dei simboli] che mostra tutte le librerie disponibili e permette di selezionarne una. Quando un simbolo viene caricato o salvato, esso viene messo in questa libreria. Il nome di libreria di un simbolo è il contenuto del suo campo valore.

[[select-and-save-a-symbol]]
==== Selezione e salvataggio di un simbolo

[[symbol-selection]]
===== Selezione simboli

Facendo clic sull'icona image:images/icons/search_tree_24.png[Icona albero dei simboli] sulla barra degli strumenti di sinistra commuta la visualizzazione ad albero di librerie e simboli. Facendo clic su un simbolo si apre quel simbolo.

[NOTE]
Alcuni simboli sono derivati da altri simboli. I nomi dei simboli derivati vengono visualizzati in __corsivo__ nella vista ad albero. Se un simbolo derivato viene aperto, la sua grafica non sarà modificabile. I suoi campi simbolo invece saranno modificabili normalmente. Per modificare la grafica di un simbolo base e di tutti i suoi simboli derivati, bisogna aprire il simbolo base.

[[save-a-symbol]]
===== Salvare un simbolo

Dopo la modifica, un simbolo può essere salvato nella libreria corrente o in una nuova libreria.

Per salvare il simbolo modificato nella libreria corrente, fare clic sull'icona image:images/icons/save_24.png[Icona salva]. Le modifiche verranno scritte sul simbolo esistente.

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

Per salvare i cambiamenti del simbolo in un nuovo simbolo, fare clic su **File** -> **Salva con nome...**. Il simbolo può essere salvato nella libreria corrente o in una diversa libreria. Si può impostare anche un nuovo nome per il simbolo.

Per creare un nuovo file contenente solo il simbolo corrente, fare clic su **File** -> **Esporta** -> **Simbolo...**. Questo file sarà un file di libreria standard che conterrà solo un simbolo.

[[creating-library-symbols]]
=== Creare simboli di libreria

[[create-a-new-symbol]]
==== Creare un nuovo simbolo

Un nuovo simbolo può essere creato facendo clic sull'icona image:images/icons/new_component_24.png[Icona nuovo simbolo]. Verranno richieste un certo numero di proprietà del simbolo.

* Un nome simbolo (questo nome viene usato come valore predefinito del campo `Valore` nell'editor dello schema elettrico.
* 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.
* Il prefisso del riferimento (`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="Proprietà del nuovo simbolo", scaledwidth="50%"]

Un nuovo simbolo verrà creato usando le proprietà sopraesposte e apparirà nell'editor come mostrato sotto.

image::images/it/eeschema_libedit_new.png[alt="Simbolo appena creato", 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]]
==== Creare un simbolo da un altro simbolo

Spesso, il simbolo che si vuole creare è simile ad un altro già presente in una libreria componenti. In questo caso risulta più facile caricare e modificare un simbolo esistente (N.d.T. piuttosto che ricrearne uno nuovo da zero).

* Caricare il simbolo che verrà usato come punto di partenza.
* 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.
* Modifica il nuovo simbolo come richiesto.
* Salva il simbolo modificato.

[[symbol-properties]]
==== Proprietà del simbolo

Le proprietà del simbolo vengono impostate durante la creazione del simbolo ma queste possono essere modificate in qualsiasi momento. Per cambiare le proprietà del simbolo, fare clic su image:images/icons/part_properties_24.png[Icona proprietà del simbolo] per mostrare la finestra seguente.

image::images/it/eeschema_properties_for_symbol.png[alt="Proprietà del simbolo", scaledwidth="60%"]

È molto importante impostare correttamente il numero di unità per contenitore e la rappresentazione simbolica alternativa, se abilitata, perché quando i pin vengono modificati o creati, sono coinvolti i pin corrispondenti per ogni unità. Se si cambia il numero di unità per contenitore dopo la creazione e modifica dei pin, ci sarà ulteriore lavoro per specificare i pin e le grafiche per le nuove unità. Comunque, è possibile modificare queste proprietà in ogni momento.

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.

L'esempio sottostante mostra un simbolo con l'opzione ``Nome piedino interno'' non selezionata. Si noti la posizione dei nomi e dei numeri di 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/it/eeschema_libedit_footprint.png[alt="Filtri impronte", scaledwidth="70%"]

[[symbols-with-alternate-symbolic-representation]]
==== Definizione piedini per simboli multipli e rappresentazioni simboliche alternative

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/it/eeschema_libedit_select_unit.png[alt="Selecting a symbol unit", scaledwidth="80%"]

[[graphical-elements]]
=== Elementi grafici

Gli elementi grafici formano la rappresentazione di un simbolo e non contengono informazioni di connessioni elettriche. Vengono creati usando i seguenti strumenti:

* Linee e poligoni definiti da punti di inizio e fine.
* Rettangoli definiti da due angoli diagonali.
* Cerchi definiti da centro e raggio.
* Archi definiti da punti di inizio e fine dell'arco ed il suo centro. Un arco va da 0° a 180°.

La barra strumenti verticale sul lato destro della finestra principale permette di piazzare tutti gli elementi grafici richiesti per progettare la rappresentazione di un simbolo.

[[graphical-element-membership]]
==== Appartenenza di elementi grafici

Ogni elemento grafico (linea, arco, cerchio, ecc.) può essere definito come comune a tutte le unità e/o stili di corpi o specifico di una data unità e/o stile corpo. Le opzioni dell'elemento sono accessibili facilmente facendo clic destro sull'elemento per mostrare il menu contestuale per l'elemento selezionato. Di seguito è mostrato il menu contestuale per un elemento linea.

image::images/it/eeschema_libedit_context_menu.png[alt="Menu contestuale linea grafica", scaledwidth="80%"]

Si può anche fare doppio clic sinistro su un elemento per modificare le sue proprietà. Di seguito viene mostrata la finestra di dialogo delle proprietà di un elemento poligono.

image::images/it/eeschema_libedit_polyline_properties.png[alt="Proprietà linea grafica", scaledwidth="50%"]

Le proprietà di un elemento grafico sono:

* "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]]
==== Elementi di testo grafico

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]]
=== Unità multiple per simbolo e stili di corpo alternativi

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]]
==== Esempio di simbolo multiunità non interscambiabili

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/it/eeschema_libedit_not_interchangeable.png[alt="Uncheck all units are interchangeable", scaledwidth="60%"]

===== Unità A

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

===== Unità B

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

===== Unità C

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

L'unità A non ha lo stesso simbolo e disposizione di pin delle unità B e C, perciò le unità non sono intercambiabili.

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]]
===== Elementi simbolici grafici

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/it/eeschema_libedit_disable_common.png[alt="Disable common to all units in symbol", scaledwidth="70%"]

[[pin-creation-and-editing]]
=== Creazione e modifica di piedini

Si può fare clic sull'immagine image:images/icons/pin_24.png[Icona pin] per creare e inserire un pin. La modifica di tutte le proprietà del pin viene fatta facendo doppio clic sul pin o facendo clic destro sul pin per aprire il menu contestuale del pin. I pin si devono creare con attenzione, dato che ogni errore avrà conseguenze sul circuito stampato in progettazione. Ogni pin già posizionato può essere modificato, cancellato e/o spostato.

[[pin-overview]]
==== Panoramica piedino

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.

Note importanti:

* 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 (`_`).
* Per definire un nome pin con un segnale invertito (overline) usare il carattere `~` (tilde) seguito dal testo da invertite in parentesi graffe. Per esempio `\~{FO}O` mostrerà [overline]#FO# O.
* Se il nome pin è vuoto, il pin viene considerato senza nome.
* I nomi di pin possono essere ripetuti in un simbolo.
* I numeri di pin devono essere univoci in un simbolo.

[[pin-properties]]
==== Proprietà piedino

image::images/it/eeschema_libedit_pin_properties.png[alt="Proprietà pin", scaledwidth="95%"]

La finestra di dialogo delle proprietà del pin permette di modificare tutte le caratteristiche di un pin. Questa finestra di dialogo salta fuori automaticamente quando si crea un pin o facendo doppio clic su un pin già esistente. Questa finestra di dialogo permette di modificare:

* Nome e dimensione testo del pin.
* Numero e dimensione testo del pin.
* Lunghezza pin.
* Tipo elettrico e stile grafico del piedino.
* Unità e appartenenza a rappresentazioni alternative.
* Visibilità pin.
* <<alternate-pin-definitions,Definizioni alternative del pin>>.

[[pin-graphic-styles]]
==== Stili grafici pin

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/it/eeschema_libedit_pin_properties_style.png[alt="Stili grafici pin", scaledwidth="95%"]

[[pin-electrical-types]]
==== Tipi elettrici del 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/it/eeschema_libedit_pin_context_menu.png[alt="Menu contestuale pin", scaledwidth="60%"]

[[defining-pins-for-multiple-units-and-alternate-symbolic-representations]]
==== Definizione piedini per componenti multipli e rappresentazioni simboliche alternative

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]]
==== Definizioni alternative dei pin

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]]
=== Campi del simbolo

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]]
==== Modifica campi del simbolo

Per modificare un campo simbolo esistente, fare clic destro sul testo del campo per mostrare il menu contestuale mostrato sotto.

image::images/it/eeschema_libedit_field_context_menu.png[alt="Menu contestuale campo simbolo", 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.

Note importanti:

* 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]]
=== Porte di potenza

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="Esempio di porta di potenza", 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/it/eeschema_libedit_power_symbol.png[alt="Modifica di un simbolo di potenza", scaledwidth="95%"]

==== Creazione di simbolo porta di potenza

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="Pin simbolo di potenza", scaledwidth="60%"]

Per creare un simbolo di potenza, seguire questi passi:

* 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]]
== Esploratore libreria di simboli

=== Introduzione

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/it/eeschema_viewlib_choose.png[alt="eeschema_viewlib_choose_png", scaledwidth="60%"]

[[viewlib---main-screen]]
=== Viewlib - schermo principale

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

Per esaminare i contenuti della libreria, selezionare la libreria desiderata dall'elenco sul lato sinistro. I simboli disponibili appariranno nel secondo pannello. Selezionare il nome di un simbolo per visualizzarlo.

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

[[viewlib-top-toolbar]]
=== Barra alta dell'esploratore delle librerie di simboli

La barra in alto dell'esploratore di librerie di simboli viene mostrata di seguito.

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

I comandi disponibili sono:

[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]]
== Creazione di una netlist

=== Panoramica

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:

* Software per circuiti stampati.
* Simulazione di circuiti elettrici e circuiti stampati.
* 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]]
=== Formati di 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/it/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]]
=== Esempi 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]]
=== Note sulla netlist

[[netlist-name-precautions]]
==== Precauzioni sul nomi 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]]
=== Altri formati

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/it/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]]
==== Formato a linea di comando

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]]
==== Formato file netlist intermedio

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]]
== Creazione di netlist personalizzate e distinte materiali

[[intermediate-netlist-file]]
=== File di netlist intermedio

File distinte materiali e di netlist possono essere convertiti da un file di netlist intermedio creato da KiCad.

Questo file usa la sintassi XML e si chiama netlist intermedia. La netlist intermedia include una grande quantità di dati sulla scheda e perciò, può essere usata tramite elaborazione successiva per generare distinte materiali o altri rapporti.

A seconda del risultato (distinta materiali o netlist), differenti sottoinsiemi dell'intero file di netlist intermedia saranno usati nella post-elaborazione.

[[schematic-sample]]
==== Campione di schema

image::images/schematic-sample.png[alt="Campione di schema", scaledwidth="95%"]

[[the-intermediate-netlist-file-sample]]
==== Campione di file di netlist intermedia

La corrispondente netlist intermedia (sintassi XML) del circuito precedente viene mostrata di seguito.

-----------------------------------------------------------------
<?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]]
=== Conversione in un nuovo formato di netlist

Applicando un filtro di post-elaborazione al file di netlist intermedia è possibile generare file di netlist per altre applicazioni o file di distinta materiali. Dato che questa conversione è in effetti una trasformazione da un formato testo ad un altro, si può scrivere questo filtro di post-elaborazione usando Python, XSLT, o qualsiasi altro strumento in grado di ricevere in ingresso dati XML.

XSLT è di per sè un linguaggio XML molto adatto alle trasformazioni XML. Esiste un programma libero di nome _xsltproc_ che è possibile scaricare e installare. Il prgramma xsltproc può essere usato per leggere in ingresso il file XML di netlist intermedio, applicare un foglio di stile per trasformare l'ingresso, e salvare il risultato in un file in uscita. L'uso di xsltproc richiede un file foglio di stile che usi le convenzioni XSLT. L'intero processo di conversione viene gestito da KiCad, dopo essere stato configurato per l'esecuzione di xsltproc in modo specifico.

[[xslt-approach]]
=== Approccio XSLT

Il documento che descrive le trasformazioni XSL (XSLT) è qui disponibile:

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

[[create-a-pads-pcb-netlist-file]]
==== Creare un file netlist Pads-Pcb

Il formato pads-pcb comprende due sezioni.

* L'elenco impronte.

* La netslist: raggruppando riferimenti a piazzole per collegamenti.

Di seguito c'è un foglio di stile che converte il file di netlist intermedio in formato 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>
-------------------------------------------------------------------------------

Ed ecco il file pads-pcb in uscita dopo l'esecuzione di 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*
------------------

La riga di comando per effettuare questa conversione è:

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

[[create-a-cadstar-netlist-file]]
==== Creazione di un file netlist Cadstar

Il formato Cadstar è formato da due sezioni.

* L'elenco impronte.

* La netslist: raggruppando riferimenti a piazzole per collegamenti.

Ecco il file del foglio di stile per effettuare questa specifica conversione:

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

Ecco il file Cadstar in uscita.

-----
.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]]
==== Creazione di un file netlist OrcadPCB2

Questo formato ha solo una sezione che consiste nell'elenco impronte. Ogni impronta include il suo elenco di piazzole con un riferimento alla corrispondente connessione.

Ecco il foglio di stile per questa specifica conversione:

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

Ecco il file OrcadPCB2 risultante.

-----------------------------------------------------
( { 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]]
==== Interfaccia plugin netlist

I convertitori di netlist intermedie possono essere avviati automaticamente dall'interno dell'editor degli schemi elettrici.

[[init-the-dialog-window-1]]
===== Inizializzazione della finestra di dialogo

È possibile aggiungere una nuova scheda interfaccia utente di plugin di netlist facendo clic sul pulsante Aggiungi plugin.

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

Ecco come appaiono i dati di configurazione per la scheda PadsPcb:

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

[[plugin-configuration-parameters]]
===== Parametri di configurazione plugin

La finestra di dialogo di configurazione plugin netlist richiede le seguenti informazioni:

* Il titolo: per esempio, il nome del formato della netlist.

* La riga di comando che serve per eseguire il convertitore.

Fatto clic sul pulsante della netlist ecco cosa succede:

1.  KiCad crea un file di netlist intermedio *.xml, per esempio test.xml.

2.  KiCad esegue il plugin leggendo test.xml e crea test.net.

[[generate-netlist-files-with-the-command-line]]
===== Generazione di file di netlist tramite linea di comando

Assumendo che si stia usando il programma _xsltproc.exe_ per applicare il foglio di stile al file intermedio, _xsltproc.exe_ verrà eseguito tramite il seguente comando:

_xsltproc.exe -o <nomefile in uscita> <nomefile foglio di stile> <file XML in ingresso da convertire>_

In KiCad sotto Windows la riga di comando è la seguente:

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

Sotto Linux il comando diventa il seguente:

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

Dove _netlist_form_pads-pcb.xsl_ è il foglio di stile che si sta applicando. Non si deve dimenticare le virgolette intorno ai nomi dei file, ciò permette di avere spazi dopo la sostituzione da parte di KiCad.

Il formato della riga di comando accetta parametri nei nomi di file:

I parametri di formattazione supportati sono:

* %B => nome file base e percorso del file di uscita selezionato, senza percorso ed estensione.

* %I => il nome del file completo di percorso del file di ingresso temporaneo (il netfile intermedio).

* %O => nome e percorso completi del file d'uscita scelto dall'utente.

_%I_ verrà rimpiazzato dall'effettivo nome file intermedio

_%O_ verrà rimpiazzato dall'effettivo nome del file d'uscita.

[[command-line-format-example-for-xsltproc]]
===== Formato della riga di comando: esempio per xsltproc

Il formato della riga di comando per xsltproc è il seguente:

<percorso di xsltproc> xsltproc <parametri di xsltproc>

sotto Windows:

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

sotto Linux:

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

In tutti gli esempi sopra descritti si presume che xsltproc sia installato sul proprio computer sotto Windows e che tutti i file siano posti in kicad/bin.

[[bill-of-materials-generation]]
==== Generazione distinta materiali

Dato che il file di netlist intermedio contiene tutte le informazioni sui componenti utilizzati, da esso è possibile estrarre una distinta materiali. Ecco la finestra di impostazioni del plugin (su Linux) per creare un file di distinta materiali personalizzato:

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

Il percorso del foglio di stile bom2csv.xsl dipende dal sistema operativo in uso. Attualmente il migliore foglio di stile XSLT per la generazione della distinta materiali si chiama __bom2csv.xsl__. Questo è modificabile liberamente per venire incontro alle proprie esigenze, ma se si sviluppa qualcosa di universalmente utile, chiedete e la comunità degli sviluppatori sarà ben lieta di includere i vostri miglioramenti nel progetto KiCad.

[[command-line-format-example-for-python-scripts]]
=== Formato della riga di comando: esempio di script python

Il formato della riga di comando per python è qualcosa del genere:

python <nome file script> <file in ingresso> <file in uscita>

sotto Windows:

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

sotto Linux:

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

Assumendo che python sia installato nel proprio PC.

[[intermediate-netlist-structure]]
=== Struttura etlist intermedia

Questo campione dà un'idea del formato del file 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]]
==== Struttura generale del file netlist

La netlist intermedia consta di cinque sezioni.

* La sezione intestazione.
* La sezione componenti.
* La sezione librerie di parti.
* La sezione librerie.
* La sezione collegamenti.

Il contenuto del file ha il delimitatore <export>

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

[[the-header-section]]
==== Sezione intestazione

L'intestazione ha il delimitatore <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>
-----------------------------------------------------------

Questa sezione può essere considerata una sezione di commento.

[[the-components-section]]
==== La sezione componenti

La sezione componenti ha il delimitatore <componenti>

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

Questa sezione contiene l'elenco dei componente nello schema. Ogni componente viene descritto in questo modo:

-------------------------------------
<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* |nome della lib dove questo componente è stato trovato.

|*part* |nome componente dentro questa libreria.

|*sheetpath* |percorso del foglio dentro la gerarchia: identifica il foglio
dentro la gerarchia generale dello schema.

|*tstamps (time stamps)* |marcatura temporale del file dello schema.

|*tstamp (time stamp)* |marcatura temporale del componente.
|=======================================================================

[[note-about-time-stamps-for-components]]
===== Nota sulle marcature temporali per i componenti

Per identificare un componente in una netlist e quindi in una scheda, il marcatempo viene usato come riferimento univoco per ogni componente. Comunque KiCad fornisce in modo alternativo per identificare il corrispondente componente di una impronta sulla scheda. Ciò permette la ri-annotazione di componenti in un progetto di schema elettrico non perdendo il collegamento tra il componente e la sua impronta.

Un marcatore temporale è un identificatore univoco per ogni componente o foglio in un progetto di schema elettrico. Ma in caso di gerarchie complesse, lo stesso foglio viene usato più di una volta, perciò il foglio contiene componenti aventi la stessa marcatura temporale.

Un dato foglio dentro una gerarchia complessa possiede un identificatore univoco: il suo percorso foglio. Un dato componente (dentro una gerarchia complessa) possiede un identificativo univoco: il percorso foglio + la sua marcatura temporale.

[[the-libparts-section]]
==== La sezione libparts

La sezione libparts ha un delimitatore <libparts>, e il contenuto di questa sezione viene definito nelle librerie di schemi. La sezione libparts contiene:

* Il delimitatore dei nomi impronte permessi (i nomi usano i caratteri jolly) <fp>.
* I campi definiti nel delimitatore di libreria <fields>.
* L'elenco dei delimitatori di pin <pins>.

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

Le linee come <pin num="1" type="passive"/> descrivono anche il tipo elettrico del pin. I tipi di pin elettrici possibili sono:

[width="94%", cols="25%,75%"]
|================================================================
|Input |Normale pin di ingresso
|Output |Normale pin di uscita
|Bidirectional |Ingresso o uscita
|Tri-state |Bus ingresso/uscita
|Passive |Normale capo di componente passivo
|Unspecified |Tipo elettrico sconosciuto
|Power input |Ingresso di potenza, per es. l'alimentazione di un componente
|Power output |Uscita di potenza, per es. l'uscita di regolatore di tensione
|Open collector |Collettore aperto, comune dei comparatori analogici
|Open emitter |Emettitore aperto, presente in alcuni circuiti logici
|Not connected |Deve essere lasciato aperto nello schema elettrico
|================================================================

[[the-libraries-section]]
==== La sezione librerie

La sezione librerie possiede il delimitatore <libraries>. Questa sezione contiene l'elenco delle librerie di schemi elettrici usate nel progetto.

------------------------------------------------
<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]]
==== La sezione collegamenti

La sezione collegamenti possiede il delimitatore <nets>. Questa sezione contiene le "connessioni" dello schema elettrico.

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

Questa sezione elenca tutti i collegamenti presenti nello schema elettrico.

Un tipico collegamento contiene i seguenti elementi.

--------------------------
<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 |è un identificatore interno per questo collegamento
|name |è un nome per questo collegamento
|node |dà un piedino di riferimento connesso per questo collegamento
|================================================

[[more-about-xsltproc]]
=== Ancora su xsltproc

Fare riferimento alla pagina: _http://xmlsoft.org/XSLT/xsltproc.html_

[[introduction-7]]
==== Introduzione

xsltproc è uno strumento a riga di comando per l'applicazione di fogli di stile XSLT a documenti XML. Nonostante sia è stato sviluppato come parte del progetto GNOME, esso può operare independentemente dal desktop di GNOME.

xsltproc viene invocato dalla riga di comando con il nome del foglio di stile da usare seguito dal nome del file o dei file ai quali il foglio di stile deve essere applicato. Userà lo standard input se viene fornito il nome file - .

Se un foglio di stile viene incluso in un documento XML con istruzioni di elaborazione del foglio di stile, non è necessario nominare alcun foglio di stile nella riga di comando. xsltproc rileverà automaticamente il foglio di stile incluso e lo userà. Come impostazione predefinita, i risultati finscono nello __stdout__. È possibile specificare un file per il risultato usando l'opzione -o .

[[synopsis]]
==== Sinossi

---------------------------------------------------------------------------
xsltproc [[-V] | [-v] | [-o *file* ] | [--timing] | [--repeat] |
[--debug] | [--novalid] | [--noout] | [--maxdepth *val* ] | [--html] |
[--param *nome* *valore* ] | [--stringparam *nome* *valore* ] | [--nonet] |
[--path *percorsi* ] | [--load-trace] | [--catalogs] | [--xinclude] |
[--profile] | [--dumpextensions] | [--nowrite] | [--nomkdir] |
[--writesubtree] | [--nodtdattr]] [ *stylesheet* ] [ *file1* ] [ *file2* ]
[ *....* ]
---------------------------------------------------------------------------

[[command-line-options]]
==== Opzioni della riga di comando

_-V_ o _--version_

Mostra la versione di libxml e libxslt usati.

_-v_ o _--verbose_

Stampa tutti i passaggi intrapresi da xsltproc nell'elaborazione del foglio di stile e del documento.

_-o_ o _--output file_

Uscita diretta al file di nome __file__. Per uscite multiple, tecnica conosciuta anche col nome ``chunking'', -o cartella/ dirige i file di uscita in una specifica cartella. La cartella deve esistere già.

_--timing_

Mostra il tempo usato per l'analisi del foglio di stile, l'analisi del documento, l'applicazione del foglio di stile e il salvataggio dei risultati. Mostrati in millisecondi.

_--repeat_

Esegue la trasformazione 20 volte. Usata per i test di tempistica.

_--debug_

Emette un albero XML del documento trasformato a scopo di debug.

_--novalid_

Salta il caricamento del DTD del documento.

_--noout_

Non emettere alcun risultato.

_--maxdepth valore_

Regola la profondità massima della pila di modelli prima che libxslt concluda che si tratta di un ciclo infinito. Il valore predefinito è 500.

_--html_

Il file in ingresso è un file HTML.

_--param nome valore_

Passa un parametro di nome _nome_ e di valore _valore_ al foglio di stile. Si può passare più coppie nome/valore fino ad un massimo di 32. Se il valore passato è una stringa invece che un identificatore di nodo, usare invece --stringparam .

_--stringparam nome valore_

Passa un parametro di nome _nome_ e valore _valore_ dove _valore_ è una stringa invece che un identificatore di nodo (nota: la stringa deve essere con codifica utf-8).

_--nonet_

Non usare Internet per recuperare DTD, entità o documenti.

_--path percorsi_

Usare l'elenco (separato da spazi o colonne) di percorsi di file specificati da _paths_ per caricare le DTD, entità o documenti.

_--load-trace_

Mostra su stderr tutti i documenti caricati durante l'elaborazione.

_--catalogs_

Usa il catalogo SGML specificato in SGML_CATALOG_FILES per trovare la posizione di entità esterne. Come impostazione predefinita, xsltproc consulta il catalogo specificato in XML_CATALOG_FILES. Se questo non è specificato, usa /etc/xml/catalog.

_--xinclude_

Processa il documento in ingresso usando la specifica Xinclude. Maggiori dettagli su questo argomento si possono trovare nella specifica Xinclude: http://www.w3.org/TR/xinclude/[http://www.w3.org/TR/xinclude/]

_--profile --norman_

Fornisce in uscita informazioni di profilazione che dettagliano la quantità di tempo speso in ogni parte del foglio di stile. Utile per l'ottimizzazione del foglio di stile.

_--dumpextensions_

Scarica l'elenco di tutte le estensioni registrate su stdout.

_--nowrite_

Non scrive su nessun file o risorsa.

_--nomkdir_

Non crea nessuna cartella.

_--writesubtree percorso_

Permette la scrittura file solo all'interno del sotto albero _percorso_ .

_--nodtdattr_

Nno applica gli attributi predefiniti dal DTD del documento.

[[xsltproc-return-values]]
==== Valori di ritorno di xsltproc

xsltproc restituisce un numero di stato che può tornare utile se lo si chiama dall'interno di uno script.

0: normale

1: nessun argomento

2: troppi parametri

3: opzione sconosciuta

4: fallita l'analisi del foglio di stile

5: errore nel foglio di stile

6: errore in uno dei documenti

7: metodo xsl:output non supportato

8: parametro stringa contenente sia apici che virgolette

9: errore interno

10: l'elaborazione è stata interrotta da un messaggio di terminazione

11: impossibile scrivere il risultato sul file di uscita

[[more-information-about-xsltproc]]
==== Ulteriori informazioni su xsltproc

pagina web di libxml: http://www.xmlsoft.org/

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

:experimental:

[[simulator]]
== Simulatore ==

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

Quando si lavora con il simulatore, si può trovare utile la libreria ufficiale _pspice_. Essa contiene simboli comuni usati per la simulazione come sorgenti di tensione o corrente, o transistor con pin numerati in modo da corrispondere alle specifiche di ordine del nodo di ngspice.

Ci sono anche dei progetti dimostrativi per illustrare le capacità di simulazione. Si trovano nella cartella _demos/simulation_.

=== Assegnazione modelli

Prima di avviare una simulazione, i componenti devono avere assegnato un modello Spice.

Ogni componente può avere solo un modello assegnato, anche se il componente consiste di più unità. In tal caso, la prima unità deve specificare il modello.

[[sim-passive-models]] I componenti passivi con riferimento all'accoppiamento di un tipo di dispositivo in notazione Spice (_R*_ per le resistenze, _C*_ per i condensatori, _L*_ per le induttanze) avranno modelli assegnati implicitamente e useranno il campo valore per determinare le loro proprietà.

[NOTE]
Si faccia presente che nella notazione spice, 'M' sta per milli e 'Meg' per mega. Se si preferisce usare 'M' per indicare il prefisso mega, è possibile indicarlo nella <<sim-settings,finestra di dialogo delle impostazioni di simulazione>>.

Le informazioni sui modelli Spice sono memorizzate come testo nei campi dei simboli, perciò li si può definire sia nell'editor dei simboli che in quello dello schema elettrico. Aprire la finestra di dialogo delle proprietà del simbolo e fare clic sul pulsante _Modifica modello Spice_ per aprire la finestra di dialogo dell'editor del modello Spice.

La finestra di dialogo della modifica del modello Spice ha tre linguette corrispondenti a diversi tipi di modello. Ci sono due opzioni comuni a tutti i tipi di modello:

[width="90%", cols="30%a,70%a"]
|====
|Disabilita simbolo per la simulazione
|Quando è abilitato il componente viene escluso dalla simulazione.
|Sequenza nodi alternativa
|Permette di imporre la mappatura nodi del modello ai pin del simbolo.
Per definire una mappatura diversa, specificare i numeri dei pin nell'ordine che si aspetta il modello.

'Esempio:' +
____
`* connessioni:` +
`* 1: ingresso non-invertente` +
`* 2: ingresso invertente` +
`* 3: terminale positivo di potenza` +
`* 4: terminale negativo di potenza` +
`* 5: uscita` +
`.subckt tl071 1 2 3 4 5`
____

image::images/opamp_symbol.png[alt="Simbolo generico di amplificatore operazionale"]

Per accoppiare i pin del simbolo ai nodi del modello Spice mostrati sopra, è necessario usare l'opzione sequenza di nodi alternativa con valore: "1{nbsp}3{nbsp}5{nbsp}2{nbsp}4". È un elenco di numeri di pin corrispondenti all'ordine dei nodi del modello Spice.
|====

==== Passivo

La scheda _Passivo_ permette all'utente di assegnare un modello di dispositivo passivo (resistore, condensatore o induttore) ad un componente. È un'opzione usata raramente, dato che i componenti passivi hanno modelli assegnati <<sim-passive-models,implicitamente>>, a meno che il riferimento del componente non corrisponda all'effettivo tipo di dispositivo.

[NOTE]
I modelli di dispositivi passivi esplicitamente definiti hanno la priorità su quelli assegnati implicitamente. Questo significa che una volta che un modello di dispositivo passivo viene assegnato, i campi di riferimento e valore non sono presi in considerazione durante la simulazione. Ciò può portare ad una situazione di confusione dove il valore del modello assegnato non corrisponde con quello mostrato sullo schema elettrico.

image::images/it/sim_model_passive.png[alt="Scheda modifica modello dispositivo passivo"]

[width="90%", cols="30%a,70%a"]
|====
|Tipo
|Seleziona il tipo di dispositivo (resistore, condensatore o induttore).
|Valore
|Definisce la proprietà del dispositivo (resistenza, capacità o induttanza). Il valore può usare i soliti prefissi di unità di Spice (come elencato sotto il campo di inserimento testo) e dovrebbe usare il punto come separatore decimale. Si noti che Spice non interpreta correttamente i prefissi inseriti nei valori (per es. 1k5).
|====

==== Modello

La scheda _Modello_ viene usata per assegnare un semiconduttore o un modello complesso definito in un file di libreria esterno. Le librerie del modello Spice vengono spesso fornite dal costruttore del dispositivo.

La finestra di testo principale mostra i contenuti del file di libreria selezionato. È pratica comune mettere la descrizione del modello dentro i file delle librerie, includendo l'ordine dei nodi.

image::images/it/sim_model_subckt.png[alt="Scheda modifica modello dispositivo a semiconduttore"]

[width="90%", cols="30%a,70%a"]
|====================
|File
|Percorso ad un file di libreria Spice. Questo file verrà usato dal simulatore,
come viene aggiunto usando la direttiva _.include_.
|Modello
|Il modello di dispositivo selezionato. Quando un file viene selezionato, l'elenco viene riempito con i
modelli disponibili tra cui scegliere.
|Tipo
|Seleziona il tipo di modello (subcircuito, BJT, MOSFET o diodo). Normalmente viene impostato
automaticamente quando viene selezionato un modello.
|====================

==== Sorgente

La scheda _Sorgente_ viene usata per assegnare un modello di sorgente di potenza o di segnale. Ci sono due sezioni: _Analisi DC/AC_ e _Analisi del transiente_. Ognuna definisce i parametri sorgente per il tipo di simulazione corrispondente.

L'opzione _Tipo sorgente_ si applica a tutti i tipi di simulazione.

image::images/it/sim_model_source.png[alt="Scheda modifica modello sorgente"]

Fare riferimento alla http://ngspice.sourceforge.net/docs/ngspice-27-manual.pdf[documentazione ngspice], capitolo 4 (Sorgenti di tensione e corrente) per ulteriori dettagli sulle sorgenti.

[[sim-directives]]
=== Direttive 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.

=== Simulazione

To launch a simulation, open _Spice Simulator_ dialog by selecting menu _Tools->Simulator_ in the schematics editor window.

image::images/sim_main_dialog.png[alt="La finestra principale di simulazione"]

La finesta è divisa in diverse sezioni:

* <<sim-toolbar,Barra strumenti>>
* <<sim-plot-panel,Pannello grafici>>
* <<sim-output-console,Console di uscita>>
* <<sim-signals-list,Elenco segnali>>
* <<sim-cursors-list,Elenco cursori>>
* <<sim-tune-panel,Pannello di regolazione>>

==== Menu

[[sim-menu-file]]
===== File
[width="90%", cols="30%,70%"]
|====
|Nuovo grafico
| Crea una nuova scheda nel pannello del grafico.
|Apri libretto di lavoro
|Apre un elenco di segnali graficati.
|Salva libretto di lavoro
| Salva un elenco di segnali graficati.
|Salva come immagine
| Esporta il grafico attivo in un file .png .
|Salva come file .csv
| Esporta i punti dei dati grezzi del grafico attivo in un file .csv .
|Esci dalla simulazione
| Chiude la finestra di dialogo.
|====

[[sim-menu-simulation]]
===== Simulazione
[width="90%", cols="30%,70%"]
|====
|Avvia simulazione
|Esegue una simulazione usando le impostazioni correnti.
|Aggiungi segnali...
|Apre una finestra di dialogo per selezionare i segnali da graficare.
|Campiona dallo schema
|Avvia lo strumento <<sim-probe-tool,Sonda>> sullo schema elettrico.
|Regola il valore dei componenti
|Avvia lo strumento <<sim-tuner-tool,Regola>>.
|Mostra la netlist SPICE...
|Apre una finestra di dialogo che mostra la netlist generata per il circuito simulato.
|Impostazioni...
|Apre la <<sim-settings,finestra di dialogo delle impostazioni di simulazione>>.
|====

[[sim-menu-view]]
===== Vista
[width="90%", cols="30%,70%"]
|====
|Ingrandisci
|Ingrandisce il grafico attivo.
|Rimpicciolisci
|Rimpicciolisce il grafico attivo.
|Adatta allo schermo
|Regola l'ingrandimento per visualizzare tutto il grafico.
|Mostra griglia
|Commuta la visibilità della griglia.
|Mostra legenda
|Commuta la visibilità della legenda.
|====

[[sim-toolbar]]
==== Barra strumenti
image::images/it/sim_main_toolbar.png[alt="Barra principale della finestra di simulazione"]
Questa barra strumenti dà accesso alle funzioni utilizzate più frequentemente.

[width="90%", cols="30%,70%"]
|====
|Avvia/Blocca Simulazione
|Avvia o blocca la simulazione.
|Aggiungi segnali
|Apre una finestra di dialogo per selezionare i segnali da graficare.
|Sonda
|Avvia lo strumento <<sim-probe-tool,Sonda>> sullo schema elettrico.
|Regola
|Avvia lo strumento <<sim-tuner-tool,Regola>> sullo schema elettrico.
|Impostazioni
| Apre la <<sim-settings,finestra delle impostazioni di simulazione>>.
|====

[[sim-plot-panel]]
==== Il pannello grafico
Visualizza i risultati della simulazione in forma di grafici. Si possono avere più grafici aperti in schede separate ma solo quella attiva viene aggiornata quando viene eseguita una simulazione. In questo modo è possibile confrontare i risultati di simulazione di esecuzioni diverse.

I grafici possono essere personalizzati abilitando o disabilitando la visibilità della griglia e della legenda usando il menu <<sim-menu-view,Visualizza>>. Quando la legenda è visibile, questa può essere trascinata per cambiarne la posizione.

Interazione del pannello del grafico:

* la rotellina del mouse per ingrandire / rimpicciolire
* clic destro per aprire il menu a scomparsa e regolare la visualizzazione
* disegnare un rettangolo di selezione per fare lo zoom sull'area selezionata
* trascinare un cursore per cambiarne le coordinate

[[sim-output-console]]
==== Console d'uscita
La console d'uscita mostra i messsaggi generati dal simulatore. Si consigla di controllare sempre la console di uscita per verificare che non ci siano errori o avvertenze.

[[sim-signals-list]]
==== Elenco segnali
Mostra l'elenco dei segnali mostrati nel grafico attivo.

Interazione elenco segnali:

* click destro apre un menu contestuale che consente di nascondere il segnale o commutare il cursore
* doppio clic per nascondere il segnale

[[sim-cursors-list]]
==== Elenco cursori
Mostra l'elenco dei cursori e delle loro coordinate. Ogni segnale può avere un cursire visualizzato. La visibilità dei cursori viene impostata usando l'elenco <<sim-signals-list,Segnali>>.

[[sim-tune-panel]]
==== Pannello di regolazione
Mostra i componenti prelevati con lo strumento <<sim-tuner-tool,Regola>>. Il pannello Regola permette all'utente di modificare velocemente i valori del componente e di osservare la loro influenza sui risultati della simulazione - ogni volta che il valore di un componente viene cambiato, la simulazione viene riavviata e i grafici aggiornati.

Per ogni componente ci sono alcuni controlli associati:

* Il campo di testo in cima imposta il valore massimo del componente.
* Il campo di testo di mezzo imposta il valore corrente del componente.
* Il campo di testo in fondo imposta il valore minimo del componente.
* Il cursore permette all'utente di modificare il valore del componente in modo agevole.
* Il pulsante _Salva_ modifica il valore del componente sullo schema al valore impostato con il cursore.
* Il pulsante _X_ rimuove il componente dal pannello di regolazione e ne ripristina il valore originale.

I tre campi di testo riconoscono i prefissi di unità Spice.

[[sim-tuner-tool]]
==== Strumento di regolazione
Lo strumento di regolazione permette all'utente di prelevare i componenti per regolarli.

Per selezionare un componente per la regolazione, fare clic su uno sullo schema con lo strumento attivo. I componenti selezionati appariranno nel pannello <<sim-tune-panel,Regola>>. Si possono regolare solo i componenti passivi.

[[sim-probe-tool]]
==== Strumento sonda
Lo strumento sonda fornisce un modo semplice per selezionare i segnali da usare per i grafici.

Per aggiungere un segnale al grafico, fare clic su un filo corrispondete nell'editor dell schema elettrico mentre lo strumento è attivo.

[[sim-settings]]
==== Impostazioni di simulazione

image::images/it/sim_settings.png[alt="Finestra di dialogo delle impostazioni di simulazione"]

La finestra di impostazione della simulazione permette all'utente di impostare il tipo e i parametri di simulazione. Ci sono quattro schede:

* AC
* Trasferimento DC
* Transiente
* Personalizzato

Le prime tre schede forniscono dei moduli nei quali si possono specificare i parametri di simulazione. L'ultima scheda permette all'utente di inserire direttive Spice personalizzate per impostare la simulazione. È possibile trovare ulteriori informazioni sui tipi e sui parametri di simulazione nella http://ngspice.sourceforge.net/docs/ngspice-27-manual.pdf[documentazione ngspice], capitolo 1.2.

Un modo alternativo per configurare una simulazione consiste nel battere le <<sim-directives,direttive Spice>> nei campi testo nello schema. Ogni campo testo contenente una direttiva relativa ad un tipo di simulazione viene superata dall'impostazione selezionata nella finestra di dialogo. Significa che una volta che si usa la finestra di dialogo di simulazione, la finestra di dialogo passa sopra alle direttive dello schema elettrico fino alla riapertura della simulazione.

Ci sono due opzioni comuni a tutti i tipi di simulazione:
[width="90%", cols="30%,70%"]
|====
|Regola i valori dei simboli passivi
|Rimpiazza i valori dei simboli passivi per convertire la notazione dei valori dei componenti comuni alla notazione Spice.
|Aggiungi il percorso completo per la direttiva di libreria .include
|Antepone i nomi file delle librerie di modelli Spice con il percorso completo. Normalmente ngspice richiede il percorso completo per accedere ad un file di libreria.
|====