diff options
Diffstat (limited to 'share/doc/kicad/help/en/eeschema.html')
-rw-r--r-- | share/doc/kicad/help/en/eeschema.html | 7227 |
1 files changed, 7227 insertions, 0 deletions
diff --git a/share/doc/kicad/help/en/eeschema.html b/share/doc/kicad/help/en/eeschema.html new file mode 100644 index 0000000..87c9bc2 --- /dev/null +++ b/share/doc/kicad/help/en/eeschema.html @@ -0,0 +1,7227 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<meta name="generator" content="AsciiDoc 8.6.8"> +<title>Eeschema</title> +<style type="text/css"> +/* Shared CSS for AsciiDoc xhtml11 and html5 backends */ + +/* Default font. */ +body { + font-family: Georgia,serif; +} + +/* Title font. */ +h1, h2, h3, h4, h5, h6, +div.title, caption.title, +thead, p.table.header, +#toctitle, +#author, #revnumber, #revdate, #revremark, +#footer { + font-family: Arial,Helvetica,sans-serif; +} + +body { + margin: 1em 5% 1em 5%; +} + +a { + color: blue; + text-decoration: underline; +} +a:visited { + color: fuchsia; +} + +em { + font-style: italic; + color: navy; +} + +strong { + font-weight: bold; + color: #083194; +} + +h1, h2, h3, h4, h5, h6 { + color: #527bbd; + margin-top: 1.2em; + margin-bottom: 0.5em; + line-height: 1.3; +} + +h1, h2, h3 { + border-bottom: 2px solid silver; +} +h2 { + padding-top: 0.5em; +} +h3 { + float: left; +} +h3 + * { + clear: left; +} +h5 { + font-size: 1.0em; +} + +div.sectionbody { + margin-left: 0; +} + +hr { + border: 1px solid silver; +} + +p { + margin-top: 0.5em; + margin-bottom: 0.5em; +} + +ul, ol, li > p { + margin-top: 0; +} +ul > li { color: #aaa; } +ul > li > * { color: black; } + +pre { + padding: 0; + margin: 0; +} + +#author { + color: #527bbd; + font-weight: bold; + font-size: 1.1em; +} +#email { +} +#revnumber, #revdate, #revremark { +} + +#footer { + font-size: small; + border-top: 2px solid silver; + padding-top: 0.5em; + margin-top: 4.0em; +} +#footer-text { + float: left; + padding-bottom: 0.5em; +} +#footer-badges { + float: right; + padding-bottom: 0.5em; +} + +#preamble { + margin-top: 1.5em; + margin-bottom: 1.5em; +} +div.imageblock, div.exampleblock, div.verseblock, +div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock, +div.admonitionblock { + margin-top: 1.0em; + margin-bottom: 1.5em; +} +div.admonitionblock { + margin-top: 2.0em; + margin-bottom: 2.0em; + margin-right: 10%; + color: #606060; +} + +div.content { /* Block element content. */ + padding: 0; +} + +/* Block element titles. */ +div.title, caption.title { + color: #527bbd; + font-weight: bold; + text-align: left; + margin-top: 1.0em; + margin-bottom: 0.5em; +} +div.title + * { + margin-top: 0; +} + +td div.title:first-child { + margin-top: 0.0em; +} +div.content div.title:first-child { + margin-top: 0.0em; +} +div.content + div.title { + margin-top: 0.0em; +} + +div.sidebarblock > div.content { + background: #ffffee; + border: 1px solid #dddddd; + border-left: 4px solid #f0f0f0; + padding: 0.5em; +} + +div.listingblock > div.content { + border: 1px solid #dddddd; + border-left: 5px solid #f0f0f0; + background: #f8f8f8; + padding: 0.5em; +} + +div.quoteblock, div.verseblock { + padding-left: 1.0em; + margin-left: 1.0em; + margin-right: 10%; + border-left: 5px solid #f0f0f0; + color: #777777; +} + +div.quoteblock > div.attribution { + padding-top: 0.5em; + text-align: right; +} + +div.verseblock > pre.content { + font-family: inherit; + font-size: inherit; +} +div.verseblock > div.attribution { + padding-top: 0.75em; + text-align: left; +} +/* DEPRECATED: Pre version 8.2.7 verse style literal block. */ +div.verseblock + div.attribution { + text-align: left; +} + +div.admonitionblock .icon { + vertical-align: top; + font-size: 1.1em; + font-weight: bold; + text-decoration: underline; + color: #527bbd; + padding-right: 0.5em; +} +div.admonitionblock td.content { + padding-left: 0.5em; + border-left: 3px solid #dddddd; +} + +div.exampleblock > div.content { + border-left: 3px solid #dddddd; + padding-left: 0.5em; +} + +div.imageblock div.content { padding-left: 0; } +span.image img { border-style: none; } +a.image:visited { color: white; } + +dl { + margin-top: 0.8em; + margin-bottom: 0.8em; +} +dt { + margin-top: 0.5em; + margin-bottom: 0; + font-style: normal; + color: navy; +} +dd > *:first-child { + margin-top: 0.1em; +} + +ul, ol { + list-style-position: outside; +} +ol.arabic { + list-style-type: decimal; +} +ol.loweralpha { + list-style-type: lower-alpha; +} +ol.upperalpha { + list-style-type: upper-alpha; +} +ol.lowerroman { + list-style-type: lower-roman; +} +ol.upperroman { + list-style-type: upper-roman; +} + +div.compact ul, div.compact ol, +div.compact p, div.compact p, +div.compact div, div.compact div { + margin-top: 0.1em; + margin-bottom: 0.1em; +} + +tfoot { + font-weight: bold; +} +td > div.verse { + white-space: pre; +} + +div.hdlist { + margin-top: 0.8em; + margin-bottom: 0.8em; +} +div.hdlist tr { + padding-bottom: 15px; +} +dt.hdlist1.strong, td.hdlist1.strong { + font-weight: bold; +} +td.hdlist1 { + vertical-align: top; + font-style: normal; + padding-right: 0.8em; + color: navy; +} +td.hdlist2 { + vertical-align: top; +} +div.hdlist.compact tr { + margin: 0; + padding-bottom: 0; +} + +.comment { + background: yellow; +} + +.footnote, .footnoteref { + font-size: 0.8em; +} + +span.footnote, span.footnoteref { + vertical-align: super; +} + +#footnotes { + margin: 20px 0 20px 0; + padding: 7px 0 0 0; +} + +#footnotes div.footnote { + margin: 0 0 5px 0; +} + +#footnotes hr { + border: none; + border-top: 1px solid silver; + height: 1px; + text-align: left; + margin-left: 0; + width: 20%; + min-width: 100px; +} + +div.colist td { + padding-right: 0.5em; + padding-bottom: 0.3em; + vertical-align: top; +} +div.colist td img { + margin-top: 0.3em; +} + +@media print { + #footer-badges { display: none; } +} + +#toc { + margin-bottom: 2.5em; +} + +#toctitle { + color: #527bbd; + font-size: 1.1em; + font-weight: bold; + margin-top: 1.0em; + margin-bottom: 0.1em; +} + +div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { + margin-top: 0; + margin-bottom: 0; +} +div.toclevel2 { + margin-left: 2em; + font-size: 0.9em; +} +div.toclevel3 { + margin-left: 4em; + font-size: 0.9em; +} +div.toclevel4 { + margin-left: 6em; + font-size: 0.9em; +} + +span.aqua { color: aqua; } +span.black { color: black; } +span.blue { color: blue; } +span.fuchsia { color: fuchsia; } +span.gray { color: gray; } +span.green { color: green; } +span.lime { color: lime; } +span.maroon { color: maroon; } +span.navy { color: navy; } +span.olive { color: olive; } +span.purple { color: purple; } +span.red { color: red; } +span.silver { color: silver; } +span.teal { color: teal; } +span.white { color: white; } +span.yellow { color: yellow; } + +span.aqua-background { background: aqua; } +span.black-background { background: black; } +span.blue-background { background: blue; } +span.fuchsia-background { background: fuchsia; } +span.gray-background { background: gray; } +span.green-background { background: green; } +span.lime-background { background: lime; } +span.maroon-background { background: maroon; } +span.navy-background { background: navy; } +span.olive-background { background: olive; } +span.purple-background { background: purple; } +span.red-background { background: red; } +span.silver-background { background: silver; } +span.teal-background { background: teal; } +span.white-background { background: white; } +span.yellow-background { background: yellow; } + +span.big { font-size: 2em; } +span.small { font-size: 0.6em; } + +span.underline { text-decoration: underline; } +span.overline { text-decoration: overline; } +span.line-through { text-decoration: line-through; } + + +/* + * xhtml11 specific + * + * */ + +tt { + font-family: monospace; + font-size: inherit; + color: navy; +} + +div.tableblock { + margin-top: 1.0em; + margin-bottom: 1.5em; +} +div.tableblock > table { + border: 3px solid #527bbd; +} +thead, p.table.header { + font-weight: bold; + color: #527bbd; +} +p.table { + margin-top: 0; +} +/* Because the table frame attribute is overriden by CSS in most browsers. */ +div.tableblock > table[frame="void"] { + border-style: none; +} +div.tableblock > table[frame="hsides"] { + border-left-style: none; + border-right-style: none; +} +div.tableblock > table[frame="vsides"] { + border-top-style: none; + border-bottom-style: none; +} + + +/* + * html5 specific + * + * */ + +.monospaced { + font-family: monospace; + font-size: inherit; + color: navy; +} + +table.tableblock { + margin-top: 1.0em; + margin-bottom: 1.5em; +} +thead, p.tableblock.header { + font-weight: bold; + color: #527bbd; +} +p.tableblock { + margin-top: 0; +} +table.tableblock { + border-width: 3px; + border-spacing: 0px; + border-style: solid; + border-color: #527bbd; + border-collapse: collapse; +} +th.tableblock, td.tableblock { + border-width: 1px; + padding: 4px; + border-style: solid; + border-color: #527bbd; +} + +table.tableblock.frame-topbot { + border-left-style: hidden; + border-right-style: hidden; +} +table.tableblock.frame-sides { + border-top-style: hidden; + border-bottom-style: hidden; +} +table.tableblock.frame-none { + border-style: hidden; +} + +th.tableblock.halign-left, td.tableblock.halign-left { + text-align: left; +} +th.tableblock.halign-center, td.tableblock.halign-center { + text-align: center; +} +th.tableblock.halign-right, td.tableblock.halign-right { + text-align: right; +} + +th.tableblock.valign-top, td.tableblock.valign-top { + vertical-align: top; +} +th.tableblock.valign-middle, td.tableblock.valign-middle { + vertical-align: middle; +} +th.tableblock.valign-bottom, td.tableblock.valign-bottom { + vertical-align: bottom; +} + + +/* + * manpage specific + * + * */ + +body.manpage h1 { + padding-top: 0.5em; + padding-bottom: 0.5em; + border-top: 2px solid silver; + border-bottom: 2px solid silver; +} +body.manpage h2 { + border-style: none; +} +body.manpage div.sectionbody { + margin-left: 3em; +} + +@media print { + body.manpage div#toc { display: none; } +} + + +/* + * Theme specific overrides of the preceding (asciidoc.css) CSS. + * + */ +body { + font-family: Garamond, Georgia, serif; + font-size: 17px; + color: #3E4349; + line-height: 1.3em; +} +h1, h2, h3, h4, h5, h6, +div.title, caption.title, +thead, p.table.header, +#toctitle, +#author, #revnumber, #revdate, #revremark, +#footer { + font-family: Garmond, Georgia, serif; + font-weight: normal; + border-bottom-width: 0; + color: #3E4349; +} +div.title, caption.title { color: #596673; font-weight: bold; } +h1 { font-size: 240%; } +h2 { font-size: 180%; } +h3 { font-size: 150%; } +h4 { font-size: 130%; } +h5 { font-size: 115%; } +h6 { font-size: 100%; } +#header h1 { margin-top: 0; } +#toc { + color: #444444; + line-height: 1.5; + padding-top: 1.5em; +} +#toctitle { + font-size: 20px; +} +#toc a { + border-bottom: 1px dotted #999999; + color: #444444 !important; + text-decoration: none !important; +} +#toc a:hover { + border-bottom: 1px solid #6D4100; + color: #6D4100 !important; + text-decoration: none !important; +} +div.toclevel1 { margin-top: 0.2em; font-size: 16px; } +div.toclevel2 { margin-top: 0.15em; font-size: 14px; } +em, dt, td.hdlist1 { color: black; } +strong { color: #3E4349; } +a { color: #004B6B; text-decoration: none; border-bottom: 1px dotted #004B6B; } +a:visited { color: #615FA0; border-bottom: 1px dotted #615FA0; } +a:hover { color: #6D4100; border-bottom: 1px solid #6D4100; } +div.tableblock > table, table.tableblock { border: 3px solid #E8E8E8; } +th.tableblock, td.tableblock { border: 1px solid #E8E8E8; } +ul > li > * { color: #3E4349; } +pre, tt, .monospaced { font-family: Consolas,Menlo,'Deja Vu Sans Mono','Bitstream Vera Sans Mono',monospace; } +tt, .monospaced { font-size: 0.9em; color: black; +} +div.exampleblock > div.content, div.sidebarblock > div.content, div.listingblock > div.content { border-width: 0 0 0 3px; border-color: #E8E8E8; } +div.verseblock { border-left-width: 0; margin-left: 3em; } +div.quoteblock { border-left-width: 3px; margin-left: 0; margin-right: 0;} +div.admonitionblock td.content { border-left: 3px solid #E8E8E8; } + + +@media screen { + body { + max-width: 50em; /* approximately 80 characters wide */ + margin-left: 16em; + } + + #toc { + position: fixed; + top: 0; + left: 0; + bottom: 0; + width: 13em; + padding: 0.5em; + padding-bottom: 1.5em; + margin: 0; + overflow: auto; + border-right: 3px solid #f8f8f8; + background-color: white; + } + + #toc .toclevel1 { + margin-top: 0.5em; + } + + #toc .toclevel2 { + margin-top: 0.25em; + display: list-item; + color: #aaaaaa; + } + + #toctitle { + margin-top: 0.5em; + } +} +</style> +<script type="text/javascript"> +/*<+'])'); + // Function that scans the DOM tree for header elements (the DOM2 + // nodeIterator API would be a better technique but not supported by all + // browsers). + var iterate = function (el) { + for (var i = el.firstChild; i != null; i = i.nextSibling) { + if (i.nodeType == 1 /* Node.ELEMENT_NODE */) { + var mo = re.exec(i.tagName); + if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") { + result[result.length] = new TocEntry(i, getText(i), mo[1]-1); + } + iterate(i); + } + } + } + iterate(el); + return result; + } + + var toc = document.getElementById("toc"); + if (!toc) { + return; + } + + // Delete existing TOC entries in case we're reloading the TOC. + var tocEntriesToRemove = []; + var i; + for (i = 0; i < toc.childNodes.length; i++) { + var entry = toc.childNodes[i]; + if (entry.nodeName.toLowerCase() == 'div' + && entry.getAttribute("class") + && entry.getAttribute("class").match(/^toclevel/)) + tocEntriesToRemove.push(entry); + } + for (i = 0; i < tocEntriesToRemove.length; i++) { + toc.removeChild(tocEntriesToRemove[i]); + } + + // Rebuild TOC entries. + var entries = tocEntries(document.getElementById("content"), toclevels); + for (var i = 0; i < entries.length; ++i) { + var entry = entries[i]; + if (entry.element.id == "") + entry.element.id = "_toc_" + i; + var a = document.createElement("a"); + a.href = "#" + entry.element.id; + a.appendChild(document.createTextNode(entry.text)); + var div = document.createElement("div"); + div.appendChild(a); + div.className = "toclevel" + entry.toclevel; + toc.appendChild(div); + } + if (entries.length == 0) + toc.parentNode.removeChild(toc); +}, + + +///////////////////////////////////////////////////////////////////// +// Footnotes generator +///////////////////////////////////////////////////////////////////// + +/* Based on footnote generation code from: + * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html + */ + +footnotes: function () { + // Delete existing footnote entries in case we're reloading the footnodes. + var i; + var noteholder = document.getElementById("footnotes"); + if (!noteholder) { + return; + } + var entriesToRemove = []; + for (i = 0; i < noteholder.childNodes.length; i++) { + var entry = noteholder.childNodes[i]; + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") + entriesToRemove.push(entry); + } + for (i = 0; i < entriesToRemove.length; i++) { + noteholder.removeChild(entriesToRemove[i]); + } + + // Rebuild footnote entries. + var cont = document.getElementById("content"); + var spans = cont.getElementsByTagName("span"); + var refs = {}; + var n = 0; + for (i=0; i<spans.length; i++) { + if (spans[i].className == "footnote") { + n++; + var note = spans[i].getAttribute("data-note"); + if (!note) { + // Use [\s\S] in place of . so multi-line matches work. + // Because JavaScript has no s (dotall) regex flag. + note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1]; + spans[i].innerHTML = + "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n + + "' title='View footnote' class='footnote'>" + n + "</a>]"; + spans[i].setAttribute("data-note", note); + } + noteholder.innerHTML += + "<div class='footnote' id='_footnote_" + n + "'>" + + "<a href='#_footnoteref_" + n + "' title='Return to text'>" + + n + "</a>. " + note + "</div>"; + var id =spans[i].getAttribute("id"); + if (id != null) refs["#"+id] = n; + } + } + if (n == 0) + noteholder.parentNode.removeChild(noteholder); + else { + // Process footnoterefs. + for (i=0; i<spans.length; i++) { + if (spans[i].className == "footnoteref") { + var href = spans[i].getElementsByTagName("a")[0].getAttribute("href"); + href = href.match(/#.*/)[0]; // Because IE return full URL. + n = refs[href]; + spans[i].innerHTML = + "[<a href='#_footnote_" + n + + "' title='View footnote' class='footnote'>" + n + "</a>]"; + } + } + } +}, + +install: function(toclevels) { + var timerId; + + function reinstall() { + asciidoc.footnotes(); + if (toclevels) { + asciidoc.toc(toclevels); + } + } + + function reinstallAndRemoveTimer() { + clearInterval(timerId); + reinstall(); + } + + timerId = setInterval(reinstall, 500); + if (document.addEventListener) + document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false); + else + window.onload = reinstallAndRemoveTimer; +} + +} +asciidoc.install(2); +/*]]>*/ +</script> +</head> +<body class="book"> +<div id="header"> +<h1>Eeschema</h1> +<span id="author">The KiCad Team</span><br> +<div id="toc"> + <div id="toctitle">Table of Contents</div> + <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript> +</div> +</div> +<div id="content"> +<div id="preamble"> +<div class="sectionbody"> +<div class="paragraph"><p><em>Reference manual</em></p></div> +<div class="paragraph" id="copyright"><p><strong>Copyright</strong></p></div> +<div class="paragraph"><p>This document is Copyright © 2010-2015 by its contributors as listed +below. You may distribute it and/or modify it under the terms of either +the GNU General Public License (<a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a>), +version 3 or later, or the Creative Commons Attribution License +(<a href="http://creativecommons.org/licenses/by/3.0/">http://creativecommons.org/licenses/by/3.0/</a>), version 3.0 or later.</p></div> +<div class="paragraph"><p>All trademarks within this guide belong to their legitimate owners.</p></div> +<div class="paragraph" id="contributors"><p><strong>Contributors</strong></p></div> +<div class="paragraph"><p>Jean-Pierre Charras, Fabrizio Tappero.</p></div> +<div class="paragraph" id="feedback"><p><strong>Feedback</strong></p></div> +<div class="paragraph"><p>Please direct any bug reports, suggestions or new versions to here:</p></div> +<div class="ulist"><ul> +<li> +<p> +About KiCad document: <a href="https://github.com/KiCad/kicad-doc/issues">https://github.com/KiCad/kicad-doc/issues</a> +</p> +</li> +<li> +<p> +About KiCad software: <a href="https://bugs.launchpad.net/kicad">https://bugs.launchpad.net/kicad</a> +</p> +</li> +<li> +<p> +About KiCad software i18n: <a href="https://github.com/KiCad/kicad-i18n/issues">https://github.com/KiCad/kicad-i18n/issues</a> +</p> +</li> +</ul></div> +<div class="paragraph" id="publication_date_and_software_version"><p><strong>Publication date and software version</strong></p></div> +<div class="paragraph"><p>Published on may 30, 2015.</p></div> +</div> +</div> +<div class="sect1"> +<h2 id="_introduction_to_eeschema">1. Introduction to Eeschema</h2> +<div class="sectionbody"> +<div class="sect2"> +<h3 id="_description">1.1. Description</h3> +<div class="paragraph"><p>Eeschema is powerful schematic capture software distributed as part of +KiCad and available under the following operating systems:</p></div> +<div class="ulist"><ul> +<li> +<p> +Linux +</p> +</li> +<li> +<p> +Apple OS X +</p> +</li> +<li> +<p> +Windows +</p> +</li> +</ul></div> +<div class="paragraph"><p>Regardless of the OS, all Eeschema files are 100% compatible from one OS +to another.</p></div> +<div class="paragraph"><p>Eeschema is an integrated application where all functions of drawing, +control, layout, library management and access to the PCB design +software are carried out within Eeschema itself.</p></div> +<div class="paragraph"><p>Eeschema is intended to work with PcbNew, which is KiCad’s printed +circuit design software. It can also export netlist files, which list +all the electrical connections, for other packages.</p></div> +<div class="paragraph"><p>Eeschema includes a component symbol editor, which can create and edit +components and manage libraries. +It also integrates the following additional but essential functions +needed for modern schematic capture software:</p></div> +<div class="ulist"><ul> +<li> +<p> +Electrical rules check (ERC) for the automatic control of incorrect and missing + connections +</p> +</li> +<li> +<p> +Export of plot files in many formats (Postscript, PDF, HPGL, and SVG) +</p> +</li> +<li> +<p> +Bill of Materials generation (via Python scripts, which allow many configurable formats). +</p> +</li> +</ul></div> +</div> +<div class="sect2"> +<h3 id="_technical_overview">1.2. Technical overview</h3> +<div class="paragraph"><p>Eeschema is limited only by the available memory. There is thus no real +limitation to the number of components, component pins, connections, or sheets. +In the case of multi-sheet diagrams, the representation is +hierarchical.</p></div> +<div class="paragraph"><p>Eeschema can use multi-sheet diagrams of these types:</p></div> +<div class="ulist"><ul> +<li> +<p> +Simple hierarchies (each schematic is used only once). +</p> +</li> +<li> +<p> +Complex hierarchies (some schematics are used more than once with multiple + instances). +</p> +</li> +<li> +<p> +Flat hierarchies (schematics are not explicitly connected in a master + diagram). +</p> +</li> +</ul></div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_generic_eeschema_commands">2. Generic Eeschema commands</h2> +<div class="sectionbody"> +<div class="sect2"> +<h3 id="_access_to_eeschema_commands">2.1. Access to Eeschema commands</h3> +<div class="paragraph"><p>You can reach the various commands by:</p></div> +<div class="ulist"><ul> +<li> +<p> +Clicking on the menu bar (top of screen). +</p> +</li> +<li> +<p> +Clicking on the icons on top of the screen (general commands). +</p> +</li> +<li> +<p> +Clicking on the icons on the right side of the screen (particular + commands or "tools"). +</p> +</li> +<li> +<p> +Clicking on the icons on the left side of the screen (display + options). +</p> +</li> +<li> +<p> +Pressing the mouse buttons (important complementary commands). In + particular a right click opens a contextual menu for the + element under the cursor (Zoom, grid and editing of the elements). +</p> +</li> +<li> +<p> +Function keys (F1, F2, F3, F4, Insert and space keys). + Specifically: The "Escape" key often allows the canceling of a command + in progress. The "Insert" key allows the duplication of the last element + created. +</p> +</li> +</ul></div> +<div class="paragraph"><p>Here are the various possible command locations:</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/commands_overview.png" alt="commands overview"> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="_mouse_commands">2.2. Mouse commands</h3> +<div class="sect3"> +<h4 id="_basic_commands">2.2.1. Basic commands</h4> +<div class="paragraph"><p><strong>Left button</strong></p></div> +<div class="ulist"><ul> +<li> +<p> +Single click: displays the characteristics of the component or text + under the cursor in the status bar. +</p> +</li> +<li> +<p> +Double click: edit (if the element is editable) the component or text. +</p> +</li> +</ul></div> +<div class="paragraph"><p><strong>Right button</strong></p></div> +<div class="ulist"><ul> +<li> +<p> +Opens a pop-up menu. +</p> +</li> +</ul></div> +</div> +<div class="sect3"> +<h4 id="_operations_on_blocks">2.2.2. Operations on blocks</h4> +<div class="paragraph"><p>You can move, drag, copy and delete selected areas in all Eeschema +menus.</p></div> +<div class="paragraph"><p>Areas are selected by dragging a box around them using the left mouse button.</p></div> +<div class="paragraph"><p>Holding "Shift", "Ctrl", or "Shift + Ctrl" during selection respectively +performs copying, dragging, and deletion:</p></div> +<table class="tableblock frame-all grid-all" +style=" +width:80%; +"> +<col style="width:66%;"> +<col style="width:34%;"> +<tbody> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">left mouse button</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Move selection.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Shift + left mouse button</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Copy selection.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Ctrl + left mouse button</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Drag selection.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Ctrl + Shift + left mouse button</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Delete selection.</p></td> +</tr> +</tbody> +</table> +<div class="paragraph"><p>When dragging or copying, you can:</p></div> +<div class="ulist"><ul> +<li> +<p> +Click again to place the elements. +</p> +</li> +<li> +<p> +Click the right button to cancel. +</p> +</li> +</ul></div> +<div class="paragraph"><p>If a block move command has started, another command can be +selected via the pop-up menu (mouse, right button):</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/main_window_popup.png" alt="main window popup"> +</div> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="_hotkeys">2.3. Hotkeys</h3> +<div class="ulist"><ul> +<li> +<p> +The "?" key displays the current hotkey list. +</p> +</li> +<li> +<p> +Hotkeys can be managed by choosing "Edit Hotkeys" in the Preferences menu. +</p> +</li> +</ul></div> +<div class="paragraph"><p>Here is the default hot key list:</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/default_hot_key_list.png" alt="Default hotkey list"> +</div> +</div> +<div class="paragraph"><p>All hot keys can be redefined by the user via the hotkey editor:</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/shortcuts_editor.png" alt="Hotkeys editor window"> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="_selecting_grid_size">2.4. Selecting grid size</h3> +<div class="paragraph"><p>In Eeschema, the cursor moves over a grid, which can be displayed or +hidden. The grid is always displayed in the library manager.</p></div> +<div class="paragraph"><p>You can change the grid size via the pop-up menu or via the Preferences/Options menu.</p></div> +<div class="paragraph"><p>The default grid size is 50 mil (0.050") or 1,27 millimeters.</p></div> +<div class="paragraph"><p>This is the prefered grid to place components and wires in a schematic, +and to place pins when designing a symbol in the Component Editor.</p></div> +<div class="paragraph"><p>One can also work with a smaller grid from 25 mil to 10 mil. +This is only intended for designing the component body +or placing text and comments, not for placing pins and wires.</p></div> +</div> +<div class="sect2"> +<h3 id="_zoom_selection">2.5. Zoom selection</h3> +<div class="paragraph"><p>To change the zoom level:</p></div> +<div class="ulist"><ul> +<li> +<p> +Right click to open the Pop-up menu and select the desired zoom. +</p> +</li> +<li> +<p> +Or use the function keys: +</p> +<div class="ulist"><ul> +<li> +<p> +F1: Zoom in +</p> +</li> +<li> +<p> +F2: Zoom out +</p> +</li> +<li> +<p> +F4 or simply click on the middle mouse button (without moving the mouse): Center the view around the cursor pointer position +</p> +</li> +</ul></div> +</li> +<li> +<p> +Window Zoom: +</p> +<div class="ulist"><ul> +<li> +<p> +Mouse wheel: Zoom in/out +</p> +</li> +<li> +<p> +Shift+Mouse wheel: Pan up/down +</p> +</li> +<li> +<p> +Ctrl+Mouse wheel: Pan left/right +</p> +</li> +</ul></div> +</li> +</ul></div> +</div> +<div class="sect2"> +<h3 id="_displaying_cursor_coordinates">2.6. Displaying cursor coordinates</h3> +<div class="paragraph"><p>The display units are in inches or millimeters. However, Eeschema always +works internally in 0.001-inch (mil/thou) units.</p></div> +<div class="paragraph"><p>The following information is displayed at the bottom right hand side of +the window:</p></div> +<div class="ulist"><ul> +<li> +<p> +The zoom factor +</p> +</li> +<li> +<p> +The absolute position of the cursor +</p> +</li> +<li> +<p> +The relative position of the cursor +</p> +</li> +</ul></div> +<div class="paragraph"><p>The relative coordinates can be reset to zero with the space bar. This is +useful for making measurements between two points.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/status_bar.png" alt="status_bar"> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="_top_menu_bar">2.7. Top menu bar</h3> +<div class="paragraph"><p>The top menu bar allows the opening and saving of schematics, +program configuration, and viewing the documentation.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/menu_bar.png" alt="menubar"> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="_upper_toolbar">2.8. Upper toolbar</h3> +<div class="paragraph"><p>This toolbar gives access to the main functions of Eeschema.</p></div> +<div class="paragraph"><p>If Eeschema is run in standalone mode, this is the available tool set:</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/toolbar_schedit_standalone.png" alt="images/toolbar_schedit_standalone.png"> +</div> +</div> +<div class="paragraph"><p>If Eeschema is run from the project manager (KiCad), this is the available tool set:</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/toolbar_schedit.png" alt="images/toolbar_schedit.png"> +</div> +</div> +<div class="paragraph"><p>Tools to initialize a project are not available, because these tools are in the <em>Project Manager</em>.</p></div> +<table class="tableblock frame-all grid-all" +style=" +width:100%; +"> +<col style="width:10%;"> +<col style="width:90%;"> +<tbody> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/new_sch.png" alt="new schematic icon"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Create a new schematic (only in standalone mode).</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/open_document.png" alt="Open schematic icon"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Open a schematic (only in standalone mode).</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/save.png" alt="icons/save_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Save complete (hierarchical) schematic.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/sheetset.png" alt="Page Settings icon"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Select the sheet size and edit the title block.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/print_button.png" alt="icons/print_button_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Open print dialog.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/cut_button.png" alt="icons/cut_button_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Remove the selected elements during a block move.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/copyblock.png" alt="icons/copyblock_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Copy selected elements to the clipboard during a block move.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/paste.png" alt="icons/paste_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Copy last selected element or block in the current sheet.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/undo.png" alt="icons/undo_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Undo: Cancel the last change (up to 10 levels).</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/redo.png" alt="icons/redo_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Redo (up to 10 levels).</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/find.png" alt="search icon"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Call the dialog to search components and texts in the schematic.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/find_replace.png" alt="search replace icon"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Call the dialog to search and replace texts in the schematic.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/zoom_in.png" alt="icons/zoom_in"> +</span> <span class="image"> +<img src="images/icons/zoom_out.png" alt="icons/zoom_out"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Zoom in and out.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/zoom_redraw.png" alt="icons/zoom_redraw"> +</span> <span class="image"> +<img src="images/icons/zoom_fit_in_page.png" alt="icons/zoom_fit_in_page_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Refresh screen; zoom to fit.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/hierarchy_nav.png" alt="hierarchy navigator icon"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">View and navigate the hierarchy tree.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/leave_sheet.png" alt="icons/leave_sheet"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Leave the current sheet and go up in the hierarchy.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/libedit.png" alt="icons/libedit_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Call component editor <em>Libedit</em> to view and modify libraries and component symbols.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/library_browse.png" alt="icons/library_browse_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Display libraries (Viewlib).</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/annotate.png" alt="icons_annotate_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Annotate components.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/erc.png" alt="ERC icon"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Electrical rules check (ERC), automatically validate electrical connections.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/netlist.png" alt="Netlist icon"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Export a netlist (Pcbnew, SPICE, and other formats).</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/bom.png" alt="BOM icon"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Generate the BOM (Bill of Materials).</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/edit_module.png" alt="edit_module icon"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Edit footprint.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/cvpcb.png" alt="run cvpcb icon"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Call CvPcb to assign footprints to components.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/pcbnew.png" alt="icons/pcbnew_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Call Pcbnew to perform a PCB layout.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/import_footprint_names.png" alt="Import Footprint Names icon"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Back-import component footprints (selected using CvPcb) into the "footprint" fields.</p></td> +</tr> +</tbody> +</table> +<div style="page-break-after:always"></div> +</div> +<div class="sect2"> +<h3 id="_right_toolbar_icons">2.9. Right toolbar icons</h3> +<div class="paragraph"><p>This toolbar contains tools to:</p></div> +<div class="ulist"><ul> +<li> +<p> +Place components, wires, buses, junctions, labels, text, etc. +</p> +</li> +<li> +<p> +Create hierarchical sub-sheets and connection symbols +</p> +</li> +</ul></div> +<table class="tableblock frame-all grid-all" +style=" +width:100%; +"> +<col style="width:10%;"> +<col style="width:5%;"> +<col style="width:85%;"> +<tbody> +<tr> +<td class="tableblock halign-center valign-middle" rowspan="20" ><p class="tableblock"><span class="image"> +<img src="images/toolbar_schedit_rightside.png" alt="images/toolbar_schedit_rightside.png" width="80%"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/cursor.png" alt="icons/cursor_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Cancel the active command or tool.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/hierarchy_cursor.png" alt="icons/hierarchy_cursor_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Hierarchy navigation: this tool makes it possible to open the +subsheet of the displayed schematic (click in the symbol of this +subsheet), or to go back up in the hierarchy (click in a free area of +the schematic).</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/new_component.png" alt="New Component icon"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Display the component selector.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/add_power.png" alt="Add Power icon"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Display the power symbol selector.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/add_line.png" alt="icons/add_line_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Draw a wire.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/add_bus.png" alt="icons/add_bus_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Draw a bus.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/add_line2bus.png" alt="icons/add_line2bus_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Draw wire-to-bus entry points. These elements are only graphical and do not create +a connection, thus they should not be used to connect wires together.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/add_bus2bus.png" alt="icons/add_bus2bus_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Draw bus-to-bus entry points.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/noconn.png" alt="icons/noconn_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Place a "No Connect" flag. These are placed on component pins which +are not to be connected. This is useful in the ERC function to check if +pins are intentionally left not connected or are missed.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/add_junction.png" alt="icons/add_junction_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Place a junction. This connects two crossing wires, or a wire and a pin, +when it can be ambiguous. (i.e. if an end of the wire or pin is not +connected to one of the ends of the other wire).</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/add_line_label.png" alt="icons/add_line_label_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Local label placement. Two wires may be connected with identical labels +<strong>in the same sheet</strong>. For connections between two different sheets, you +have to use global or hierarchical labels.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/add_glabel.png" alt="Global label icon"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Place a global label. All global labels with the same name are connected, even between +different sheets.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/add_hierarchical_label.png" alt="icons/add_hierarchical_label_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Place a hierarchical label. This makes it possible to place a +connection between a sheet and the parent sheet that contains it.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/add_hierarchical_subsheet.png" alt="icons/add_hierarchical_subsheet_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Place a hierarchical subsheet. You must specify the file name for this subsheet.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/import_hierarchical_label.png" alt="icons/import_hierarchical_label_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Import hierarchical labels from a subsheet. These hierarchical labels must already be +placed in the subsheet. These are equivalent to pins on a component, and must be connected +using wires.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/add_hierar_pin.png" alt="icons/add_hierar_pin_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Place hierarchical label in a subsheet symbol. This is placed by name and does not require the +label to already exist in the subsheet itself.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/add_dashed_line.png" alt="icons/add_dashed_line_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Draw a line. These are only graphical and do not connect anything.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/add_text.png" alt="icons/add_text_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Place textual comments. These are only graphical.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/image.png" alt="icons/image_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Place a bitmap image.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/delete.png" alt="icons/cancel_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Delete selected element.</p> +<p class="tableblock">If several superimposed elements are selected, the priority is given to +the smallest (in the decreasing priorities: junction, "No Connect", wire, +bus, text, component). This also applies to hierarchical sheets. Note: +the "Undelete" function of the general toolbar allows you to cancel last +deletions.</p></td> +</tr> +</tbody> +</table> +</div> +<div class="sect2"> +<h3 id="_left_toolbar_icons">2.10. Left toolbar icons</h3> +<div class="paragraph"><p>This toolbar manages the display options:</p></div> +<table class="tableblock frame-all grid-all" +style=" +width:100%; +"> +<col style="width:10%;"> +<col style="width:90%;"> +<tbody> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/grid.png" alt="icons/grid"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Show/Hide the grid.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/unit_inch.png" alt="icons/unit_inch"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Switch to inches.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/unit_mm.png" alt="icons/unit_mm"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Switch to millimeters.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/cursor_shape.png" alt="icons/cursor_shape"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Choose the cursor shape.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/hidden_pin.png" alt="icons/hidden_pin"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Visibility of "invisible" pins.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/lines90.png" alt="icons/lines90"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Allowed orientation of wires and buses.</p></td> +</tr> +</tbody> +</table> +</div> +<div class="sect2"> +<h3 id="pop-up-menus-and-quick-editing">2.11. Pop-up menus and quick editing</h3> +<div class="paragraph"><p>A right-click opens a contextual menu for the selected element. This contains:</p></div> +<div class="ulist"><ul> +<li> +<p> +Zoom factor. +</p> +</li> +<li> +<p> +Grid adjustment. +</p> +</li> +<li> +<p> +Commonly edited parameters of the selected element. +</p> +</li> +</ul></div> +<div class="paragraph"><p>Pop-up without selected element.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_popup_without_element.png" alt="eeschema_popup_without_element_png"> +</div> +</div> +<div class="paragraph"><p>Editing of a label.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_popup_edit_label.png" alt="eeschema_popup_edit_label_png"> +</div> +</div> +<div class="paragraph"><p>Editing a component.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_popup_edit_component.png" alt="eeschema_popup_edit_component_png"> +</div> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="main-top-menu">3. Main top menu</h2> +<div class="sectionbody"> +<div class="sect2"> +<h3 id="file-menu">3.1. File menu</h3> +<div class="imageblock"> +<div class="content"> +<img src="images/en/file_menu.png" alt="File menu"> +</div> +</div> +<table class="tableblock frame-all grid-all" +style=" +width:100%; +"> +<col style="width:31%;"> +<col style="width:69%;"> +<tbody> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">New Schematic Project</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Clear current schematic and initialize a new one</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Open Schematic Project</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Load a schematic hierarchy</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Open Recent</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Open a list of recently opened files</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Append Schematic Sheet</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Insert the contents of another sheet into the current one</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Save Schematic Project</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Save current sheet and all its hierarchy.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Save Current Sheet Only</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Save current sheet, but not others in a +hierarchy.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Save Current Sheet As…</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Save current sheet with a new name.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Page Settings</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Configure page dimensions and title block.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Print</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Print schematic hierarchy (See also chapter <a href="#plot-and-print">Plot and Print</a>).</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Plot</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Export to PDF, PostScript, HPGL or SVG format (See chapter <a href="#plot-and-print">Plot and Print</a>).</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Close</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Quit without saving.</p></td> +</tr> +</tbody> +</table> +</div> +<div class="sect2"> +<h3 id="preferences-menu">3.2. Preferences menu</h3> +<div class="sect3"> +<h4 id="preferences">3.2.1. Preferences</h4> +<div class="imageblock"> +<div class="content"> +<img src="images/en/menu_path_hotkey_editor.png" alt="Preferences menu"> +</div> +</div> +<table class="tableblock frame-all grid-all" +style=" +width:90%; +"> +<col style="width:30%;"> +<col style="width:70%;"> +<tbody> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Component Libraries</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Select libraries and library search path.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Set Colors Scheme</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Select colors for display, print and plot.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Schematic Editor Options</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">General options (units, grid size, field names, etc.).</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Language</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Select interface language.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Hotkeys</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">List, edit, export, and import hotkey settings.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Save Preferences</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Save the project settings to the .pro file.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Load Preferences</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Load the project settings from a .pro file.</p></td> +</tr> +</tbody> +</table> +</div> +<div class="sect3"> +<h4 id="preferences-menu-libs-and-dir">3.2.2. Preferences menu / Component Libraries</h4> +<div class="imageblock"> +<div class="content"> +<img src="images/en/libsettings.png" alt="Library settings"> +</div> +</div> +<div class="paragraph"><p>This dialog is used to configure component libraries and search paths. +The configuration parameters are saved in the .pro file. Different +configuration files in different directories are also possible.</p></div> +<div class="paragraph"><p>Eeschema searches, in order:</p></div> +<div class="olist arabic"><ol class="arabic"> +<li> +<p> +The configuration file (projectname.pro) in the current directory. +</p> +</li> +<li> +<p> +The kicad.pro configuration file in the KiCad directory. This file +can thus be the default configuration. +</p> +</li> +<li> +<p> +Default values if no file is found. It will at least then be +necessary to fill out the list of libraries to load, and then save the +configuration. +</p> +</li> +</ol></div> +<div class="paragraph"><p>The <em>Check for cache/library conflicts at schematic load</em> box is used to configure +the library conflict rescue behavior. See <a href="#rescuing-cached-components">Rescuing Cached Components</a> for more information about that.</p></div> +</div> +<div class="sect3"> +<h4 id="preferences-menu-and-colors">3.2.3. Preferences menu / Set Color Scheme</h4> +<div class="imageblock"> +<div class="content"> +<img src="images/en/color_settings.png" alt="Color settings"> +</div> +</div> +<div class="paragraph"><p>Color scheme for various graphic elements, and background color selection (either black or +white).</p></div> +</div> +<div class="sect3"> +<h4 id="preferences-and-options">3.2.4. Preferences menu / Schematic Editor Options</h4> +<div class="imageblock"> +<div class="content"> +<img src="images/en/options.png" alt="Schematic Editor Options"> +</div> +</div> +<table class="tableblock frame-all grid-all" +style=" +width:100%; +"> +<col style="width:40%;"> +<col style="width:60%;"> +<tbody> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Measurement units:</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Select the display and the cursor coordinate units +(inches or millimeters).</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Grid Size:</p></td> +<td class="tableblock halign-left valign-top" ><div><div class="paragraph"><p>Grid size selection.</p></div> +<div class="paragraph"><p><strong>It is recommended to work with normal grid (0.050 inches or 1,27 mm)</strong>. <em>Smaller +grids are used for component building</em>.</p></div></div></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Default bus width:</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Pen size used to draw buses.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Default line width:</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Pen size used to draw objects that do not have a +specified pen size.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Default text size:</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Text size used when creating new text items or labels</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Repeat draw item horizontal displacement</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">increment on X axis during element duplication (usual value 0)</p> +<p class="tableblock">(after placing an item like a component, label or wire, +a duplication is made by the <em>Insert</em> key)</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Repeat draw item vertical displacement</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">increment on Y axis during +element duplication (usual value is 0.100 inches or 2,54 mm)</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Repeat label increment:</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Increment of label value during duplication of texts ending +in a number, such as bus members (usual value 1 or -1).</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Auto save time interval:</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Time in minutes between saving backups.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Part id notation:</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Style of suffix that is used to denote component parts (U1A, U1.A, U1-1, etc.)</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Show Grid:</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">If checked: display grid.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Show hidden pins:</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Display invisible (or <em>hidden</em>) pins, typically power pins. If checked, +allows the display of power pins.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Do not center and warp cursor on zoom:</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">When zooming, keep the position and cursor where they are.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Use middle mouse button to pan</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">When enabled, the sheet can be dragged around using the middle mouse button.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Limit panning to scroll size</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">When enabled, the middle mouse +button cannot move the sheet area outside the displayed area.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Pan while moving object</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">If checked, automatically shifts the window +if the cursor leaves the window during drawing or moving.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Allow buses and wires to be placed in H or V orientation only</p></td> +<td class="tableblock halign-left valign-top" ><div><div class="paragraph"><p>If checked, buses and wires can only be vertical or horizontal.</p></div> +<div class="paragraph"><p>Otherwise, buses and wires can be placed at any orientation.</p></div></div></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Show page limits</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">If checked, shows the page boundaries on screen.</p></td> +</tr> +</tbody> +</table> +</div> +<div class="sect3"> +<h4 id="preferences-and-language">3.2.5. Preferences and Language</h4> +<div class="paragraph"><p>Use default mode. Other languages are available mainly for development +purposes.</p></div> +</div> +</div> +<div class="sect2"> +<h3 id="help-menu">3.3. Help menu</h3> +<div class="paragraph"><p>Access to on-line help (this document) for an extensive tutorial about +KiCad. Use “Copy Version Information” when submitting bug reports to +identify your build and system.</p></div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="general-top-toolbar">4. General Top Toolbar</h2> +<div class="sectionbody"> +<div class="sect2"> +<h3 id="sheet-management">4.1. Sheet management</h3> +<div class="paragraph"><p>The Sheet Settings icon, +<span class="image"> +<img src="images/icons/sheetset.png" alt="Sheet Settings icon"> +</span>, +allows you to define the sheet size and the contents of the +title block.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/page_settings.png" alt="Page Settings"> +</div> +</div> +<div class="paragraph"><p>Sheet numbering is automatically updated. You can set the date +to today by pressing the left arrow button by "Issue Date", but it +will not be automatically changed.</p></div> +</div> +<div class="sect2"> +<h3 id="options-of-the-schematic-editor">4.2. Options of the schematic editor</h3> +<div class="sect3"> +<h4 id="general-options">4.2.1. General options</h4> +<div class="imageblock"> +<div class="content"> +<img src="images/en/options.png" alt="Schematic Editor Options"> +</div> +</div> +</div> +<div class="sect3"> +<h4 id="template-fields-names">4.2.2. Template fields names</h4> +<div class="paragraph"><p>You can define custom fields that will exist by default in each component +(even if left empty).</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/template_field_names.png" alt="Template Field Names settings"> +</div> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="search-tool">4.3. Search tool</h3> +<div class="paragraph"><p>The Find icon, +<span class="image"> +<img src="images/icons/find.png" alt="Find icon"> +</span>, +can be used to access the search tool.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/find_dialog.png" alt="Find dialog"> +</div> +</div> +<div class="paragraph"><p>You can search for a reference, a value, or a text string in the current +sheet or in the whole hierarchy. Once found, the cursor will be +positioned on the found element in the relevant sub-sheet.</p></div> +</div> +<div class="sect2"> +<h3 id="netlist-tool">4.4. Netlist tool</h3> +<div class="paragraph"><p>The Netlist icon, +<span class="image"> +<img src="images/icons/netlist.png" alt="Netlist icon"> +</span>, +opens the netlist generation tool.</p></div> +<div class="paragraph"><p>The netlist file it creates describes all connections in the entire hierarchy.</p></div> +<div class="paragraph"><p>In a multisheet hierarchy, any local label is visible only inside the +sheet to which it belongs. +Thus, the label TOTO of sheet 3 is different from the label TOTO of sheet +5 (if no connection has been intentionally introduced to connect them). +This is due to the fact that the sheet name path is internally associated with +the local label.</p></div> +<div class="paragraph"><p>Note 1:</p></div> +<div class="paragraph"><p>Label lengths have no limitations in Eeschema, but the software +exploiting the generated netlist can be limited on this point.</p></div> +<div class="paragraph"><p>Note 2:</p></div> +<div class="paragraph"><p>Avoid spaces in the labels, because they will appear as separated words. +It is not a limitation of Eeschema, but of many netlist formats, which +often assume that a label has no spaces.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/netlist_dialog.png" alt="Netlist dialog"> +</div> +</div> +<div class="paragraph"><p>Option:</p></div> +<div class="paragraph"><p>Default Format:</p></div> +<div class="paragraph"><p>Check to select Pcbnew as the default format.</p></div> +<div class="paragraph"><p>Other formats can also be generated:</p></div> +<div class="ulist"><ul> +<li> +<p> +Orcad PCB2 +</p> +</li> +<li> +<p> +CadStar +</p> +</li> +<li> +<p> +Spice, for simulators +</p> +</li> +</ul></div> +<div class="paragraph"><p>External plugins can be launched to extend the netlist formats list (a +PadsPcb Plugin was added here).</p></div> +</div> +<div class="sect2"> +<h3 id="annotation-tool">4.5. Annotation tool</h3> +<div class="paragraph"><p>The icon +<span class="image"> +<img src="images/icons/annotate.png" alt="icons_annotate_png"> +</span> +gives access to the annotation tool. This tool performs an automatic +naming of all components in the schematic.</p></div> +<div class="paragraph"><p>For multi-part components (such as 7400 TTL which contains 4 gates), a +multi-part suffix is also allocated (thus a 7400 TTL designated U3 will +be divided into U3A, U3B, U3C and U3D).</p></div> +<div class="paragraph"><p>You can unconditionally annotate all the components, or only the new +components, i.e. those which were not previously annotated.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/annotate-dialog.png" alt="annotate-dialog_img"> +</div> +</div> +<div class="paragraph"><p><strong>Scope</strong></p></div> +<div class="olist arabic"><ol class="arabic"> +<li> +<p> +Use the entire schematic. All the sheets are re-annotated (usual +Option). +</p> +</li> +<li> +<p> +Use the current page only. Only the current sheet is re-annotated +(this option is to be used only in special cases, for example to +evaluate the amount of resistors in the current sheet.). +</p> +</li> +<li> +<p> +Keep existing annotation. Conditional annotation, only the new +components will be re-annotated (usual option). +</p> +</li> +<li> +<p> +Reset existing annotation. Unconditional annotation, all the +components will be re-annotated (this option is to be used when there +are duplicated references). +</p> +</li> +<li> +<p> +Reset, but do not swap any annotated multi-unit parts. This keeps +all groups of multiple units (e.g. U2A, U2B) together when reannotating. +</p> +</li> +</ol></div> +<div class="paragraph"><p><strong>Annotation Order</strong></p></div> +<div class="paragraph"><p>Selects the order in which components will be numbered.</p></div> +<div class="paragraph"><p><strong>Annotation Choice</strong></p></div> +<div class="paragraph"><p>Selects the method by which numbers will be selected.</p></div> +</div> +<div class="sect2"> +<h3 id="electrical-rules-check-tool">4.6. Electrical Rules Check tool</h3> +<div class="paragraph"><p>The icon +<span class="image"> +<img src="images/icons/erc.png" alt="ERC icon"> +</span> +gives access to the electrical rules check (ERC) tool.</p></div> +<div class="paragraph"><p>This tool performs a design verification and is particularly useful to +detect forgotten connections, and inconsistencies.</p></div> +<div class="paragraph"><p>Once you have run the ERC, Eeschema places markers to highlight problems. +The diagnosis can then be given by left clicking on the marker. An error file can also be generated.</p></div> +<div class="sect3"> +<h4 id="main-erc-dialog">4.6.1. Main ERC dialog</h4> +<div class="imageblock"> +<div class="content"> +<img src="images/en/dialog_erc.png" alt="ERC dialog"> +</div> +</div> +<div class="paragraph"><p>Errors are displayed in the Electrical Rules Checker dialog box:</p></div> +<div class="ulist"><ul> +<li> +<p> +Total count of errors and warnings. +</p> +</li> +<li> +<p> +Errors count. +</p> +</li> +<li> +<p> +Warnings count. +</p> +</li> +</ul></div> +<div class="paragraph"><p>Option:</p></div> +<div class="ulist"><ul> +<li> +<p> +Create ERC file report: check this option to generate an ERC report file. +</p> +</li> +</ul></div> +<div class="paragraph"><p>Commands:</p></div> +<div class="ulist"><ul> +<li> +<p> +Delete Markers: to remove all ERC error/warnings markers. +</p> +</li> +<li> +<p> +Run: to perform an Electrical Rules Check. +</p> +</li> +<li> +<p> +Close: to exit this dialog box. +</p> +</li> +</ul></div> +<div class="paragraph"><p>Note:</p></div> +<div class="ulist"><ul> +<li> +<p> +Clicking on an error message jumps to the corresponding marker in the + schematic. +</p> +</li> +</ul></div> +</div> +<div class="sect3"> +<h4 id="erc-options-dialog">4.6.2. ERC options dialog</h4> +<div class="imageblock"> +<div class="content"> +<img src="images/en/dialog_erc_opts.png" alt="ERC Options dialog"> +</div> +</div> +<div class="paragraph"><p>This tab allows you to establish connectivity rules +between pins; you can choose between 3 options for each case:</p></div> +<div class="ulist"><ul> +<li> +<p> +No error +</p> +</li> +<li> +<p> +Warning +</p> +</li> +<li> +<p> +Error +</p> +</li> +</ul></div> +<div class="paragraph"><p>Each square of the matrix can be modified by clicking on it.</p></div> +</div> +</div> +<div class="sect2"> +<h3 id="bill-of-material-tool">4.7. Bill of Material tool</h3> +<div class="paragraph"><p>The icon +<span class="image"> +<img src="images/icons/bom.png" alt="BOM icon"> +</span> +gives access to the bill of materials (BOM) generator. This menu allows the +generation of a file listing of the components and/or hierarchical +connections (global labels).</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/dialog_bom.png" alt="BOM dialog"> +</div> +</div> +<div class="paragraph"><p>Eeschema’s BOM generator makes use of external plugins, generally in XSLT +or Python form. Some are provided, and will be installed inside the KiCad +program files directory.</p></div> +<div class="paragraph"><p>A useful set of component properties to use for a BOM are:</p></div> +<div class="ulist"><ul> +<li> +<p> +Value - unique name for each part used. +</p> +</li> +<li> +<p> +Footprint - either manually entered or back-annotated (see below). +</p> +</li> +<li> +<p> +Field1 - Manufacturer’s name. +</p> +</li> +<li> +<p> +Field2 - Manufacturer’s Part Number. +</p> +</li> +<li> +<p> +Field3 - Distributor’s Part Number. +</p> +</li> +</ul></div> +<div class="paragraph"><p>For example:</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/dialog_component_properties.png" alt="Component Properties dialog"> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="import-tool-for-footprint-assignment">4.8. Import tool for footprint assignment:</h3> +<div class="sect3"> +<h4 id="access">4.8.1. Access:</h4> +<div class="paragraph"><p>The icon +<span class="image"> +<img src="images/icons/import_footprint_names.png" alt="Import Footprint Names icon"> +</span> +gives access to the back-annotate tool.</p></div> +<div class="paragraph"><p>This tool allows footprint changes made in PcbNew to be imported back +into the footprint fields in Eeschema.</p></div> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="schematic-creation-and-editing">5. Schematic Creation and Editing</h2> +<div class="sectionbody"> +<div class="sect2"> +<h3 id="_introduction">5.1. Introduction</h3> +<div class="paragraph"><p>A schematic can be represented by a single sheet, but, if big enough, it +will require several sheets.</p></div> +<div class="paragraph"><p>A schematic represented by several sheets is hierarchical, +and all its sheets (each one represented by its own file) constitute an +Eeschema project. The manipulation of hierarchical schematics will be +described in the <a href="#hierarchical-schematics">Hierarchical Schematics</a> +chapter.</p></div> +</div> +<div class="sect2"> +<h3 id="general-considerations">5.2. General considerations</h3> +<div class="paragraph"><p>A schematic designed with Eeschema is more than a simple graphic +representation of an electronic device. It is normally the entry point +of a development chain that allows for:</p></div> +<div class="ulist"><ul> +<li> +<p> +Validating against a set of rules (<a href="#erc">Electrical Rules Check</a>) to detect errors and omissions. +</p> +</li> +<li> +<p> +Automatically generating a bill of materials (<a href="#creating-customized-netlists-and-bom-files">BOM</a>). +</p> +</li> +<li> +<p> +<a href="#creating-customized-netlists-and-bom-files">Generating a netlist</a> for simulation software such as SPICE. +</p> +</li> +<li> +<p> +<a href="#creating-customized-netlists-and-bom-files">Generating a netlist</a> for transferring to PCB layout. +</p> +</li> +</ul></div> +<div class="paragraph"><p>A schematic mainly consists of components, wires, labels, junctions, +buses and power ports. For clarity in the schematic, you can place +purely graphical elements like bus entries, comments, and polylines.</p></div> +</div> +<div class="sect2"> +<h3 id="the-development-chain">5.3. The development chain</h3> +<div class="imageblock"> +<div class="content"> +<img src="images/en/dev-chain.png" alt="dev-chain_png"> +</div> +</div> +<div class="paragraph"><p>Components are added to the schematic from component libraries. After +the schematic is made, a netlist is generated, which is later used to +import the set of connections and footprints into PcbNew.</p></div> +</div> +<div class="sect2"> +<h3 id="component-placement-and-editing">5.4. Component placement and editing</h3> +<div class="sect3"> +<h4 id="find-and-place-a-component">5.4.1. Find and place a component</h4> +<div class="paragraph"><p>To load a component into your schematic you can use the icon +<span class="image"> +<img src="images/icons/new_component.png" alt="New Component icon"> +</span>. +A dialog box allows you to type the name of the component to load.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/dialog_choose_component.png" alt="Choose Component dialog"> +</div> +</div> +<div class="paragraph"><p>The Choose Component dialog will filter components by name, keywords, +and description according to what you type into the search field.</p></div> +<div class="paragraph"><p>Before placing the component in the schematic, you can rotate it, mirror +it, and edit its fields, by either using the hotkeys or the right-click +context menu. This can be done the same way after placement.</p></div> +<div class="paragraph"><p>Here is a component during placement:</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/component_during_placement.png" alt="component during placement"> +</div> +</div> +</div> +<div class="sect3"> +<h4 id="power-ports">5.4.2. Power ports</h4> +<div class="paragraph"><p>A power port symbol is a component (the symbols are grouped in the +“power” library), so they can be placed using the component chooser. +However, as power placements are frequent, the +<span class="image"> +<img src="images/icons/add_power.png" alt="Add Power icon"> +</span> +tool is available. This tool is similar, except +that the search is done directly in the “power” library.</p></div> +</div> +<div class="sect3"> +<h4 id="component-editing-and-modification-already-placed-component">5.4.3. Component Editing and Modification (already placed component)</h4> +<div class="paragraph"><p>There are two ways to edit a component:</p></div> +<div class="ulist"><ul> +<li> +<p> +Modification of the component itself: position, orientation, unit selection on a multi-unit component. +</p> +</li> +<li> +<p> +Modification of one of the fields of the component: reference, value, footprint, etc. +</p> +</li> +</ul></div> +<div class="paragraph"><p>When a component has just been placed, you may have to modify its value +(particularly for resistors, capacitors, etc.), but it is useless to +assign to it a reference number right away, or to select the unit +(except for components with locked units, which you have to assign +manually). This can be done automatically by the annotation function.</p></div> +<div class="sect4"> +<h5 id="component-modification">Component modification</h5> +<div class="paragraph"><p>To modify some feature of a component, position the cursor on the +component, and then either:</p></div> +<div class="ulist"><ul> +<li> +<p> +Double-click on the component to open the full editing dialog. +</p> +</li> +<li> +<p> +Right-click to open the context menu and use one of the + commands: Move, Orientation, Edit, Delete, etc. +</p> +</li> +</ul></div> +</div> +<div class="sect4"> +<h5 id="text-fields-modification">Text fields modification</h5> +<div class="paragraph"><p>You can modify the reference, value, position, orientation, text size and +visibility of the fields:</p></div> +<div class="ulist"><ul> +<li> +<p> +Double-click on the text field to modify it. +</p> +</li> +<li> +<p> +Right-click to open the context menu and use one of the + commands: Move, Rotate, Edit, Delete, etc. +</p> +</li> +</ul></div> +<div class="paragraph"><p>For more options, or in order to create fields, +double-click on the component to open the Component Properties +dialog.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/dialog_component_properties.png" alt="Component Properties dialog"> +</div> +</div> +<div class="paragraph"><p>Each field can be visible or hidden, and displayed horizontally or +vertically. The displayed position is always indicated +for a normally displayed component (no rotation or mirroring) and is relative +to the anchor point of the component.</p></div> +<div class="paragraph"><p>The option “Reset to Library Defaults” sets the component to the original +orientation, and resets the options, size and position of each field. However, +texts fields are not modified because this could break the schematic.</p></div> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="wires-buses-labels-power-ports">5.5. Wires, Buses, Labels, Power ports</h3> +<div class="sect3"> +<h4 id="introduction-1">5.5.1. Introduction</h4> +<div class="paragraph"><p>All these drawing elements can also be placed with the tools on the +vertical right toolbar.</p></div> +<div class="paragraph"><p>These elements are:</p></div> +<div class="ulist"><ul> +<li> +<p> +<strong>Wires:</strong> most connections between components. +</p> +</li> +<li> +<p> +<strong>Buses:</strong> to graphically join bus labels +</p> +</li> +<li> +<p> +<strong>Polylines:</strong> for graphic presentation. +</p> +</li> +<li> +<p> +<strong>Junctions:</strong> to create connections between crossing wires or buses. +</p> +</li> +<li> +<p> +<strong>Bus entries:</strong> to show connections between wires and buses. Graphical only! +</p> +</li> +<li> +<p> +<strong>Labels:</strong> for labeling or creating connections. +</p> +</li> +<li> +<p> +<strong>Global labels:</strong> for connections between sheets. +</p> +</li> +<li> +<p> +<strong>Texts:</strong> for comments and annotations. +</p> +</li> +<li> +<p> +<strong>"No Connect" flags:</strong> to terminate a pin that does not need any connection. +</p> +</li> +<li> +<p> +<strong>Hierarchical sheets</strong>, and their connection pins. +</p> +</li> +</ul></div> +</div> +<div class="sect3"> +<h4 id="connections-wires-and-labels">5.5.2. Connections (Wires and Labels)</h4> +<div class="paragraph"><p>There are two ways to establish connection:</p></div> +<div class="ulist"><ul> +<li> +<p> +Pin to pin wires. +</p> +</li> +<li> +<p> +Labels. +</p> +</li> +</ul></div> +<div class="paragraph"><p>The following figure shows the two methods:</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/wires_labels.png" alt="Wires labels"> +</div> +</div> +<div class="paragraph"><p><strong>Note 1:</strong></p></div> +<div class="paragraph"><p>The point of “contact” of a label is the lower left +corner of the first letter of the label. This point is displayed with +a small square when not connected.</p></div> +<div class="paragraph"><p>This point must thus be in contact with the wire, or be superimposed at +the end of a pin so that the label is seen as connected.</p></div> +<div class="paragraph"><p><strong>Note 2:</strong></p></div> +<div class="paragraph"><p>To establish a connection, a segment of wire must be connected by its +ends to an another segment or to a pin.</p></div> +<div class="paragraph"><p>If there is overlapping (if a wire passes over a pin, but without being +connected to the pin end) there is no connection.</p></div> +<div class="paragraph"><p><strong>Note 3:</strong></p></div> +<div class="paragraph"><p>Wires that cross are not implicitly connected. It is necessary to +join them with a junction dot if a connection is desired.</p></div> +<div class="paragraph"><p>The previous figure (wires connected to DB25FEMALE pins 22, 21, 20, 19) +shows such a case of connection using a junction symbol.</p></div> +<div class="paragraph"><p><strong>Note 4:</strong></p></div> +<div class="paragraph"><p>If two different labels are placed on the same wire, they are connected +together and become equivalent: all the other elements connected to one +or the other labels are then connected to all of them.</p></div> +</div> +<div class="sect3"> +<h4 id="connections-buses">5.5.3. Connections (Buses)</h4> +<div class="paragraph"><p>In the following schematic, many pins are connected to buses.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/sch_with_buses.png" alt="Example schematic with buses"> +</div> +</div> +<div class="sect4"> +<h5 id="bus-members">Bus members</h5> +<div class="paragraph"><p>From the schematic point of view, a bus is a collection of signals, +starting with a common prefix, and ending with a number. For example, +PCA0, PCA1, and PCA2 are members of the PCA bus.</p></div> +<div class="paragraph"><p>The complete bus is named PCA[N..m], where N and m are the first and +the last wire number of this bus. Thus if PCA has 20 members from 0 to +19, the complete bus is noted PCA[0..19]. A collection of signals +like PCA0, PCA1, PCA2, WRITE, READ cannot be contained in a bus.</p></div> +</div> +<div class="sect4"> +<h5 id="connections-between-bus-members">Connections between bus members</h5> +<div class="paragraph"><p>Pins connected between the same members of a bus must be connected by +labels. It is not possible to connect a pin directly to a bus; this +type of connection will be ignored by Eeschema.</p></div> +<div class="paragraph"><p>In the example above, connections are made by the labels placed on wires +connected to the pins. Bus entries (wire segments at 45 +degrees) to buses are graphical only, and are not necessary to form +logical connections.</p></div> +<div class="paragraph"><p>In fact, using the repetition command (<em>Insert</em> key), connections can +be very quickly made in the following way, if component pins are aligned +in increasing order (a common case in practice on components such as +memories, microprocessors…):</p></div> +<div class="ulist"><ul> +<li> +<p> +Place the first label (for example PCA0) +</p> +</li> +<li> +<p> +Use the repetition command as much as needed to place members. + Eeschema will automatically create the next labels (PCA1, PCA2…) + vertically aligned, theoretically on the position of the other pins. +</p> +</li> +<li> +<p> +Draw the wire under the first label. Then use the repetition command + to place the other wires under the labels. +</p> +</li> +<li> +<p> +If needed, place the bus entries by the same way (Place the first + entry, then use the repetition command). +</p> +</li> +</ul></div> +<div class="admonitionblock"> +<table><tr> +<td class="icon"> +<div class="title">Note</div> +</td> +<td class="content"> +<div class="paragraph"><p>In the Preferences/Options menu, you can set the repetition parameters:</p></div> +<div class="ulist"><ul> +<li> +<p> +Vertical step. +</p> +</li> +<li> +<p> +Horizontal step. +</p> +</li> +<li> +<p> +Label increment (which can thus be incremented by 2, 3. or + decremented). +</p> +</li> +</ul></div> +</td> +</tr></table> +</div> +</div> +<div class="sect4"> +<h5 id="global-connections-between-buses">Global connections between buses</h5> +<div class="paragraph"><p>You may need connections between buses, in order to link two buses +having different names, or in the case of a hierarchy, to create +connections between different sheets. You can make these connections in +the following way.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/bus_junction.png" alt="Bus junction example"> +</div> +</div> +<div class="paragraph"><p>Buses PCA [0..15], ADR [0..7] and BUS [5..10] are connected together +(note the junction here because the vertical bus wire joins the middle +of the horizontal bus segment).</p></div> +<div class="paragraph"><p>More precisely, the corresponding members are connected together : PCA0, +ADR0 are connected, (as same as PCA1 and ADR1 … PCA7 and ADR7).</p></div> +<div class="paragraph"><p>Furthermore, PCA5, BUS5 and ADR5 are connected (just as PCA6, BUS6 and +ADR6 like PCA7, BUS7 and ADR7).</p></div> +<div class="paragraph"><p>PCA8 and BUS8 are also connected (just as PCA9 and BUS9, PCA10 and +BUS10)</p></div> +</div> +</div> +<div class="sect3"> +<h4 id="power-ports-connection">5.5.4. Power ports connection</h4> +<div class="paragraph"><p>When the power pins of the components are visible, they must be +connected, as for any other signal.</p></div> +<div class="paragraph"><p>Components such as gates and flip-flops may have invisible power pins. +Care must be taken with these because:</p></div> +<div class="ulist"><ul> +<li> +<p> +You cannot connect wires, because of their invisibility. +</p> +</li> +<li> +<p> +You do not know their names. +</p> +</li> +</ul></div> +<div class="paragraph"><p>And moreover, it would be a bad idea to make them visible and to connect +them like the other pins, because the schematic would become unreadable +and not in accordance with usual conventions.</p></div> +<div class="admonitionblock"> +<table><tr> +<td class="icon"> +<div class="title">Note</div> +</td> +<td class="content">If you want to enforce the display of these invisible power pins, you +must check the option “Show invisible power pins” in the +Preferences/Options dialog box of the main menu, or the icon +<span class="image"> +<img src="images/icons/hidden_pin.png" alt="images/icons/hidden_pin.png"> +</span> +on the left (options) toolbar.</td> +</tr></table> +</div> +<div class="paragraph"><p>Eeschema automatically connects invisible power pins of the same name +to the power net of that name. It may be necessary to join power nets +of different names (for example, "GND" in TTL components and "VSS" in +MOS components); use power ports for this.</p></div> +<div class="paragraph"><p>It is not recommended to use labels for power connection. These only have +a “local” connection scope, and would not connect the invisible power pins.</p></div> +<div class="paragraph"><p>The figure below shows an example of power port connections.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/power_ports_example.png" alt="Power ports example"> +</div> +</div> +<div class="paragraph"><p>In this example, ground (GND) is connected to power port VSS, and power +port VCC is connected to VDD.</p></div> +<div class="paragraph"><p>Two PWR_FLAG symbols are visible. They indicate that the two power ports +VCC and GND are really connected to a power source. +Without these two flags, the ERC tool would diagnose: <em>Warning: power +port not powered</em>.</p></div> +<div class="paragraph"><p>All these symbols are components of the schematic library “power”.</p></div> +</div> +<div class="sect3"> +<h4 id="no-connection-symbols">5.5.5. "No Connect" flag</h4> +<div class="paragraph"><p>These symbols are very useful to avoid undesired ERC warnings. +The electric rules check ensures that no connection has been +accidentally left unconnected.</p></div> +<div class="paragraph"><p>If pins must really remain unconnected, it is necessary to place +a "No Connect" flag (tool <span class="image"> +<img src="images/icons/noconn.png" alt="No connection icon"> +</span>) +on these pins. These symbols do not have any influence on the +generated netlists.</p></div> +</div> +</div> +<div class="sect2"> +<h3 id="drawing-complements">5.6. Drawing Complements</h3> +<div class="sect3"> +<h4 id="text-comments">5.6.1. Text Comments</h4> +<div class="paragraph"><p>It can be useful (to aid in understanding the schematic) to place +annotations such as text fields and frames. Text fields (tool +<span class="image"> +<img src="images/icons/add_text.png" alt="images/icons/add_text.png"> +</span>) +and Polyline (tool +<span class="image"> +<img src="images/icons/add_dashed_line.png" alt="images/icons/add_dashed_line.png"> +</span>) +are intended for this use, contrary to labels and wires, which are +connection elements.</p></div> +<div class="paragraph"><p>Here you can find an example of a frame with a textual comment.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/frame_example.png" alt="Frame with comment example"> +</div> +</div> +</div> +<div class="sect3"> +<h4 id="sheet-title-block">5.6.2. Sheet title block</h4> +<div class="paragraph"><p>The title block is edited with the tool +<span class="image"> +<img src="images/icons/sheetset.png" alt="Page Settings tool"> +</span>.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/page_settings.png" alt="Page settings dialog"> +</div> +</div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/title_block.png" alt="Title block"> +</div> +</div> +<div class="paragraph"><p>The sheet number (Sheet X/Y) is automatically updated.</p></div> +</div> +</div> +<div class="sect2"> +<h3 id="rescuing-cached-components">5.7. Rescuing cached components</h3> +<div class="paragraph"><p>By default, Eeschema loads component symbols out of the libraries according to the set paths. +This can cause a problem when loading a very old project: if the symbols in the library have changed +since they were used in the project, the ones in the project would be automatically replaced with +the new versions. The new versions might not line up correctly or might be oriented differently, +leading to a broken schematic.</p></div> +<div class="paragraph"><p>However, when a project is saved, a cache library is saved along with it. This allows the project +to be distributed without the full libraries. If you load a project where symbols are present both +in its cache and in the system libraries, Eeschema will scan the libraries for conflicts. Any +conflicts found will be listed in the following dialog:</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/rescue-conflicts.png" alt="Rescue conflicts dialog"> +</div> +</div> +<div class="paragraph"><p>You can see in this example that the project originally used a diode with the cathode facing up, +but the library now contains one with the cathode facing down. This change could ruin the project! +Pressing OK here will cause the old symbol to be saved into a special “rescue” library, and all +the components using that symbol will be renamed to avoid naming conflicts.</p></div> +<div class="paragraph"><p>If you press Cancel, no rescues will be made, so Eeschema will load all the new components by +default. Because no changes were made, you can still go back and run the rescue function again: +choose "Rescue Cached Components" in the Tools menu to call up the dialog again.</p></div> +<div class="paragraph"><p>If you would prefer not to see this dialog, you can press "Never Show Again". The default will +be to do nothing and allow the new components to be loaded. This option can be changed back in +the Component Libraries preferences.</p></div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="hierarchical-schematics">6. Hierarchical schematics</h2> +<div class="sectionbody"> +<div class="sect2"> +<h3 id="introduction-2">6.1. Introduction</h3> +<div class="paragraph"><p>A hierarchical representation is generally a good solution for projects +bigger than a few sheets. If you want to manage this kind of project, it +will be necessary to:</p></div> +<div class="ulist"><ul> +<li> +<p> +Use large sheets, which results in printing and handling problems. +</p> +</li> +<li> +<p> +Use several sheets, which leads you to a hierarchy structure. +</p> +</li> +</ul></div> +<div class="paragraph"><p>The complete schematic then consists in a main schematic sheet, called +root sheet, and sub-sheets constituting the hierarchy. Moreover, a +skillful subdividing of the design into separate sheets often improves +on its readability.</p></div> +<div class="paragraph"><p>From the root sheet, you must be able to find all sub-sheets. +Hierarchical schematics management is very easy with Eeschema, thanks to +an integrated "hierarchy navigator" accessible via the icon +<span class="image"> +<img src="images/icons/hierarchy_nav.png" alt="icons/hierarchy_nav_png"> +</span> +of the top toolbar.</p></div> +<div class="paragraph"><p>There are two types of hierarchy that can exist simultaneously: the +first one has just been evoked and is of general use. The second +consists in creating components in the library that appear like +traditional components in the schematic, but which actually correspond +to a schematic which describes their internal structure.</p></div> +<div class="paragraph"><p>This second type is used to develop integrated circuits, because in this +case you have to use function libraries in the schematic you are +drawing.</p></div> +<div class="paragraph"><p>Eeschema currently doesn’t treat this second case.</p></div> +<div class="paragraph"><p>A hierarchy can be:</p></div> +<div class="ulist"><ul> +<li> +<p> +simple: a given sheet is used only once +</p> +</li> +<li> +<p> +complex: a given sheet is used more than once (multiples instances) +</p> +</li> +<li> +<p> +flat: which is a simple hierarchy, but connections between sheets are + not drawn. +</p> +</li> +</ul></div> +<div class="paragraph"><p>Eeschema can deal with all these hierarchies.</p></div> +<div class="paragraph"><p>The creation of a hierarchical schematic is easy, the whole hierarchy is +handled starting from the root schematic, as if you had only one +schematic.</p></div> +<div class="paragraph"><p>The two important steps to understand are:</p></div> +<div class="ulist"><ul> +<li> +<p> +How to create a sub-sheet. +</p> +</li> +<li> +<p> +How to build electric connections between sub-sheets. +</p> +</li> +</ul></div> +</div> +<div class="sect2"> +<h3 id="navigation-in-the-hierarchy">6.2. Navigation in the Hierarchy</h3> +<div class="paragraph"><p>Navigation among sub-sheets It is very easy thanks to the navigator tool +accessible via the button +<span class="image"> +<img src="images/icons/hierarchy_nav.png" alt="icons/hierarchy_nav_png"> +</span> +on the top toolbar.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/hierarchy_navigator_dialog.png" alt="hierarchy_navigator_dialog_png"> +</div> +</div> +<div class="paragraph"><p>Each sheet is reachable by clicking on its name. For quick access, right +click on a sheet name, and choose to Enter Sheet.</p></div> +<div class="paragraph"><p>You can quickly reach the root sheet, or a sub-sheet thanks to the tool +<span class="image"> +<img src="images/icons/hierarchy_cursor.png" alt="icons/hierarchy_cursor_png"> +</span> +of the right toolbar. After the navigation tool has been +selected:</p></div> +<div class="ulist"><ul> +<li> +<p> +Click on a sheet name to select the sheet. +</p> +</li> +<li> +<p> +Click elsewhere to select the Root sheet. +</p> +</li> +</ul></div> +</div> +<div class="sect2"> +<h3 id="local-hierarchical-and-global-labels">6.3. Local, hierarchical and global labels</h3> +<div class="sect3"> +<h4 id="properties">6.3.1. Properties</h4> +<div class="paragraph"><p>Local labels, tool +<span class="image"> +<img src="images/icons/add_line_label.png" alt="icons/add_line_label_png"> +</span>, +are connecting signals only within a sheet. Hierarchical labels (tool +<span class="image"> +<img src="images/icons/add_hierarchical_label.png" alt="icons/add_hierarchical_label_png"> +</span>) +are connecting signals only within a sheet and to a hierarchical pin +placed in the parent sheet.</p></div> +<div class="paragraph"><p>Global labels (tool +<span class="image"> +<img src="images/icons/add_glabel.png" alt="Global label icon"> +</span>) +are connecting signals across all the hierarchy. Power pins (type <em>power +in</em> and <em>power out</em>) invisible are like global labels because they are +seen as connected between them across all the hierarchy.</p></div> +<div class="admonitionblock"> +<table><tr> +<td class="icon"> +<div class="title">Note</div> +</td> +<td class="content">Within a hierarchy (simple or complex) one can use both hierarchical +labels and/or global labels.</td> +</tr></table> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="hierarchy-creation-of-headlines">6.4. Hierarchy creation of headlines</h3> +<div class="paragraph"><p>You have to:</p></div> +<div class="ulist"><ul> +<li> +<p> +Place in the root sheet a hierarchy symbol called "sheet symbol". +</p> +</li> +<li> +<p> +Enter into the new schematic (sub-sheet) with the navigator and draw + it, like any other schematic. +</p> +</li> +<li> +<p> +Draw the electric connections between the two schematics by placing + Global Labels (HLabels) in the new schematic (sub-sheet), and labels + having the same name in the root sheet, known as SheetLabels. These + SheetLabels will be connected to the sheet symbol of the root sheet to + the other elements of the schematic like standard component pins. +</p> +</li> +</ul></div> +</div> +<div class="sect2"> +<h3 id="sheet-symbol">6.5. Sheet symbol</h3> +<div class="paragraph"><p>Draw a rectangle defined by two diagonal points symbolizing the +sub-sheet.</p></div> +<div class="paragraph"><p>The size of this rectangle must allow you to place later particular +labels, hierarchy pins, corresponding to the global labels (HLabels) in +the sub-sheet.</p></div> +<div class="paragraph"><p>These labels are similar to usual component pins. Select the tool +<span class="image"> +<img src="images/icons/add_hierarchical_subsheet.png" alt="icons/add_hierarchical_subsheet_png"> +</span>.</p></div> +<div class="paragraph"><p>Click to place the upper left corner of the rectangle. Click again to +place the lower right corner, having a large enough rectangle.</p></div> +<div class="paragraph"><p>You will then be prompted to type a file name and a sheet name for this +sub-sheet (in order to reach the corresponding schematic, using the +hierarchy navigator).</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/hsheet_properties_1.png" alt="hsheet_properties_1_png"> +</div> +</div> +<div class="paragraph"><p>You must give at least a file name. If there is no sheet name, the file +name will be used as sheet name (usual way to do that).</p></div> +</div> +<div class="sect2"> +<h3 id="connections-hierarchical-pins">6.6. Connections - hierarchical pins</h3> +<div class="paragraph"><p>You will create here points of connection (hierarchy pins) for the +symbol which has been just created.</p></div> +<div class="paragraph"><p>These points of connection are similar to normal component pins, with +however the possibility to connect a complete bus with only one point of +connection.</p></div> +<div class="paragraph"><p>There are two ways to do this:</p></div> +<div class="ulist"><ul> +<li> +<p> +Place the different pins before drawing the sub-sheet (manual + placement). +</p> +</li> +<li> +<p> +Place the different pins after drawing the sub-sheet, and the global + labels (semi-automatic placement). +</p> +</li> +</ul></div> +<div class="paragraph"><p>The second solution is quite preferable.</p></div> +<div class="paragraph"><p><strong>Manual placement:</strong></p></div> +<div class="ulist"><ul> +<li> +<p> +To select the tool + <span class="image"> +<img src="images/icons/add_hierar_pin.png" alt="icons/add_hierar_pin_png"> +</span>. +</p> +</li> +<li> +<p> +Click on the hierarchy symbol where you want to place this pin. +</p> +</li> +</ul></div> +<div class="paragraph"><p>See below an example of the creation of the hierarchical pin called +"CONNEXION".</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_hierarchical_label.png" alt="eeschema_hierarchical_label_png"> +</div> +</div> +<div class="paragraph"><p>You can define its graphical attributes, and size or later, by editing +this pin sheet (Right click and select Edit in the PopUp menu).</p></div> +<div class="paragraph"><p>Various pin symbols are available:</p></div> +<div class="ulist"><ul> +<li> +<p> +Input +</p> +</li> +<li> +<p> +Output +</p> +</li> +<li> +<p> +Bidirectional +</p> +</li> +<li> +<p> +Tri-State +</p> +</li> +<li> +<p> +Passive +</p> +</li> +</ul></div> +<div class="paragraph"><p>These pin symbols are only graphic enhancements, and have no other role.</p></div> +<div class="paragraph"><p><strong>Automatic placement:</strong></p></div> +<div class="ulist"><ul> +<li> +<p> +Select the tool + <span class="image"> +<img src="images/icons/import_hierarchical_label.png" alt="icons/import_hierarchical_label_png"> +</span>. +</p> +</li> +<li> +<p> +Click on the hierarchy symbol from where you want to import the pins + corresponding to global labels placed in the corresponding schematic. A + hierarchical pin appears, if a new global label exists, i.e. not + corresponding to an already placed pin. +</p> +</li> +<li> +<p> +Click where you want to place this pin. +</p> +</li> +</ul></div> +<div class="paragraph"><p>All necessary pins can thus be placed quickly and without error. Their +aspect is in accordance with corresponding global labels.</p></div> +</div> +<div class="sect2"> +<h3 id="connections---hierarchical-labels">6.7. Connections - hierarchical labels</h3> +<div class="paragraph"><p>Each pin of the sheet symbol just created, must correspond to a label +called hierarchical Label in the sub-sheet. Hierarchical labels are +similar to labels, but they provide connections between sub-sheet and +root sheet. The graphical representation of the two complementary labels +(pin and HLabel) is similar. Hierarchical labels creation is made with +the tool +<span class="image"> +<img src="images/icons/add_hierarchical_label.png" alt="icons/add_hierarchical_label_png"> +</span>.</p></div> +<div class="paragraph"><p>See below a root sheet example:</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/hierarchical_label_root.png" alt="hierarchical_label_root_png"> +</div> +</div> +<div class="paragraph"><p>Notice pin VCC_PIC, connected to connector JP1.</p></div> +<div class="paragraph"><p>Here are the corresponding connections in the sub-sheet :</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/hierarchical_label_sub.png" alt="hierarchical_label_sub_png"> +</div> +</div> +<div class="paragraph"><p>You find again, the two corresponding hierarchical labels, providing +connection between the two hierarchical sheets.</p></div> +<div class="admonitionblock"> +<table><tr> +<td class="icon"> +<div class="title">Note</div> +</td> +<td class="content">You can use hierarchical labels and hierarchy pins to connect two buses, +according to the syntax (Bus [N. .m]) previously described.</td> +</tr></table> +</div> +<div class="sect3"> +<h4 id="labels-hierarchical-labels-global-labels-and-invisible-power-pins">6.7.1. Labels, hierarchical labels, global labels and invisible power pins</h4> +<div class="paragraph"><p>Here are some comments on various ways to provide connections, other +than wire connections.</p></div> +<div class="sect4"> +<h5 id="simple-labels">Simple labels</h5> +<div class="paragraph"><p>Simple labels have a local capacity of connection, i.e. limited to the +schematic sheet where they are placed. This is due to the fact that :</p></div> +<div class="ulist"><ul> +<li> +<p> +Each sheet has a sheet number. +</p> +</li> +<li> +<p> +This sheet number is associated to a label. +</p> +</li> +</ul></div> +<div class="paragraph"><p>Thus, if you place the label "TOTO" in sheet n° 3, in fact the true +label is "TOTO_3". If you also place a label "TOTO" in sheet n° 1 (root +sheet) you place in fact a label called "TOTO_1", different from +"TOTO_3". This is always true, even if there is only one sheet.</p></div> +</div> +<div class="sect4"> +<h5 id="hierarchical-labels">Hierarchical labels</h5> +<div class="paragraph"><p>What is said for the simple labels is also true for hierarchical labels.</p></div> +<div class="paragraph"><p>Thus in the same sheet, a HLabel "TOTO" is considered to be connected to +a local label "TOTO", but not connected to a HLabel or label called +"TOTO" in another sheet.</p></div> +<div class="paragraph"><p>However a HLabel is considered to be connected to the corresponding +SheetLabel symbol in the hierarchical symbol placed in the root sheet.</p></div> +</div> +<div class="sect4"> +<h5 id="invisible-power-pins">Invisible power pins</h5> +<div class="paragraph"><p>It was seen that invisible power pins were connected together if they +have the same name. Thus all the power pins declared "Invisible Power +Pins" and named VCC are connected and form the equipotential VCC, +whatever the sheet they are placed on.</p></div> +<div class="paragraph"><p>This means that if you place a VCC label in a sub-sheet, it will not be +connected to VCC pins, because this label is actually VCC_n, where n is +the sheet number.</p></div> +<div class="paragraph"><p>If you want this label VCC to be really connected to the equipotential +VCC, it will have to be explicitly connected to an invisible power pin, +thanks to a VCC power port.</p></div> +</div> +</div> +<div class="sect3"> +<h4 id="global-labels">6.7.2. Global labels</h4> +<div class="paragraph"><p>Global labels that have an identical name are connected across the whole +hierarchy.</p></div> +<div class="paragraph"><p>(power labels like vcc … are global labels)</p></div> +</div> +</div> +<div class="sect2"> +<h3 id="complex-hierarchy">6.8. Complex Hierarchy</h3> +<div class="paragraph"><p>Here is an example. The same schematic is used twice (two instances). +The two sheets share the same schematic because the file name is the +same for the two sheets (“other_sheet.sch”). But the sheet names must be +different.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_complex_hierarchy.png" alt="eeschema_complex_hierarchy_png"> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="flat-hierarchy">6.9. Flat hierarchy</h3> +<div class="paragraph"><p>You can create a project using many sheets, without creating connections +between these sheets (flat hierarchy) if the next rules are respected:</p></div> +<div class="ulist"><ul> +<li> +<p> +You must create a root sheet containing the other sheets, which acts + as a link between others sheets. +</p> +</li> +<li> +<p> +No explicit connections are needed. +</p> +</li> +<li> +<p> +All connections between sheets will use global labels instead of + hierarchical labels. +</p> +</li> +</ul></div> +<div class="paragraph"><p>Here is an example of a root sheet.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_flat_hierarchy.png" alt="eeschema_flat_hierarchy_png"> +</div> +</div> +<div class="paragraph"><p>Here is the two pages, connected by global labels.</p></div> +<div class="paragraph"><p>Here is the pic_programmer.sch.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_flat_hierarchy_1.png" alt="eeschema_flat_hierarchy_1_png"> +</div> +</div> +<div class="paragraph"><p>Here is the pic_sockets.sch.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_flat_hierarchy_2.png" alt="eeschema_flat_hierarchy_2_png"> +</div> +</div> +<div class="paragraph"><p>Look at global labels.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_flat_hierarchy_3.png" alt="eeschema_flat_hierarchy_3_png"> +</div> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="automatic-classification-annotation">7. Automatic classification Annotation</h2> +<div class="sectionbody"> +<div class="sect2"> +<h3 id="_introduction_2">7.1. Introduction</h3> +<div class="paragraph"><p>The automatic classification annotation tool allows you to automatically +assign a designator to components in your schematic. For multi-parts +components, assign a multi-part suffix to minimize the number of these +packages. The automatic classification annotation tool is accessible via +the icon +<span class="image"> +<img src="images/icons/annotate.png" alt="icons_annotate_png"> +</span>. +Here you find its main window.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/annotate-dialog.png" alt="annotate-dialog_img"> +</div> +</div> +<div class="paragraph"><p>Various possibilities are available:</p></div> +<div class="ulist"><ul> +<li> +<p> +Annotate all the components (reset existing annotation option) +</p> +</li> +<li> +<p> +Annotate all the components, but do not swap any previously annotated + multi-unit parts. +</p> +</li> +<li> +<p> +Annotate new components only (i.e. those whose reference finishes by? + like IC? ) (keep existing annotation option). +</p> +</li> +<li> +<p> +Annotate the whole hierarchy (use the entire schematic option). +</p> +</li> +<li> +<p> +Annotate the current sheet only (use current page only option). +</p> +</li> +</ul></div> +<div class="paragraph"><p>The “Reset, but do not swap any annotated multi-unit parts” option keeps +all existing associations between multi-unit parts. That is, if you have +U2A and U2B, they may be reannotated to U1A and U1B respectively, but they will +never be reannotated to U1A and U2A, nor to U2B and U2A. This is useful if +you want to ensure that pin groupings are maintained, if you have already +decided by yourself which subunits are best placed where.</p></div> +<div class="paragraph"><p>The annotation order choice gives the method used to set the reference +number inside each sheet of the hierarchy.</p></div> +<div class="paragraph"><p>Except for particular cases, an automatic annotation applies to the +whole project (all sheets) and to the new components, if you don’t want +to modify previous annotations.</p></div> +<div class="paragraph"><p>The Annotation Choice gives the method used to calculate reference Id:</p></div> +<div class="ulist"><ul> +<li> +<p> +Use first free number in schematic: components are annotated from 1 + (for each reference prefix). If a previous annotation exists, not yet in + use numbers will be used. +</p> +</li> +<li> +<p> +Start to sheet number*100 and use first free number: annotation start + from 101 for the sheet 1, from 201 for the sheet 2, etc. If there are + more than 99 items having the same reference prefix (U, R) inside the + sheet 1, the annotation tool uses the number 200 and more, and + annotation for sheet 2 will start from the next free number. +</p> +</li> +<li> +<p> +Start to sheet number*1000 and use first free number. Annotation start + from 1001 for the sheet 1, from 2001 for the sheet 2. +</p> +</li> +</ul></div> +</div> +<div class="sect2"> +<h3 id="some-examples">7.2. Some examples</h3> +<div class="sect3"> +<h4 id="annotation-order">7.2.1. Annotation order</h4> +<div class="paragraph"><p>This example shows 5 elements placed, but not annotated.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_annotation_order_none.png" alt="eeschema_annotation_order_none_png"> +</div> +</div> +<div class="paragraph"><p>After the annotation tool Is executed, the following result is obtained.</p></div> +<div class="paragraph"><p>Sort by X position.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_annotation_order_x.png" alt="eeschema_annotation_order_x_png"> +</div> +</div> +<div class="paragraph"><p>Sort by Y position.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_annotation_order_y.png" alt="eeschema_annotation_order_y_png"> +</div> +</div> +<div class="paragraph"><p>You can see that four 74LS00 gates were distributed in U1 package, and +that the fifth 74LS00 has been assigned to the next, U2.</p></div> +</div> +<div class="sect3"> +<h4 id="annotation-choice">7.2.2. Annotation Choice</h4> +<div class="paragraph"><p>Here is an annotation in sheet 2 where the option use first free number +in schematic was set.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_annotation_choice_free.png" alt="eeschema_annotation_choice_free_png"> +</div> +</div> +<div class="paragraph"><p>Option start to sheet number*100 and use first free number give the +following result.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_annotation_choice_x100.png" alt="eeschema_annotation_choice_x100_png"> +</div> +</div> +<div class="paragraph"><p>The option start to sheet number*1000 and use first free number gives +the following result.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_annotation_choice_x1000.png" alt="eeschema_annotation_choice_x1000_png"> +</div> +</div> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="erc">8. Design verification with Electrical Rules Check</h2> +<div class="sectionbody"> +<div class="sect2"> +<h3 id="_introduction_3">8.1. Introduction</h3> +<div class="paragraph"><p>The Electrical Rules Check (ERC) tool performs an automatic check of +your schematic. The ERC checks for any errors in your sheet, such as +unconnected pins, unconnected hierarchical symbols, shorted outputs, +etc. Naturally, an automatic check is not infallible, and the software +that makes it possible to detect all design errors is not yet 100% +complete. Such a check is very useful, because it allows you to detect +many oversights and small errors.</p></div> +<div class="paragraph"><p>In fact all detected errors must be checked and then corrected before +proceeding as normal. The quality of the ERC is directly related to the +care taken in declaring electrical pin properties during library +creation. ERC output is reported as "errors" or "warnings".</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/dialog_erc.png" alt="ERC dialog"> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="how-to-use-erc">8.2. How to use ERC</h3> +<div class="paragraph"><p>ERC can be started by clicking on the icon +<span class="image"> +<img src="images/icons/erc.png" alt="ERC icon"> +</span>.</p></div> +<div class="paragraph"><p>Warnings are placed on the schematic elements raising an ERC error (pins +or labels).</p></div> +<div class="admonitionblock"> +<table><tr> +<td class="icon"> +<div class="title">Note</div> +</td> +<td class="content"> +<div class="ulist"><ul> +<li> +<p> +In this dialog window, when clicking on an error message you can jump + to the corresponding marker in the schematic. +</p> +</li> +<li> +<p> +In the schematic right-click on a marker to access the corresponding + diagnostic message. +</p> +</li> +</ul></div> +</td> +</tr></table> +</div> +<div class="paragraph"><p>You can also delete error markers from the dialog.</p></div> +</div> +<div class="sect2"> +<h3 id="example-of-erc">8.3. Example of ERC</h3> +<div class="imageblock"> +<div class="content"> +<img src="images/erc_pointers.png" alt="ERC pointers"> +</div> +</div> +<div class="paragraph"><p>Here you can see four errors:</p></div> +<div class="ulist"><ul> +<li> +<p> +Two outputs have been erroneously connected together (red arrow). +</p> +</li> +<li> +<p> +Two inputs have been left unconnected (green arrow). +</p> +</li> +<li> +<p> +There is an error on an invisible power port, power flag is missing + (green arrow on the top). +</p> +</li> +</ul></div> +</div> +<div class="sect2"> +<h3 id="displaying-diagnostics">8.4. Displaying diagnostics</h3> +<div class="paragraph"><p>By right-clicking on a marker the pop-up menu allows you to access the ERC +marker diagnostic window.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/erc_pointers_info.png" alt="ERC pointers info"> +</div> +</div> +<div class="paragraph"><p>and when clicking on Marker Error Info you can get a description of the +error.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/erc_pointers_message.png" alt="erc_pointers_message_png"> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="power-pins-and-power-flags">8.5. Power pins and Power flags</h3> +<div class="paragraph"><p>It is common to have an error or a warning on power pins, even though +all seems normal. See example above. This happens because, in most +designs, the power is provided by connectors that are not power sources +(like regulator output, which is declared as Power out).</p></div> +<div class="paragraph"><p>The ERC thus won’t detect any Power out pin to control this wire and +will declare them not driven by a power source.</p></div> +<div class="paragraph"><p>To avoid this warning you have to place a "PWR_FLAG" on such a power +port. Take a look at the following example:</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_power_pins_and_flags.png" alt="eeschema_power_pins_and_flags_png"> +</div> +</div> +<div class="paragraph"><p>The error marker will then disappear.</p></div> +<div class="paragraph"><p>Most of the time, a PWR_FLAG must be connected to GND, because usually +regulators have outputs declared as power out, but ground pins are never +power out (the normal attribute is power in), so grounds never appear +connected to a power source without a pwr_flag.</p></div> +</div> +<div class="sect2"> +<h3 id="configuration">8.6. Configuration</h3> +<div class="paragraph"><p><em>The Options</em> panel allows you to configure connectivity rules to define +electrical conditions for errors and warnings check.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_erc_options.png" alt="eeschema_erc_options_png"> +</div> +</div> +<div class="paragraph"><p>Rules can be changed by clicking on the desired square of the matrix, +causing it to cycle through the choices: normal, warning, error.</p></div> +</div> +<div class="sect2"> +<h3 id="erc-report-file">8.7. ERC report file</h3> +<div class="paragraph"><p>An ERC report file can be generated and saved by checking the option +Write ERC report. The file extension for ERC report files is .erc. Here +is an example of ERC report file.</p></div> +<div class="listingblock"> +<div class="content monospaced"> +<pre>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</pre> +</div></div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="create-a-netlist">9. Create a Netlist</h2> +<div class="sectionbody"> +<div class="sect2"> +<h3 id="_overview">9.1. Overview</h3> +<div class="paragraph"><p>A netlist is a file which describes electrical connections between +components. In the netlist file you can find:</p></div> +<div class="ulist"><ul> +<li> +<p> +The list of the components +</p> +</li> +<li> +<p> +The list of connections between components, called equi-potential + nets. +</p> +</li> +</ul></div> +<div class="paragraph"><p>Different netlist formats exist. Sometimes the components list and the +equi-potential list are two separate files. This netlist is fundamental +in the use of schematic capture software, because the netlist is the +link with other electronic CAD software, like:</p></div> +<div class="ulist"><ul> +<li> +<p> +PCB software. +</p> +</li> +<li> +<p> +Schematic and PCB Simulators. +</p> +</li> +<li> +<p> +CPLD (and other programmable IC’s) compilers. +</p> +</li> +</ul></div> +<div class="paragraph"><p>Eeschema supports several netlist formats.</p></div> +<div class="ulist"><ul> +<li> +<p> +PCBNEW format (printed circuits). +</p> +</li> +<li> +<p> +ORCAD PCB2 format (printed circuits). +</p> +</li> +<li> +<p> +CADSTAR format (printed circuits). +</p> +</li> +<li> +<p> +Spice format, for various simulators (the Spice format is also used by + other simulators). +</p> +</li> +</ul></div> +</div> +<div class="sect2"> +<h3 id="netlist-formats">9.2. Netlist formats</h3> +<div class="paragraph"><p>Select the tool +<span class="image"> +<img src="images/icons/netlist.png" alt="Netlist icon"> +</span> +to open the netlist creation dialog box.</p></div> +<div class="paragraph"><p>Pcbnew selected</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_netlist_dialog_pcbnew.png" alt="eeschema_netlist_dialog_pcbnew_png"> +</div> +</div> +<div class="paragraph"><p>Spice selected</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_netlist_dialog_spice.png" alt="eeschema_netlist_dialog_spice_png"> +</div> +</div> +<div class="paragraph"><p>Using the different tabs you can select the desired format. In Spice +format you can generate netlists with either equi-potential names (it +is more legible) or net numbers (old Spice versions accept numbers +only). By clicking the Netlist button, you will be asked for a netlist +file name.</p></div> +<div class="admonitionblock"> +<table><tr> +<td class="icon"> +<div class="title">Note</div> +</td> +<td class="content">With big projects, the netlist generation can take up to several minutes.</td> +</tr></table> +</div> +</div> +<div class="sect2"> +<h3 id="netlist-examples">9.3. Netlist examples</h3> +<div class="paragraph"><p>You can see below a schematic design using the PSPICE library:</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_netlist_schematic.png" alt="eeschema_netlist_schematic_png"> +</div> +</div> +<div class="paragraph"><p>Example of a PCBNEW netlist file:</p></div> +<div class="listingblock"> +<div class="content monospaced"> +<pre># 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</pre> +</div></div> +<div class="paragraph"><p>In PSPICE format, the netlist is as follows:</p></div> +<div class="listingblock"> +<div class="content monospaced"> +<pre>* 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</pre> +</div></div> +</div> +<div class="sect2"> +<h3 id="notes-on-netlists">9.4. Notes on Netlists</h3> +<div class="sect3"> +<h4 id="netlist-name-precautions">9.4.1. Netlist name precautions</h4> +<div class="paragraph"><p>Many software tools that use netlists do not accept spaces in the +component names, pins, equi-potential nets or others. Systematically avoid +spaces in labels, or names and value fields of components or their pins.</p></div> +<div class="paragraph"><p>In the same way, special characters other than letters and numbers can +cause problems. Note that this limitation is not related to Eeschema, +but to the netlist formats that can then become untranslatable to +software that uses netlist files.</p></div> +</div> +<div class="sect3"> +<h4 id="pspice-netlists">9.4.2. PSPICE netlists</h4> +<div class="paragraph"><p>For the Pspice simulator, you have to include some command lines in the +netlist itself (.PROBE, .AC, etc.).</p></div> +<div class="paragraph"><p>Any text line included in the schematic diagram starting with the +keyword <strong>-pspice</strong> or <strong>-gnucap</strong> will be inserted (without the keyword) at +the top of the netlist.</p></div> +<div class="paragraph"><p>Any text line included in the schematic diagram starting with the +keyword <strong>+pspice</strong> or <strong>+gnucap</strong> will be inserted (without the keyword) at +the end of the netlist.</p></div> +<div class="paragraph"><p>Here is a sample using many one-line texts and one multi-line text:</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_pspice_netlist.png" alt="eeschema_pspice_netlist_png"> +</div> +</div> +<div class="paragraph"><p>For example, if you type the following text (do not use a label!):</p></div> +<div class="literalblock"> +<div class="content monospaced"> +<pre>-PSPICE .PROBE</pre> +</div></div> +<div class="paragraph"><p>a line .PROBE will be inserted in the netlist.</p></div> +<div class="paragraph"><p>In the previous example three lines were inserted at the beginning of +the netlist and two at the end with this technique.</p></div> +<div class="paragraph"><p>If you are using multiline texts, <strong>+pspice</strong> or <strong>+gnucap</strong> keywords are +needed only once:</p></div> +<div class="literalblock"> +<div class="content monospaced"> +<pre>+PSPICE .model NPN NPN +.model PNP PNP +.lib C:\Program Files\LTC\LTspiceIV\lib\cmp\standard.bjt +.backanno</pre> +</div></div> +<div class="paragraph"><p>creates the four lines:</p></div> +<div class="literalblock"> +<div class="content monospaced"> +<pre>.model NPN NPN +.model PNP PNP +.lib C:\Program Files\LTC\LTspiceIV\lib\cmp\standard.bjt +.backanno</pre> +</div></div> +<div class="paragraph"><p>Also note that the equipotential GND must be named 0 (zero) for Pspice.</p></div> +</div> +</div> +<div class="sect2"> +<h3 id="other-formats">9.5. Other formats</h3> +<div class="paragraph"><p>For other netlist formats you can add netlist converters in the form of +plugins. These converters are automatically launched by Eeschema. Chapter +14 gives some explanations and examples of converters.</p></div> +<div class="paragraph"><p>A converter is a text file (xsl format) but one can use other languages +like Python. When using the xsl format, a tool (xsltproc.exe or +xsltproc) read the intermediate file created by Eeschema, and the +converter file to create the output file. In this case, the converter +file (a sheet style) is very small and very easy to write.</p></div> +<div class="sect3"> +<h4 id="init-the-dialog-window">9.5.1. Init the dialog window</h4> +<div class="paragraph"><p>You can add a new netlist plug-in via the Add Plugin button.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_netlist_dialog_add_plugin.png" alt="eeschema_netlist_dialog_add_plugin_png"> +</div> +</div> +<div class="paragraph"><p>Here is the plug-in PadsPcb setup window:</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_netlist_dialog_padspcb.png" alt="eeschema_netlist_dialog_padspcb_png"> +</div> +</div> +<div class="paragraph"><p>The setup will require:</p></div> +<div class="ulist"><ul> +<li> +<p> +A title (for example, the name of the netlist format). +</p> +</li> +<li> +<p> +The plug-in to launch. +</p> +</li> +</ul></div> +<div class="paragraph"><p>When the netlist is generated:</p></div> +<div class="olist arabic"><ol class="arabic"> +<li> +<p> +Eeschema creates an intermediate file *.tmp, for example test.tmp. +</p> +</li> +<li> +<p> +Eeschema runs the plug-in, which reads test.tmp and creates test.net. +</p> +</li> +</ol></div> +</div> +<div class="sect3"> +<h4 id="command-line-format">9.5.2. Command line format</h4> +<div class="paragraph"><p>Here is an example, using xsltproc.exe as a tool to convert .xsl files, +and a file netlist_form_pads-pcb.xsl as converter sheet style:</p></div> +<div class="paragraph"><p><strong>f:/kicad/bin/xsltproc.exe -o %O.net +f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl %I</strong></p></div> +<div class="paragraph"><p>With:</p></div> +<table class="tableblock frame-all grid-all" +style=" +width:100%; +"> +<col style="width:58%;"> +<col style="width:42%;"> +<tbody> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">f:/kicad/bin/xsltproc.exe</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">A tool to read and convert xsl file</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">-o %O.net</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Output file: %O will define the output file.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">File name converter (a +sheet style, xsl format).</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">%I</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Will be replaced by the intermediate file created by Eeschema +(*.tmp).</p></td> +</tr> +</tbody> +</table> +<div class="paragraph"><p>For a schematic named test.sch, the actual command line is:</p></div> +<div class="paragraph"><p>f:/kicad/bin/xsltproc.exe -o test.net +f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl test.tmp.</p></div> +</div> +<div class="sect3"> +<h4 id="converter-and-sheet-style-plug-in">9.5.3. Converter and sheet style (plug-in)</h4> +<div class="paragraph"><p>This is a very simple piece of software, because its purpose is only to +convert an input text file (the intermediate text file) to another text +file. Moreover, from the intermediate text file, you can create a BOM +list.</p></div> +<div class="paragraph"><p>When using xsltproc as the converter tool only the sheet style will be +generated.</p></div> +</div> +<div class="sect3"> +<h4 id="intermediate-netlist-file-format">9.5.4. Intermediate netlist file format</h4> +<div class="paragraph"><p>See Chapter 14 for more explanations about xslproc, descriptions of the +intermediate file format, and some examples of sheet style for +converters.</p></div> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="plot-and-print">10. Plot and Print</h2> +<div class="sectionbody"> +<div class="sect2"> +<h3 id="_introduction_4">10.1. Introduction</h3> +<div class="paragraph"><p>You can access both print and plot commands via the file menu.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_file_menu_plot.png" alt="eeschema_file_menu_plot_png"> +</div> +</div> +<div class="paragraph"><p>The suported output formats are Postscript, PDF, SVG, DXF and HPGL. You can +also directly print to your printer.</p></div> +</div> +<div class="sect2"> +<h3 id="common-printing-commands">10.2. Common printing commands</h3> +<div class="dlist"><dl> +<dt class="hdlist1"> +Plot Current Page +</dt> +<dd> +<p> +prints one file for the current sheet only. +</p> +</dd> +<dt class="hdlist1"> +Plot All Pages +</dt> +<dd> +<p> +allows you to plot the whole hierarchy (one print file is +generated for each sheet). +</p> +</dd> +</dl></div> +</div> +<div class="sect2"> +<h3 id="plot-in-postscript">10.3. Plot in Postscript</h3> +<div class="paragraph"><p>This command allows you to create PostScript files.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_plot_postscript.png" alt="eeschema_plot_postscript_png"> +</div> +</div> +<div class="paragraph"><p>The file name is the sheet name with an extension .ps. You can disable +the option "Plot border and title block". This is useful if you want to create a +postscript file for encapsulation (format .eps) often used to insert a +diagram in a word processing software. The message window displays the +file names created.</p></div> +</div> +<div class="sect2"> +<h3 id="plot-in-pdf">10.4. Plot in PDF</h3> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_plot_pdf.png" alt="eeschema_plot_pdf.png"> +</div> +</div> +<div class="paragraph"><p>Allows you to create plot files using the format PDF. +The file name is the sheet name with an extension .pdf.</p></div> +</div> +<div class="sect2"> +<h3 id="plot-in-svg">10.5. Plot in SVG</h3> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_plot_svg.png" alt="eeschema_plot_svg_png"> +</div> +</div> +<div class="paragraph"><p>Allows you to create plot files using the vectored format SVG. +The file name is the sheet name with an extension .svg.</p></div> +</div> +<div class="sect2"> +<h3 id="plot-in-dxf">10.6. Plot in DXF</h3> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_plot_dxf.png" alt="eeschema_plot_dxf_png"> +</div> +</div> +<div class="paragraph"><p>Allows you to create plot files using the format DXF. +The file name is the sheet name with an extension .dxf.</p></div> +</div> +<div class="sect2"> +<h3 id="plot-in-hpgl">10.7. Plot in HPGL</h3> +<div class="paragraph"><p>This command allows you to create an HPGL file. +In this format you can define:</p></div> +<div class="ulist"><ul> +<li> +<p> +Page size. +</p> +</li> +<li> +<p> +Origin. +</p> +</li> +<li> +<p> +Pen width (in mm). +</p> +</li> +</ul></div> +<div class="paragraph"><p>The plotter setup dialog window looks like the following:</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_plot_hpgl.png" alt="eeschema_plot_hpgl_png"> +</div> +</div> +<div class="paragraph"><p>The output file name will be the sheet name plus the extension .plt.</p></div> +<div class="sect3"> +<h4 id="sheet-size-selection">10.7.1. Sheet size selection</h4> +<div class="paragraph"><p>Sheet size is normally checked. In this case, the sheet size defined in +the title block menu will be used and the chosen scale will be 1. If a +different sheet size is selected (A4 with A0, or A with E), the scale is +automatically adjusted to fill the page.</p></div> +</div> +<div class="sect3"> +<h4 id="offset-adjustments">10.7.2. Offset adjustments</h4> +<div class="paragraph"><p>For all standard dimensions, you can adjust the offsets to center the +drawing as accurately as possible. Because plotters have an origin point +at the center or at the lower left corner of the sheet, it is necessary +to be able to introduce an offset in order to plot properly.</p></div> +<div class="paragraph"><p>Generally speaking:</p></div> +<div class="ulist"><ul> +<li> +<p> +For plotters having their origin point at the center of the sheet the + offset must be negative and set at half of the sheet dimension. +</p> +</li> +<li> +<p> +For plotters having their origin point at the lower left corner of the + sheet the offset must be set to 0. +</p> +</li> +</ul></div> +<div class="paragraph"><p>To set an offset:</p></div> +<div class="ulist"><ul> +<li> +<p> +Select sheet size. +</p> +</li> +<li> +<p> +Set offset X and offset Y. +</p> +</li> +<li> +<p> +Click on accept offset. +</p> +</li> +</ul></div> +</div> +</div> +<div class="sect2"> +<h3 id="print-on-paper">10.8. Print on paper</h3> +<div class="paragraph"><p>This command, available via the icon +<span class="image"> +<img src="images/icons/print_button.png" alt="icons/print_button_png"> +</span>, +allows you to visualize and generate design files for the standard +printer.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/print_dialog.png" alt="print_dialog_png"> +</div> +</div> +<div class="paragraph"><p>The "Print sheet reference and title block" option enables or disables +sheet references and title block.</p></div> +<div class="paragraph"><p>The "Print in black and white" option sets printing in monochrome. This +option is generally necessary if you use a black and white laser +printer, because colors are printed into half-tones that are often not +so readable.</p></div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="component-library-editor">11. Component Library Editor</h2> +<div class="sectionbody"> +<div class="sect2"> +<h3 id="general-information-about-component-libraries">11.1. General Information About Component Libraries</h3> +<div class="paragraph"><p>A component is a schematic element which contains a graphical +representation, electrical connections, and fields defining the +component. Components used in a schematic are stored in component +libraries. Eeschema provides a component library editing tool that +allows you to create libraries, add, delete or transfer components +between libraries, export components to files, and import components +from files. The library editing tool provides a simple way to manage +component library files.</p></div> +</div> +<div class="sect2"> +<h3 id="component-library-overview">11.2. Component Library Overview</h3> +<div class="paragraph"><p>A component library is composed of one or more components. Generally the +components are logically grouped by function, type, and/or manufacturer.</p></div> +<div class="paragraph"><p>A component is composed of:</p></div> +<div class="ulist"><ul> +<li> +<p> +Graphical items (lines, circles, arcs, text, etc ) that provide the + symbolic definition. +</p> +</li> +<li> +<p> +Pins which have both graphic properties (line, clock, inverted, low + level active, etc ) and electrical properties (input, output, + bidirectional, etc.) used by the Electrical Rules Check (ERC) tool. +</p> +</li> +<li> +<p> +Fields such as references, values, corresponding footprint names for + PCB design, etc. +</p> +</li> +<li> +<p> +Aliases used to associate a common component such as a 7400 with all + of its derivatives such as 74LS00, 74HC00, and 7437. All of these + aliases share the same library component. +</p> +</li> +</ul></div> +<div class="paragraph"><p>Proper component designing requires:</p></div> +<div class="ulist"><ul> +<li> +<p> +Defining if the component is made up of one or more units. +</p> +</li> +<li> +<p> +Defining if the component has an alternate body style also known as a + De Morgan representation. +</p> +</li> +<li> +<p> +Designing its symbolic representation using lines, rectangles, + circles, polygons and text. +</p> +</li> +<li> +<p> +Adding pins by carefully defining each pin’s graphical elements, + name, number, and electrical property (input, output, tri-state, power + port, etc.). +</p> +</li> +<li> +<p> +Adding an alias if other components have the same symbol and pin out + or removing one if the component has been created from another + component. +</p> +</li> +<li> +<p> +Adding optional fields such as the name of the footprint used by the PCB + design software and/or defining their visibility. +</p> +</li> +<li> +<p> +Documenting the component by adding a description string and links to + data sheets, etc. +</p> +</li> +<li> +<p> +Saving it in the desired library. +</p> +</li> +</ul></div> +</div> +<div class="sect2"> +<h3 id="component-library-editor-overview">11.3. Component Library Editor Overview</h3> +<div class="paragraph"><p>The component library editor main window is shown below. It consists +of three tool bars for quick access to common features and a component +viewing/editing area. Not all commands are available on the tool bars +but can be accessed using the menus.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/libedit_main_window.png" alt="libedit_main_window_png"> +</div> +</div> +<div class="sect3"> +<h4 id="main-toolbar">11.3.1. Main Toolbar</h4> +<div class="paragraph"><p>The main tool bar typically located at the top of the main window shown +below consists of the library management tools, undo/redo commands, zoom +commands, and component properties dialogs.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/toolbar_libedit.png" alt="images/toolbar_libedit.png"> +</div> +</div> +<table class="tableblock frame-all grid-all" +style=" +width:100%; +"> +<col style="width:20%;"> +<col style="width:80%;"> +<tbody> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/save_library.png" alt="icons/save_library_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Save the currently selected library. The button will be disabled if no +library is currently selected or no changes to the currently selected +library have been made.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/library.png" alt="icons/library_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Select the library to edit.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/delete.png" alt="icons/delete_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Delete a component from the currently selected library or any library +defined by the project if no library is currently selected.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/library_browse.png" alt="icons/library_browse_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Open the component library browser to select the library and component +to edit.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/new_component.png" alt="icons/new_component_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Create a new component.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/import_cmp_from_lib.png" alt="icons/import_cmp_from_lib_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Load component from currently selected library for editing.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/copycomponent.png" alt="icons/copycomponent_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Create a new component from the currently loaded component.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/save_part_in_mem.png" alt="icons/save_part_in_mem_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Save the current component changes in memory. The library file is not +changed.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/import.png" alt="icons/import_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Import one component from a file.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/export.png" alt="icons/export_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Export the current component to a file.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/new_library.png" alt="icons/new_library_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Create a new library file containing the current component. Note: new +libraries are not automatically added to the project.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/undo.png" alt="icons/undo_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Undo last edit.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/redo.png" alt="icons/redo_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Redo last undo.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/part_properties.png" alt="icons/part_properties_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Edit the current component properties.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/add_text.png" alt="icons/add_text_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Edit the fields of current component.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/erc.png" alt="icons/erc_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Test the current component for design errors.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/zoom_in.png" alt="images/icons/zoom_in.png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Zoom in.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/zoom_out.png" alt="images/icons/zoom_out.png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Zoom out.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/zoom_redraw.png" alt="images/icons/zoom_redraw.png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Refresh display.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/zoom_fit_in_page.png" alt="images/icons/zoom_fit_in_page.png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Zoom to fit component in display.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/morgan1.png" alt="icons/morgan1_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Select the normal body style. The button is disabled if the current +component does not have an alternate body style.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/morgan2.png" alt="icons/morgan2_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Select the alternate body style. The button is disabled if the current +component does not have an alternate body style.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/datasheet.png" alt="icons/datasheet_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Show the associated documentation. The button will be disabled if no +documentation is defined for the current component.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/toolbar_libedit_part.png" alt="images/toolbar_libedit_part.png" width="80%"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Select the unit to display. The drop down control will be disabled if +the current component is not derived from multiple units.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/toolbar_libedit_alias.png" alt="images/toolbar_libedit_part.png" width="80%"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Select the alias. The drop down control will be disabled if the +current component does not have any aliases.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/pin2pin.png" alt="icons/pin2pin_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Pin editing: independent editing for pin shape and position for +components with multiple units and alternate symbols.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/pin_table.png" alt="icons/pin_table_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Show pin table.</p></td> +</tr> +</tbody> +</table> +</div> +<div class="sect3"> +<h4 id="element-toolbar">11.3.2. Element Toolbar</h4> +<div class="paragraph"><p>The vertical toolbar typically located on the right hand side of the +main window allows you to place all of the elements required to design a +component. The table below defines each toolbar button.</p></div> +<table class="tableblock frame-all grid-all" +style=" +width:100%; +"> +<col style="width:10%;"> +<col style="width:90%;"> +<tbody> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/cursor.png" alt="icons/cursor_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Select tool. Right-clicking with the select tool opens the context menu +for the object under the cursor. Left-clicking with the select tool +displays the attributes of the object under the cursor in the message +panel at the bottom of the main window. Double-left-clicking with the +select tool will open the properties dialog for the object under the +cursor.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/pin.png" alt="icons/pin_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Pin tool. Left-click to add a new pin.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/add_text.png" alt="icons/add_text_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Graphical text tool. Left-click to add a new graphical text item.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/add_rectangle.png" alt="icons/add_rectangle_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Rectangle tool. Left-click to begin drawing the first corner of a +graphical rectangle. Left-click again to place the opposite corner of +the rectangle.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/add_circle.png" alt="icons/add_circle_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Circle tool. Left-click to begin drawing a new graphical circle from +the center. Left-click again to define the radius of the cicle.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/add_arc.png" alt="icons/add_arc_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Arc tool. Left-click to begin drawing a new graphical arc item from the +center. Left-click again to define the first arc end point. Left-click +again to define the second arc end point.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/add_polygon.png" alt="icons/add_polygon_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Polygon tool. Left-click to begin drawing a new graphical polygon item +in the current component. Left-click for each addition polygon line. +Double-left-click to complete the polygon.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/anchor.png" alt="icons/anchor_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Anchor tool. Left-click to set the anchor position of the component.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/import.png" alt="icons/import_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Import a component from a file.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/export.png" alt="icons/export_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Export the current component to a file.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/delete.png" alt="icons/delete_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Delete tool. Left-click to delete an object from the current component.</p></td> +</tr> +</tbody> +</table> +</div> +<div class="sect3"> +<h4 id="options-toolbar">11.3.3. Options Toolbar</h4> +<div class="paragraph"><p>The vertical tool bar typically located on the left hand side of the +main window allows you to set some of the editor drawing options. The +table below defines each tool bar button.</p></div> +<table class="tableblock frame-all grid-all" +style=" +width:100%; +"> +<col style="width:10%;"> +<col style="width:90%;"> +<tbody> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/grid.png" alt="icons/grid_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Toggle grid visibility on and off.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/unit_inch.png" alt="icons/unit_inch_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Set units to inches.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/unit_mm.png" alt="icons/unit_mm_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Set units to millimeters.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/cursor_shape.png" alt="icons/cursor_shape_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Toggle full screen cursor on and off.</p></td> +</tr> +</tbody> +</table> +</div> +</div> +<div class="sect2"> +<h3 id="library-selection-and-maintenance">11.4. Library Selection and Maintenance</h3> +<div class="paragraph"><p>The selection of the current library is possible via the +<span class="image"> +<img src="images/icons/library.png" alt="icons/library_png"> +</span> +which shows you all available libraries and allows you to select one. +When a component is loaded or saved, it will be put in this library. The +library name of component is the contents of its value field.</p></div> +<div class="admonitionblock"> +<table><tr> +<td class="icon"> +<div class="title">Note</div> +</td> +<td class="content"> +<div class="ulist"><ul> +<li> +<p> +You must load a library into Eeschema, in order to access its contents. +</p> +</li> +<li> +<p> +The content of the current library can be saved after modification, by + clicking on the + <span class="image"> +<img src="images/icons/save_library.png" alt="icons/save_library_png"> +</span> + on the main tool bar. +</p> +</li> +<li> +<p> +A component can be removed from any library by clicking on the + <span class="image"> +<img src="images/icons/delete.png" alt="icons/delete_png"> +</span>. +</p> +</li> +</ul></div> +</td> +</tr></table> +</div> +<div class="sect3"> +<h4 id="select-and-save-a-component">11.4.1. Select and Save a Component</h4> +<div class="paragraph"><p>When you edit a component you are not really working on the component in +its library but on a copy of it in the computer’s memory. Any edit +action can be undone easily. A component may be loaded from a local library +or from an existing component.</p></div> +<div class="sect4"> +<h5 id="component-selection">Component Selection</h5> +<div class="paragraph"><p>Clicking the +<span class="image"> +<img src="images/icons/import_cmp_from_lib.png" alt="icons/import_cmp_from_lib_png"> +</span> +on the main tool bar displays the list of the available components that +you can select and load from the currently selected library.</p></div> +<div class="admonitionblock"> +<table><tr> +<td class="icon"> +<div class="title">Note</div> +</td> +<td class="content">If a component is selected by its alias, the name of the loaded component +is displayed on the window title bar instead of the selected alias. The list +of component aliases is always loaded with each component and can be +edited. You can create a new component by selecting an alias of the +current component from the +<span class="image"> +<img src="images/toolbar_libedit_alias.png" alt="images/toolbar_libedit_alias.png"> +</span>. +The first item in the alias list is the root name of the component.</td> +</tr></table> +</div> +<div class="admonitionblock"> +<table><tr> +<td class="icon"> +<div class="title">Note</div> +</td> +<td class="content">Alternatively, clicking the +<span class="image"> +<img src="images/icons/import.png" alt="icons/import_png"> +</span> +allows you to load a component which has been previously saved +by the +<span class="image"> +<img src="images/icons/export.png" alt="icons/export_png"> +</span>.</td> +</tr></table> +</div> +</div> +<div class="sect4"> +<h5 id="save-a-component">Save a Component</h5> +<div class="paragraph"><p>After modification, a component can be saved in the current library, +in a new library, or exported to a backup file.</p></div> +<div class="paragraph"><p>To save the modified component in the current library, click the +<span class="image"> +<img src="images/icons/save_part_in_mem.png" alt="icons/save_part_in_mem_png"> +</span>. +Please note that the update command only saves the component changes in +the local memory. This way, you can make up your mind before you save the +library.</p></div> +<div class="paragraph"><p>To permanently save the component changes to the library file, click the +<span class="image"> +<img src="images/icons/save_library.png" alt="icons/save_library_png"> +</span> +which will overwrite the existing library file with the component +changes.</p></div> +<div class="paragraph"><p>If you want to create a new library containing the current component, +click the +<span class="image"> +<img src="images/icons/new_library.png" alt="icons/new_library_png"> +</span>. +You will be asked to enter a new library name.</p></div> +<div class="admonitionblock"> +<table><tr> +<td class="icon"> +<div class="title">Note</div> +</td> +<td class="content"> +<div class="paragraph"><p>New libraries are not automatically added to the current project.</p></div> +<div class="paragraph"><p>You must add any new library you wish to use in a schematic to the list +of project libraries in Eeschema using the component configuration dialog.</p></div> +<div class="paragraph"><p><span class="image"> +<img src="images/en/libsettings.png" alt="Library settings" width="50%"> +</span></p></div> +</td> +</tr></table> +</div> +<div class="paragraph"><p>Click the +<span class="image"> +<img src="images/icons/export.png" alt="icons/export_png"> +</span> +to create a file containing only the current component. This file +will be a standard library file which will contain only one component. +This file can be used to import the component into another library. In +fact, the create new library command and the export command are basically +identical.</p></div> +</div> +<div class="sect4"> +<h5 id="transfer-components-to-another-library">Transfer Components to Another Library</h5> +<div class="paragraph"><p>You can very easily copy a component from a source library into a +destination library using the following commands:</p></div> +<div class="ulist"><ul> +<li> +<p> +Select the source library by clicking the + <span class="image"> +<img src="images/icons/library.png" alt="icons/library_png"> +</span>. +</p> +</li> +<li> +<p> +Load the component to be transferred by clicking the + <span class="image"> +<img src="images/icons/import_cmp_from_lib.png" alt="icons/import_cmp_from_lib_png"> +</span>. + The component will be displayed in the editing area. +</p> +</li> +<li> +<p> +Select the destination library by clicking the + <span class="image"> +<img src="images/icons/library.png" alt="icons/library_png"> +</span>. +</p> +</li> +<li> +<p> +Save the current component to the new library in the local memory by + clicking the + <span class="image"> +<img src="images/icons/save_part_in_mem.png" alt="icons/save_part_in_mem_png"> +</span>. +</p> +</li> +<li> +<p> +Save the component in the current local library file by clicking the + <span class="image"> +<img src="images/icons/save_library.png" alt="icons/save_library_png"> +</span>. +</p> +</li> +</ul></div> +</div> +<div class="sect4"> +<h5 id="discarding-component-changes">Discarding Component Changes</h5> +<div class="paragraph"><p>When you are working on a component, the edited component is only a +working copy of the actual component in its library. This means that as +long as you have not saved it, you can just reload it to discard all +changes made. If you have already updated it in the local memory and +you have not saved it to the library file, you can always quit and start +again. Eeschema will undo all the changes.</p></div> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="creating-library-components">11.5. Creating Library Components</h3> +<div class="sect3"> +<h4 id="create-a-new-component">11.5.1. Create a New Component</h4> +<div class="paragraph"><p>A new component can be created by clicking the +<span class="image"> +<img src="images/icons/new_component.png" alt="icons/new_component_png"> +</span>. +You will be asked for a component name (this name is used as default +value for the value field in the schematic editor), the reference designator +(U, IC, R…), the number of units per package (for example a 7400 is made of +4 units per package) and if an alternate body style (sometimes referred to +as DeMorgan) is desired. If the reference designator field is left empty, it +will default to "U". These properties can be changed later, but it is preferable to +set them correctly at the creation of the component.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_component_properties.png" alt="eeschema_component_properties_png"> +</div> +</div> +<div class="paragraph"><p>A new component will be created using the properties above and will +appear in the editor as shown below.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_libedit_new.png" alt="eeschema_libedit_new_png"> +</div> +</div> +</div> +<div class="sect3"> +<h4 id="create-a-component-from-another-component">11.5.2. Create a Component from Another Component</h4> +<div class="paragraph"><p>Often, the component that you want to make is similar to one already in +a component library. In this case it is easy to load and modify an +existing component.</p></div> +<div class="ulist"><ul> +<li> +<p> +Load the component which will be used as a starting point. +</p> +</li> +<li> +<p> +Click on the + <span class="image"> +<img src="images/icons/copycomponent.png" alt="icons/copycomponent_png"> +</span> + or modify its name by right-clicking on the value field and editing the text. + If you chose to duplicate the current component, you will be prompted + for a new component name. +</p> +</li> +<li> +<p> +If the model component has aliases, you will be prompted to remove + aliases from the new component which conflict with the current library. + If the answer is no the new component creation will be aborted. + Component libraries cannot have any duplicate names or aliases. +</p> +</li> +<li> +<p> +Edit the new component as required. +</p> +</li> +<li> +<p> +Update the new component in the current library by clicking the + <span class="image"> +<img src="images/icons/save_part_in_mem.png" alt="icons/save_part_in_mem_png"> +</span> + or save to a new library by clicking the + <span class="image"> +<img src="images/icons/new_library.png" alt="icons/new_library_png"> +</span> + or if you want to save this new component in an other existing + library select the other library by clicking on the + <span class="image"> +<img src="images/icons/library.png" alt="icons/library_png"> +</span> + and save the new component. +</p> +</li> +<li> +<p> +Save the current library file to disk by clicking the + <span class="image"> +<img src="images/icons/save_library.png" alt="icons/save_library_png"> +</span>. +</p> +</li> +</ul></div> +</div> +<div class="sect3"> +<h4 id="component-properties">11.5.3. Component Properties</h4> +<div class="paragraph"><p>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 +<span class="image"> +<img src="images/icons/part_properties.png" alt="icons/part_properties_png"> +</span> +to show the dialog below.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_properties_for_component.png" alt="eeschema_properties_for_component_png"> +</div> +</div> +<div class="paragraph"><p>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.</p></div> +<div class="paragraph"><p>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.</p></div> +<div class="paragraph"><p>The example below shows a component with the "Place pin name inside" +option unchecked. Notice the position of the names and pin numbers.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_uncheck_pin_name_inside.png" alt="eeschema_uncheck_pin_name_inside_png"> +</div> +</div> +</div> +<div class="sect3"> +<h4 id="components-with-alternate-symbols">11.5.4. Components with Alternate Symbols</h4> +<div class="paragraph"><p>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 +<span class="image"> +<img src="images/icons/morgan1.png" alt="icons/morgan1_png"> +</span>.</p></div> +<div class="paragraph"><p>To edit the alternate symbol click on the +<span class="image"> +<img src="images/icons/morgan2.png" alt="icons/morgan2_png"> +</span>. +Use the +<span class="image"> +<img src="images/toolbar_libedit_alias.png" alt="images/toolbar_libedit_part.png"> +</span> +shown below to select the unit you wish to edit.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_libedit_select_unit.png" alt="eeschema_libedit_select_unit_png"> +</div> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="graphical-elements">11.6. Graphical Elements</h3> +<div class="paragraph"><p>Graphical elements create the symbolic representation of a component and +contain no electrical connection information. Their design is possible +using the following tools:</p></div> +<div class="ulist"><ul> +<li> +<p> +Lines and polygons defined by start and end points. +</p> +</li> +<li> +<p> +Rectangles defined by two diagonal corners. +</p> +</li> +<li> +<p> +Circles defined by the center and radius. +</p> +</li> +<li> +<p> +Arcs defined by the starting and ending point of the arc and its + center. An arc goes from 0° to 180°. +</p> +</li> +</ul></div> +<div class="paragraph"><p>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.</p></div> +<div class="sect3"> +<h4 id="graphical-element-membership">11.6.1. Graphical Element Membership</h4> +<div class="paragraph"><p>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.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_libedit_context_menu.png" alt="eeschema_libedit_context_menu_png"> +</div> +</div> +<div class="paragraph"><p>You can also double-left-click on an element to modify its properties. +Below is the properties dialog for a polygon element.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_libedit_polyline_properties.png" alt="eeschema_libedit_polyline_properties_png"> +</div> +</div> +<div class="paragraph"><p>The properties of a graphic element are:</p></div> +<div class="ulist"><ul> +<li> +<p> +Line width which defines the width of the element’s line in the + current drawing units. +</p> +</li> +<li> +<p> +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. +</p> +</li> +<li> +<p> +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. +</p> +</li> +<li> +<p> +The fill style setting determines if the symbol defined by the + graphical element is to be drawn unfilled, background filled, or + foreground filled. +</p> +</li> +</ul></div> +</div> +<div class="sect3"> +<h4 id="graphical-text-elements">11.6.2. Graphical Text Elements</h4> +<div class="paragraph"><p>The +<span class="image"> +<img src="images/icons/add_text.png" alt="icons/add_text_png"> +</span> +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.</p></div> +</div> +</div> +<div class="sect2"> +<h3 id="multiple-units-per-component-and-alternate-body-styles">11.7. Multiple Units per Component and Alternate Body Styles</h3> +<div class="paragraph"><p>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.</p></div> +<div class="paragraph"><p>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.</p></div> +<div class="paragraph"><p>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).</p></div> +<div class="sect3"> +<h4 id="example-of-a-component-having-multiple-units-with-different-symbols">11.7.1. Example of a Component Having Multiple Units with Different Symbols:</h4> +<div class="paragraph"><p>This is an example of a relay defined with three units per package, +switch 1, switch 2, and the coil:</p></div> +<div class="paragraph"><p>Option: pins are not linked. One can add or edit pins for each unit +without any coupling with pins of other units.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_libedit_pins_per_part.png" alt="eeschema_libedit_pins_per_part_png"> +</div> +</div> +<div class="paragraph"><p>All units are not interchangeable must be selected.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_libedit_not_interchangeable.png" alt="eeschema_libedit_not_interchangeable_png"> +</div> +</div> +<div class="paragraph"><p>Unit 1</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_libedit_unit1.png" alt="eeschema_libedit_unit1_png"> +</div> +</div> +<div class="paragraph"><p>Unit 2</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_libedit_unit2.png" alt="eeschema_libedit_unit2_png"> +</div> +</div> +<div class="paragraph"><p>Unit 3</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_libedit_unit3.png" alt="eeschema_libedit_unit3_png"> +</div> +</div> +<div class="paragraph"><p>It does not have the same symbol and pin layout and therefore is not +interchangeable with units 1 and 2.</p></div> +<div class="sect4"> +<h5 id="graphical-symbolic-elements">Graphical Symbolic Elements</h5> +<div class="paragraph"><p>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.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_libedit_disable_common.png" alt="eeschema_libedit_disable_common_png"> +</div> +</div> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="pin-creation-and-editing">11.8. Pin Creation and Editing</h3> +<div class="paragraph"><p>You can click on the +<span class="image"> +<img src="images/icons/pin.png" alt="icons/pin_png"> +</span> +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.</p></div> +<div class="sect3"> +<h4 id="pin-overview">11.8.1. Pin Overview</h4> +<div class="paragraph"><p>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.</p></div> +<div class="paragraph"><p>Important notes:</p></div> +<div class="ulist"><ul> +<li> +<p> +Do not use spaces in pin names and numbers. +</p> +</li> +<li> +<p> +To define a pin name with an inverted signal (overline) use the + <span class="monospaced">~</span> (tilde) character. The next <span class="monospaced">~</span> character will turn off the overline. + For example <span class="monospaced">\~FO~O</span> would display <span class="overline">FO</span> O. +</p> +</li> +<li> +<p> +If the pin name is reduced to a single symbol, the pin is regarded as + unnamed. +</p> +</li> +<li> +<p> +Pin names starting with <span class="monospaced">#</span>, are reserved for power port symbols. +</p> +</li> +<li> +<p> +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. +</p> +</li> +<li> +<p> +Duplicate pin "numbers" cannot exist in a component. +</p> +</li> +</ul></div> +</div> +<div class="sect3"> +<h4 id="pin-properties">11.8.2. Pin Properties</h4> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_libedit_pin_properties.png" alt="eeschema_libedit_pin_properties_png"> +</div> +</div> +<div class="paragraph"><p>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 to modify:</p></div> +<div class="ulist"><ul> +<li> +<p> +Name and name’s text size. +</p> +</li> +<li> +<p> +Number and number’s text size. +</p> +</li> +<li> +<p> +Length. +</p> +</li> +<li> +<p> +Electrical and graphical types. +</p> +</li> +<li> +<p> +Unit and alternate representation membership. +</p> +</li> +<li> +<p> +Visibility. +</p> +</li> +</ul></div> +</div> +<div class="sect3"> +<h4 id="pins-graphical-styles">11.8.3. Pins Graphical Styles</h4> +<div class="paragraph"><p>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.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_libedit_pin_properties_style.png" alt="eeschema_libedit_pin_properties_style_png"> +</div> +</div> +</div> +<div class="sect3"> +<h4 id="pin-electrical-types">11.8.4. Pin Electrical Types</h4> +<div class="paragraph"><p>Choosing the correct electrical type is important for the schematic ERC +tool. The electrical types defined are:</p></div> +<div class="ulist"><ul> +<li> +<p> +Bidirectional which indicates bidirectional pins commutable between + input and output (microprocessor data bus for example). +</p> +</li> +<li> +<p> +Tri-state is the usual 3 states output. +</p> +</li> +<li> +<p> +Passive is used for passive component pins, resistors, connectors, + etc. +</p> +</li> +<li> +<p> +Unspecified can be used when the ERC check doesn’t matter. +</p> +</li> +<li> +<p> +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. +</p> +</li> +<li> +<p> +Power output is used for regulator outputs. +</p> +</li> +<li> +<p> +Open emitter and open collector types can be used for logic outputs + defined as such. +</p> +</li> +<li> +<p> +Not connected is used when a component has a pin that has no internal + connection. +</p> +</li> +</ul></div> +</div> +<div class="sect3"> +<h4 id="pin-global-properties">11.8.5. Pin Global Properties</h4> +<div class="paragraph"><p>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.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_libedit_pin_context_menu.png" alt="eeschema_libedit_pin_context_menu_png"> +</div> +</div> +</div> +<div class="sect3"> +<h4 id="defining-pins-for-multiple-units-and-alternate-symbolic-representations">11.8.6. Defining Pins for Multiple Units and Alternate Symbolic Representations</h4> +<div class="paragraph"><p>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.</p></div> +<div class="paragraph"><p>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 +<span class="image"> +<img src="images/icons/pin2pin.png" alt="icons/pin2pin_png"> +</span> +on the main tool bar. This will allow you to create pins for each unit +and representation completely independently.</p></div> +<div class="paragraph"><p>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.</p></div> +<div class="paragraph"><p>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.</p></div> +<div class="paragraph"><p>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.</p></div> +<div class="paragraph"><p>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 +<span class="image"> +<img src="images/icons/morgan2.png" alt="icons/morgan2_png"> +</span> +button on the tool bar. To edit the pin number for each unit, +select the appropriate unit using the +<span class="image"> +<img src="images/toolbar_libedit_alias.png" alt="images/toolbar_libedit_alias.png"> +</span> +drop down control.</p></div> +</div> +</div> +<div class="sect2"> +<h3 id="component-fields">11.9. Component Fields</h3> +<div class="paragraph"><p>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.</p></div> +<div class="sect3"> +<h4 id="editing-component-fields">11.9.1. Editing Component Fields</h4> +<div class="paragraph"><p>To edit an existing component field, right-click on the field text to +show the field context menu shown below.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_libedit_field_context_menu.png" alt="eeschema_libedit_field_context_menu_png"> +</div> +</div> +<div class="paragraph"><p>To edit undefined fields, add new fields, or delete optional fields +<span class="image"> +<img src="images/icons/add_text.png" alt="icons/add_text_png"> +</span> +on the main tool bar to open the field properties dialog shown below.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_libedit_field_properties.png" alt="eeschema_libedit_field_properties_png"> +</div> +</div> +<div class="paragraph"><p>Fields are text sections associated with the component. Do not confuse +them with the text belonging to the graphic representation of this +component.</p></div> +<div class="paragraph"><p>Important notes:</p></div> +<div class="ulist"><ul> +<li> +<p> +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. +</p> +</li> +<li> +<p> +The field edit dialog above must be used to edit a field that is empty + or has the invisible attribute enable. +</p> +</li> +<li> +<p> +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. +</p> +</li> +</ul></div> +</div> +</div> +<div class="sect2"> +<h3 id="power-symbols">11.10. Power Symbols</h3> +<div class="paragraph"><p>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.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_libedit_power_symbol.png" alt="eeschema_libedit_power_symbol_png"> +</div> +</div> +<div class="paragraph"><p>To create a power symbol, use the following steps:</p></div> +<div class="ulist"><ul> +<li> +<p> +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". +</p> +</li> +<li> +<p> +Place a small circle and a segment from the pin to the circle as + shown. +</p> +</li> +<li> +<p> +The anchor of the symbol is on the pin. +</p> +</li> +<li> +<p> +The component value is <span class="monospaced">+5V</span>. +</p> +</li> +<li> +<p> +The component reference is <span class="monospaced">\#+5V</span>. The reference text is not important + except the first character which must be <span class="monospaced">#</span> to indicate that the + component is a power symbol. By convention, every component in which the + reference field starts with a <span class="monospaced">#</span> will not appear in the component list + or in the netlist and the reference is declared as invisible. +</p> +</li> +</ul></div> +<div class="paragraph"><p>An easier method to create a new power port symbol is to use another +symbol as a model:</p></div> +<div class="ulist"><ul> +<li> +<p> +Load an existing power symbol. +</p> +</li> +<li> +<p> +Edit the pin name with name of the new power symbol. +</p> +</li> +<li> +<p> +Edit the value field to the same name as the pin, if you want to + display the power port value. +</p> +</li> +<li> +<p> +Save the new component. +</p> +</li> +</ul></div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="libedit-complements">12. LibEdit - Complements</h2> +<div class="sectionbody"> +<div class="sect2"> +<h3 id="_overview_2">12.1. Overview</h3> +<div class="paragraph"><p>A component consist of the following elements</p></div> +<div class="ulist"><ul> +<li> +<p> +A graphical representation (geometrical shapes, texts). +</p> +</li> +<li> +<p> +Pins. +</p> +</li> +<li> +<p> +Fields or associated text used by the post processors: netlist, + components list. +</p> +</li> +</ul></div> +<div class="paragraph"><p>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.</p></div> +<div class="paragraph"><p>However, managing the documentation associated with any component +facilitates the research, use and maintenance of libraries. The +associated documentation consists of</p></div> +<div class="ulist"><ul> +<li> +<p> +A line of comment. +</p> +</li> +<li> +<p> +A line of key words such as TTL CMOS NAND2, separated by spaces. +</p> +</li> +<li> +<p> +An attached file name (for example an application note or a pdf file). +</p> +<div class="paragraph"><p>The default directory for attached files:</p></div> +<div class="paragraph"><p>kicad/share/library/doc</p></div> +<div class="paragraph"><p>If not found:</p></div> +<div class="paragraph"><p>kicad/library/doc</p></div> +<div class="paragraph"><p>Under linux:</p></div> +<div class="paragraph"><p>/usr/local/kicad/share/library/doc</p></div> +<div class="paragraph"><p>/usr/share/kicad/library/doc</p></div> +<div class="paragraph"><p>/usr/local/share/kicad/library/doc</p></div> +</li> +</ul></div> +<div class="paragraph"><p>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.</p></div> +<div class="paragraph"><p>The component also has an anchoring point. A rotation or a mirror is +made relative 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.</p></div> +<div class="paragraph"><p>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…).</p></div> +<div class="paragraph"><p>Finally, the components are distributed in libraries (classified by +topics, or manufacturer) in order to facilitate their management.</p></div> +</div> +<div class="sect2"> +<h3 id="position-a-component-anchor">12.2. Position a component anchor</h3> +<div class="paragraph"><p>The anchor is at the coordinates (0,0) and it is shown by the blue axes +displayed on your screen.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_libedit_anchor.png" alt="eeschema_libedit_anchor_png"> +</div> +</div> +<div class="paragraph"><p>The anchor can be repositioned by selecting the icon +<span class="image"> +<img src="images/icons/anchor.png" alt="icons/anchor_png"> +</span> +and clicking on the new desired anchor position. The drawing will be +automatically re-centered on the new anchor point.</p></div> +</div> +<div class="sect2"> +<h3 id="component-aliases">12.3. Component aliases</h3> +<div class="paragraph"><p>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 ).</p></div> +<div class="paragraph"><p>The use of aliases allows you to build complete libraries quickly. In +addition these libraries, being much more compact, are easily loaded by +KiCad.</p></div> +<div class="paragraph"><p>To modify the list of aliases, you have to select the main editing +window via the icon +<span class="image"> +<img src="images/icons/part_properties.png" alt="icons/part_properties_png"> +</span> +and select the alias folder.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_libedit_alias.png" alt="eeschema_libedit_alias_png"> +</div> +</div> +<div class="paragraph"><p>You can thus add or remove the desired alias. The current alias cannot +obviously be removed since it is edited.</p></div> +<div class="paragraph"><p>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.</p></div> +</div> +<div class="sect2"> +<h3 id="component-fields-1">12.4. Component fields</h3> +<div class="paragraph"><p>The field editor is called via the icon +<span class="image"> +<img src="images/icons/add_text.png" alt="icons/add_text_png"> +</span>.</p></div> +<div class="paragraph"><p>There are four special fields (texts attached to the component), and +configurable user fields</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_library_component_field.png" alt="eeschema_library_component_field_png"> +</div> +</div> +<div class="paragraph"><p>Special fields</p></div> +<div class="ulist"><ul> +<li> +<p> +Reference. +</p> +</li> +<li> +<p> +Value. It is the component name in the library and the default value + field in schematic. +</p> +</li> +<li> +<p> +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. +</p> +</li> +<li> +<p> +Sheet. It is a reserved field, not used at the time of writing. +</p> +</li> +</ul></div> +</div> +<div class="sect2"> +<h3 id="component-documentation">12.5. Component documentation</h3> +<div class="paragraph"><p>To edit documentation information, it is necessary to call the main +editing window of the component via the icon +<span class="image"> +<img src="images/icons/part_properties.png" alt="icons/part_properties_png"> +</span> +and to select the document folder.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_libedit_description.png" alt="eeschema_libedit_description_png"> +</div> +</div> +<div class="paragraph"><p>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.</p></div> +<div class="sect3"> +<h4 id="component-keywords">12.5.1. Component keywords</h4> +<div class="paragraph"><p>Keywords allow you to search in a selective way for a component +according to specific selection criteria (function, technological +family, etc.)</p></div> +<div class="paragraph"><p>The Eeschema research tool is not case sensitive. The most current key +words used in the libraries are</p></div> +<div class="ulist"><ul> +<li> +<p> +CMOS TTL for the logic families +</p> +</li> +<li> +<p> +AND2 NOR3 XOR2 INV… for the gates (AND2 = 2 inputs AND gate, NOR3 = 3 + inputs NOR gate). +</p> +</li> +<li> +<p> +JKFF DFF… for JK or D flip-flop. +</p> +</li> +<li> +<p> +ADC, DAC, MUX… +</p> +</li> +<li> +<p> +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. +</p> +</li> +</ul></div> +</div> +<div class="sect3"> +<h4 id="component-documentation-doc">12.5.2. Component documentation (Doc)</h4> +<div class="paragraph"><p>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.</p></div> +<div class="paragraph"><p>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.</p></div> +</div> +<div class="sect3"> +<h4 id="associated-documentation-file-docfilename">12.5.3. Associated documentation file (DocFileName)</h4> +<div class="paragraph"><p>Indicates an attached file (documentation, application schematic) +available ( pdf file, schematic diagram, etc.).</p></div> +</div> +<div class="sect3"> +<h4 id="footprint-filtering-for-cvpcb">12.5.4. Footprint filtering for CvPcb</h4> +<div class="paragraph"><p>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.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_libedit_footprint.png" alt="eeschema_libedit_footprint_png"> +</div> +</div> +<div class="paragraph"><p>Wild-card characters are allowed.</p></div> +<div class="paragraph"><p>S014* allows CvPcb to show all the footprints with a name starting by +SO14.</p></div> +<div class="paragraph"><p>For a resistor, R? shows all the footprints with a 2 letters name +starting by R.</p></div> +<div class="paragraph"><p>Here are samples: with and without filtering</p></div> +<div class="paragraph"><p>With filtering</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_cvpcb_with_filtering.png" alt="eeschema_cvpcb_with_filtering_png"> +</div> +</div> +<div class="paragraph"><p>Without filtering</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_cvpcb_without_filtering.png" alt="eeschema_cvpcb_without_filtering_png"> +</div> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="symbol-library">12.6. Symbol library</h3> +<div class="paragraph"><p>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.</p></div> +<div class="paragraph"><p>These files are stored by default in the library directory and have a +<em>.sym</em> extension. The symbols are not gathered in libraries like the +components because they are generally not so many.</p></div> +<div class="sect3"> +<h4 id="export-or-create-a-symbol">12.6.1. Export or create a symbol</h4> +<div class="paragraph"><p>A component can be exported as a symbol with the button +<span class="image"> +<img src="images/icons/import.png" alt="icons/import_png"> +</span>. +You can generally create only one graphic, also it will be a good idea +to delete all pins, if they exist.</p></div> +</div> +<div class="sect3"> +<h4 id="import-a-symbol">12.6.2. Import a symbol</h4> +<div class="paragraph"><p>Importing allows you to add graphics to a component you are editing. A +symbol is imported with the button +<span class="image"> +<img src="images/icons/import.png" alt="Import graphic icon"> +</span>. +Imported graphics are added as they were created in existing graphics.</p></div> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="viewlib">13. Viewlib</h2> +<div class="sectionbody"> +<div class="sect2"> +<h3 id="_introduction_5">13.1. Introduction</h3> +<div class="paragraph"><p>Viewlib allows you to quickly examine the content of libraries. Viewlib +is called by the tool +<span class="image"> +<img src="images/icons/library_browse.png" alt="icons/library_browse_png"> +</span> +or by the "place component" tool available from the right-hand side +toolbar.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_viewlib_choose.png" alt="eeschema_viewlib_choose_png"> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="viewlib---main-screen">13.2. Viewlib - main screen</h3> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_viewlib_select_library.png" alt="eeschema_viewlib_select_library_png"> +</div> +</div> +<div class="paragraph"><p>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.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_viewlib_select_component.png" alt="eeschema_viewlib_select_component_png"> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="viewlib-top-toolbar">13.3. Viewlib top toolbar</h3> +<div class="paragraph"><p>The top tool bar in Viewlib is shown below.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/toolbar_viewlib.png" alt="images/toolbar_viewlib.png"> +</div> +</div> +<div class="paragraph"><p>The available commands are.</p></div> +<table class="tableblock frame-all grid-all" +style=" +width:100%; +"> +<col style="width:20%;"> +<col style="width:80%;"> +<tbody> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/library.png" alt="icons/library_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Selection of the desired library which can be also selected in the +displayed list.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/add_component.png" alt="icons/add_component_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Selection of the component which can be also selected in the displayed +list.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/lib_previous.png" alt="icons/lib_previous_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Display previous component.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/lib_next.png" alt="icons/lib_next_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Display next component.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/zoom_in.png" alt="images/icons/zoom_in.png"> +</span> <span class="image"> +<img src="images/icons/zoom_out.png" alt="images/icons/zoom_out.png"> +</span> +<span class="image"> +<img src="images/icons/zoom_redraw.png" alt="images/icons/zoom_redraw.png"> +</span> <span class="image"> +<img src="images/icons/zoom_fit_in_page.png" alt="images/icons/zoom_fit_in_page.png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Zoom tools.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/morgan1.png" alt="images/icons/morgan1.png"> +</span> <span class="image"> +<img src="images/icons/morgan2.png" alt="images/icons/morgan2.png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Selection of the representation (normal or converted) if exist.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/toolbar_viewlib_part.png" alt="images/toolbar_viewlib_part.png" width="70%"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Selection of the part, only for multi-part components.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/datasheet.png" alt="icons/datasheet_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">If it exist, display the associated documents. Exists only when called +by the place component dialog frame from Eeschema.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><span class="image"> +<img src="images/icons/export.png" alt="icons/export_png"> +</span></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">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).</p></td> +</tr> +</tbody> +</table> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="creating-customized-netlists-and-bom-files">14. Creating Customized Netlists and BOM Files</h2> +<div class="sectionbody"> +<div class="sect2"> +<h3 id="intermediate-netlist-file">14.1. Intermediate Netlist File</h3> +<div class="paragraph"><p>BOM files and netlist files can be converted from an Intermediate +netlist file created by Eeschema.</p></div> +<div class="paragraph"><p>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.</p></div> +<div class="paragraph"><p>Depending on the output (BOM or netlist), different subsets of the +complete Intermediate Netlist file will be used in the post-processing.</p></div> +<div class="sect3"> +<h4 id="schematic-sample">14.1.1. Schematic sample</h4> +<div class="imageblock"> +<div class="content"> +<img src="images/schematic-sample.png" alt="Schematic sample"> +</div> +</div> +</div> +<div class="sect3"> +<h4 id="the-intermediate-netlist-file-sample">14.1.2. The Intermediate Netlist file sample</h4> +<div class="paragraph"><p>The corresponding intermediate netlist (using XML syntax) of the circuit +above is shown below.</p></div> +<div class="listingblock"> +<div class="content monospaced"> +<pre><?xml version="1.0" encoding="utf-8"?> +<export version="D"> + <design> + <source>F:\kicad_aux\netlist_test\netlist_test.sch</source> + <date>29/08/2010 20:35:21</date> + <tool>eeschema (2010-08-28 BZR 2458)-unstable</tool> + </design> + <components> + <comp ref="P1"> + <value>CONN_4</value> + <libsource lib="conn" part="CONN_4"/> + <sheetpath names="/" tstamps="/"/> + <tstamp>4C6E2141</tstamp> + </comp> + <comp ref="U2"> + <value>74LS74</value> + <libsource lib="74xx" part="74LS74"/> + <sheetpath names="/" tstamps="/"/> + <tstamp>4C6E20BA</tstamp> + </comp> + <comp ref="U1"> + <value>74LS04</value> + <libsource lib="74xx" part="74LS04"/> + <sheetpath names="/" tstamps="/"/> + <tstamp>4C6E20A6</tstamp> + </comp> + <comp ref="C1"> + <value>CP</value> + <libsource lib="device" part="CP"/> + <sheetpath names="/" tstamps="/"/> + <tstamp>4C6E2094</tstamp> + </comp> + <comp ref="R1"> + <value>R</value> + <libsource lib="device" part="R"/> + <sheetpath names="/" tstamps="/"/> + <tstamp>4C6E208A</tstamp> + </comp> + </components> + <libparts> + <libpart lib="device" part="C"> + <description>Condensateur non polarise</description> + <footprints> + <fp>SM*</fp> + <fp>C?</fp> + <fp>C1-1</fp> + </footprints> + <fields> + <field name="Reference">C</field> + <field name="Value">C</field> + </fields> + <pins> + <pin num="1" name="~" type="passive"/> + <pin num="2" name="~" type="passive"/> + </pins> + </libpart> + <libpart lib="device" part="R"> + <description>Resistance</description> + <footprints> + <fp>R?</fp> + <fp>SM0603</fp> + <fp>SM0805</fp> + <fp>R?-*</fp> + <fp>SM1206</fp> + </footprints> + <fields> + <field name="Reference">R</field> + <field name="Value">R</field> + </fields> + <pins> + <pin num="1" name="~" type="passive"/> + <pin num="2" name="~" type="passive"/> + </pins> + </libpart> + <libpart lib="conn" part="CONN_4"> + <description>Symbole general de connecteur</description> + <fields> + <field name="Reference">P</field> + <field name="Value">CONN_4</field> + </fields> + <pins> + <pin num="1" name="P1" type="passive"/> + <pin num="2" name="P2" type="passive"/> + <pin num="3" name="P3" type="passive"/> + <pin num="4" name="P4" type="passive"/> + </pins> + </libpart> + <libpart lib="74xx" part="74LS04"> + <description>Hex Inverseur</description> + <fields> + <field name="Reference">U</field> + <field name="Value">74LS04</field> + </fields> + <pins> + <pin num="1" name="~" type="input"/> + <pin num="2" name="~" type="output"/> + <pin num="3" name="~" type="input"/> + <pin num="4" name="~" type="output"/> + <pin num="5" name="~" type="input"/> + <pin num="6" name="~" type="output"/> + <pin num="7" name="GND" type="power_in"/> + <pin num="8" name="~" type="output"/> + <pin num="9" name="~" type="input"/> + <pin num="10" name="~" type="output"/> + <pin num="11" name="~" type="input"/> + <pin num="12" name="~" type="output"/> + <pin num="13" name="~" type="input"/> + <pin num="14" name="VCC" type="power_in"/> + </pins> + </libpart> + <libpart lib="74xx" part="74LS74"> + <description>Dual D FlipFlop, Set &amp; Reset</description> + <docs>74xx/74hc_hct74.pdf</docs> + <fields> + <field name="Reference">U</field> + <field name="Value">74LS74</field> + </fields> + <pins> + <pin num="1" name="Cd" type="input"/> + <pin num="2" name="D" type="input"/> + <pin num="3" name="Cp" type="input"/> + <pin num="4" name="Sd" type="input"/> + <pin num="5" name="Q" type="output"/> + <pin num="6" name="~Q" type="output"/> + <pin num="7" name="GND" type="power_in"/> + <pin num="8" name="~Q" type="output"/> + <pin num="9" name="Q" type="output"/> + <pin num="10" name="Sd" type="input"/> + <pin num="11" name="Cp" type="input"/> + <pin num="12" name="D" type="input"/> + <pin num="13" name="Cd" type="input"/> + <pin num="14" name="VCC" type="power_in"/> + </pins> + </libpart> + </libparts> + <libraries> + <library logical="device"> + <uri>F:\kicad\share\library\device.lib</uri> + </library> + <library logical="conn"> + <uri>F:\kicad\share\library\conn.lib</uri> + </library> + <library logical="74xx"> + <uri>F:\kicad\share\library\74xx.lib</uri> + </library> + </libraries> + <nets> + <net code="1" name="GND"> + <node ref="U1" pin="7"/> + <node ref="C1" pin="2"/> + <node ref="U2" pin="7"/> + <node ref="P1" pin="4"/> + </net> + <net code="2" name="VCC"> + <node ref="R1" pin="1"/> + <node ref="U1" pin="14"/> + <node ref="U2" pin="4"/> + <node ref="U2" pin="1"/> + <node ref="U2" pin="14"/> + <node ref="P1" pin="1"/> + </net> + <net code="3" name=""> + <node ref="U2" pin="6"/> + </net> + <net code="4" name=""> + <node ref="U1" pin="2"/> + <node ref="U2" pin="3"/> + </net> + <net code="5" name="/SIG_OUT"> + <node ref="P1" pin="2"/> + <node ref="U2" pin="5"/> + <node ref="U2" pin="2"/> + </net> + <net code="6" name="/CLOCK_IN"> + <node ref="R1" pin="2"/> + <node ref="C1" pin="1"/> + <node ref="U1" pin="1"/> + <node ref="P1" pin="3"/> + </net> + </nets> +</export></pre> +</div></div> +</div> +</div> +<div class="sect2"> +<h3 id="conversion-to-a-new-netlist-format">14.2. Conversion to a new netlist format</h3> +<div class="paragraph"><p>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.</p></div> +<div class="paragraph"><p>XSLT itself is a an XML language very suitable for XML transformations. +There is a free program called <em>xsltproc</em> 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.</p></div> +</div> +<div class="sect2"> +<h3 id="xslt-approach">14.3. XSLT approach</h3> +<div class="paragraph"><p>The document that describes XSL Transformations (XSLT) is available +here:</p></div> +<div class="paragraph"><p><strong>http://www.w3.org/TR/xslt</strong></p></div> +<div class="sect3"> +<h4 id="create-a-pads-pcb-netlist-file">14.3.1. Create a Pads-Pcb netlist file</h4> +<div class="paragraph"><p>The pads-pcb format is comprised of two sections.</p></div> +<div class="ulist"><ul> +<li> +<p> +The footprint list. +</p> +</li> +<li> +<p> +The Nets list: grouping pads references by nets. +</p> +</li> +</ul></div> +<div class="paragraph"><p>Immediately below is a style-sheet which converts the Intermediate +Netlist file to a pads-pcb netlist format:</p></div> +<div class="listingblock"> +<div class="content monospaced"> +<pre><?xml version="1.0" encoding="ISO-8859-1"?> +<!--XSL style sheet to Eeschema Generic Netlist Format to PADS netlist format + Copyright (C) 2010, SoftPLC Corporation. + GPL v2. + + How to use: + https://lists.launchpad.net/kicad-developers/msg05157.html +--> + +<!DOCTYPE xsl:stylesheet [ + <!ENTITY nl "&#xd;&#xa;"> <!--new line CR, LF --> +]> + +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> +<xsl:output method="text" omit-xml-declaration="yes" indent="no"/> + +<xsl:template match="/export"> + <xsl:text>*PADS-PCB*&nl;*PART*&nl;</xsl:text> + <xsl:apply-templates select="components/comp"/> + <xsl:text>&nl;*NET*&nl;</xsl:text> + <xsl:apply-templates select="nets/net"/> + <xsl:text>*END*&nl;</xsl:text> +</xsl:template> + +<!-- for each component --> +<xsl:template match="comp"> + <xsl:text> </xsl:text> + <xsl:value-of select="@ref"/> + <xsl:text> </xsl:text> + <xsl:choose> + <xsl:when test = "footprint != '' "> + <xsl:apply-templates select="footprint"/> + </xsl:when> + <xsl:otherwise> + <xsl:text>unknown</xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:text>&nl;</xsl:text> +</xsl:template> + +<!-- for each net --> +<xsl:template match="net"> + <!-- nets are output only if there is more than one pin in net --> + <xsl:if test="count(node)>1"> + <xsl:text>*SIGNAL* </xsl:text> + <xsl:choose> + <xsl:when test = "@name != '' "> + <xsl:value-of select="@name"/> + </xsl:when> + <xsl:otherwise> + <xsl:text>N-</xsl:text> + <xsl:value-of select="@code"/> + </xsl:otherwise> + </xsl:choose> + <xsl:text>&nl;</xsl:text> + <xsl:apply-templates select="node"/> + </xsl:if> +</xsl:template> + +<!-- for each node --> +<xsl:template match="node"> + <xsl:text> </xsl:text> + <xsl:value-of select="@ref"/> + <xsl:text>.</xsl:text> + <xsl:value-of select="@pin"/> + <xsl:text>&nl;</xsl:text> +</xsl:template> + +</xsl:stylesheet></pre> +</div></div> +<div class="paragraph"><p>And here is the pads-pcb output file after running xsltproc:</p></div> +<div class="listingblock"> +<div class="content monospaced"> +<pre>*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*</pre> +</div></div> +<div class="paragraph"><p>The command line to make this conversion is:</p></div> +<div class="listingblock"> +<div class="content monospaced"> +<pre>kicad\\bin\\xsltproc.exe -o test.net kicad\\bin\\plugins\\netlist_form_pads-pcb.xsl test.tmp</pre> +</div></div> +</div> +<div class="sect3"> +<h4 id="create-a-cadstar-netlist-file">14.3.2. Create a Cadstar netlist file</h4> +<div class="paragraph"><p>The Cadstar format is comprised of two sections.</p></div> +<div class="ulist"><ul> +<li> +<p> +The footprint list. +</p> +</li> +<li> +<p> +The Nets list: grouping pads references by nets. +</p> +</li> +</ul></div> +<div class="paragraph"><p>Here is the style-sheet file to make this specific conversion:</p></div> +<div class="listingblock"> +<div class="content monospaced"> +<pre><?xml version="1.0" encoding="ISO-8859-1"?> +<!--XSL style sheet to Eeschema Generic Netlist Format to CADSTAR netlist format + Copyright (C) 2010, Jean-Pierre Charras. + Copyright (C) 2010, SoftPLC Corporation. + GPL v2. + +<!DOCTYPE xsl:stylesheet [ + <!ENTITY nl "&#xd;&#xa;"> <!--new line CR, LF --> +]> + +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> +<xsl:output method="text" omit-xml-declaration="yes" indent="no"/> + +<!-- Netlist header --> +<xsl:template match="/export"> + <xsl:text>.HEA&nl;</xsl:text> + <xsl:apply-templates select="design/date"/> <!-- Generate line .TIM <time> --> + <xsl:apply-templates select="design/tool"/> <!-- Generate line .APP <eeschema version> --> + <xsl:apply-templates select="components/comp"/> <!-- Generate list of components --> + <xsl:text>&nl;&nl;</xsl:text> + <xsl:apply-templates select="nets/net"/> <!-- Generate list of nets and connections --> + <xsl:text>&nl;.END&nl;</xsl:text> +</xsl:template> + + <!-- Generate line .TIM 20/08/2010 10:45:33 --> +<xsl:template match="tool"> + <xsl:text>.APP "</xsl:text> + <xsl:apply-templates/> + <xsl:text>"&nl;</xsl:text> +</xsl:template> + + <!-- Generate line .APP "eeschema (2010-08-17 BZR 2450)-unstable" --> +<xsl:template match="date"> + <xsl:text>.TIM </xsl:text> + <xsl:apply-templates/> + <xsl:text>&nl;</xsl:text> +</xsl:template> + +<!-- for each component --> +<xsl:template match="comp"> + <xsl:text>.ADD_COM </xsl:text> + <xsl:value-of select="@ref"/> + <xsl:text> </xsl:text> + <xsl:choose> + <xsl:when test = "value != '' "> + <xsl:text>"</xsl:text> <xsl:apply-templates select="value"/> <xsl:text>"</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>""</xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:text>&nl;</xsl:text> +</xsl:template> + +<!-- for each net --> +<xsl:template match="net"> + <!-- nets are output only if there is more than one pin in net --> + <xsl:if test="count(node)>1"> + <xsl:variable name="netname"> + <xsl:text>"</xsl:text> + <xsl:choose> + <xsl:when test = "@name != '' "> + <xsl:value-of select="@name"/> + </xsl:when> + <xsl:otherwise> + <xsl:text>N-</xsl:text> + <xsl:value-of select="@code"/> + </xsl:otherwise> + </xsl:choose> + <xsl:text>"&nl;</xsl:text> + </xsl:variable> + <xsl:apply-templates select="node" mode="first"/> + <xsl:value-of select="$netname"/> + <xsl:apply-templates select="node" mode="others"/> + </xsl:if> +</xsl:template> + +<!-- for each node --> +<xsl:template match="node" mode="first"> + <xsl:if test="position()=1"> + <xsl:text>.ADD_TER </xsl:text> + <xsl:value-of select="@ref"/> + <xsl:text>.</xsl:text> + <xsl:value-of select="@pin"/> + <xsl:text> </xsl:text> + </xsl:if> +</xsl:template> + +<xsl:template match="node" mode="others"> + <xsl:choose> + <xsl:when test='position()=1'> + </xsl:when> + <xsl:when test='position()=2'> + <xsl:text>.TER </xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text> </xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:if test="position()>1"> + <xsl:value-of select="@ref"/> + <xsl:text>.</xsl:text> + <xsl:value-of select="@pin"/> + <xsl:text>&nl;</xsl:text> + </xsl:if> +</xsl:template> + +</xsl:stylesheet></pre> +</div></div> +<div class="paragraph"><p>Here is the Cadstar output file.</p></div> +<div class="listingblock"> +<div class="content monospaced"> +<pre>.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</pre> +</div></div> +</div> +<div class="sect3"> +<h4 id="create-a-orcadpcb2-netlist-file">14.3.3. Create a OrcadPCB2 netlist file</h4> +<div class="paragraph"><p>This format has only one section which is the footprint list. Each +footprint includes its list of pads with reference to a net.</p></div> +<div class="paragraph"><p>Here is the style-sheet for this specific conversion:</p></div> +<div class="listingblock"> +<div class="content monospaced"> +<pre><?xml version="1.0" encoding="ISO-8859-1"?> +<!--XSL style sheet to Eeschema Generic Netlist Format to CADSTAR netlist format + Copyright (C) 2010, SoftPLC Corporation. + GPL v2. + + How to use: + https://lists.launchpad.net/kicad-developers/msg05157.html +--> + +<!DOCTYPE xsl:stylesheet [ + <!ENTITY nl "&#xd;&#xa;"> <!--new line CR, LF --> +]> + +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> +<xsl:output method="text" omit-xml-declaration="yes" indent="no"/> + +<!-- + Netlist header + Creates the entire netlist + (can be seen as equivalent to main function in C +--> +<xsl:template match="/export"> + <xsl:text>( { Eeschema Netlist Version 1.1 </xsl:text> + <!-- Generate line .TIM <time> --> +<xsl:apply-templates select="design/date"/> +<!-- Generate line eeschema version ... --> +<xsl:apply-templates select="design/tool"/> +<xsl:text>}&nl;</xsl:text> + +<!-- Generate the list of components --> +<xsl:apply-templates select="components/comp"/> <!-- Generate list of components --> + +<!-- end of file --> +<xsl:text>)&nl;*&nl;</xsl:text> +</xsl:template> + +<!-- + Generate id in header like "eeschema (2010-08-17 BZR 2450)-unstable" +--> +<xsl:template match="tool"> + <xsl:apply-templates/> +</xsl:template> + +<!-- + Generate date in header like "20/08/2010 10:45:33" +--> +<xsl:template match="date"> + <xsl:apply-templates/> + <xsl:text>&nl;</xsl:text> +</xsl:template> + +<!-- + This template read each component + (path = /export/components/comp) + creates lines: + ( 3EBF7DBD $noname U1 74LS125 + ... pin list ... + ) + and calls "create_pin_list" template to build the pin list +--> +<xsl:template match="comp"> + <xsl:text> ( </xsl:text> + <xsl:choose> + <xsl:when test = "tstamp != '' "> + <xsl:apply-templates select="tstamp"/> + </xsl:when> + <xsl:otherwise> + <xsl:text>00000000</xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:text> </xsl:text> + <xsl:choose> + <xsl:when test = "footprint != '' "> + <xsl:apply-templates select="footprint"/> + </xsl:when> + <xsl:otherwise> + <xsl:text>$noname</xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:text> </xsl:text> + <xsl:value-of select="@ref"/> + <xsl:text> </xsl:text> + <xsl:choose> + <xsl:when test = "value != '' "> + <xsl:apply-templates select="value"/> + </xsl:when> + <xsl:otherwise> + <xsl:text>"~"</xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:text>&nl;</xsl:text> + <xsl:call-template name="Search_pin_list" > + <xsl:with-param name="cmplib_id" select="libsource/@part"/> + <xsl:with-param name="cmp_ref" select="@ref"/> + </xsl:call-template> + <xsl:text> )&nl;</xsl:text> +</xsl:template> + +<!-- + This template search for a given lib component description in list + lib component descriptions are in /export/libparts, + and each description start at ./libpart + We search here for the list of pins of the given component + This template has 2 parameters: + "cmplib_id" (reference in libparts) + "cmp_ref" (schematic reference of the given component) +--> +<xsl:template name="Search_pin_list" > + <xsl:param name="cmplib_id" select="0" /> + <xsl:param name="cmp_ref" select="0" /> + <xsl:for-each select="/export/libparts/libpart"> + <xsl:if test = "@part = $cmplib_id "> + <xsl:apply-templates name="build_pin_list" select="pins/pin"> + <xsl:with-param name="cmp_ref" select="$cmp_ref"/> + </xsl:apply-templates> + </xsl:if> + </xsl:for-each> +</xsl:template> + + +<!-- + This template writes the pin list of a component + from the pin list of the library description + The pin list from library description is something like + <pins> + <pin num="1" type="passive"/> + <pin num="2" type="passive"/> + </pins> + Output pin list is ( <pin num> <net name> ) + something like + ( 1 VCC ) + ( 2 GND ) +--> +<xsl:template name="build_pin_list" match="pin"> + <xsl:param name="cmp_ref" select="0" /> + + <!-- write pin numner and separator --> + <xsl:text> ( </xsl:text> + <xsl:value-of select="@num"/> + <xsl:text> </xsl:text> + + <!-- search net name in nets section and write it: --> + <xsl:variable name="pinNum" select="@num" /> + <xsl:for-each select="/export/nets/net"> + <!-- net name is output only if there is more than one pin in net + else use "?" as net name, so count items in this net + --> + <xsl:variable name="pinCnt" select="count(node)" /> + <xsl:apply-templates name="Search_pin_netname" select="node"> + <xsl:with-param name="cmp_ref" select="$cmp_ref"/> + <xsl:with-param name="pin_cnt_in_net" select="$pinCnt"/> + <xsl:with-param name="pin_num"> <xsl:value-of select="$pinNum"/> + </xsl:with-param> + </xsl:apply-templates> + </xsl:for-each> + + <!-- close line --> + <xsl:text> )&nl;</xsl:text> +</xsl:template> + +<!-- + This template writes the pin netname of a given pin of a given component + from the nets list + The nets list description is something like + <nets> + <net code="1" name="GND"> + <node ref="J1" pin="20"/> + <node ref="C2" pin="2"/> + </net> + <net code="2" name=""> + <node ref="U2" pin="11"/> + </net> + </nets> + This template has 2 parameters: + "cmp_ref" (schematic reference of the given component) + "pin_num" (pin number) +--> + +<xsl:template name="Search_pin_netname" match="node"> + <xsl:param name="cmp_ref" select="0" /> + <xsl:param name="pin_num" select="0" /> + <xsl:param name="pin_cnt_in_net" select="0" /> + + <xsl:if test = "@ref = $cmp_ref "> + <xsl:if test = "@pin = $pin_num"> + <!-- net name is output only if there is more than one pin in net + else use "?" as net name + --> + <xsl:if test = "$pin_cnt_in_net>1"> + <xsl:choose> + <!-- if a net has a name, use it, + else build a name from its net code + --> + <xsl:when test = "../@name != '' "> + <xsl:value-of select="../@name"/> + </xsl:when> + <xsl:otherwise> + <xsl:text>$N-0</xsl:text><xsl:value-of select="../@code"/> + </xsl:otherwise> + </xsl:choose> + </xsl:if> + <xsl:if test = "$pin_cnt_in_net &lt;2"> + <xsl:text>?</xsl:text> + </xsl:if> + </xsl:if> + </xsl:if> + +</xsl:template> + +</xsl:stylesheet></pre> +</div></div> +<div class="paragraph"><p>Here is the OrcadPCB2 output file.</p></div> +<div class="listingblock"> +<div class="content monospaced"> +<pre>( { 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 ) + ) +) +*</pre> +</div></div> +</div> +<div class="sect3"> +<h4 id="eeschema-plugins-interface">14.3.4. Eeschema plugins interface</h4> +<div class="paragraph"><p>Intermediate Netlist converters can be automatically launched within +Eeschema.</p></div> +<div class="sect4"> +<h5 id="init-the-dialog-window-1">Init the Dialog window</h5> +<div class="paragraph"><p>One can add a new netlist plug-in user interface tab by clicking on the +Add Plugin button.</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_plugin_add_plugin.png" alt="eeschema_plugin_add_plugin_png"> +</div> +</div> +<div class="paragraph"><p>Here is what the configuration data for the PadsPcb tab looks like:</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/eeschema_plugin_padspcb.png" alt="eeschema_plugin_padspcb_png"> +</div> +</div> +</div> +<div class="sect4"> +<h5 id="plugin-configuration-parameters">Plugin Configuration Parameters</h5> +<div class="paragraph"><p>The Eeschema plug-in configuration dialog requires the following +information:</p></div> +<div class="ulist"><ul> +<li> +<p> +The title: for instance, the name of the netlist format. +</p> +</li> +<li> +<p> +The command line to launch the converter. +</p> +</li> +</ul></div> +<div class="paragraph"><p>Once you click on the netlist button the following will happen:</p></div> +<div class="olist arabic"><ol class="arabic"> +<li> +<p> +Eeschema creates an intermediate netlist file *.xml, for instance test.xml. +</p> +</li> +<li> +<p> +Eeschema runs the plug-in by reading test.xml and creates test.net. +</p> +</li> +</ol></div> +</div> +<div class="sect4"> +<h5 id="generate-netlist-files-with-the-command-line">Generate netlist files with the command line</h5> +<div class="paragraph"><p>Assuming we are using the program <em>xsltproc.exe</em> to apply the sheet +style to the intermediate file, <em>xsltproc.exe</em> is executed with the +following command:</p></div> +<div class="paragraph"><p><em>xsltproc.exe -o <output filename> < style-sheet filename> <input XML file to convert></em></p></div> +<div class="paragraph"><p>In KiCad under Windows the command line is the following:</p></div> +<div class="paragraph"><p><em>f:/kicad/bin/xsltproc.exe -o "%O" f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"</em></p></div> +<div class="paragraph"><p>Under Linux the command becomes as follows:</p></div> +<div class="paragraph"><p><em>xsltproc -o "%O" /usr/local/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"</em></p></div> +<div class="paragraph"><p>Where <em>netlist_form_pads-pcb.xsl</em> 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.</p></div> +<div class="paragraph"><p>The command line format accepts parameters for filenames:</p></div> +<div class="paragraph"><p>The supported formatting parameters are.</p></div> +<div class="ulist"><ul> +<li> +<p> +%B ⇒ base filename and path of selected output file, minus path and + extension. +</p> +</li> +<li> +<p> +%I ⇒ complete filename and path of the temporary input file (the + intermediate net file). +</p> +</li> +<li> +<p> +%O ⇒ complete filename and path of the user chosen output file. +</p> +</li> +</ul></div> +<div class="paragraph"><p><em>%I</em> will be replaced by the actual intermediate file name</p></div> +<div class="paragraph"><p><em>%O</em> will be replaced by the actual output file name.</p></div> +</div> +<div class="sect4"> +<h5 id="command-line-format-example-for-xsltproc">Command line format: example for xsltproc</h5> +<div class="paragraph"><p>The command line format for xsltproc is the following:</p></div> +<div class="paragraph"><p><path of xsltproc> xsltproc <xsltproc parameters></p></div> +<div class="paragraph"><p>under Windows:</p></div> +<div class="paragraph"><p><strong>f:/kicad/bin/xsltproc.exe -o "%O" f:/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"</strong></p></div> +<div class="paragraph"><p>under Linux:</p></div> +<div class="paragraph"><p><strong>xsltproc -o "%O" /usr/local/kicad/bin/plugins/netlist_form_pads-pcb.xsl "%I"</strong></p></div> +<div class="paragraph"><p>The above examples assume xsltproc is installed on your PC under Windows +and all files located in kicad/bin.</p></div> +</div> +</div> +<div class="sect3"> +<h4 id="bill-of-materials-generation">14.3.5. Bill of Materials Generation</h4> +<div class="paragraph"><p>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:</p></div> +<div class="imageblock"> +<div class="content"> +<img src="images/en/bom-netlist-tab.png" alt="bom-netlist-tab_png"> +</div> +</div> +<div class="paragraph"><p>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 <em>bom2csv.xsl</em>. 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.</p></div> +</div> +</div> +<div class="sect2"> +<h3 id="command-line-format-example-for-python-scripts">14.4. Command line format: example for python scripts</h3> +<div class="paragraph"><p>The command line format for python is something like:</p></div> +<div class="paragraph"><p>python <script file name> <input filename> <output filename></p></div> +<div class="paragraph"><p>under Windows:</p></div> +<div class="paragraph"><p><strong>python *.exe f:/kicad/python/my_python_script.py "%I" "%O"</strong></p></div> +<div class="paragraph"><p>under Linux:</p></div> +<div class="paragraph"><p><strong>python /usr/local/kicad/python/my_python_script.py "%I" "%O"</strong></p></div> +<div class="paragraph"><p>Assuming python is installed on your PC.</p></div> +</div> +<div class="sect2"> +<h3 id="intermediate-netlist-structure">14.5. Intermediate Netlist structure</h3> +<div class="paragraph"><p>This sample gives an idea of the netlist file format.</p></div> +<div class="listingblock"> +<div class="content monospaced"> +<pre><?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></pre> +</div></div> +<div class="sect3"> +<h4 id="general-netlist-file-structure">14.5.1. General netlist file structure</h4> +<div class="paragraph"><p>The intermediate Netlist accounts for five sections.</p></div> +<div class="ulist"><ul> +<li> +<p> +The header section. +</p> +</li> +<li> +<p> +The components section. +</p> +</li> +<li> +<p> +The lib parts section. +</p> +</li> +<li> +<p> +The libraries section. +</p> +</li> +<li> +<p> +The nets section. +</p> +</li> +</ul></div> +<div class="paragraph"><p>The file content has the delimiter <export></p></div> +<div class="listingblock"> +<div class="content monospaced"> +<pre><export version="D"> +... +</export></pre> +</div></div> +</div> +<div class="sect3"> +<h4 id="the-header-section">14.5.2. The header section</h4> +<div class="paragraph"><p>The header has the delimiter <design></p></div> +<div class="listingblock"> +<div class="content monospaced"> +<pre><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></pre> +</div></div> +<div class="paragraph"><p>This section can be considered a comment section.</p></div> +</div> +<div class="sect3"> +<h4 id="the-components-section">14.5.3. The components section</h4> +<div class="paragraph"><p>The component section has the delimiter <components></p></div> +<div class="listingblock"> +<div class="content monospaced"> +<pre><components> +<comp ref="P1"> +<value>CONN_4</value> +<libsource lib="conn" part="CONN_4"/> +<sheetpath names="/" tstamps="/"/> +<tstamp>4C6E2141</tstamp> +</comp> +</components></pre> +</div></div> +<div class="paragraph"><p>This section contains the list of components in your schematic. Each +component is described like this:</p></div> +<div class="listingblock"> +<div class="content monospaced"> +<pre><comp ref="P1"> +<value>CONN_4</value> +<libsource lib="conn" part="CONN_4"/> +<sheetpath names="/" tstamps="/"/> +<tstamp>4C6E2141</tstamp> +</comp></pre> +</div></div> +<table class="tableblock frame-all grid-all" +style=" +width:100%; +"> +<col style="width:37%;"> +<col style="width:63%;"> +<tbody> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><strong>libsource</strong></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">name of the lib where this component was found.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><strong>part</strong></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">component name inside this library.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><strong>sheetpath</strong></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">path of the sheet inside the hierarchy: identify the sheet +within the full schematic hierarchy.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><strong>tstamps (time stamps)</strong></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">time stamp of the schematic file.</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock"><strong>tstamp (time stamp)</strong></p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">time stamp of the component.</p></td> +</tr> +</tbody> +</table> +<div class="sect4"> +<h5 id="note-about-time-stamps-for-components">Note about time stamps for components</h5> +<div class="paragraph"><p>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.</p></div> +<div class="paragraph"><p>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.</p></div> +<div class="paragraph"><p>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</p></div> +</div> +</div> +<div class="sect3"> +<h4 id="the-libparts-section">14.5.4. The libparts section</h4> +<div class="paragraph"><p>The libparts section has the delimiter <libparts>, and the content of +this section is defined in the schematic libraries. The libparts section +contains</p></div> +<div class="ulist"><ul> +<li> +<p> +The allowed footprints names (names use jokers) delimiter <fp>. +</p> +</li> +<li> +<p> +The fields defined in the library delimiter <fields>. +</p> +</li> +<li> +<p> +The list of pins delimiter <pins>. +</p> +</li> +</ul></div> +<div class="listingblock"> +<div class="content monospaced"> +<pre><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></pre> +</div></div> +<div class="paragraph"><p>Lines like <pin num="1" type="passive"/> give also the electrical pin +type. Possible electrical pin types are</p></div> +<table class="tableblock frame-all grid-all" +style=" +width:94%; +"> +<col style="width:25%;"> +<col style="width:75%;"> +<tbody> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Input</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Usual input pin</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Output</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Usual output</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Bidirectional</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Input or Output</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Tri-state</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Bus input/output</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Passive</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Usual ends of passive components</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Unspecified</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Unknown electrical type</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Power input</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Power input of a component</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Power output</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Power output like a regulator output</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Open collector</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Open collector often found in analog comparators</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Open emitter</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Open emitter sometimes found in logic</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Not connected</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">Must be left open in schematic</p></td> +</tr> +</tbody> +</table> +</div> +<div class="sect3"> +<h4 id="the-libraries-section">14.5.5. The libraries section</h4> +<div class="paragraph"><p>The libraries section has the delimiter <libraries>. This section +contains the list of schematic libraries used in the project.</p></div> +<div class="listingblock"> +<div class="content monospaced"> +<pre><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></pre> +</div></div> +</div> +<div class="sect3"> +<h4 id="the-nets-section">14.5.6. The nets section</h4> +<div class="paragraph"><p>The nets section has the delimiter <nets>. This section contains the +"connectivity" of the schematic.</p></div> +<div class="listingblock"> +<div class="content monospaced"> +<pre><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></pre> +</div></div> +<div class="paragraph"><p>This section lists all nets in the schematic.</p></div> +<div class="paragraph"><p>A possible net contains the following.</p></div> +<div class="listingblock"> +<div class="content monospaced"> +<pre><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></pre> +</div></div> +<table class="tableblock frame-all grid-all" +style=" +width:77%; +"> +<col style="width:20%;"> +<col style="width:80%;"> +<tbody> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">net code</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">is an internal identifier for this net</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">name</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">is a name for this net</p></td> +</tr> +<tr> +<td class="tableblock halign-left valign-top" ><p class="tableblock">node</p></td> +<td class="tableblock halign-left valign-top" ><p class="tableblock">give a pin reference connected to this net</p></td> +</tr> +</tbody> +</table> +</div> +</div> +<div class="sect2"> +<h3 id="more-about-xsltproc">14.6. More about xsltproc</h3> +<div class="paragraph"><p>Refer to the page: <em>http://xmlsoft.org/XSLT/xsltproc.html</em></p></div> +<div class="sect3"> +<h4 id="introduction-7">14.6.1. Introduction</h4> +<div class="paragraph"><p>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.</p></div> +<div class="paragraph"><p>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 - .</p></div> +<div class="paragraph"><p>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 <em>stdout</em>. You can specify a file +for output using the -o option.</p></div> +</div> +<div class="sect3"> +<h4 id="synopsis">14.6.2. Synopsis</h4> +<div class="listingblock"> +<div class="content monospaced"> +<pre>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* ] +[ *....* ]</pre> +</div></div> +</div> +<div class="sect3"> +<h4 id="command-line-options">14.6.3. Command line options</h4> +<div class="paragraph"><p><em>-V</em> or <em>--version</em></p></div> +<div class="paragraph"><p>Show the version of libxml and libxslt used.</p></div> +<div class="paragraph"><p><em>-v</em> or <em>--verbose</em></p></div> +<div class="paragraph"><p>Output each step taken by xsltproc in processing the stylesheet and the +document.</p></div> +<div class="paragraph"><p><em>-o</em> or <em>--output file</em></p></div> +<div class="paragraph"><p>Direct output to the file named <em>file</em>. For multiple outputs, also +known as “chunking”, -o directory/ directs the output files to a +specified directory. The directory must already exist.</p></div> +<div class="paragraph"><p><em>--timing</em></p></div> +<div class="paragraph"><p>Display the time used for parsing the stylesheet, parsing the document +and applying the stylesheet and saving the result. Displayed in +milliseconds.</p></div> +<div class="paragraph"><p><em>--repeat</em></p></div> +<div class="paragraph"><p>Run the transformation 20 times. Used for timing tests.</p></div> +<div class="paragraph"><p><em>--debug</em></p></div> +<div class="paragraph"><p>Output an XML tree of the transformed document for debugging purposes.</p></div> +<div class="paragraph"><p><em>--novalid</em></p></div> +<div class="paragraph"><p>Skip loading the document’s DTD.</p></div> +<div class="paragraph"><p><em>--noout</em></p></div> +<div class="paragraph"><p>Do not output the result.</p></div> +<div class="paragraph"><p><em>--maxdepth value</em></p></div> +<div class="paragraph"><p>Adjust the maximum depth of the template stack before libxslt concludes +it is in an infinite loop. The default is 500.</p></div> +<div class="paragraph"><p><em>--html</em></p></div> +<div class="paragraph"><p>The input document is an HTML file.</p></div> +<div class="paragraph"><p><em>--param name value</em></p></div> +<div class="paragraph"><p>Pass a parameter of name <em>name</em> and value <em>value</em> 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.</p></div> +<div class="paragraph"><p><em>--stringparam name value</em></p></div> +<div class="paragraph"><p>Pass a paramenter of name <em>name</em> and value <em>value</em> where <em>value</em> is a +string rather than a node identifier. (Note: The string must be utf-8.)</p></div> +<div class="paragraph"><p><em>--nonet</em></p></div> +<div class="paragraph"><p>Do not use the Internet to fetch DTD’s, entities or documents.</p></div> +<div class="paragraph"><p><em>--path paths</em></p></div> +<div class="paragraph"><p>Use the list (separated by space or colon) of filesystem paths +specified by <em>paths</em> to load DTDs, entities or documents. +Enclose space-separated lists by quotation marks.</p></div> +<div class="paragraph"><p><em>--load-trace</em></p></div> +<div class="paragraph"><p>Display to stderr all the documents loaded during the processing.</p></div> +<div class="paragraph"><p><em>--catalogs</em></p></div> +<div class="paragraph"><p>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.</p></div> +<div class="paragraph"><p><em>--xinclude</em></p></div> +<div class="paragraph"><p>Process the input document using the Xinclude specification. More +details on this can be found in the Xinclude specification: +<a href="http://www.w3.org/TR/xinclude/">http://www.w3.org/TR/xinclude/</a></p></div> +<div class="paragraph"><p><em>--profile --norman</em></p></div> +<div class="paragraph"><p>Output profiling information detailing the amount of time spent in each +part of the stylesheet. This is useful in optimizing stylesheet +performance.</p></div> +<div class="paragraph"><p><em>--dumpextensions</em></p></div> +<div class="paragraph"><p>Dumps the list of all registered extensions to stdout.</p></div> +<div class="paragraph"><p><em>--nowrite</em></p></div> +<div class="paragraph"><p>Refuses to write to any file or resource.</p></div> +<div class="paragraph"><p><em>--nomkdir</em></p></div> +<div class="paragraph"><p>Refuses to create directories.</p></div> +<div class="paragraph"><p><em>--writesubtree path</em></p></div> +<div class="paragraph"><p>Allow file write only within the <em>path</em> subtree.</p></div> +<div class="paragraph"><p><em>--nodtdattr</em></p></div> +<div class="paragraph"><p>Do not apply default attributes from the document’s DTD.</p></div> +</div> +<div class="sect3"> +<h4 id="xsltproc-return-values">14.6.4. Xsltproc return values</h4> +<div class="paragraph"><p>xsltproc returns a status number that can be quite useful when calling +it within a script.</p></div> +<div class="paragraph"><p>0: normal</p></div> +<div class="paragraph"><p>1: no argument</p></div> +<div class="paragraph"><p>2: too many parameters</p></div> +<div class="paragraph"><p>3: unknown option</p></div> +<div class="paragraph"><p>4: failed to parse the stylesheet</p></div> +<div class="paragraph"><p>5: error in the stylesheet</p></div> +<div class="paragraph"><p>6: error in one of the documents</p></div> +<div class="paragraph"><p>7: unsupported xsl:output method</p></div> +<div class="paragraph"><p>8: string parameter contains both quote and double-quotes</p></div> +<div class="paragraph"><p>9: internal processing error</p></div> +<div class="paragraph"><p>10: processing was stopped by a terminating message</p></div> +<div class="paragraph"><p>11: could not write the result to the output file</p></div> +</div> +<div class="sect3"> +<h4 id="more-information-about-xsltproc">14.6.5. More Information about xsltproc</h4> +<div class="paragraph"><p>libxml web page: <a href="http://www.xmlsoft.org/">http://www.xmlsoft.org/</a></p></div> +<div class="paragraph"><p>W3C XSLT page: <a href="http://www.w3.org/TR/xslt">http://www.w3.org/TR/xslt</a></p></div> +</div> +</div> +</div> +</div> +</div> +<div id="footnotes"><hr></div> +<div id="footer"> +<div id="footer-text"> +Last updated 2017-08-24 22:02:49 BST +</div> +</div> +</body> +</html> |