Manuel de référence
Copyright
Ce document est la propriété des contributeurs ci-dessous, copyright © 2010-2015. Vous pouvez le distribuer et/ou le modifier selon les termes de la GNU General Public License (http://www.gnu.org/licenses/gpl.html), version 3 ou ultérieure ou bien selon la licence Creative Commons Attribution (http://creativecommons.org/licenses/by/3.0/), version 3.0 ou ultérieure.
Toutes les marques apparaissant dans ce document appartiennent à leurs propriétaires respectifs.
Contributeurs
Jean-Pierre Charras, Fabrizio Tappero, Marc Berlioux.
Traduction
Marc Berlioux <marc.berlioux@gmail.com>, 2015-2016
Retours
Merci de signaler vos corrections de bugs, suggestions ou nouvelles versions ici :
-
Documentation de KiCad : https://github.com/KiCad/kicad-doc/issues
-
Bugs logiciel KiCad : https://bugs.launchpad.net/kicad
-
Traductions de KiCad : https://github.com/KiCad/kicad-i18n/issues
Date de publication et version du logiciel
Publié le 30 mai 2015.
1. Introduction à Eeschema
1.1. Description
Eeschema est un puissant logiciel de saisie de schémas électroniques faisant partie de KiCad et disponible pour les systèmes d’exploitations suivants :
-
Linux
-
Apple OS X
-
Windows
Les fichiers de Eeschema sont compatibles d’un système d’exploitation à un autre.
Eeschema est une application intégrée à partir de laquelle toutes les fonctions de dessin, de contrôle, de mise en page, de gestion des librairies et d’accès au logiciel de conception de circuit imprimé sont accessibles.
Eeschema est conçu pour fonctionner avec PcbNew, le logiciel d'édition de circuit imprimés de KiCad. Il permet aussi d’exporter des fichiers Netlistes listant toutes les connexions électriques, pour d’autres logiciels.
Eeschema inclue un éditeur de symboles schématiques de composants, qui permet de créer, modifier des composants et de gérer les librairies. Il intègre aussi plusieurs autres fonctions essentielles à la création de schémas électroniques modernes :
-
La vérification des règles électriques ou ERC (Electrical Rules Check), pour le contrôle des connexions manquantes ou incorrectes.
-
L’exportation de fichiers de tracé en plusieurs formats (Postscript, PDF, HPGL, SVG)
-
La génération de listes de composants ou BOM (Bill of Materials) à travers des scripts Python, ce qui permet plusieurs formats configurables.
1.2. Aperçu technique
Eeschema n’est limité que par la mémoire vive disponible. Il n’y a ainsi aucune limitation sur le nombre de composants, de pins, de connexions ou de feuilles schématiques. Dans le cas de schémas à feuilles multiples, leur représentation est hiérarchique.
Eeschema gère les schémas multi-feuilles de types suivants :
-
Schémas à hiérarchie simple (chaque schéma n’est utilisé qu’une fois).
-
Schémas à hiérarchie complexe (certains schémas sont utilisés plus d’une fois, en plusieurs instances).
-
Schémas à hiérarchie plate (les schémas ne font pas explicitement partie d’un schéma maître).
2. Commandes de bases de Eeschema
2.1. Accès aux commandes de Eeschema
Vous pouvez accéder au différentes commandes :
-
En cliquant sur les menus, en haut de la fenêtre.
-
En cliquant sur les boutons de la barre d’outil principale, au sommet de la fenêtre, sous les menus.
-
En cliquant sur les boutons de la barre d’outils à droite de la fenêtre (outils de placement d'éléments).
-
En cliquant sur les boutons de la barre d’outils à gauche de la fenêtre (options d’affichage).
-
En utilisant la souris (commandes complémentaires importantes), notamment au moyen du clic droit sur un élément du schéma, qui affiche un menu contextuel (options de zoom, de dimension de grille et d'édition des éléments).
-
En utilisant les touches de fonctions (touches F1, F2, F3, F4, [Insert], et [Espace]). Généralement, l’appui sur la touche [Escape] annule l’opération en cours, et la touche [Insert] permet la duplication d’un élément venant d'être inséré.
Voici un apercu de l’interface et de l’emplacement des différentes commandes :

2.2. Commandes à la souris
2.2.1. Commandes de base
Bouton gauche
-
Simple clic : affiche les caractéristiques du composant ou du texte sous le curseur, dans la barre d'état, au bas de la fenêtre.
-
Double clic : modifie l'élément (s’il est éditable..), composant ou texte.
Bouton droit
-
Ouvre un menu contextuel, en fonction de l'élément sous le curseur.
2.2.2. Opérations sur les blocs
Vous pouvez déplacer, traîner ou détruire des zones sélectionnées dans tous les modes de Eeschema. La différence entre déplacer (Move) et traîner (Drag) est que les liaisons électriques entre éléments sont conservées lors d’un Drag.
On sélectionne une zone en cliquant du bouton gauche et en maintenant ce bouton appuyé tout en déplaçant la souris.
L’appui sur [Shift], [Ctrl], ou [Shift + Ctrl] pendant la sélection effectue respectivement une copie, un "drag", ou une suppression :
Bouton gauche de la souris |
Déplacer la sélection (Move). |
Shift + bouton gauche de la souris |
Copier la sélection. |
Ctrl + bouton gauche de la souris |
Traîner la sélection (Drag). |
Ctrl + Shift + bouton gauche de la souris |
Supprimer la sélection. |
Lors d’un "drag" ou d’une copie, vous pouvez :
-
Cliquer à nouveau du bouton gauche pour poser les éléments.
-
Cliquer du bouton droit et choisir Annuler Bloc pour annuler l’opération.
En cliquant du bouton droit on peut choisir d’autres actions dans le menu contextuel :

2.3. Raccourcis clavier
-
L’appui sur la touche [?] affiche la liste des raccourcis clavier.
-
Les raccourcis clavier peuvent être modifiés par le menu Préférences, Raccourcis, Editer les raccourcis.
Aperçu de la liste des raccourcis clavier par défaut :

Tous les raccourcis clavier peuvent être redéfinis avec l'Éditeur de raccourcis :

2.4. Sélection de la taille de grille
Dans Eeschema, le curseur se déplace au dessus d’une grille, qui peut être visible ou non. La grille est toujours visible dans le gestionnaire de librairie.
Vous pouvez changer la taille de la grille par le menu contextuel ou par le menu Préférences,Options de l'éditeur de schématique.
La taille par défaut de la grille est de 50 mils (0.050") soit 1.27 mm.
C’est la dimension préférée pour le placement des composants et des fils dans le schéma, mais aussi pour le placement des pins pendant le dessin d’un symbole de composant dans l'éditeur de composants.
On peut aussi travailler avec une dimension de grille plus petite comme 25 mils ou 10 mils. C’est uniquement lors du dessin des boîtiers de composants ou pour placer des textes et des commentaires, et non pour placer des pins ou des fils.
2.5. Sélection du Zoom
Pour changer le niveau du zoom :
-
Cliquez du bouton droit pour ouvrir le menu contextuel et choisissez la valeur de zoom désirée.
-
Ou utilisez les touches de fonctions :
-
F1: Zoom avant
-
F2: Zoom arrière
-
F4 ou cliquez simplement sur le bouton du milieu (sans bouger la souris) : Centrer la vue autour de la position du pointeur de la souris
-
-
Zoom fenêtre :
-
Molette de la souris : Zoom avant/arrière
-
Molette de la souris, touche [Shift] enfoncée : Déplacement haut/bas
-
Molette de la souris, touche [Ctrl] enfoncée : Déplacement droite/gauche
-
2.6. Affichage des coordonnées du curseur
L’unité d’affichage est en inches ou en millimètres. Toutefois, Eeschema travaille toujours en interne en unités de 0.001 inch (mil/thou).
Les informations suivantes sont affichées en bas et à droite de la fenêtre :
-
Le facteur de Zoom
-
La position absolue du curseur (X Y)
-
La position relative du curseur (dx dy)
Les coordonnées relatives sont remises à zéro par un appui sur la barre d’espace du clavier. C’est très utile pour faire des mesures entre deux points.

2.7. Barre de menu
La barre de menus permet l’ouverture et la sauvegarde de schémas, la configuration du programme et l’affichage de la documentation.

2.8. Barre d’outils supérieure
Cette barre d’outils donne accès aux principales fonctions de Eeschema.
Si Eeschema est lancé tout seul (mode standalone), et non par le gestionnaire de projets, voici les boutons disponibles :

Si Eeschema est lancé par le gestionnaire de projets (KiCad), voici les boutons disponibles :

Les outils pour créer un projet ne sont pas présents, car ils sont dans le Gestionnaire de Projets.
|
Nouveau Projet Schématique. Créer un nouveau schéma (seulement en mode standalone). |
|
Ouvrir un Projet Schématique (seulement en mode standalone). |
|
Sauver le Projet Schématique (toute la hiérarchie). |
|
Ajustage des options de la page, taille et contenu du cartouche. |
|
Impression des feuilles de schémas. |
|
Suppression des éléments sélectionnés, pendant le déplacement d’un bloc. |
|
Copie des éléments sélectionnés, dans le presse-papier. |
|
Copie des éléments sauvegardés, depuis le presse-papier dans la feuille courante. |
|
Défaire la dernière édition (Ctrl+Z). Annule les dernières modifications (jusqu'à 10). |
|
Refaire la dernière commande (Ctrl+Y). Rétablit les dernières modifications (jusqu'à 10). |
|
Recherche de composants et de textes, dans le schéma. |
|
Chercher et remplacer un texte, dans le schéma. |
|
Zoom + (avant), Zoom - (arrière). |
|
Rafraîchir l'écran, Zoom automatique. |
|
Navigateur de hiérarchie. |
|
Quitter la sous-feuille, et remonter dans la hiérarchie. |
|
Éditeur de librairies, lance l'éditeur de composants. |
|
Visualisateur de librairies, et de composants (Viewlib). |
|
Annotation des composants de la schématique. |
|
Exécute le test des règles électriques (ERC), vérifie les connexions électriques. |
|
Génération de la Netliste (Pcbnew, SPICE, et autres formats). |
|
Génération de la liste des composants, ou BOM (Bill Of Materials). |
|
Éditeur d’empreintes. |
|
Lancer CvPcb, association composants et empreintes. |
|
Lancer Pcbnew, outil de conception de circuits imprimés. |
|
Importer le fichier d’association composants/empreintes (fichier .cmp créé par CvPcb). |
2.9. Barre d’outils latérale droite
Cette barre d’outils contient les outils pour :
-
Placer des composants, des fils, des bus, des jonctions, des étiquettes (labels), des textes, etc…
-
Créer des sous-feuilles hiérarchiques et des symboles de connexion.
|
|
Annule la commande active, quitte l’outil en cours. |
|
Naviguer dans la hiérarchie : cet outil permet d’ouvrir les sous-feuilles de la schématique courante (clic sur le symbole de cette sous-feuille), ou de remonter dans la hiérarchie (clic dans une zone libre du schéma). |
|
|
Placer un composant : affiche le sélecteur de composants. |
|
|
Placer un symbole de type power : ouvre le sélecteur de symboles d’alimentation. |
|
|
Placer un fil. |
|
|
Placer un bus. |
|
|
Placer une entrée de bus (type fil vers bus). Ces éléments sont seulement graphiques et ne créent pas de liaisons électriques, ils ne doivent donc pas être utilisés pour relier des fils ensemble. |
|
|
Placer une entrée de bus (type bus vers bus). |
|
|
Placer un symbole de non connexion. Pour marquer les pins de composants qui sont volontairement non connectées. Utile pour la vérification des règles électriques (ERC). |
|
|
Placer une jonction. Elles sont placées pour relier deux fils qui se croisent , ou un fil et une pin, quand cela peut être ambigu. |
|
|
Placer un nom de net label local. Deux fils avec le même label, dans la même feuille schématique, seront connectés. Pour des connexions entre différentes feuilles, utiliser des labels globaux, ou hiérarchiques. |
|
|
Placer un label global. Tous les labels globaux portant le même nom seront connectés, dans toutes les feuilles de la hiérarchie. |
|
|
Placer un label hiérarchique. Permet d'établir une connexion entre une feuille et la feuille parente qui la contient. |
|
|
Créer une feuille de hiérarchie. Vous devrez donner un nom à cette sous-feuille. |
|
|
Placer une pin hiérarchique importée à partir du label hiérarchique correspondant. Ces labels hiérarchiques doivent déjà être en place dans la sous-feuille. Équivalentes à des pins de composants, elles doivent être reliées par des fils. |
|
|
Addition de pins de hiérarchie dans les feuilles. Elles sont placées par leurs noms et n’ont pas besoin d’exister déjà dans la sous-feuille. |
|
|
Placer lignes ou polygones graphiques. Seulement graphiques, ne relient rien électriquement. |
|
|
Placer des textes. Graphiques uniquement aussi. |
|
|
Ajouter une image bitmap. |
|
|
Suppression d'éléments. Supprime les éléments sélectionnés. Si plusieurs éléments superposés sont sélectionnés, la priorité est donnée au plus petit (par priorité décroissante : jonction, "Non Connexion", fil, bus, text, composant). Ceci s’applique aussi aux feuilles hiérarchiques. Note : le bouton "Défaire" de la barre d’outils principale vous permet d’annuler les dernières suppressions. |
2.10. Barre d’outils latérale gauche
Cette barre d’outils permet de gérer les options d’affichage :
|
Afficher / Cacher la grille. |
|
Unités en pouces (inches). |
|
Unités en millimètres. |
|
Changer la forme du curseur. |
|
Force l’affichage des pins invisibles. |
|
Autoriser / Interdire le tracé de fils ou de bus non orthogonaux. |
2.11. Menus contextuels et édition rapide
Un clic droit ouvre un menu contextuel pour l'élément sélectionné ou survolé : ce menu permet d’ajuster :
-
Le facteur de Zoom.
-
La taille de grille.
-
Les paramètres couramment édités de l'élément sélectionné.
Menu contextuel en dehors d’un élément.

Édition d’un label

Édition d’un composant

3. Barre de menus
3.1. Menu Fichiers

Nouveau Projet Schématique |
Efface le schéma courant et débute un nouveau fichier |
Ouvrir un Projet Schématique |
Charge une schématique |
Ouvrir Récent |
Ouvre la liste des fichiers récemment ouverts |
Ajouter feuille de schéma |
Insérer le contenu d’une autre feuille dans la feuille courante |
Sauver le Projet Schématique |
Enregistrer la feuille courante et toute sa hiérarchie. |
Sauver la feuille courante seule |
Enregistrer la feuille courante, mais pas les autres de la hiérarchie. |
Sauver la feuille courante sous.. |
Enregistrer la feuille courante avec un nouveau nom. |
Ajustage Opt Page |
Ajustage des options de la page, taille et contenu du cartouche. |
Imprimer |
Imprimer la schématique hiérarchique (Voir chapitre ITracer / Imprimer). |
Tracer |
Exporter au format PDF, PostScript, HPGL or SVG (Voir chapitre Tracer / Imprimer). |
Fermer |
Quitter sans sauvegarder. |
3.2. Menu Préférences
3.2.1. Préférences

Librairies de Composants |
Sélection des librairies et des chemins de recherche de librairies. |
Sélection Couleurs des Éléments |
Réglages des couleurs de l’affichage, de tracé et d’impression. |
Options de l'Éditeur de schématique |
Options générales (unités, tailles de grille, noms de champs, etc…). |
Langue |
Sélection de la langue de l’interface. |
Raccourcis |
Sous-menu des raccourcis (liste, édition, export, import). |
Sauver Préférences |
Enregistrer les préférences dans un fichier de projet .pro. |
Charger Préférences |
Charger les préférences du projet depuis un fichier .pro. |
3.2.2. Préférences / Librairies de Composants

Cette boite de dialogue est utilisée pour configurer les librairies de composants et les chemins de recherche des librairies. Ces réglages sont enregistrés dans un fichier .pro. Vous pouvez avoir différents fichiers de configuration dans différents dossiers.
Eeschema recherche, dans l’ordre :
-
Le fichier de configuration (nom_du_projet.pro) dans le dossier courant. Le fichier kicad.pro dans le répertoire de KiCad. Ce fichier sera donc le fichier de configuration par défaut. En l’absence de ces fichiers, il chargera des valeurs par défaut. À charge pour vous d’ajouter vos librairies à la liste, et d’enregistrer la configuration dans un fichier .pro.
La case Vérifier les conflits entre cache et librairie au chargement du schéma détermine le comportement du restaurateur de cache de librairies. Voir Réparer le Cache de Composants pour plus d’informations.
3.2.3. Préférences / Sélection Couleurs des Éléments

Palette des couleurs utilisées pour les différents éléments graphiques, ainsi que pour la couleur de fond de la zone d'édition (noir ou blanc).
3.2.4. Préférences / Options de l'Éditeur de Schématique

Unités de mesure: |
Choisissez les unités des coordonnées de l’affichage et du curseur (inches ou millimètres). |
Dim Grille: |
Sélection de la taille de grille. Il est recommandé de travailler avec la taille de grille normale (0.050 inches ou 1,27 mm). Les tailles de grille plus petites sont surtout utilisées pour le dessin de composant. |
Épaisseur bus par défaut: |
Taille du pinceau pour le tracé des bus. |
Épaisseur ligne par défaut: |
Taille du pinceau pour le tracé des objets qui n’ont pas une taille définie. |
Taille des textes par défaut |
Dimension des textes lors de l’ajout de textes et de labels |
Pas horizontal pour la répétition d'éléments |
Décalage sur l’axe X lors de la duplication d'éléments (valeur normale 0) (après le placement d’un élément comme un composant, un fil ou un label, une copie peut être faite par l’appui sur la touche Insert) |
Pas vertical pour la répétition d'éléments |
Décalage sur l’axe Y lors de la duplication d'éléments (valeur normale 0,100 inches, soit 2,54mm) |
Incrémentation des labels en répétition |
Incrémentation de la valeur des labels lors de la duplication de textes se terminant par un nombre, par exemple les numéros de membres de bus (habituellement 1 ou -1). |
Intervalle de sauvegarde automatique: |
Temps en minutes entre deux sauvegardes. |
Notation pour part id: |
Style du suffixe utilisé pour annoter les unités de composants (U1A, U1.A, U1-1, etc…) |
Afficher la grille: |
Case cochée : la grille est affichée. |
Afficher les pins invisibles: |
Case cochée : affiche les pins invisibles (ou cachées), le plus souvent des pins d’alimentation. |
Centrer et déplacer le curseur en zoomant: |
Lors d’un zoom, centrer la vue sur la position du curseur. |
Utiliser le bouton du milieu de la souris pour recadrer l’affichage |
Case cochée : il est possible de déplacer la feuille avec le bouton du milieu de la souris. |
Limiter le panning à la taille du "scroll" maximum |
Case cochée : le bouton du milieu de la souris ne peut déplacer la feuille en dehors de la zone affichée. |
Pan lors du déplacement d’objets |
Case cochée : déplace automatiquement la vue de la feuille quand le curseur dépasse le bord de la fenêtre d'édition, pendant le dessin ou les déplacements. |
Limiter orientation bus et fils à H et V |
Case cochée : les bus et les fils ne peuvent être qu’horizontaux ou verticaux Dans le cas contraire, les bus et fils peuvent être placés dans n’importe quelle orientation. |
Afficher limites de page |
Case cochée : montre les limites de la page à l'écran. |
3.2.5. Préférences / Langue
Utilisez la langue par défaut du système. Les autres choix de langue sont là principalement pour le développement.
3.3. Menu Aide
Accédez à l’aide en ligne (ce document) pour un manuel détaillé de KiCad. Utilisez les informations présentes dans «Copier infos de version» quand vous soumettez un rapport de bug, pour identifier votre version et votre système.
4. Barre d’outils principale
4.1. Gestion des feuilles schématiques
L’icône Ajustage des options de la page
, vous permet de régler
la taille de la feuille et les textes contenus dans le cartouche.

Le nombre de feuilles, numéro de feuille, sont mis à jour automatiquement. La date ne sera pas changée automatiquement, mais vous pouvez la fixer à aujourd’hui en cliquant sur le bouton "←".
4.2. Options de l'éditeur de schématique
4.2.1. Options générales

4.2.2. Noms des Champs Modèles
Vous pouvez définir des champs personnalisés qui existeront par défaut pour chaque composant (même s’ils sont laissés vides).

4.3. Outil de recherche
L’icône
, vous affichera la fenêtre de
l’outil de recherche.

Vous pouvez rechercher une référence, une valeur, ou du texte, dans la feuille courante ou dans l’ensemble de la hiérarchie. Une fois trouvé, le curseur sera positionné sur l'élément recherché dans la sous-feuille concernée.
4.4. Outil de Netliste
L’icône
ouvre l’outil de
génération de netlistes.
Les fichiers netlistes générés décrivent toutes les connexions entre éléments dans l’entière hiérarchie.
Dans une hiérarchie multi-feuilles, chaque label local n’est visible que dans la feuille à laquelle il appartient. Ainsi, le label TOTO de la feuille 3 est différent du label TOTO de la feuille 5 (si aucune connexion n’a été introduite volontairement pour les relier). Ceci est du au fait que le numéro de la feuille est associé en interne aux labels locaux.
Note 1 :
La longueur des labels n’a aucune limitation dans Eeschema, mais les logiciels exploitant les netlistes générées peuvent, eux, avoir certaines limitations à ce sujet.
Note 2 :
Évitez les espaces dans les noms de labels, car ils apparaîtront comme des mots séparés. Ce n’est pas une limitation de Eeschema, mais il peut y en avoir dans certains formats de netlistes qui considèrent que les noms de labels sont dépourvus d’espaces.

Options :
Format par défaut :
Cochez la case pour choisir Pcbnew comme le format par défaut.
D’autres formats de netlistes peuvent être générés :
-
Orcad PCB2
-
CadStar
-
Spice, pour les simulateurs
Des plugins externes peuvent également être ajoutés pour de nouveaux formats.
4.5. Outil d’annotation
L’icône
donne accès à
l’outil d’annotation. Cet outil effectue le nommage automatique des
références des composants du schéma.
Pour des composants multi-unités (comme par exemple le 7400 qui contient 4 portes), un suffixe d’unité sera attribué (ainsi notre 7400 désigné par la référence U3 sera divisé en quatre unités référencées U3A, U3B, U3C et U3D).
Vous pouvez choisir d’annoter tous les composants, ou seulement les nouveaux, comme ceux qui ne sont pas encore annotés.

Portée
Utiliser la schématique entière. Toutes les feuilles seront ré-annotées (c’est option habituelle).
Utiliser la feuille active uniquement. Seule la feuille courante sera ré-annotée (cette option sera utilisée dans des cas particuliers, par exemple pour évaluer le nombre de résistances de la feuille courante).
Garder l’annotation existante. Annotation conditionnelle, seuls les nouveaux composants seront annotés (option habituelle).
Supprimer l’annotation existante. Annotation inconditionnelle, tous les composants seront ré-annotés (cette option sera utilisée quand il y a un risque de doublons dans les références).
Reset, mais ne pas échanger les unités déjà numérotées des boitiers multi-unités. Cette option conserve les groupes de multi-unités (ex. : U2A, U2B) lors de la ré-annotation.
Ordre d’annotation
Choisit dans quelle direction seront numérotés les composants.
Choix de l’annotation
Sélectionne la méthode de numérotation pour les schémas multi-feuilles.
4.6. Outil de vérification des règles électriques
L’icône
donne accès à l’outil de
vérification des règles électriques (ERC).
Cet outil effectue la vérification du schéma, et est particulièrement utile pour détecter des connexions oubliées ou des incohérences.
Une fois que vous avez exécuté l’ERC, Eeschema place des marqueurs pour mettre en évidence les problèmes. Le diagnostic peut alors être donné par un clic gauche sur le marqueur. Un fichier de rapport d’erreurs peut également être généré.
4.6.1. Fenêtre principale de l’ERC

Les erreurs sont affichées dans la fenêtre du vérificateur des règles électriques :
-
Total : nombre total d’erreurs et avertissements.
-
Erreurs : nombre d’erreurs.
-
Warnings : nombre d’avertissements.
Options :
-
Créer fichier rapport ERC : cochez la case pour la création d’un fichier de rapport d’erreurs.
Commandes :
-
Effacer marqueurs : enlève tous les marqueurs d’erreurs et avertissements du schéma.
-
Exécuter : lance la vérification.
-
Fermer : ferme la fenêtre de l’ERC.
Note :
-
En cliquant sur une erreur, vous êtes emmenés au marqueur correspondant sur le schéma.
4.6.2. Options de l’ERC

Cet onglet vous permet de fixer les règles de connexion entre pins. Vous pouvez choisir parmi trois options pour chaque cas :
-
Pas d’erreur (Vert)
-
Avertissement (W jaune)
-
Erreur (E rouge)
Chaque carré de la matrice peut être modifié en cliquant une ou plusieurs fois dessus.
4.7. Outil de Liste de Matériel
L’icône
donne accès à l’outil de
création de la liste de matériel, ou BOM (Bill Of Material). Cet outil
génère un fichier contenant la liste des composants et/ou les connexions
hiérarchiques (labels globaux).

Le générateur de BOM utilise des plugins externes, en général sous la forme de feuilles de styles XSLT ou de scripts Python. Certains sont fournis, et sont disponibles dans le répertoire d’installation de KiCad. (Linux : /usr/lib/kicad/plugins).
Quelques champs de composants utiles à utiliser pour le BOM :
-
Valeur : nom unique pour chaque composant utilisé.
-
Empreinte : entrée soit manuellement, soit par rétro-annotation (voir ci-dessous).
-
Champ 1 : nom du fabricant.
-
Champ 2 : référence fabricant.
-
Champ 3 : référence distributeur.
Exemple :

4.8. Outil de rétro-annotation des empreintes associées
4.8.1. Accès :
L’icône
donne accès à l’outil de rétro-annotation.
Cet outil permet de rétro-importer les noms des empreintes choisies dans Pcbnew dans les champs empreintes de Eeschema.
5. Création et édition de schémas
5.1. Introduction
Un schéma peut être représenté sur une seule feuille, mais, s’il est assez grand, il lui faudra plusieurs feuilles.
Un schéma représenté sur plusieurs feuilles est un schéma hiérarchique, et toutes ses feuilles (chacune représentée par son propre fichier) constituent un projet Eeschema. La manipulation des schémas hiérarchiques sera décrite au chapitre Schématiques hiérarchiques.
5.2. Généralités
Un schéma conçu avec Eeschema est plus que la simple représentation graphique d’un dispositif électronique. Il est normalement le point d’entrée d’une chaîne de développement qui permet de :
-
Valider un ensemble de règles (Vérification des règles électriques (ERC)) pour détecter les erreurs et omissions.
-
Générer automatiquement une liste de composants (BOM).
-
Générer une netliste pour des logiciels de simulation, comme SPICE.
-
Générer une netliste pour la transférer à un logiciel de dessin de circuit imprimé.
Un schéma se compose principalement de composants, de fils, d'étiquettes (labels), de jonctions, de bus et de sources d’alimentation. Pour plus de clarté dans le schéma, vous pouvez placer des éléments purement graphiques comme des entrées de bus, des commentaires ou des polygones graphiques.
5.3. Chaîne de développement

Les composants sont ajoutés à la schématique à partir de bibliothèques (librairies) de composants. Quand le schéma est fait, une liste d’interconnexions (netliste) est générée, qui est ensuite utilisée pour importer la définition des connexions et des empreintes dans PcbNew.
5.4. Placement et édition de composants
5.4.1. Rechercher et placer un composant
Pour placer un composant dans votre schéma, vous pouvez utiliser l’icône
. Une boîte de
dialogue vous permet de taper le nom du composant à charger.

La boîte de dialogue Sélection Composant va filtrer les composants par nom, mots-clés, ou description selon ce que vous tapez dans le champ de recherche du filtre.
Avant de placer le composant dans le schéma, vous pouvez le faire pivoter, le renverser (miroir haut-bas ou droite-gauche), ou modifier ses champs, soit en utilisant les raccourcis clavier soit par le menu contextuel (clic-droit). Cela pourra également être fait après le placement, de la même manière.
Voici un composant lors de son placement :

5.4.2. Alimentations
Un symbole d’alimentation est un composant (les symboles d’alimentation sont
regroupés dans la librairie "power"), afin qu’ils puissent être placés en
utilisant le sélecteur de composants. Cependant, comme les placements
d’alimentations sont fréquents, on utilisera l’outil
. Cet outil est le même que
pour le placement de composants, sauf que la recherche se fait directement
dans la librairie «power».
5.4.3. Édition et modification de composants (déjà placés)
Il y a deux façons d'éditer un composant :
-
Modifier le composant lui-même : position, orientation, sélection d’unité pour un composant multi-unités.
-
Modifier un de ses champs : référence, valeur, empreinte, etc…
Lorsqu’un composant vient d'être placé, vous pouvez avoir à modifier sa valeur (en particulier pour les résistances, condensateurs, etc…), mais il est inutile de lui assigner un numéro de référence tout de suite, ni de sélectionner l’unité (sauf pour les composants avec des unités verrouillées, que vous aurez à attribuer manuellement). Ceci peut être fait automatiquement par l’outil d’annotation.
Modification de composant
Pour modifier une caractéristique d’un composant, placez le curseur sur le composant, puis, au choix :
-
Double-cliquez sur le composant pour ouvrir la fenêtre d'édition complète.
-
Faites un clic droit pour ouvrir le menu contextuel et choisissez l’une des commandes : Déplacer, Orienter, Éditer, Supprimer, etc…
Édition des champs du composant
Vous pouvez modifier la référence, la valeur, la position, l’orientation, la taille du texte et la visibilité des champs :
-
Double-cliquez sur le champ à modifier.
-
Faites un clic droit pour ouvrir le menu contextuel et choisissez l’une des commandes : Déplacer, Orienter, Éditer, Supprimer, etc…
Pour plus d’options, ou pour créer de nouveaux champs, double-cliquez sur le composant pour ouvrir la fenêtre d'édition complète des propriétés du composant.

Chaque champ peut être visible ou caché, et affiché soit horizontalement, soit verticalement. La position affichée est toujours indiquée pour le composant normalement affiché (pas de rotation ou de mise en miroir), et est relative au point d’ancrage du composant.
Le bouton "Remettre aux valeurs en Librairie" ramène le composant à son orientation originale, et réinitialise les options, la taille et la position de chaque champ. Les champs textes ne sont cependant pas modifiés, car cela pourrait casser la schématique.
5.5. Fils, Bus, Labels, Alimentations
5.5.1. Introduction
Tous ces éléments peuvent être placés à partir des outils de la barre latérale droite
Ces éléments peuvent être des :
-
Fils : connexions entre composants
-
Bus : pour relier graphiquement des labels de bus
-
Polygones : pour la présentation graphique.
-
Jonctions : pour créer des connexions au croisement de fils ou de bus.
-
Entrées de Bus : pour montrer les connexions entre fils et bus. Seulement pour l’aspect graphique !
-
Labels : pour étiqueter ou établir des connexions.
-
Labels globaux : pour établir des connexions entre feuilles.
-
Textes : pour ajouter des commentaires ou des notes.
-
Symboles de Non-Connexion : pour signaler une pin de composant qui ne sera pas utilisée.
-
Feuilles Hiérarchiques, et leurs pins de connexions.
5.5.2. Connexions (Fils et Labels)
Il y a deux moyens d'établir des connexions :
-
Fils de pin à pin.
-
Labels.
La figure ci-dessous montre les deux méthodes :

Note 1 :
Le point de "contact" d’un label est le coin inférieur gauche de la première lettre de l'étiquette. Ce point est affiché avec un petit carré lorsqu’il n’est pas connecté.
Ce point doit donc être en contact avec le fil, ou être superposé à l’extrémité d’une pin pour que le label soit considéré comme connecté.
Note 2 :
Pour établir une connexion, un segment de fil doit être connecté par ses extrémités à un autre segment ou à une pin de composant.
Si il y a chevauchement (si un fil survole une pin sans être connecté à son extrémité), il n’y a pas de connexion.
Note 3 :
Les fils qui se croisent ne sont pas implicitement connectés. Il est nécessaire de les joindre avec un point de jonction si une connexion est souhaitée.
La figure précédente montre un cas de connexions utilisant des symboles de jonction (fils reliés entre eux, DB25FEMALE pins 19, 20, 21, 22).
Note 4 :
Si deux labels différents sont placés sur le même fil, ils sont reliés entre eux et deviennent équivalents. Et tous les éléments reliés à l’un ou l’autre de ces labels seront connectés entre eux.
5.5.3. Connexions (Bus)
Dans le schéma ci-dessous, de nombreuses pins sont connectées à des bus.

Membres d’un bus
Du point de vue schématique, un bus est une collection de signaux, commençant par un préfixe commun, et se terminant par un numéro. Par exemple, PCA0, PCA1, PCA2 et sont des membres du bus PCA.
Le bus complet est nommé PCA[N..m], où N et m sont le premier et le dernier numéro des fils de ce bus. Ainsi, si le bus PCA compte 20 membres, de 0 à 19, le bus complet sera noté PCA[0..19]. Une collection de signaux comme PCA0, PCA1, PCA2, WRITE, READ ne peut être contenue dans un bus.
Connexions entre membres de bus
Les pins connectées entre les membres d’un même bus doivent être reliées par des labels. Il est impossible de connecter une pin directement à un bus ; ce type de connexion sera ignoré par Eeschema.
Dans l’exemple ci-dessus, les connexions sont faites par des labels placés sur les fils connectés aux pins. Les entrées de bus (segments de fil à 45 degrés) sont purement décoratifs, et ne sont pas nécessaires pour établir des connexions logiques.
En pratique, en utilisant la commande de répétition (touche Insert), les connexions peuvent être très vite faites de la façon suivante, si les pins de composants sont alignées dans l’ordre croissant (un cas fréquent sur des composants tels que des mémoires, microprocesseurs, etc…) :
-
Placez le premier label (par exemple PCA0).
-
Utilisez la commande de répétition autant de fois que nécessaire pour placer les autres membres. Eeschema créera automatiquement les labels suivants (PCA1, PCA2 …) alignés verticalement, théoriquement sur la position des autres pins.
-
Dessinez le fil sous le premier label. Ensuite, utilisez la commande de répétition pour placer les autres fils sous les autres labels.
-
Au besoin, placez les entrées de bus de la même façon (placez la première entrée, puis utilisez la commande de répétition).
Note
|
Dans le menu Préférences / Options de l'éditeur de schématique, vous pouvez définir les paramètres de répétition :
|
Connexions globales entre les bus
Vous pouvez avoir besoin de mettre des connexions entre des bus, pour, par exemple, relier deux bus ayant des noms différents, ou dans le cas d’une hiérarchie, pour créer des liens entre les différentes feuilles. Dans ce cas, effectuez ces connexions de la manière suivante :

Les bus PCA [0..15], ADR [0..7] et BUS [5..10] sont reliés entre eux (remarquez la jonction placée ici pour que le fil de bus vertical rejoigne le milieu du segment du bus horizontal).
Plus précisément, les éléments correspondants sont reliés entre eux: PCA0, ADR0 sont connectés, (de même que PCA1 et ADR1, …, PCA7 et ADR7).
De la même manière, PCA5, BUS5 et ADR5 sont connectés (tout comme PCA6, BUS6 et ADR6 et PCA7, BUS7 et ADR7).
PCA8 et BUS8 sont aussi connectés (tout comme PCA9 et BUS9, PCA10 et BUS10)
5.5.4. Connexion des sources d’alimentation
Lorsque les pins d’alimentation des composants sont visibles, elles doivent être connectées, comme pour tout autre signal.
Les composants tels que les portes logiques et les bascules peuvent avoir des pins d’alimentation invisibles. Des précautions doivent être prises avec ceux-ci parce que :
-
Vous ne pouvez pas connecter de fils, en raison de leur invisibilité.
-
Vous ne connaissez pas leurs noms.
Et de plus, ce serait une mauvaise idée de les rendre visibles et de les relier comme les autres pins, parce que le schéma deviendrait illisible et non conforme aux conventions habituelles.
Note
|
Si vous voulez forcer l’affichage de ces pins d’alimentation invisibles,
vous devez cocher l’option «Afficher les pins invisibles» dans la boîte de
dialogue du menu Préférences / Options de l'éditeur de schématique, ou
cliquer sur l’icône
![]() |
Eeschema connecte automatiquement les pins d’alimentation invisibles de même nom, à la source d’alimentation portant ce nom. Il peut être nécessaire de relier des points d’alimentation de noms différents (par exemple, "GND" dans les composants TTL et "VSS" dans les composants MOS) ; utilisez les symboles d’alimentation pour cela.
Il est déconseillé d’utiliser des labels pour le raccordement aux alimentations. Ceux-ci ne disposent que d’une portée de connexion "locale", et ne relieraient pas les pins d’alimentation invisibles.
La figure ci-dessous montre un exemple de connexion de sources d’alimentation.

Dans cet exemple, la masse (GND) est connectée à la source d’alimentation VSS, et la source d’alimentation VCC est connectée à VDD.
Deux symboles PWR_FLAG y sont visibles. Ils indiquent que les deux sources d’alimentation VCC et GND sont vraiment reliées à une source d’alimentation. Sans ces deux drapeaux, l’outil ERC diagnostiquerait : Warning Avertissement : port d’alimentation non connecté.
Tous ces symboles de composants font partie de la librairie «power».
5.5.5. Symboles de "Non-Connexion"
Ces symboles sont très utiles pour éviter d’avoir des avertissements indésirables dans l’ERC. La vérification des règles électriques s’assurant qu’aucune connexion n’a été oubliée.
Si des pins doivent vraiment rester en l’air, il est nécessaire de placer un
drapeau, symbole de "Non Connexion" (outil :
) sur ces broches. Ces
symboles n’ont aucune incidence sur la génération des netlistes.
5.6. Compléments Graphiques
5.6.1. Textes et Commentaires
Il peut être utile, pour la compréhension le schéma, de placer des éléments
tels que des textes, des notes, ou des cadres. Les outils Texte :
et Polygones :
) sont destinés à cet usage,
contrairement aux labels et aux fils, qui sont des éléments de connexion.
Ici, un exemple de cadre avec un texte de commentaire :

5.6.2. Cartouche
On peut modifier le cartouche et son contenu en cliquant sur l’outil
.


Le nombre et le numéro de feuille sont automatiquement mis à jour.
5.7. Restauration du cache des composants
Par défaut, EESchema va chercher les symboles de composants des librairies disponibles dans les chemins et emplacements configurés. Cela peut causer un problème lors du chargement d’un projet très ancien : si les symboles de la librairie ont changé depuis qu’ils ont été utilisés dans le projet, ils seraient remplacés automatiquement avec leurs nouvelles versions. Les nouvelles versions peuvent ne pas s’insérer correctement, ou être orientées différemment, ce qui conduit à un schéma cassé.
Cependant, quand un projet est enregistré, une librairie de sauvegarde (ou cache) est enregistrée avec lui. Cela permet au projet d'être distribué sans les librairies complètes. Si vous chargez un projet où les symboles sont présents à la fois dans ce fichier cache et dans les librairies du système, Eeschema va scanner les bibliothèques pour trouver d'éventuels conflits. Les conflits trouvés seront affichés dans la fenêtre suivante :

Vous pouvez voir dans cet exemple que le projet utilisait initialement une diode avec la cathode vers le haut, mais la librairie en contient maintenant une avec la cathode vers le bas. Ce changement pourrait ruiner le projet ! Un appui sur OK, provoquera la sauvegarde de l’ancien symbole dans une librairie spéciale «rescue», et tous les composants utilisant ce symbole seront renommés pour éviter les conflits de noms.
Si vous appuyez sur Annuler, aucune sauvegarde ne sera effectuée, et donc Eeschema va, par défaut, charger tous les nouveaux composants. Tant qu’aucun changement n’a été effectué, vous pouvez toujours revenir en arrière et relancer la restauration du cache : choisissez "Sauver anciens composants" du menu Outils pour faire apparaître la fenêtre à nouveau.
Si vous préférez ne plus voir cette boîte de dialogue, vous pouvez appuyer sur "Ne plus afficher". La valeur par défaut est de ne rien faire et de permettre aux nouveaux composants d'être chargés. Cette option peut être modifiée dans les Préférences / Librairies de composants.
6. Schématiques hiérarchiques
6.1. Introduction
Une représentation hiérarchique est généralement une bonne solution pour des projets dépassant quelques feuilles. Si vous voulez gérer ce type de projet, il vous faudra :
-
Utiliser de grande feuilles, ce qui pourrait conduire à des problèmes d’impression ou de manipulation.
-
Utiliser plusieurs feuilles, ce qui vous amène à une structure hiérarchique.
La schématique complète consiste alors en une feuille principale, appelée feuille racine, et des sous-feuilles constituant la hiérarchie. En outre, une habile subdivision du schéma en plusieurs feuilles augmentera souvent sa lisibilité.
À partir de la feuille racine, vous pouvez accéder à toutes les
sous-feuilles. La gestion d’une schématique hiérarchique est très facile
avec Eeschema, grâce à son "Navigateur de Hiérarchie" accessible par l’icône
de la barre
d’outils supérieure.
Deux sortes de hiérarchies peuvent cohabiter : la première est celle qui vient d'être évoquée, et qui est d’usage courant. La seconde consiste en la création de composants en librairie qui ressemblent à des composants ordinaires, mais qui correspondent en fait à un schéma décrivant leur structure interne.
Le second type est utilisé pour concevoir des circuits intégrés, car dans ce cas vous devez utiliser des librairies de fonctions dans le schéma que vous êtes en train de dessiner.
Eeschema ne gère pas pour l’instant ce deuxième type.
Une hiérarchie peut être :
-
simple : une feuille donnée n’est utilisée qu’une seule fois.
-
complexe : une feuille donnée sera utilisée plusieurs fois (instances multiples).
-
à plat : c’est un hiérarchie simple, mais les liaisons entre feuilles ne sont pas dessinées.
Eeschema est capable de gérer ces différentes hiérarchies.
La création d’une schématique hiérarchique est facile, la hiérarchie étant manipulée à partir de la feuille racine, comme si vous n’aviez qu’un seul schéma.
Les deux étapes importantes à comprendre sont :
-
Comment créer une sous-feuille.
-
Comment établir des connexions électriques entre les sous-feuilles.
6.2. Navigation dans la hiérarchie
La navigation parmi les sous-feuilles est très facile, grâce à l’outil de
navigation accessible par le bouton
de la barre
d’outils supérieure.

On peut atteindre chaque feuille en double-cliquant sur son nom. Vous pouvez aussi entrer rapidement dans une feuille, depuis sa feuille parente, en faisant un clic droit dessus, puis Entrer dans feuille.
Vous pouvez accéder rapidement à la feuille racine, ou à une des
sous-feuilles grâce à l’outil
de la
barre latérale droite. Après que cet outil ait été sélectionné :
-
Cliquez sur un nom de feuille pour la sélectionner.
-
Cliquez ailleurs sur la feuille pour afficher la feuille racine, ou pour remonter dans la hiérarchie.
6.3. Labels locaux, hiérarchiques et globaux
6.3.1. Propriétés
Les labels locaux, outil
, relient des
signaux uniquement à l’intérieur de la même feuille. Les labels
hiérarchiques, outil
,
relient des signaux uniquement à l’intérieur d’une feuille ou à une pin
hiérarchique de sa feuille parente.
Les labels globaux, outil
, relient des signaux à travers toute la hiérarchie. Les pins
d’alimentation (de type power in et power out) invisibles sont
similaires aux labels globaux car elles sont reliées à travers toute la
hiérarchie.
Note
|
À l’intérieur d’une hiérarchie, on peut utiliser à la fois des labels globaux ou hiérarchiques. |
6.4. Étapes de la création hiérarchique
Vous devez :
-
Placer dans la feuille racine un symbole appelé "Feuille hiérarchique".
-
Accéder à cette nouvelle feuille schématique (sous-feuille) par le navigateur, et la dessiner, comme n’importe quel schéma.
-
Établir les connexions électriques entre les deux feuilles de schéma en plaçant des Labels Globaux (HLabels) dans la nouvelle sous-feuille et des labels portant le même nom dans la feuille racine, appelées Labels de Feuille (SheetLabels). Ces SheetLabels seront connectées au symbole de feuille, de la feuille racine aux autres éléments du schéma comme des pins ordinaires de composants.
6.5. Symbole de feuille hiérarchique
Tracez un rectangle symbolisant la sous-feuille, en plaçant deux points sur une diagonale.
La taille de ce rectangle vous permettra d’ajouter plus tard des labels particuliers, des pins de hiérarchie, correspondant aux labels globaux (Hlabels) de la sous-feuille.
Ces labels sont vues comme des pins ordinaires de composants. Utilisez
l’outil
.
Cliquez pour placer le coin supérieur gauche du rectangle. Cliquez à nouveau pour positionner le coin inférieur droit, afin d’avoir un rectangle suffisamment grand.
On vous demandera alors de donner un nom de fichier et un nom de feuille pour cette sous-feuille, pour vous permettre de l’atteindre par le navigateur de hiérarchie.

Vous devez au moins spécifier un nom de fichier. En l’absence de nom de feuille, c’est le nom de fichier qui sera utilisé comme nom de feuille (c’est la méthode habituelle).
6.6. Connexions - Pins hiérarchiques
Vous allez maintenant créer des points de connexion (pins hiérarchiques) pour le symbole de feuille qui vient d'être créé.
Ces pins hiérarchiques sont similaires à des pins ordinaires de composants, avec toutefois la possibilité de raccorder un bus entier sur un seul point de connexion.
Il y a deux méthodes possibles :
-
Placer les différentes pins avant le dessin de la sous-feuille (placement manuel).
-
Placer les différentes pins après le dessin de la sous-feuille et des labels globaux (placement semi-automatique).
Cette deuxième méthode largement préférable.
Placement manuel
-
Choisissez l’outil
.
-
Cliquez sur le symbole de feuille hiérarchique où vous voulez placer cette pin.
Ci-dessous, un exemple de création de pin hiérarchique appelée "CONNECTION".

Vous pouvez dès maintenant définir ses attributs graphiques, sa dimension, ou ultérieurement, en l'éditant (clic droit et choisir Éditer dans le menu contextuel).
Différentes formes de pins s’offrent à vous :
-
Entrée
-
Sortie
-
Bidirectionnel
-
Trois-états
-
Passive
Ces formes de symboles de pins ne sont que des améliorations graphiques et elles n’ont pas d’autre rôle.
Placement automatique :
-
Sélectionnez l’outil
.
-
Cliquez sur le symbole de feuille hiérarchique dans lequel vous voulez importer des pins hiérarchiques correspondant aux labels hiérarchiques placés dans la feuille correspondante. Une pin hiérarchique apparaît si un label hiérarchique existe et qu’il ne correspond pas à une pin déjà placée.
-
Cliquez où vous souhaiter placer la pin.
Les pins nécessaires peuvent ainsi être placées rapidement et sans erreur. Leur aspect correspond à celui de leur label hiérarchique.
6.7. Connexions - Labels hiérarchiques
À chaque pin de la feuille symbolique venant d'être créée doit correspondre
un label appelé label hiérarchique dans la sous-feuille. Les labels
hiérarchiques sont similaires aux labels ordinaires, mais ils permettent des
connexions entre les sous-feuilles et la feuille de racine. La
représentation graphique de ces deux éléments complémentaires (pin et label
hiérarchiques) est identique. La création de labels hiérarchiques se fait à
l’aide de l’outil :
.
Ci-dessous un exemple de feuille racine :

Remarquez la pin hiérarchique VCC-PIC, reliée au connecteur JP1.
Voici les connexions correspondantes dans la sous-feuille :

Nous retrouvons les deux labels hiérarchiques correspondants, qui établissent la connexion entre les deux feuilles hiérarchiques.
Note
|
Vous pouvez utiliser des pins et des labels hiérarchiques pour relier deux bus, en utilisant la syntaxe décrite précédemment (Bus [N..m]). |
6.7.1. Labels, labels hiérarchiques, labels globaux et pins d’alimentation invisibles
Quelques remarques sur les différentes façons d'établir des connexions autrement qu’avec des fils.
Labels simples
Les labels simples n’ont qu’une portée locale de connexion, limitée à la feuille de schéma dans laquelle ils sont placés. Ceci est du au fait que :
-
Chaque feuille a un numéro de feuille.
-
Ce numéro de feuille est associé à l'étiquette.
Ainsi, quand vous placez un label "TOTO" dans la feuille n°3, le vrai nom de ce label est "TOTO_3". Si vous avez aussi un label "TOTO" dans la feuille n°1 (feuille racine), c’est en fait un label "TOTO_1" différent de "TOTO_3". Ceci est toujours vrai, même si vous n’avez qu’une seule feuille.
Labels hiérarchiques
Ce que nous avons dit pour les labels simple est vrai aussi pour les labels hiérarchiques.
Ainsi, dans la même feuille, un label hiérarchique "TOTO" est considéré comme connecté à un autre label "TOTO", mais n’est pas connecté à un label "TOTO" dans une autre feuille.
Toutefois, un label hiérarchique sera connecté au symbole de pin hiérarchique correspondant dans la feuille racine.
Pins d’alimentations invisibles
Nous avons vu que les pins d’alimentation invisibles sont connectées ensemble si elles portent le même nom. Ainsi toutes les pins déclarées "pins d’alimentation invisibles" et nommées VCC sont reliées et forment l'équipotentiel VCC, quelle que soit la feuille dans laquelle elles sont placées.
En revanche, si vous placez un label VCC dans une sous-feuille, il ne sera pas relié aux pins VCC, parce que ce label est en fait VCC_n, où n est le numéro de la feuille.
Si vous voulez que ce label VCC soit réellement connecté à l'équipotentiel VCC, il devra avoir été explicitement connecté à une pin invisible grâce à un port d’alimentation VCC.
6.7.2. Labels globaux
Les labels globaux qui portent le même nom sont connectés à travers toute la hiérarchie.
(les labels d’alimentation comme vcc … sont des labels globaux)
6.8. Hiérarchie complexe
Voici un exemple. La même schématique est utilisée deux fois (deux instances). Les deux feuilles partagent le même schéma parce que le nom de fichier est le même pour les deux feuilles («other_sheet.sch»). Mais leurs noms de feuilles doivent être différents.

6.9. Hiérarchie à plat
Vous pouvez créer un projet utilisant plusieurs feuilles, sans créer aucune connexion entre ces feuilles (hiérarchie à plat) si les règles suivantes son respectées :
-
Vous devez créer une feuille racine, contenant les autres feuilles, qui sera le lien entre les feuilles.
-
Aucune connexion explicite n’est nécessaire.
-
Les connexions entre feuilles utiliseront des label globaux au lieu de label hiérarchiques.
Voici un exemple de feuille racine :

Voici les deux feuilles, connectées par des labels globaux.
Voici la feuille pic_programmer.sch.

Voici la feuille pic_sockets.sch.

Regardez les labels globaux.

7. Annotation automatique des composants
7.1. Introduction
L’outil d’annotation automatique permet d’affecter automatiquement une
référence aux composants du schéma. Pour les boitiers multi-unités, il
affecte un suffixe de multi-unité pour réduire le nombre de ces
boitiers. L’outil d’annotation automatique est accessible par l’icone
. qui se trouve sur la
fenêtre principale.

Plusieurs choix s’offrent à vous :
-
Réaffecter toutes les références, même celles existantes (Supprimer l’annotation existante).
-
Réaffecter toutes les références, sauf pour les boitiers multi-unités déjà annotés (Reset, mais ne pas échanger les unités déjà numérotées des boitiers multi-unités).
-
Annoter seulement les nouveaux composants (ceux dont la référence finit par ? comme IC? (Garder l’annotation existante).
-
Annoter toute la hiérarchie (Utiliser la schématique entière).
-
Annoter seulement le schéma en cours (Utiliser la feuille active uniquement).
L’option «Reset, mais ne pas échanger les unités déjà numérotées des boitiers multi-unités» conserve toutes les associations existantes entre les boitiers multi-unités. En pratique, si vous avez U2A et U2B, ils pourront être réannotés respectivement U1A et U1B, mais ne seront jamais réannotés U1A et U2A, ni U2B et U2A. Utile si on veut s’assurer que les regroupements de pins soient conservés, dans le cas où vous avez déjà décidé à quel endroit sera le mieux placée telle unité.
Le choix de l’ordre de l’annotation fixe la méthode utilisée pour affecter les numéros de référence sur chaque feuille de la hiérarchie.
Sauf exception, l’annotation automatique s’applique au projet entier (toutes les feuilles) et aux nouveaux composants, si on ne veut pas modifier les annotations précédentes.
Le choix de l’annotation fixe la méthode utilisée pour calculer le numéro de la référence :
-
Utiliser le premier nombre libre de la schématique : les composants seront annotés à partir de 1 (pour chaque préfixe de référence). S’il existe une précédente annotation, les nombres non encore utilisés seront pris.
-
Démarrer à numéro de feuille *100 et utiliser le premier nombre libre : l’annotation commence par 101 sur la feuille numéro 1, par 201 sur la feuille numéro 2, etc… S’il y a plus de 99 éléments avec le même préfixe de référence (U, R) sur la feuille 1, l’outil d’annotation utilisera le numéro 200 et suivants, et l’annotation de la feuille 2 commencera au prochain numéro libre.
-
Démarrer à numéro de feuille *1000 et utiliser le premier nombre libre : l’annotation commence par 1001 sur la feuille numéro 1, par 2001 sur la feuille numéro 2, etc…
7.2. Quelques exemples
7.2.1. Ordre d’annotation
Cet exemple montre 5 composants, non encore annotés.

Après l’exécution de l’annotation automatique, on obtient le résultat suivant.
Composants triés par position X.

Composants triés par position Y.

Vous pouvez voir que quatre portes 74LS00 ont été réparties dans le boitier U1, et que la cinquième porte 74LS00 a été assignée au suivant, U2.
7.2.2. Choix de l’annotation
Voici une annotation de la feuille 2 avec l’option Utiliser le premier nombre libre de la schématique.

L’option Démarrer à numéro de feuille *100 et utiliser le premier nombre libre donne le résultat suivant.

L’option Démarrer à numéro de feuille *1000 et utiliser le premier nombre libre donne le résultat suivant.

8. Vérification des règles électriques (ERC)
8.1. Introduction
L’outil de vérification des règles électriques, ou ERC (Electrical Rules Check), vérifie automatiquement votre schéma. Il détecte les erreurs dans la feuille, comme les pins ou les symboles hiérarchiques non connectés, les sorties en court-circuit, etc… Bien entendu une vérification automatique n’est pas infaillible, et le logiciel qui la réalise n’est pas encore terminé à 100%. Malgré tout, cette vérification est très utile, car elle détecte beaucoup d’omissions et de petites erreurs.
Dans un processus normal, toutes les erreurs détectées devront être vérifiées et corrigées avant de continuer. La qualité de l’ERC est directement liée au soin pris dans la déclaration des propriétés des pins électriques, lors de la création des composants de la librairie. L’ERC produit en sortie des "erreurs" ou des "avertissements".

8.2. Utilisation de l’ERC
L’ERC est lancé par l’icône
.
Des avertissements, sous forme de petites flèches de marquage, seront placés sur les éléments schématiques générant une erreur ERC (pins ou labels).
Note
|
|
Vous pouvez également supprimer des marqueurs d’erreur dans la boîte de dialogue.
8.3. Exemple d’ERC

Ici, vous pouvez voir quatre erreurs :
-
Deux sorties logiques ont été reliées ensemble (flèche rouge).
-
Deux entrées ne sont pas connectées (flèches vertes du bas).
-
Une erreur sur une source d’alimentation invisible, dont il manque le symbole d’alimentation (flèche verte du haut).
8.4. Affichage du diagnostic
Un clic droit sur un marqueur vous affiche le menu contextuel permettant d’accéder à la fenêtre d’informations de diagnostic de l’ERC.

et en cliquant sur un marqueur, vous obtenez une description de l’erreur.

8.5. Pins d’alimentation et symboles d’alimentation (Power Flag)
Il est fréquent d’avoir une erreur ou un avertissement sur les pins d’alimentation, même si tout semble normal. Voir l’exemple ci-dessus. Cela arrive parce que, dans la plupart des dessins, l’alimentation est fournie par des connecteurs qui ne sont pas identifiés comme des sources d'énergie (au contraire d’une sortie de régulateur qui, elle, est déclarée en tant que sortie d’alimentation).
Ainsi l’ERC ne détectera pas une pin de sortie d’alimentation pour ce fil et le déclarera non-connecté à une source d’alimentation.
Pour éviter ceci, il faut placer un symbole d’alimentation, "PWR_FLAG", sur ce connecteur d’alim. Comme dans l’exemple suivant :

Et ainsi le marqueur disparaît.
La plupart du temps, un PWR_FLAG devra aussi être relié à la masse, car si la sortie des régulateurs de tensions est déclarée comme source d’alimentation, les pins de masse ne le sont pas (leur attribut normal est entrée d’alimentation). Et donc, les masses ne seront pas considérées comme connectées à une source d’alimentation en l’absence d’un PWR_FLAG.
8.6. Configuration
Le panneau des Options vous permet de configurer les règles de connexion définissant les conditions électriques de la vérification des erreurs et des avertissements.

Les règles sont modifiées en cliquant plusieurs fois sur le bouton carré dans le tableau pour faire défiler les différents choix : normal [vert], avertissement [W jaune], erreur [E rouge].
8.7. Fichier de rapport d’ERC
Un rapport d’ERC peut être produit et sauvegardé en cochant la case "Créer fichier rapport ERC". L’extension pour ces fichiers est .erc. Voici un exemple de rapport d’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
9. Création d’une Netliste
9.1. Généralités
Une Netliste est un fichier qui décrit les connexions électriques entre les composants. Dans un fichier Netlist vous trouverez :
-
La liste des composants.
-
La liste des connexions entre composants, appelées aussi équipotentielles.
Différents formats de netlistes existent. Parfois, la liste des composants et des équipotentielles sont deux fichiers séparés. Cette netliste est fondamentale dans l’utilisation des logiciels de saisie de schémas, car cette liste est le lien avec les autres logiciels de CAO électronique, comme :
-
Les logiciels de dessin de circuit imprimés.
-
Les simulateurs de schémas et de circuits imprimés.
-
les compilateurs de CPLD (et autres circuits intégrés programmables).
Eeschema gère plusieurs formats de netlistes.
-
Le format PCBNEW (circuits imprimés).
-
Le format ORCAD PCB2 (circuits imprimés).
-
Le format CADSTAR (circuits imprimés).
-
Le format SPICE, utilisé par différents simulateurs.
9.2. Formats de Netliste
Cliquez sur l’outil
pour ouvrir
la boite de dialogue de création de Netliste.
Onglet Pcbnew :

Onglet Spice :

Au moyen des différents onglets, vous pouvez choisir le format désiré. Dans le format Pspice, vous pouvez générer des netlistes avec soit des noms d'équipotentielles (c’est plus lisible), soit des numéros de net (les anciennes versions de Spice n’acceptent que les chiffres). En cliquant sur le bouton "Générer", vous serez invité à donner un nom de fichier à votre netliste.
Note
|
Dans les gros projets, la génération de la netliste peut prendre quelques minutes. |
9.3. Exemples de netlistes
Vous pouvez voir ci-dessous un schéma

Exemple d’une netliste pour PcbNew :
# Eeschema Netlist Version 1.0 generee le 21/1/1997-16:51:15 ( (32E35B76 $noname C2 1NF {Lib=C} (1 0) (2 VOUT_1) ) (32CFC454 $noname V2 AC_0.1 {Lib=VSOURCE} (1 N-000003) (2 0) ) (32CFC413 $noname C1 1UF {Lib=C} (1 INPUT_1) (2 N-000003) ) (32CFC337 $noname V1 DC_12V {Lib=VSOURCE} (1 +12V) (2 0) ) (32CFC293 $noname R2 10K {Lib=R} (1 INPUT_1) (2 0) ) (32CFC288 $noname R6 22K {Lib=R} (1 +12V) (2 INPUT_1) ) (32CFC27F $noname R5 22K {Lib=R} (1 +12V) (2 N-000008) ) (32CFC277 $noname R1 10K {Lib=R} (1 N-000008) (2 0) ) (32CFC25A $noname R7 470 {Lib=R} (1 EMET_1) (2 0) ) (32CFC254 $noname R4 1K {Lib=R} (1 +12V) (2 VOUT_1) ) (32CFC24C $noname R3 1K {Lib=R} (1 +12V) (2 N-000006) ) (32CFC230 $noname Q2 Q2N2222 {Lib=NPN} (1 VOUT_1) (2 N-000008) (3 EMET_1) ) (32CFC227 $noname Q1 Q2N2222 {Lib=NPN} (1 N-000006) (2 INPUT_1) (3 EMET_1) ) ) # End
La même netliste, en format PSPICE :
* Eeschema Netlist Version 1.1 (Spice format) creation date: 18/6/2008-08:38:03 .model Q2N2222 npn (bf=200) .AC 10 1Meg \*1.2 .DC V1 10 12 0.5 R12 /VOUT N-000003 22K R11 +12V N-000003 100 L1 N-000003 /VOUT 100mH R10 N-000005 N-000004 220 C3 N-000005 0 10uF C2 N-000009 0 1nF R8 N-000004 0 2.2K Q3 /VOUT N-000009 N-000004 N-000004 Q2N2222 V2 N-000008 0 AC 0.1 C1 /VIN N-000008 1UF V1 +12V 0 DC 12V R2 /VIN 0 10K R6 +12V /VIN 22K R5 +12V N-000012 22K R1 N-000012 0 10K R7 N-000007 0 470 R4 +12V N-000009 1K R3 +12V N-000010 1K Q2 N-000009 N-000012 N-000007 N-000007 Q2N2222 Q1 N-000010 /VIN N-000007 N-000007 Q2N2222 .print ac v(vout) .plot ac v(nodes) (-1,5) .end
9.4. Notes sur les netlistes
9.4.1. Précautions pour les noms de netlistes
Beaucoup de logiciels qui utilisent des netlistes n’acceptent pas les espaces dans les noms de composants, de pins, d'équipotentielles ou autres. Évitez donc systématiquement les espaces dans les labels, les noms, les champs de composants et leurs pins.
De la même manière, les caractères spéciaux autres que les lettres et les chiffres peuvent poser problème. Notez que cette limitation n’est pas propre à Eeschema, mais aux formats de netlistes qui pourraient s’avérer intraduisibles pour les logiciels qui les utilisent.
9.4.2. Netlistes PSPICE
Pour le simulateur PSPICE, vous devez inclure certaines commandes dans la netliste elle-même (.PROBE, .AC, etc..).
Chaque ligne de texte incluse dans le schéma et débutant par les mots-clefs -pspice ou -gnucap sera insérée (sans le mot-clef) au début de la netliste.
Chaque ligne de texte incluse dans le schéma et débutant par les mots-clefs +pspice ou +gnucap sera insérée (sans le mot-clef) à la fin de la netliste.
Voici un exemple utilisant plusieurs lignes de texte et un autre utilisant un texte multi-lignes :

Par exemple, si vous tapez le texte suivant (n’utilisez pas un label !) :
-PSPICE .PROBE
une ligne .PROBE sera insérée en début de netliste.
Dans l’exemple précédent, avec cette méthode, trois lignes étaient insérées au début de la netliste et deux à la fin.
Si vous utilisez un texte multi-lignes, les mots-clefs +pspice ou +gnucap ne sont nécessaires qu’une seule fois :
+PSPICE .model NPN NPN .model PNP PNP .lib C:\Program Files\LTC\LTspiceIV\lib\cmp\standard.bjt .backanno
crée les quatre lignes :
.model NPN NPN .model PNP PNP .lib C:\Program Files\LTC\LTspiceIV\lib\cmp\standard.bjt .backanno
Notez aussi que l'équipotentielle GND doit être nommée 0 (zéro) pour Pspice.
9.5. Autres formats
Pour d’autres formats de netlistes, vous pouvez ajouter des convertisseurs de netlistes sous forme de plugins. Ces convertisseurs seront lancés automatiquement par Eeshema. Le chapitre 14 donne des explications et quelques exemples de convertisseurs.
Un convertisseur est un fichier texte (format XSL), mais on peut utiliser d’autres langages, comme Python. Lorsque vous utilisez le format XSL, un outil (xsltproc.exe ou xsltproc) lit le fichier intermédiaire créé par Eeschema et le fichier de conversion pour créer le fichier de sortie. Dans ce cas, le fichier de conversion (une feuille de style) est très petit et très facile à écrire.
9.5.1. Ajout dans la boite de dialogue
Vous pouvez ajouter un nouveau plugin par le bouton "Ajouter Plugin".

Voici la fenêtre de configuration pour un plugin PadsPcb :

La configuration demande :
-
Un titre pour l’onglet (comme le nom du format de Netliste).
-
La ligne de commande du plugin à lancer.
Quand la liste est créée :
-
Eeschema crée un fichier temporaire intermédiaire .tmp, par exemple test.tmp.
-
Eeschema lance le plugin, qui lit ce test.tmp et crée la netliste test.net.
9.5.2. Format de la ligne de commande
Voici un exemple de ligne de commande utilisant xsltproc.exe comme outil de conversion de fichiers .xsl et un fichier netlist_form_pads-pcb.xsl qui sert de feuille de style :
f:/kicad/bin/xsltproc.exe -o %O.net f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl %I
avec :
f:/kicad/bin/xsltproc.exe |
Outil de lecture et de conversion de fichier .xsl |
-o %O.net |
Fichier de sortie, défini par : %O |
f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl |
Feuille de style .xsl à utiliser pour la conversion. |
%I |
%I sera remplacé par le fichier intermédiaire .tmp créé par Eeschema |
Pour un schéma nommé test.sch, la ligne de commande réelle qui en résulterait :
f:/kicad/bin/xsltproc.exe -o test.net f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl test.tmp.
9.5.3. Convertisseur et feuille de style
C’est un logiciel très simple, parce que son rôle est seulement de convertir un fichier texte d’entrée (le fichier intermédiaire) en un autre fichier texte. À partir du fichier intermédiaire, vous pouvez, en outre, créer une liste des composants (BOM).
Lors de l’utilisation de xsltproc comme convertisseur, seul le contenu décrit dans la feuille de style sera généré.
9.5.4. Format du fichier intermédiaire de Netliste
Voir le chapitre 14 pour plus d’explications au sujet de xsltproc, du fichier intermédiaire, et des exemples de feuilles de style pour le convertisseur.
10. Tracer / Imprimer
10.1. Introduction
Les commandes Imprimer et Tracer sont accessibles par le menu Fichiers.

Les formats de sortie peuvent être : Postscript, PDF, SVG, DXF ou HPGL. Vous pouvez aussi imprimer directement sur votre imprimante.
10.2. Commandes de tracé communes
- Tracer Page Courante
-
génère un fichier pour la feuille courante seulement.
- Tracer Toutes les Pages
-
vous permet de tracer toute la hiérarchie (un fichier est généré pour chaque feuille).
10.3. Tracer en Postscript
Cette commande vous permet de générer des fichiers au format PostScript.

Le nom du fichier généré est le nom de la feuille avec l’extension .ps. Vous pouvez désactiver l’option "Tracer cartouche et encadrement". Ceci est utile quand vous voulez créer un fichier PostScript pour l’encapsulation (format .eps), utilisé pour insérer une figure dans un logiciel de traitement de texte. La fenêtre de message affiche le chemin et le nom des fichiers créés.
10.4. Tracer en PDF

Vous permet de générer un tracé au format PDF. Le nom du fichier généré est le nom de la feuille avec l’extension .pdf.
10.5. Tracer en SVG

Vous permet de générer un tracé au format vectoriel SVG. Le nom du fichier généré est le nom de la feuille avec l’extension .svg.
10.6. Tracer en DXF

Vous permet de générer un tracé au format DXF. Le nom du fichier généré est le nom de la feuille avec l’extension .dxf.
10.7. Tracer en HPGL
Vous permet de générer un tracé au format HPGL. Pour ce format, vous pouvez définir :
-
La taille de page.
-
L’origine.
-
La taille du pinceau (en mm).
La fenêtre de configuration du tracé ressemble à ceci :

Le nom du fichier généré sera le nom de la feuille avec l’extension .plt.
10.7.1. Sélection de la taille de la feuille schématique
La case Taille Shématique est normalement cochée. Dans ce cas, la taille de la feuille définie dans les options de la page sera utilisée, et l'échelle choisie sera de 1. Si une autre taille de feuille est sélectionnée (de A4 à A0, de A à E, etc..), l'échelle sera automatiquement ajustée pour remplir la page.
10.7.2. Ajustement des décalages
Pour toutes les dimensions standards, vous pouvez ajuster les décalages pour centrer le dessin aussi précisément que possible. Certains traceurs ayant un point d’origine au centre, et d’autres au coin inférieur droit, il est nécessaire de pouvoir introduire un décalage pour tracer correctement.
Généralement :
-
Pour des traceurs ayant leur point d’origine au centre de la feuille, le décalage doit être négatif et fixé à la moitié de la dimension de la feuille.
-
Pour des traceurs ayant leur point d’origine dans le coin inférieur gauche de la feuille, le décalage doit être réglé à 0.
Pour fixer un décalage :
-
Sélectionnez la taille de la feuille.
-
Fixez les décalages X et Y.
-
Cliquez sur accepter les décalages.
10.8. Imprimer sur papier
Cette commande, accessible par l’icône
, vous permet de
visualiser et de générer les fichiers pour une imprimante standard.

L’option "Imprimer cartouche" active ou désactive l’impression du cartouche.
L’option "Imprimer en noir et blanc seulement" force l’impression en monochrome. Cette option est généralement nécessaire si vous avez une imprimante laser noir et blanc, parce que les couleurs, imprimées en demi-tons, ne sont souvent pas très lisibles.
11. L'Éditeur de Composants
11.1. Informations générales à propos des librairies
Un symbole de composant est un élément qui contient une représentation graphique, des connexions électriques, et des champs définissant le composant lui-même. Les composants utilisés dans un schéma sont stockés dans des bibliothèques (ou librairies) de composants. Eeschema contient un éditeur qui vous permet de créer des librairies, d’ajouter, supprimer ou transférer des composants entre les librairies, d’exporter des composants vers des fichiers ou d’importer des composants depuis des fichiers. Bref, cet éditeur vous fournit un moyen simple de gérer vos fichiers de librairies de composants.
11.2. Vue d’ensemble des librairies de composants
Une librairie de composants contient un ou plusieurs composants. En général, les composants y sont regroupés par fonction, type, ou fabricant.
Un composant contient :
-
Des éléments graphiques (lignes, cercles, arcs, textes, etc…), qui fournissent la définition du symbole.
-
Des broches (pins), qui ont à la fois des propriétés graphiques (ligne, horloge, inversée, active à l'état bas, etc..), et des propriétés électriques (entrée, sortie, bidirectionnelle, etc..), qui sont utilisées par l’outil de vérification des règles électriques (ERC).
-
Des champs : référence, valeur, empreintes correspondantes pour le dessin du circuit imprimé, etc…
-
Des alias, utilisés pour associer un composant générique à ses variantes, comme 74LS00, 74HC00, 7437 pour le 7400. Ces alias partagent tous le même symbole en librairie.
Le dessin d’un composant nécessite :
-
De définir s’il est composé d’une ou de plusieurs unités.
-
De définir si le composant a une autre représentation graphique, aussi appelée représentation De Morgan.
-
De dessiner sa représentation symbolique, au moyen de lignes, rectangles, cercles, polygones, et de texte.
-
D’ajouter des pins, en définissant leurs éléments graphiques, leurs noms, leurs numéros et leurs propriétés électriques (entrées, sorties, trois-états, alimentations, etc..).
-
D’ajouter des alias, au cas où d’autres composants utiliseraient le même symbole, ou le même brochage. Ou d’en enlever, si le composant a été créé à partir d’un autre composant.
-
D’ajouter des champs supplémentaires, comme le nom de l’empreinte utilisée par le logiciel de dessin du circuit imprimé, et de définir leur visibilité.
-
De documenter le composant, en ajoutant une description, des liens éventuels vers des datasheets, etc…
-
De le sauvegarder dans la librairie désirée.
11.3. Interface de l'éditeur de librairies
Ci-dessous, la fenêtre principale de l'éditeur de composants. Elle comporte 3 barres d’outils, pour accéder aux fonctions principales, et la zone d’affichage et d'édition du composant. Les quelques commandes qui ne sont pas disponibles dans les barres d’outils sont accessibles par les menus.

11.3.1. Barre d’outils principale
Ci-dessous, la barre d’outils principale, située en haut de la fenêtre. Elle contient les outils de gestion des librairies, les boutons Défaire Refaire, les commandes de Zoom, et les outils d'édition des propriétés du composant.

|
Sauver la librairie courante sur disque. L’icône sera inactive (grisée) si aucune librairie n’a été sélectionnée, ou si aucune modification de la librairie courante n’a été effectuée. |
|
Sélection de la librairie de travail. |
|
Supprimer un composant en librairie de travail, ou d’une des librairies définies dans le projet, si aucune librairie n’a été selectionnée. |
|
Ouvre le Visualisateur de librairies et de composants, pour choisir le composant à éditer |
|
Créer un nouveau composant. |
|
Charger un composant à éditer à partir de la librairie courante. |
|
Créer un nouveau composant à partir du composant courant. |
|
Mettre à jour le composant en librairie de travail. Opération effectuée en mémoire, le fichier de librairie n’est pas modifié. |
|
Importer un composant, depuis un fichier. |
|
Exporter le composant courant vers un fichier. |
|
Sauver le composant courant dans une nouvelle librairie. Note : la nouvelle librairie n’est pas ajoutée automatiquement au projet. |
|
Défaire, Annuler la dernière modification. |
|
Refaire, Rétablir la dernière modification annulée. |
|
Éditer les propriétés du composant. |
|
Ajouter, supprimer des champs et éditer leur propriétés. |
|
Test pins oubliées et hors grille, vérification d’erreurs. |
|
Zoom avant. |
|
Zoom arrière. |
|
Rafraîchir l'écran, la vue du schéma. |
|
Ajuster la feuille de schéma à l'écran. (Zoom automatique). |
|
Afficher sous représentation normale. Le bouton sera désactivé si le composant courant n’a pas de représentation alternative. |
|
Afficher la représentation De Morgan. Affiche la représentation alternative. Le bouton sera désactivé si le composant courant n’en a pas. |
|
Afficher la documentation ou un document associé, datasheet ou autre. Le bouton sera désactivé si le composant courant n’en a pas. |
|
Selection de l’unité à afficher. Le menu déroulant sera désactivé si le composant n’est pas multi-unités. |
|
Sélection de l’alias. Le menu déroulant sera désactivé si le composant n’a pas d’alias. |
|
Éditer pins, unité par unité, ou forme par forme, pour les composants avec de multiple unités, ou des représentations alternatives. |
|
Montrer la table des pins. |
11.3.2. Barre d’outils des éléments
La barre d’outils verticale située à droite de la fenêtre vous permet d’ajouter les éléments nécessaires au dessin d’un composant. La table ci-dessous décrit les fonctions des différents boutons :
|
Arrêter l’outil courant. Outil de sélection. Un click droit dans ce mode ouvre le menu contextuel de l'élément situé sous le curseur. Un simple click gauche affiche les attributs de l'élément dans le panneau de message situé au bas de la fenêtre. Un double-clic ouvre la boite de dialogue d'édition des propriétés de l'élément. |
|
Ajouter des pins au composant. Un click gauche pour ajouter une nouvelle pin. |
|
Ajouter des textes graphiques au composant. Un click gauche pour ajouter un nouvel élément de texte graphique. |
|
Ajouter des rectangles graphiques au dessin du composant. Un click gauche pour placer le premier coin du rectangle. Un deuxième click gauche pour placer le coin opposé du rectangle. |
|
Ajouter des cercles au composant. Un click gauche pour placer le centre du cercle. Un deuxième click gauche pour définir le rayon. |
|
Ajouter des arcs au composant. Un click gauche pour placer le centre de l’arc. Un deuxième click gauche pour définir le début de l’arc. Un troisième click gauche pour définir le deuxième point de l’arc. |
|
Addition de lignes ou polygones graphiques au composant. Un click gauche pour débuter le tracé d’un nouveau segment de polygone, d’autres clicks gauches pour ajouter des segments au polygone. Un double-click pour terminer le polygone. |
|
Positionner l’ancre du composant. Un click gauche pour définir la position du point d’ancrage du composant. |
|
Importer des dessins existants. Importer un composant depuis un fichier. |
|
Exporter le composant courant vers un fichier. |
|
Suppression d'éléments. Un click gauche sur un élément pour le supprimer du composant courant. |
11.3.3. Barre d’outils des options
La barre d’outil verticale située à gauche de la fenêtre vous permet de régler quelques options de dessin. La table ci-dessous décrit les fonctions des différents boutons :
|
Afficher ou ne pas afficher la grille. |
|
Unités en inches. |
|
Unités en millimètres. |
|
Change la forme du curseur. Change le curseur, soit court, soit s'étendant sur toute la zone de dessin. |
11.4. Sélection et gestion des librairies
On accède à la boite de dialogue de sélection de la librairie courante au
moyen du bouton
qui montre
les librairies disponibles et permet leur sélection. Une fois sélectionnée,
le nom de la librairie courante s’affiche dans la barre de titre de la
fenêtre de l'éditeur. Quand un composant sera chargé ou enregistré, il le
sera depuis ou vers cette librairie. Le nom du composant en librairie est le
contenu de son champ valeur.
Note
|
|
11.4.1. Sélectionner et Sauvegarder un Composant
Quand vous éditez un composant, vous ne le modifiez pas directement en librairie, mais dans une copie dans la mémoire de l’ordinateur. Chaque modification peut être annulée facilement. Un composant peut être chargé d’une librairie locale ou depuis un composant existant.
Sélectionner un composant
En cliquant sur l’icône
de
la barre principale, vous faites apparaître la liste des composants
disponibles de la librairie courante sélectionnée que vous pouvez choisir de
charger dans l'éditeur.
Note
|
Si un composant est sélectionné par un de ses alias, ce sera le nom du
composant d’origine(ou nom racine) qui sera affiché dans la fenêtre et non
celui de l’alias. La liste des alias est toujours chargée en même temps que
le composant et peut être modifiée. Vous pouvez créer un nouveau composant
en sélectionnant un alias dans le nenu déroulant
![]() |
Note
|
Par ailleurs, un clic sur le bouton
![]() ![]() |
Sauvegarder un composant
Après modification, un composant peut être sauvegardé en librairie courante, dans une nouvelle librairie, ou encore exporté vers un fichier de sauvegarde.
Pour enregistrer le composant modifié dans la librairie courante, cliquez
sur le bouton
. Notez
toutefois que cette mise à jour ne s’effectue que dans la mémoire de
l’ordinateur. Vous pouvez ainsi prendre le temps de réfléchir avant de
sauvegarder vraiment la librairie.
Pour sauvegarder les modifications du composant de façon permanente dans la
librairie, cliquez
.
Si vous voulez créer une nouvelle librairie contenant le composant courant,
cliquez sur
, et
saisissez un nom pour la nouvelle librairie.
Note
|
Les nouvelles librairies ne sont pas automatiquement ajoutées au projet en cours. Vous devez ajouter les nouvelles librairies à utiliser dans votre schéma à la liste des librairies du projet, par le menu Librairies de Composants dans Préférences.
|
Cliquez sur le bouton
pour
créer un fichier contenant seulement le composant courant. Ce fichier est un
fichier de librairie standard, mais ne contenant qu’un seul composant. Ce
fichier peut être ensuite utilisé pour importer le composant dans une
nouvelle librairie. En fait, la commande créer une nouvelle librairie et la
commande exporter sont identiques.
Transférer un composant vers une autre librairie
Il est très facile de copier un composant d’une librairie vers une autre en utilisant la méthode suivante :
-
Choisissez la librairie d’origine par le bouton
.
-
Chargez le composant à transférer en cliquant sur
. Le composant sera affiché dans la zone d'édition.
-
Choisissez la librairie de destination en cliquant à nouveau sur
.
-
Enregistrez le composant courant en mémoire en cliquant sur
.
-
Enfin, sauvegardez la librairie courante en cliquant sur
.
Annuler les modifications d’un composant
Quand vous travaillez sur un composant, le composant en cours d'édition est seulement une copie de travail du composant présent en librairie. Du coup, tant que vous ne l’aurez pas sauvegardé, vous n’avez qu'à recharger ce composant pour annuler les changements. Si vous avez mis à jour ce composant en mémoire et que vous ne l’avez pas sauvegardé dans le fichier de librairie, vous n’avez qu'à quitter l'éditeur et le relancer. Eeshema aura annulé les modifications.
11.5. Création de Composants
11.5.1. Créer un nouveau composant
Un nouveau composant peut être créé en cliquant sur
. Vous serez
invité à donner un nom de composant (ce nom sera utilisé comme valeur par
défaut pour le champ valeur dans l'éditeur schématique), un préfixe de
référence (U, IC, R …), le nombre d’unités par boitier (par exemple pour
un 7400, composé de 4 unités par boitier), et si une représentation
alternative (parfois dénommée De Morgan) est souhaitée. Si le champ
référence est laissé vide, il sera fixé par défaut à «U». Ces propriétés
peuvent être modifiées ultérieurement, mais il est préférable de les définir
correctement dès la création du composant.

Un nouveau composant sera créé avec les propriétés ci-dessus et apparaîtra dans l'éditeur comme ceci :

11.5.2. Créer un composant depuis un autre composant
Souvent, le composant que vous voulez créer est très proche d’un composant existant. Dans ce cas, il est facile de charger et de modifier un composant existant.
-
Chargez le composant qui vous servira de modèle.
-
Cliquez sur
, ou modifiez son nom par clic-droit sur le champ valeur et éditez le texte. Si vous avez choisi de dupliquer le composant courant, vous serez invité à donner un nouveau nom à ce composant.
-
Si le composant modèle a des alias, vous serez invité à supprimer les alias du nouveau composant qui sont en conflit avec la librairie actuelle. Si la réponse est non, la création du nouveau composant sera annulée. Les librairies de composants ne peuvent avoir des noms ou des alias en double.
-
Modifiez le nouveau composant comme vous le souhaitez.
-
Mettez à jour le nouveau composant dans la librairie courante en cliquant sur
, ou enregistrez le dans une nouvelle librairie en cliquant sur
, ou encore, si vous voulez enregistrer ce nouveau composant dans un autre librairie existante, sélectionnez l’autre librairie en cliquant sur
et enregistrez-y le nouveau composant.
-
Sauvez la librairie courante sur le disque en cliquant sur
.
11.5.3. Propriétés du composant
Component properties should be carefully set during the component creation
or alternatively they are inherited from the copied component. To change the
component properties, click on the
to show
the dialog below.

It is very important to correctly set the number of units per package and if the component has an alternate symbolic representation parameters correctly because when pins are edited or created the corresponding pins for each unit will created. If you change the number of units per package after pin creation and editing, there will be additional work introduced to add the new unit pins and symbols. Nevertheless, it is possible to modify these properies at any time.
The graphic options "Show pin number" and "Show pin name" define the visibility of the pin number and pin name text. This text will be visible if the corresponding options are checked. The option "Place pin names inside" defines the pin name position relative to the pin body. This text will be displayed inside the component 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 30 to 40 (in 1/1000 inch) is reasonable.
The example below shows a component with the "Place pin name inside" option unchecked. Notice the position of the names and pin numbers.

11.5.4. Composants avec des représentations alternatives
If the component has more than one symbolic repersentation, you will have to
select the different symbols of the component in order to edit them. To edit
the normal symbol, click the
.
To edit the alternate symbol click on the
. Use the
shown below to select the unit you wish to edit.

11.6. Éléments graphiques
Graphical elements create the symbolic representation of a component and contain no electrical connection information. Their design is possible using the following tools:
-
Lines and polygons defined by start and end points.
-
Rectangles defined by two diagonal corners.
-
Circles defined by the center and radius.
-
Arcs defined by the starting and ending point of the arc and its center. An arc goes from 0° to 180°.
The vertical toolbar on the right hand side of the main window allows you to place all of the graphical elements required to design a component’s symbolic representation.
11.6.1. Appartenance des éléments graphiques
Each graphic element (line, arc, circle, etc.) can be defined as common to all units and/or body styles or specific to a given unit and/or body style. Element options can be quickly accessed by right-clicking on the element to display the context menu for the selected element. Below is the context menu for a line element.

You can also double-left-click on an element to modify its properties. Below is the properties dialog for a polygon element.

The properties of a graphic element are:
-
Line width which defines the width of the element’s line in the current drawing units.
-
The "Common to all units in component" setting defines if the graphical element is drawn for each unit in component with more than one unit per package or if the graphical element is only drawn for the current unit.
-
The "Common by all body styles (DeMorgan)" setting defines if the graphical element is drawn for each symbolic representation in components with an alternate body style or if the graphical element is only drawn for the current body style.
-
The fill style setting determines if the symbol defined by the graphical element is to be drawn unfilled, background filled, or foreground filled.
11.6.2. Éléments graphiques textes
The
allows for the
creation of graphical text. Graphical text is always readable, even when the
component is mirrored. Please note that graphical text items are not fields.
11.7. Composants multi-unités et représentations alternatives
Components can have two symbolic representations (a standard symbol and an alternate symbol often referred to as "DeMorgan") and/or have more than one unit per package (logic gates for example). Some components 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 component with three different units: a coil, switch 1, and switch 2. Designing a component 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 each symbolic representation of each unit, because the pin number is specific to a unit, and the shape depends on the symbolic representation. When a pin is common to each unit or each symbolic representation, you need to create it only once for all units and all symbolic representations (this is usually the case for power pins). 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 symbolic representation).
11.7.1. Exemple de composant ayant multi-unités avec différentes représentations symboliques :
This is an example of a relay defined with three units per package, switch 1, switch 2, and the coil:
Option: pins are not linked. One can add or edit pins for each unit without any coupling with pins of other units.

All units are not interchangeable must be selected.

Unit 1

Unit 2

Unit 3

It does not have the same symbol and pin layout and therefore is not interchangeable with units 1 and 2.
Éléments graphiques symboliques
Shown below are properties for a graphic body element. From the relay example above, the three units have different symbolic representations. Therefore, each unit was created separately and the graphical body elements must have the "Common to all units in component" disabled.

11.8. Création et édition de pins
You can click on the
to create and
insert a pin. The editing of all pin properties is done by double-clicking
on the pin or right-clicking on the pin to open the pin context menu. Pins
must be created carefully, because any error will have consequences on the
PCB design. Any pin already placed can be edited, deleted, and/or moved.
11.8.1. Généralités sur les pins
A pin is defined by its graphical representation, its name and its "number". The pin’s "number" is defined by a set of 4 letters and / or numbers. 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.
Important notes:
-
Do not use spaces in pin names and numbers.
-
To define a pin name with an inverted signal (overline) use the ~ (tilde) character. The next ~ character will turn off the overline. For example \~FO~O would display FO O.
-
If the pin name is reduced to a single symbol, the pin is regarded as unnamed.
-
Pin names starting with #, are reserved for power port symbols.
-
A pin "number" consists of 1 to 4 letters and/ or numbers. 1,2,..9999 are valid numbers. A1, B3, Anod, Gnd, Wire, etc. are also valid.
-
Duplicate pin "numbers" cannot exist in a component.
11.8.2. Propriétés des pins

The pin properties dialog allows you to edit all of the characteristics of a pin. This dialog pops up automatically when you create a pin or when double-clicking on an existing pin. This dialog allows you modify:
-
Name and name’s text size.
-
Number and number’s text size.
-
Length.
-
Electrical and graphical types.
-
Unit and alternate representation membership.
-
Visibility.
11.8.3. Styles graphiques des pins
Shown in the figure below are the different pin graphical styles. The choice of graphic styles does not have any influence on the pin’s electrical type.

11.8.4. Types électriques des pins
Choosing the correct electrical type is important for the schematic ERC tool. The electrical types defined are:
-
Bidirectional which indicates bidirectional pins commutable between input and output (microprocessor data bus for example).
-
Tri-state is the usual 3 states output.
-
Passive is used for passive component pins, resistors, connectors, etc.
-
Unspecified can be used when the ERC check doesn’t matter.
-
Power input is used for the component’s power pins. Power pins are automatically connected to the other power input pins with the same name.
-
Power output is used for regulator outputs.
-
Open emitter and open collector types can be used for logic outputs defined as such.
-
Not connected is used when a component has a pin that has no internal connection.
11.8.5. Propriétés globales des pins
You can modify the length or text size of the name and/or number of all the pins using the Global command entry of the pin context menu. Click on the parameter you want to modify and type the new value which will then be applied to all of the current component’s pins.

11.8.6. Définitions de pins pour unités multiples et représentations alternatives
Components with multiple units and/or graphical representations are particularly problematic when creating and editing pins. The majority of pins are specific to each unit (because their pin number is specific to each unit) and to each symbolic representation (because their form and position is specific to each symbolic representation). The creation and the editing of pins can be problematic for components with multiple units per package and alternate symbolic representations. The component library editor allows the simultaneous creation of pins. By default, changes made to a pin are made for all units of a multiple unit component and both representations for components with an alternate representation.
The only exception to this is the pin’s graphical type and name. This
dependency was established to allow for easier pin creation and editing in
most of the cases. This dependency can be disabled by toggling the
on the main tool bar. This
will allow you to create pins for each unit and representation completely
independently.
A component can have two symbolic representations (representation known as "DeMorgan") and can be made up of more than one unit as in the case of components with logic gates. For certain components, you may want several different graphic elements and pins. Like the relay sample shown in section 11.7.1, a relay can be represented by three distinct units: a coil, switch contact 1, and switch contact 2.
The management of the components with multiple units and components with alternate symbolic representations is flexible. A pin can be common or specific to different units. A pin can also be common to both symbolic representations or specific to each symbolic representation.
By default, pins are specific to each representation of each unit, because their number differs for each unit, and their design is different for each symbolic representation. When a pin is common to all units, it only has to drawn once such as in the case of power pins.
An example is the output pin 7400 quad dual input NAND gate. Since there are
four units and two symbolic representations, there are eight separate output
pins defined in the component definition. When creating a new 7400
component, unit A of the normal symbolic representation will be shown in the
library editor. To edit the pin style in alternate symbolic representation,
it must first be enabled by clicking the
button on the tool bar. To
edit the pin number for each unit, select the appropriate unit using the
drop down control.
11.9. Champs du composant
All library components are defined with four default fields. The reference designator, value, footprint assignment, and documentation file link fields are created whenever a component is created or copied. Only the reference designator and value fields are required. For existing fields, you can use the context menu commands by right-clicking on the pin. Components defined in libraries are typically defined with these four default fields. Additional fields such as vendor, part number, unit cost, etc. can be added to library components but generally this is done in the schematic editor so the additional fields can be applied to all of the components in the schematic.
11.9.1. Édition des champs du composant
To edit an existing component field, right-click on the field text to show the field context menu shown below.

To edit undefined fields, add new fields, or delete optional fields
on the main tool bar to
open the field properties dialog shown below.

Fields are text sections associated with the component. Do not confuse them with the text belonging to the graphic representation of this component.
Important notes:
-
Modifying value fields effectively creates a new component using the current component as the starting point for the new component. This new component has the name contained in the value field when you save it to the currently selected library.
-
The field edit dialog above must be used to edit a field that is empty or has the invisible attribute enable.
-
The footprint is defined as an absolute footprint using the LIBNAME:FPNAME format where LIBNAME is the name of the footprint library defined in the footprint library table (see the "Footprint Library Table" section in the Pcbnew "Reference Manual") and FPNAME is the name of the footprint in the library LIBNAME.
11.10. Symboles d’alimentation
Power symbols are created the same way as normal components. It may be useful to place them in a dedicated library such as power.lib. Power symbols consist of a graphical symbol and a pin of the type "Power Invisible". Power port symbols are handled like any other component by the schematic capture software. Some precautions are essential. Below is an example of a power +5V symbol.

To create a power symbol, use the following steps:
-
Add a pin of type "Power input" named +5V (important because this name will establish connection to the net +5V), with a pin number of 1 (number of no importance), a length of 0, and a "Line" "Graphic Style".
-
Place a small circle and a segment from the pin to the circle as shown.
-
The anchor of the symbol is on the pin.
-
The component value is +5V.
-
The component reference is \#+5V. The reference text is not important except the first character which must be # to indicate that the component is a power symbol. By convention, every component in which the reference field starts with a # will not appear in the component list or in the netlist and the reference is declared as invisible.
An easier method to create a new power port symbol is to use another symbol as a model:
-
Load an existing power symbol.
-
Edit the pin name with name of the new power symbol.
-
Edit the value field to the same name as the pin, if you want to display the power port value.
-
Save the new component.
12. LibEdit - Compléments
12.1. Généralités
A component consist of the following elements
-
A graphical representation (geometrical shapes, texts).
-
Pins.
-
Fields or associated text used by the post processors: netlist, components list.
Two fields are to be initialized: reference and value. The name of the design associated with the component, and the name of the associated footprint, the other fields are the free fields, they can generally remain empty, and could be filled during schematic capture.
However, managing the documentation associated with any component facilitates the research, use and maintenance of libraries. The associated documentation consists of
-
A line of comment.
-
A line of key words such as TTL CMOS NAND2, separated by spaces.
-
An attached file name (for example an application note or a pdf file).
The default directory for attached files:
kicad/share/library/doc
If not found:
kicad/library/doc
Under linux:
/usr/local/kicad/share/library/doc
/usr/share/kicad/library/doc
/usr/local/share/kicad/library/doc
Key words allow you to selectively search for a component according to various selection criteria. Comments and key words are displayed in various menus, and particularly when you select a component from the library.
The component also has an anchoring point. A rotation or a mirror is made relatively to this anchor point and during a placement this point is used as a reference position. It is thus useful to position this anchor accurately.
A component can have aliases, i.e. equivalent names. This allows you to considerably reduce the number of components that need to be created (for example, a 74LS00 can have aliases such as 74000, 74HC00, 74HCT00…).
Finally, the components are distributed in libraries (classified by topics, or manufacturer) in order to facilitate their management.
12.2. Position a component anchor
The anchor is at the coordinates (0,0) and it is shown by the blue axes displayed on your screen.

The anchor can be repositioned by selecting the icon
and clicking on the new
desired anchor position. The drawing will be automatically re-centered on
the new anchor point.
12.3. Component aliases
An alias is another name corresponding to the same component in the library. Components with similar pin-out and representation can then be represented by only one component, having several aliases (e.g. 7400 with alias 74LS00, 74HC00, 74LS37 ).
The use of aliases allows you to build complete libraries quickly. In addition these libraries, being much more compact, are easily loaded by KiCad.
To modify the list of aliases, you have to select the main editing window
via the icon
and select
the alias folder.

You can thus add or remove the desired alias. The current alias cannot obviously be removed since it is edited.
To remove all aliases, you have firstly to select the root component. The first component in the alias list in the window of selection of the main toolbar.
12.4. Component fields
The field editor is called via the icon
.
There are four special fields (texts attached to the component), and configurable user fields

Special fields
-
Reference.
-
Value. It is the component name in the library and the default value field in schematic.
-
Footprint. It is the footprint name used for the board. Not very useful when using CvPcb to setup the footprint list, but mandatory if CvPcb is not used.
-
Sheet. It is a reserved field, not used at the time of writing.
12.5. Component documentation
To edit documentation information, it is necessary to call the main editing
window of the component via the icon
and to
select the document folder.

Be sure to select the right alias, or the root component, because this documentation is the only characteristic which differs between aliases. The "Copy Doc" button allows you to copy the documentation information from the root component towards the currently edited alias.
12.5.1. Component keywords
Keywords allow you to search in a selective way for a component according to specific selection criteria (function, technological family, etc.)
The Eeschema research tool is not case sensitive. The most current key words used in the libraries are
-
CMOS TTL for the logic families
-
AND2 NOR3 XOR2 INV… for the gates (AND2 = 2 inputs AND gate, NOR3 = 3 inputs NOR gate).
-
JKFF DFF… for JK or D flip-flop.
-
ADC, DAC, MUX…
-
OpenCol for the gates with open collector output. Thus if in the schematic capture software, you search the component: by keys words NAND2 OpenCol Eeschema will display the list of components having these 2 key words.
12.5.2. Component documentation (Doc)
The line of comment (and keywords) is displayed in various menus, particularly when you select a component in the displayed components list of a library and in the ViewLib menu.
If this Doc. file exists, it is also accessible in the schematic capture software, in the pop-up menu displayed by right-clicking on the component.
12.5.3. Associated documentation file (DocFileName)
Indicates an attached file (documentation, application schematic) available ( pdf file, schematic diagram, etc.).
12.5.4. Footprint filtering for CvPcb
You can enter a list of allowed footprints for the component. This list acts as a filter used by CvPcb to display only the allowed footprints. A void list does not filter anything.

Wild-card characters are allowed.
S014* allows CvPcb to show all the footprints with a name starting by SO14.
For a resistor, R? shows all the footprints with a 2 letters name starting by R.
Here are samples: with and without filtering
With filtering

Without filtering

12.6. Symbol library
You can easily compile a graphic symbols library file containing frequently used symbols .This can be used for the creation of components (triangles, the shape of AND, OR, Exclusive OR gates, etc.) for saving and subsequent re-use.
These files are stored by default in the library directory and have a .sym extension. The symbols are not gathered in libraries like the components because they are generally not so many.
12.6.1. Export or create a symbol
A component can be exported as a symbol with the button
. You can generally create
only one graphic, also it will be a good idea to delete all pins, if they
exist.
12.6.2. Import a symbol
Importing allows you to add graphics to a component you are editing. A
symbol is imported with the button
. Imported graphics are added as they were created in existing
graphics.
13. Viewlib
13.1. Introduction
Viewlib allows you to quickly examine the content of libraries. Viewlib is
called by the tool
or by the
"place component" tool available from the right-hand side toolbar.

13.2. Viewlib - main screen

To examine the library content you need to select the wanted library from the list on the left-hand side. Available components will then appear in the second list which allow you to select a component.

13.3. Viewlib top toolbar
The top tool bar in Viewlib is shown below.

The available commands are.
|
Selection of the desired library which can be also selected in the displayed list. |
|
Selection of the component which can be also selected in the displayed list. |
|
Display previous component. |
|
Display next component. |
|
Zoom tools. |
|
Selection of the representation (normal or converted) if exist. |
|
Selection of the part, only for multi-part components. |
|
If it exist, display the associated documents. Exists only when called by the place component dialog frame from Eeschema. |
|
Close Viewlib and place the selected component in Eeschema. This icon is only displayed when Viewlib has been called from Eeschema (click on a symbol in the component chooser). |
14. Creating Customized Netlists and BOM Files
14.1. Intermediate Netlist File
BOM files and netlist files can be converted from an Intermediate netlist file created by Eeschema.
This file uses XML syntax and is called the intermediate netlist. The intermediate netlist includes a large amount of data about your board and because of this, it can be used with post-processing to create a BOM or other reports.
Depending on the output (BOM or netlist), different subsets of the complete Intermediate Netlist file will be used in the post-processing.
14.1.1. Schematic sample

14.1.2. The Intermediate Netlist file sample
The corresponding intermediate netlist (using XML syntax) of the circuit above is shown below.
<?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 & 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>
14.2. Conversion to a new netlist format
By applying a post-processing filter to the Intermediate netlist file you can generate foreign netlist files as well as BOM files. Because this conversion is a text to text transformation, this post-processing filter can be written using Python, XSLT, or any other tool capable of taking XML as input.
XSLT itself is a an XML language very suitable for XML transformations. There is a free program called xsltproc that you can download and install. The xsltproc program can be used to read the Intermediate XML netlist input file, apply a style-sheet to transform the input, and save the results in an output file. Use of xsltproc requires a style-sheet file using XSLT conventions. The full conversion process is handled by Eeschema, after it is configured once to run xsltproc in a specific way.
14.3. XSLT approach
The document that describes XSL Transformations (XSLT) is available here:
http://www.w3.org/TR/xslt
14.3.1. Create a Pads-Pcb netlist file
The pads-pcb format is comprised of two sections.
-
The footprint list.
-
The Nets list: grouping pads references by nets.
Immediately below is a style-sheet which converts the Intermediate Netlist file to a pads-pcb netlist format:
<?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 "
"> <!--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>
And here is the pads-pcb output file after running 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*
The command line to make this conversion is:
kicad\\bin\\xsltproc.exe -o test.net kicad\\bin\\plugins\\netlist_form_pads-pcb.xsl test.tmp
14.3.2. Create a Cadstar netlist file
The Cadstar format is comprised of two sections.
-
The footprint list.
-
The Nets list: grouping pads references by nets.
Here is the style-sheet file to make this specific conversion:
<?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 "
"> <!--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>
Here is the Cadstar output file.
.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
14.3.3. Create a OrcadPCB2 netlist file
This format has only one section which is the footprint list. Each footprint includes its list of pads with reference to a net.
Here is the style-sheet for this specific conversion:
<?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 "
"> <!--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 <2"> <xsl:text>?</xsl:text> </xsl:if> </xsl:if> </xsl:if> </xsl:template> </xsl:stylesheet>
Here is the OrcadPCB2 output file.
( { 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 ) ) ) *
14.3.4. Eeschema plugins interface
Intermediate Netlist converters can be automatically launched within Eeschema.
Init the Dialog window
One can add a new netlist plug-in user interface tab by clicking on the Add Plugin button.

Here is what the configuration data for the PadsPcb tab looks like:

Plugin Configuration Parameters
The Eeschema plug-in configuration dialog requires the following information:
-
The title: for instance, the name of the netlist format.
-
The command line to launch the converter.
Once you click on the netlist button the following will happen:
-
Eeschema creates an intermediate netlist file .xml, for instancetest.xml.*
-
Eeschema runs the plug-in by reading test.xml and creates test.net
Generate netlist files with the command line
Assuming we are using the program xsltproc.exe to apply the sheet style to the intermediate file, xsltproc.exe is executed with the following command.
xsltproc.exe -o <output filename> < style-sheet filename> <input XML file to convert>
In KiCad under Windows the command line is the following.
f:/kicad/bin/xsltproc.exe -o "%O" f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"
Under Linux the command becomes as following.
xsltproc -o "%O" /usr/local/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"
Where netlist_form_pads-pcb.xsl is the style-sheet that you are applying. Do not forget the double quotes around the file names, this allows them to have spaces after the substitution by Eeschema.
The command line format accepts parameters for filenames:
The supported formatting parameters are.
-
%B ⇒ base filename and path of selected output file, minus path and extension.
-
%I ⇒ complete filename and path of the temporary input file (the intermediate net file).
-
%O ⇒ complete filename and path of the user chosen output file.
%I will be replaced by the actual intermediate file name
%O will be replaced by the actual output file name.
Command line format: example for xsltproc
The command line format for xsltproc is the following:
<path of xsltproc> xsltproc <xsltproc parameters>
under Windows:
f:/kicad/bin/xsltproc.exe -o "%O" f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"
under Linux:
xsltproc -o "%O" /usr/local/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"
The above examples assume xsltproc is installed on your PC under Windows and all files located in kicad/bin.
14.3.5. Bill of Materials Generation
Because the intermediate netlist file contains all information about used components, a BOM can be extracted from it. Here is the plug-in setup window (on Linux) to create a customized Bill Of Materials (BOM) file:

The path to the style sheet bom2csv.xsl is system dependent. The currently best XSLT style-sheet for BOM generation at this time is called bom2csv.xsl. You are free to modify it according to your needs, and if you develop something generally useful, ask that it become part of the KiCad project.
14.4. Command line format: example for python scripts
The command line format for python is something like:
python <script file name> <input filename> <output filename>
under Windows:
python *.exe f:/kicad/python/my_python_script.py "%I" "%O"
under Linux:
python /usr/local/kicad/python/my_python_script.py "%I" "%O"
Assuming python is installed on your PC.
14.5. Intermediate Netlist structure
This sample gives an idea of the netlist file format.
<?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>
14.5.1. General netlist file structure
The intermediate Netlist accounts for five sections.
-
The header section.
-
The component section.
-
The lib parts section.
-
The libraries section.
-
The nets section.
The file content has the delimiter <export>
<export version="D"> ... </export>
14.5.2. The header section
The header has the delimiter <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>
This section can be considered a comment section.
14.5.3. The components section
The component section has the delimiter <components>
<components> <comp ref="P1"> <value>CONN_4</value> <libsource lib="conn" part="CONN_4"/> <sheetpath names="/" tstamps="/"/> <tstamp>4C6E2141</tstamp> </comp> </components>
This section contains the list of components in your schematic. Each component is described like this:
<comp ref="P1"> <value>CONN_4</value> <libsource lib="conn" part="CONN_4"/> <sheetpath names="/" tstamps="/"/> <tstamp>4C6E2141</tstamp> </comp>
libsource |
name of the lib where this component was found. |
part |
component name inside this library. |
sheetpath |
path of the sheet inside the hierarchy: identify the sheet within the full schematic hierarchy. |
tstamps (time stamps) |
time stamp of the schematic file. |
tstamp (time stamp) |
time stamp of the component. |
Note about time stamps for components
To identify a component in a netlist and therefore on a board, the timestamp reference is used as unique for each component. However KiCad provides an auxiliary way to identify a component which is the corresponding footprint on the board. This allows the re-annotation of components in a schematic project and does not loose the link between the component and its footprint.
A time stamp is an unique identifier for each component or sheet in a schematic project. However, in complex hierarchies, the same sheet is used more than once, so this sheet contains components having the same time stamp.
A given sheet inside a complex hierarchy has an unique identifier: its sheetpath. A given component (inside a complex hierarchy) has an unique identifier: the sheetpath + its tstamp
14.5.4. The libparts section
The libparts section has the delimiter <libparts>, and the content of this section is defined in the schematic libraries. The libparts section contains
-
The allowed footprints names (names use jokers) delimiter <fp>.
-
The fields defined in the library delimiter <fields>.
-
The list of pins delimiter <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>
Lines like <pin num="1" type="passive"/> give also the electrical pin type. Possible electrical pin types are
Input |
Usual input pin |
Output |
Usual output |
Bidirectional |
Input or Output |
Tri-state |
Bus input/output |
Passive |
Usual ends of passive components |
Unspecified |
Unknown electrical type |
Power input |
Power input of a component |
Power output |
Power output like a regulator output |
Open collector |
Open collector often found in analog comparators |
Open emitter |
Open collector sometimes found in logic. |
Not connected |
Must be left open in schematic |
14.5.5. The libraries section
The libraries section has the delimiter <libraries>. This section contains the list of schematic libraries used in the project.
<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>
14.5.6. The nets section
The nets section has the delimiter <nets>. This section contains the "connectivity" of the schematic.
<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>
This section lists all nets in the schematic.
A possible net is contains the following.
<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 |
is an internal identifier for this net |
name |
is a name for this net |
node |
give a pin reference connected to this net |
14.6. More about xsltproc
Refer to the page: http://xmlsoft.org/XSLT/xsltproc.html
14.6.1. Introduction
xsltproc is a command line tool for applying XSLT style-sheets to XML documents. While it was developed as part of the GNOME project, it can operate independently of the GNOME desktop.
xsltproc is invoked from the command line with the name of the style-sheet to be used followed by the name of the file or files to which the style-sheet is to be applied. It will use the standard input if a filename provided is - .
If a style-sheet is included in an XML document with a Style-sheet Processing Instruction, no style-sheet needs to be named in the command line. xsltproc will automatically detect the included style-sheet and use it. By default, the output is to stdout. You can specify a file for output using the -o option.
14.6.2. Synopsis
xsltproc [[-V] | [-v] | [-o *file* ] | [--timing] | [--repeat] | [--debug] | [--novalid] | [--noout] | [--maxdepth *val* ] | [--html] | [--param *name* *value* ] | [--stringparam *name* *value* ] | [--nonet] | [--path *paths* ] | [--load-trace] | [--catalogs] | [--xinclude] | [--profile] | [--dumpextensions] | [--nowrite] | [--nomkdir] | [--writesubtree] | [--nodtdattr]] [ *stylesheet* ] [ *file1* ] [ *file2* ] [ *....* ]
14.6.3. Command line options
-V or --version
Show the version of libxml and libxslt used.
-v or --verbose
Output each step taken by xsltproc in processing the stylesheet and the document.
-o or --output file
Direct output to the file named file. For multiple outputs, also known as «chunking», -o directory/ directs the output files to a specified directory. The directory must already exist.
--timing
Display the time used for parsing the stylesheet, parsing the document and applying the stylesheet and saving the result. Displayed in milliseconds.
--repeat
Run the transformation 20 times. Used for timing tests.
--debug
Output an XML tree of the transformed document for debugging purposes.
--novalid
Skip loading the document’s DTD.
--noout
Do not output the result.
--maxdepth value
Adjust the maximum depth of the template stack before libxslt concludes it is in an infinite loop. The default is 500.
--html
The input document is an HTML file.
--param name value
Pass a parameter of name name and value value to the stylesheet. You may pass multiple name/value pairs up to a maximum of 32. If the value being passed is a string rather than a node identifier, use --stringparam instead.
--stringparam name value
Pass a paramenter of name name and value value where value is a string rather than a node identifier. (Note: The string must be utf-8.)
--nonet
Do not use the Internet to fetch DTD’s, entities or documents.
--path paths
Use the list (separated by space or column) of filesystem paths specified by paths to load DTDs, entities or documents.
--load-trace
Display to stderr all the documents loaded during the processing.
--catalogs
Use the SGML catalog specified in SGML_CATALOG_FILES to resolve the location of external entities. By default, xsltproc looks for the catalog specified in XML_CATALOG_FILES. If that is not specified, it uses /etc/xml/catalog.
--xinclude
Process the input document using the Xinclude specification. More details on this can be found in the Xinclude specification: http://www.w3.org/TR/xinclude/
--profile --norman
Output profiling information detailing the amount of time spent in each part of the stylesheet. This is useful in optimizing stylesheet performance.
--dumpextensions
Dumps the list of all registered extensions to stdout.
--nowrite
Refuses to write to any file or resource.
--nomkdir
Refuses to create directories.
--writesubtree path
Allow file write only within the path subtree.
--nodtdattr
Do not apply default attributes from the document’s DTD.
14.6.4. Xsltproc return values
xsltproc returns a status number that can be quite useful when calling it within a script.
0: normal
1: no argument
2: too many parameters
3: unknown option
4: failed to parse the stylesheet
5: error in the stylesheet
6: error in one of the documents
7: unsupported xsl:output method
8: string parameter contains both quote and double-quotes
9: internal processing error
10: processing was stopped by a terminating message
11: could not write the result to the output file
14.6.5. More Information about xsltproc
libxml web page: http://www.xmlsoft.org/
W3C XSLT page: http://www.w3.org/TR/xslt