KiCad: руководство пользователя
- Программы комплекса
- Справка
Вводный миниурок KiCad[править]
Этот миниурок ознакомит вас с основами использования системы KiCad. Он содержит информацию о всех шагах создания простой печатной платы: от рисования электрической схемы до печати готового рисунка платы. В ходе урока вам будут представлены различные возможности KiCad и предложены эффективные пути решения различных задач.
Руководство пользователя, поставляемое вместе с KiCad, содержит значительно больше информации, чем этот урок. Ознакомтесь с ним, чтобы узнать больше об использовании программы.
В качестве примера взята несложная плата сопряжения для порта RS-232. Поясняющие изображения (скриншоты) для этого урока делались под различными платформами (Windows, Linux). Основой платы является 16-контактная микросхема Maxim Max232A в DIP-корпусе, технические характеристики которой можно посмотреть здесь.
Создание проекта[править]
Лучше всего для каждого проекта использовать раздельные папки; в противном случае система может сбиться с толку, если файлы из разных проектов будут лежать в одной папке.
Проделайте следующие шаги:
- Создайте папку «RS232»
- Запустите программу KiCad
- Создайте проект (project)
- На панели инструментов KiCad выберите левую иконку с подсказкой «Создать новый проект» («Create new project descriptor») или используйте команду меню «Проект>Новый проект» («Projects>New Project Descr»).
- В диалоге «Создать файлы проекта» («Create Project files») введите имя проекта RS232 и, используя опцию «Обзор других папок» («Browse for other folders»), выберите только что созданную папку RS232.
- Сохраните проект кнопкой «Сохранить» («Save»). В папке появится файл RS232.pro, содержащий установки вашего проекта.
В правой части панели имеются четыре большие кнопки запуска компонентов KiCad. Слева направо, это:
- EeSchema — Редактор принципиальных схем (Schematic Editor)
- Cvpcb — Программа сопоставления компонентам модулей (Components to modules)
- Pcbnew — Редактор печатных плат (Board editor)
- GerbView — Программа просмотра фотошаблонов (Gerber viewer)
Каждая кнопка запускает соответствующую программу. Мы будем использовать эти программы по мере изучения (за исключением GerbView).
Создание принципиальной схемы в EeSchema[править]
- Запустите редактор принципиальных схем, нажав на панели KiCad большую кнопку EeSchema.
- При первом запуске EeSchema стартует с новым проектом и показывает предупреждение, что файла схемы еще нет. Просто нажмите ОК.
На правом краю окна редактора схем есть вертикальная панель инструментов, которые мы и будем использовать для рисования схемы. Этими инструментами можно выбирать объекты, размещать компоненты, вводить связи и т.д.
Завершение работы инструмента: вы можете выбрать другой инструмент из правой инструментальной панели или же указать Отложить инструмент по правому клику мышки.
Инструмент Добавить компоненты[править]
- На правой панели нажмите кнопку Добавить компоненты (Add components) (она выглядит как логический элемент «И»). Курсор изменится со стрелки на карандаш. Кликните в поле схемы чтобы начать размещение компонента. Появится диалог Выбор компонента (Component Selection). Вы можете выбрать компонент несколькими путями:
-
- Если вы знаете точное имя копонента, введите его в поле Имя (Name), а затем нажмите Ввод или OK.
- Если вы знаете имя только приблизительно, в поле Имя (Name) введите образец для поиска, например, *C*, затем нажмите Ввод или OK. Вы увидите окно Выбор (Selection) со списком найденных компонентов.
- Вы можете искать компонент по ключевому слову, введя его в поле Имя (Name), затем кликнув Искать ключевое слово (Search Keyword). Однако на данный момент немногие компоненты имеют ключевые слова, поэтому эта возможность полезна косвенно.
- Можно выбрать недавно использованные компоненты из Списка истории (History list).
- Кнопка Весь перечень (ListAll) вызывает диалог, в котором можно выбрать сначала библиотеку, а затем ее компонент.
- Кнопка Используя Обозреватель библиотек (By Lib Browser) вызывает Обозреватель библиотек (Library Browser), позволяя просмотреть библиотеки и находящиеся в них условные графические изображения.
Когда вы выбрали нужный компонент, используйте кнопку Экспортировать в схему (Export to Schematic) на правой стороне обозревателя библиотек. Вы также можете вызвать обозреватель библиотек кнопкой Перейти к Обозревателю библиотек (Go To Library Browser) в редакторе EeSchema — в горизонтальном меню, но в этом случае кнопки Экспортировать в схему (Export to Schematic) нету.
- Для начала нажмите Используя Обозреватель библиотек (By Lib Browser). Выберите библиотеку CONN (разъемы). В соседней панели прокрутите вниз и выберите разъем DB9. Условное графическое изображение разъема будет видно в правой панели. В инструменте нажмите Экспортировать в схему (Export to Schematic) справа.
Файл:Add Components Tool.PNG
- Левой кнопкой мышки вставьте символ в нужное место схемы. Позже вы сможете переместить его если нужно. Зеркальное отражение компонента можно произвести следующим образом:
- Поместите курсор на компоненте.
- По правому клику выберите Ориентация Компонента>Зеркальное отражение (Orient Component > Mirror || (X). После чего выводы компонента должны расположиться на требуемой стороне. («X» отображает по вертикали, «Y» — по горизонтали)
- Вставьте в схему электролитический конденсатор (инструмент Добавить компоненты (Add components) все еще активен) левым кликом в рабочем окне. Это вернет диалог выбора компонентов. На этот раз попробуйте кнопку Весь перечень (ListAll). В диалоге Выбрать библиотеку (Select Lib) выберите библиотеку Устройство (Device) (двойной клик или кнопка OK).
- В диалоге выбора элемента выберите CP (двойной клик или кнопка OK’). Разместите компонент левым кликом в рабочем окне.
- Вставьте остальные пять конденсаторов как показано на рисунке. Это сделать легко если использовать двойной клик в Списке истории (History list) диалога Выбор компонента (Component Selection).
Файл:Add Components Tool 2.PNG
-
- Вставьте другие компоненты из списка ниже используя методику этого урока.
2x 3-выводных разъема (CONN_3 в библиотеке "conn") 1x 4-выводный разъем (CONN_4 в бмблиотеке "conn") 1x MAX232 микросхему (MAX232 в библиотеке "interface") (имеется идентичная копия в библиотеке "special")
Панорамирование и Масштаб[править]
Во время работы со схемой вы можете перемещаться по схеме (pan) и изменять масштаб (zoom), следующими способами:
- Полосами прокрутки снизу и справа.
- Имеется кнопка масштаба на верхней инструментальной панели.
- Правый клик дает контекстное меню с функциями увеличения/уменьшения, а также центрирования.
- И наконец, наиболее удобно использовать колесо мышки, вращая которое можно изменить масштаб в точке курсора мышки. Также, если просто кликнуть на колесо, дисплей сцентрируется в точке курсора мышки.
Инструмент Добавить питание[править]
Для подключения питания и земли к компонентам схемы в EeSchema предназначены специальные псевдокомпоненты. Они не похожи на обычные компоненты, так как им не соответствуют реальные корпуса с контактными площадками. Это символы из библиотеки «power». Их можно ставить в схему инструментом «Add Components», но есть способ проще.
Активируйте инструмент «Add Powers» из правой панели инструментов. Он выглядит как символ земли. Этот инструмент работает как «Add components», но ограничен только библиотекой «power».
Добавьте символы питания из списка ниже.
1x +5V 2x GND 2x PWR_FLAG
Инструмент Выбор (Selection)[править]
Активируйте инструмент «Selection» — это кнопка со стрелкой на правой панели инструментов. Это инструмент по умолчанию, который становится активным при окончании других инструментов клавишей Esc или по правому клику — «End Tool». При выборе «Selection» курсор имеет форму стрелки.
В режиме селекции вы можете выполнять различные операции с компонентами: сдвиг, дать новую ориентацию, копировать и т.д. — кликнув правой клавишей мыши на компоненте. В сущности это можно делать в режиме «Add component» по правому клику. Но главное отличие режима селекции от режимов «add» состоит в реакции на левый клик. Левый клик в режиме «add» добавляет соответствующую тему (компонент, связь и т.д.), тогда как в режиме селекции левый клик дает возможность выделить множество объектов в прямоугольном регионе и перетащить их.
Освобождение левой клавиши мышки в конце операции drag-select засвечивает выбранные компоненты. Если затем сдвинуть мышь, вместе с ней потянется и селектирование. Чтобы сделать нечто еще с селекцией, сделайте правый клик. Всплывающее меню имеет несколько опций, включая Zoom, Place, Save, Copy, Drag, и Delete.
«Place» — это тоже самое, что и сдвиг селеции и снова левый клик, но уже без правого клика.
«Save» копирует выборку в буфер из которого позже можно вставить инструментом «Paste». «Copy» делает копию всей выборки и можно сдвигать ее, а не оригинал.
«Drag» похож на сдвиг, но при таком сдвиге концы связей, выходящие за пределы области селекции останутся подсоединенными.
Как альтернатива операции селекции правым кликом при перетаскивании селекции, можно использовать клавиши Ctrl и Shift. Их назначение можно увидеть в всплывающем меню доступном по правому щелчку. Важный момент, клавиши Ctrl и Shift должны быть нажаты до того как будет нажата левая кнопка мышки для выделения.
Вы можете отменить выделение нажав Esc.
Расставьте компоненты как показано на рисунке ниже, используя технику, описанную выше. На рисунке показаны все расставленные компоненты, но еще не соединенные связями.
Файл:Parts schematic.png
Теперь назначьте емкости конденсаторов «0.1 uF» в соответствии со спецификацией MAXIM.
Чтобы сделать это, сделайте правый клик на каждом конденсаторе, выберите «Edit Component > Value» и измените «CP» на «0.1 uF».
Если у вас много конденсаторов с одним номиналом, вы можете ускорить работу, копируя конденсатор с нужным номиналом контекстной командой «Copy Component» — копия будет иметь тот же номинал. Также можно назначить номинал сразу же после добавления компонента в схему — меню по правому клику доступно и в режиме «Add Component».
В нашей схеме только конденсаторам нужно ставить номинал. Для других компонентов поле номинала содержит номер компонента (the part number). Номинал может иметь значения сопротивления, емкости, частоты, скорости и т.д.
Команда «Edit Component > Edit» выдает свойство листа схемы, посредством чего можно изменить много аспектов компонента. Но в рамках этого руководства это пока нам не нужно.
Assign reference designators (Присвоить схемный номер). Вы можете нумеровать компоненты вручную — правым кликом «Edit Component > Reference«. Но EeSchema может сделать это автоматически. Для этого нажмите кнопку «Schematic Annotation» на верхней инструментальной панели (ближе к правой части). Всплывет диалог, в котором выберите пределы (extent) нумерации (annotation) (этот лист или все листы, только ненумерованные компоненты или все подряд). При нумерации символ «?» в схемном номере меняется на целое число, уникальное для каждого префикса, например, C1, C2, C3, U1, U2 и т.д.
Нумеровать компоненты, как видите, несложно. Это можно сделать и после соединения всех связей. Но это нужно обязательно сделать до запуска контроля схемы (Electrical Rules Check) или генерации списка связей (Netlist Generation).
Инструмент Добавить соединения[править]
Активируйте инструмент «Add wires» из правой панели инструментов.
Чтобы соединить два пина связью, кликните мышкой на первом пине и потащите мышь, растягивая связь. Каждый левый клик завершает сегмент связи и вы можете тянуть новый сегмент. Кликая на другом пине, он подсодинится к связи и закончит проведение связи. Если вы продолжаете тянуть сегмент после клика на пине, он не подсоединится к связи. (Это может случиться если символ находится не в сетке или если вам нужно сделать более одного изгиба чтобы попасть на пин.) Вы можете тянуть связь под любым углом, отличным от 90 градусов — кликнув на кнопке «Draw lines at any direction» внизу левой вертикальной инструментальной панели.
При прокладке связи ее можно завершить в любой момент (т.е. без завершения соединения на пин) по правому клику. Также связь можно оборвать клавишей Esc. Поэкспериментируйте с различными опциями правого клика. Конец висящей связи маркируется маленьким квадратом. Контролируйте такие маркеры чтобы убедиться что связь действительно подсоединена.
Когда связи пересекаются крестом или буквой Т, если они в самом деле соединены, точка соединения маркируется символом пайки — закрашенным квадратом. Если же маркера пайки нет, значит связи не соединены. EeSchema обычно добавляет значок пайки, но если EeSchema сделает ошибку, вы можете исправить ее. Правый клик добавит точку пайки если курсор находится на связи; или удалит точку пайки если курсор находится на точке пайки. Это иллюстрирует важный момент: правый клик предлагает контекстно-зависимых операций над объектами под мышкой.
отдельный, обособленный; изолированный, отделенный; стоящий особняком; разрозненный
Соедините компонент связью — как показано на рисунке ниже. Пока что оставьте PWR_FLAG изолированным.
Zoomed in finished wire connections:
Файл:Zoomed schematic.png
«Electrical Rule Check» — проверка схем[править]
Задача Electrical Rule Check (ERC) — проверка корректности соединений схемы.
В верхней инструментальной панели нажмите кнопку «Schematic Electrical Rules Check» (вторая справа).
Всплывет диалоговый бокс. Вы могли бы настроить в «Options» реакцию ERC на различные виды проблем, но для нашей простой схемы мы будем использовать настройки по умолчанию.
Нажмите кнопку «Test Erc«.
Примечание. Иногда при запуске ERC вы можете получить сообщение вроде «Item not annotated: #FLG?» (or #PWR?. Это означает, что вы забыли присвоить схемные номера (reference designators) некоторым компонентам. Используйте команду «Schematic Annotation» для автоматической нумерации компонентов как это было описано выше. Вы могли пронумеровать компоненты и вручную, но есть сложности с поиском элементов. Дело в том, что поиск «Find Components and Texts» (он выглядит как бинокль) трактует символ «?» как шаблон одного символа, и поиск «#PWR?» найдет компонент «#PWR5», «#PWR6» и т.д. Сейчас пока что нет возможности отключить «?».
Другая проблема поиска состоит в том, что он не подсвечивает найденный компонент. Но это можно попробовать обойти таким образом: увеличьте схемы и сделайте поиск. Он обычно центрирует экран рядом с найденным компонентом.
Проверка ERC проверяет на различные электрические правила согласно настройкам в Options. Например, одно правило должно требовать, чтобы к цепи должен быть подключен хотя бы один выход. Вы можете сконфигурировать реакцию ERC на такие ошибки: игнорировать, показать как ошибку или выдать предупреждение.
Примечание. Совсем необязательно получать чистый протокол ошибок ERC. Редактор будет работать даже если ERC будет жаловаться на нарушения правил. Но все же будет лучше взглянуть на протокол, т.к. он может показать потерянную связь, т.е без пинов.
ERC маркирует проблемное место маленькой стрелкой (вы можете записать список проблем в файл). Увидеть что это за нарушение можно, кликнув на стрелочке и взглянув на статусную строку. Если разыскать некоторые стрелки затруднительно, попробуйте отыскать «Find components and texts».
Инструмент Добавить метку неподключенного вывода[править]
ERC обычно сообщает в протоколе пины, никуда не подсодиненные. В некоторых случаях это реальная проблема — пропущенный контакт; в других же случаях может быть пин никуда не соединен намеренно. Вы можете объяснить контролеру ERC о намеренном неподсоединении пина, ставя на него маркер «noconn«.
Активируйте инструмент «Add noconnect flag» — в середине правой инструментальной панели; значок курсора станет «Х». Кликайте на пинах, отмечая его маркером «noconn».
Вы можете удалить маркер «noconn» правым кликом — «Delete noconn»
Проставьте маркер «noconn» на всех неподсоединенных пинах, которые ERC обнаружил (кроме пинов с флагом PWR_FLAG) и перезапустите контролер ERC. Результат должен выглядеть что-то вроде картинки ниже, показывающей только 4 ошибки.
Ошибки на выводах питания — PWR_FLAG[править]
Кликните на маркере ошибки (маленькая стрелка) на одном из симолов питания (GND or +5V) и посмотрите на статусную строку внизу слева окна. Вы увидите сообщение вроде такого:
ERC << Warning Pin power_in not driven (Net 15).
Это сообщение говорит, что пин (и все такие же пины компонентов питания) предполагал иметь источник питания, но оказался пустым. (VCC, GND, 3V3 и другие символы питания интерпретируются идентично). Источник питания мог быть таким, как регулятор напряжения 78хх.
В этой связи питание будет подано от внешнего источника через разъем. Чтобы устранить такое сообщение, вы можете объяснить ERC, что все нормально, подключив к связи флаг PWR_FLAG. PWR_FLAG — это специальный «виртуальный» компонент, которому не сопоставлен физический корпус. Он существует только для «успокаивания» ERC. Пин с флагом PWR_FLAG объявлен типом «power_out», растолковывая ERC, что пин с такой связью присоединен к питанию. Вам нужны разные PWR_FLAG для каждой связи питания. В нашем случае имеется питание +5V и GND, но более сложные схемы часто имеют много питаний, например, -12V, 3V3, и AGND.
Компоненты питания, как +5V и GND, также «виртуальны», не означая физического устройства. Они имеют особые свойства — все связи, соединенные к символу питания с данным именем — одна и та же цепь по всем листам иерархической схемы.
Подсоедините флаг PWR_FLAG к связи +5V и другой — к GND и перезапустите ERC. Это должно избавить от оставшихся ошибок. На рисунке ниже показано отсутствие ошибок когда все соединения сделаны верно.
Файл:Complete ERC.png
Редактирование параметров компонента[править]
Перед продолжением проведите визуальную проверку того, что верные значения даны всем
конденсаторами («1 uF» вместо «CP»). В дополнение к уже упоминавшемуся способу
правого щелчка мыши «Редактировать Компонент>Значение» («Edit Component>Value») имеется другая методика редактирования
определенного поля компонента. Если вы поместите курсор мыши непосредственно
над нужным полем, то правый щелчок мыши откроет дополнительные пункты «Переместить поле» («Move Field»),
«Вращать поле» («Rotate Field»), «Редактировать поле» («Edit Field»).
Перемещение и вращение позволяют изменить положение поля относительно графического обозначения компонента
(что делает схему более опрятной). «Редактировать значение» («Edit Value») позволяет изменить значение поля
без необходимости производить выбор посредством многоуровневых контекстных меню.
В дополнение к Полю значения (Value field) это также работает для Поля ссылки (Reference field) .
Окончательная схема должна выглядеть примерно так
Файл:Complete schematic.png
Генератор списка соединений[править]
Создать список соединений — щелкните по кнопке «Создание списка соединений»
(«Netlist generation») на верхней панели инструментов.
Появившийся диалог будет содержать закладки для различных форматов списка соединений;
мы будем использовать родной формат «Pcbnew». Щелкните кнопку «Список соединений» («Netlist»),
далее щелкните кнопку «Сохранить» («Save») соглашаясь с именем файла по умолчанию,
которое получается из названия проекта.
Определение типов корпусов с помощью Cvpcb[править]
Для правильной разводки физического слоя печатной платы (printed circuit board, PCB)
для электрической принципиальной схемы каждое условное графическое обозначение («компонент» в терминологии KiCad)
должно быть связано с типом материального корпуса («модуль» в терминологии KiCad).
Материальные корпуса/модули — это элементы, подобные 16-выводным DIP, 44-выводным «кроваткам»,
1206 SMT компонентам и т.д. При работе со слоями печатной платы понятие «модуль»
в принципе заключает в себе «отпечаток» корпуса на печатной плате.
Некоторые САПР связывают компоненты с типами корпусов непосредственно в своих библиотеках.
В KiCad связь не встроена в библиотеку. (Преимущество подхода KiCad проявляется в том,
что отдельный компонент схемы, например, конденсатор, может использоваться со множеством различных
типов корпусов, например, с осевыми, радиальными или для поверхностного монтажа корпусами разных размеров.)
Данное преимущество не столь ценно для современных БИС (VLSI) компонентов,
у которых номера выводов часто совершенно отличаются между их вариантами в различных корпусах.
Программа Cvpcb пакета KiCad снабжает примечаниями список соединений, который создает EeSchema,
добавляя в него информацию о типе корпуса (о «модуле»), которая необходима для программы обработки слоев.
Некоторые из связей могут быть сделаны полуавтоматически, путем использования файла, описывающего связывание по умолчанию, иные же должны быть сделаны вручную.
Запустите Cvpcb используя одну из четырех больших кнопок в окне управления проектами KiCad
либо нажав на кнопку «Запустить Cvpcb» («Run Cvpcb») на панели инструментов EeSchema.
В большинстве случаев Cvpcb загрузит файл списка соединений для текущего проекта автоматически.
Левая панель Cvpcb содержит список компонентов в текущем списке соединений —
ссылочное обозначение, значение и связанный модуль, если какой-либо был с ним связан.
Правая панель содержит список доступных модулей. (Содержание списка доступных модулей
зависит от сконфигурированного набора библиотечных файлов. Вы можете добавлять дополнительные
библиотечные файлы в настройки с помощью пункта меню Cvpcb «Свойства>Настройка» («Preferences>Configuration»).)
Чтобы определить для компонента конкретный модуль сначала выберите компонент в левой панели
(щелкните по линии или используйте кнопки стрелок на панели инструментов).
Затем выберите нужный модуль в правой панели. Двойной щелчок по названию модуля (в правой панели)
свяжет его с выбранным компонентом (в левой панели). Если вы желаете осмотреть материальный отпечаток
модуля, выберите его щелкнув один раз по модулю и нажмите кнопку
«Просмотр выбранной детали» («View selected part») на панели инструментов.
Это вызовет появление окна, в котором будет находится материальное изображение модуля.
Выберите модули для всех компонентов согласно рисунку:
Рисунок, демонстрирующий законченный список:
Файл:Complete cvpcb.png
Теперь сохраните список соединений нажатием на кнопку «Сохранить список соединений и список компонентов»
(«Save Netlist and Cmp list») на панели инструментов. Лучше всего сохранять его с именем по умолчанию,
которым будет тот же файл списка соединений, с которым вы начали.
Cvpcb добавит новую информацию в этот файл.
В Cvpcb имеется возможность произвести «Автоматическое связывание» («Automatic associations»)
(оно доступно из панели инструментов), что позволит вам автоматизировать часть процесса связывания
компонент/модуль. Для этого вы сначала создаете внешний файл, который определяет модуль по умолчанию, используемый
для некоторых типов компонентов, и таким образом отпадает надобность в указании модуля каждому компоненту вручную.
Это может быть полезным для больших проектов.
Cvpcb также может создать файл «списка материалов» («stuffing list») (путем нажатия на кнопку
«Создать файл материалов» («Create stuff file»)), который будет содержать ссылочные обозначения компонентов
и связанные с ними модули/типы корпусов. Такой файл полезен при сборке печатной платы, когда последняя уже будет изготовлена.
Разводка печатной платы в Pcbnew[править]
Запустите Pcbnew(«Start Pcbnew») — редактор схем используя, либо одну из крупных кнопку в окне управления проектами KiCad, либо запустите Pcbnew(«Run Pcbnew») через редактор принципиальных схем EeSchema, кнопка запуска находится на верхней панели инструментов.
English:
Start Pcbnew either from the large button in the KiCad project window
or from the «Run Pcbnew» button in EeSchema’s top toolbar.
Чтение списка соединений (Reading in the netlist)[править]
Считать список цепей(соединений) — «Read in the netlist file». Если диалог выбора списка цепей (netlist) не начинается автоматически, нажмите на кнопку «Считать список цепей»(«Read netlist») находящуюся на верхней панели инструментов. В окне диалога, нажмите кнопку «Пролистать»(«Browse»), чтобы запустить диалог выбора файла, а затем выберите файла списка цепей(netlist), который вы недавно создали для своего проекта. Вернувшись в диалог считывания соединений, нажмите кнопку «Считать загруженный список цепей» («Read Current Netlist») в Pcbnew, после этого запустите проверку печатной платы(«Footprint Test») на возможные ошибки в расположении посадочных мест(модулей) под компоненты.
Некоторые распространенные ошибки:
-модуль имеет меньшее количество выводов, чем связанный с ним компонент
-обозначения выводов модуля не соответствуют обозначениям выводов компонента (например, выводы компонента могут быть пронумерованы, в то время как выводы модуля могут быть обозначены буквам)
Чтобы исправить такие ошибки, вам придется: или выбрать другой модуль, соответствующий компоненту, или изменить компонент, или изменить модуль — но так чтобы они совпадали.
Замечание: например, если вы сделали схематические изменения, то вы можете частично пересчитать список соединений в проектируемой плате. Подробности этого процесса не будут описаны в данном руководстве.
English:
Read in the netlist file. If
the netlist selection dialog doesn’t start automatically, click the
«Read netlist» button in the top toolbar. In the Netlist dialog,
click Select to get a file selector dialog, then choose the netlist
file that you have just created for our project. Back in the Netlist
dialog, click Read to load the netlist file into Pcbnew, then Module
Test to check for possible errors in the assignment of modules to
components.
Some common errors:
— a module with fewer pins than its associated component
— a module’s pin designators don’t correspond to the component’s
pin designators (for example the component pins might be numbered,
while the module’s pins might be identified by letters)
To correct such errors, you would need to either select a different
module that matches the component, or to modify either the component
or the module so that they match.
Note that you can reread the netlist into a partially designed board,
for example if you make a change to the schematic. The details of
this process are not be covered in this tutorial.
Расстановка модулей (Spreading out the modules)[править]
Редактор схем Pcbnew при загрузке нового списка соединений добавляет все его модули в чертеж. Это ставит их всех в одном месте, друг поверх друга, где их порой трудно найти.Если чертёж не имеет контур(очертания) платы, то недавно добавленные модули находятся на пересечении с двумя синими линиями сверху и слева от листа с рамкой. Если чертеж имеет контур платы, то в дальнейшем новые модули размещаются на обозначенной плате.
Отдельными модулями очень легко управлять. Сначала нажмите на кнопку «Режим работы Модуля: ручное и автоматическое перемещение или место расположения модулей» («Mode Module: Manual and Automatic Move or Place for modules»), на верхней панели (вторая справа). Необходимо чтобы кнопка была во «вжатом» положении. Затем щелкните правой кнопкой мыши в пустом пространстве чертежа, и выберите пункт «Перемещение и размещение Glob»> «Переместить все модули» («Glob Move and Place>Move All Modules»). Это расставит модули.
Переместите группу модулей в центр листа следующим образом: выделите все содержащиеся модули рамочкой (т.е. удерживая левую кнопку мыши до тех пор, пока не переместите курсор мыши в расположенный напротив край рамочки). Отпустите кнопку мыши, переметите мышь, таким образом что бы рамочка была около цента красного наброска листа. Левая кнопка закрепить в новом положении, и нажмите кнопку ОК в диалоговом окне.
Если вы в конце операции закрепления, вместо левой кнопки используете правую, вы увидите всплывающее меню, с помощью которого вы можете выбирать такие операции как как копирование, перетаскивание, отражение(переворот), удаление. «Отражение» это то как вы повернёте верхнюю «часть» модулей в сторону низа, перевернуть другой стороной «монету», и наоборот.
На данном этапе можно сделать набросок контура вашей платы. Это было бы особенно уместно, если вы уже знаете характеристики платы. В этом учебнике, мы будем выбирать размер платы позже и отложим оформление контура. Если контур платы был определен, редактор схем Pcbnew умеет автоматически разместить компоненты, но мы будем делать размещение вручную.
English:
When you load a new netlist, Pcbnew adds all of its modules to the
drawing. It places them all in one place, on top of one another,
where they are sometimes difficult to find. If the drawing does not
yet have a board outline, newly-added modules are placed at the
intersection of the two blue lines above and left of the sheet frame.
If the drawing does have a board outline, new modules are placed below
the outline.
Separate the modules so they are easy to manipulate. First click on
the «Mode Module …» button in the top toolbar (second from right).
You want that button to be in the «down» position. Then right-click
in an open area of the drawing, and select «Glob Move and Place>Move
All Modules». That will spread out the modules.
Move the group of modules to the center of the sheet as follows:
Drag-select a rectangle containing all the modules (i.e. hold down the
left mouse button while moving the mouse to the opposite corner
of the rectangle). Release the mouse button, the move the mouse
so the rectangle is near the center of the red sheet outline.
Left-click to place the block in the new position, and click
Ok on the dialog.
If you end a block operation with right-click instead of left-click,
you’ll get a popup menu that lets you can choose operations like Copy,
Drag, Mirror, and Delete. «Mirror» is is how you move modules from
the top «component» side to the bottom «copper» side of the board, and
vice versa.
At this point you could draw the outline of your circuit board. That
would be especially appropriate if you already know the board form factor.
In this tutorial, we’ll decide on the board size later and wait to
draw in the outline. When a board outline has been defined, Pcbnew can
place components automatically, but we’re going to do a manual placement.
Вспомогательное размещение — Placement aids[править]
Прежде чем мы продолжим с размещением, давайте взглянем на некоторые особенности Pcbnew, которые могут нам помочь с этой задачей. Наиболее важными из них являются ratsnests и airwires(соединения по воздуху).
English:
Before we continue with placement, let’s look at some of Pcbnew’s
features that can help us with that task. The most important are
ratsnests and airwires.
Ratsnests и Airwires[править]
При перемещении модулей, Pcbnew будет показывать «airwires», представляющие собой белые линии соединений каждого из контактов модулей до ближайшей точки (контакта или дорожки) в той же цепи. Airwires(соединения по воздуху, воздушные нити) динамически меняются когда вы двигаете компонент, «как резинка» и временами «обхватывают» остальные близлежащие конечные точки. Эта функция поможет вам найти места с предельно короткой протяженностью связи. Вы можете включать функцию airwire одновременно с «Модулем Ratsnest»(«Module Ratsnest»), кнопка на левой панели инструментов.
Так как модуль airwires предназначен для просмотра, Pcbnew умеет показывать общий ratsnest(«general ratsnest»), с указанием всех несвязанные цепей на всем чертеже. Это полезно для просмотра плохо различимых точек на чертеже — в районах пересечений вспомогательной сетки. В более поздних стадиях процесса трассировки, это полезно для обнаружения цепей, которые еще не были разведены. Вы можете включать эту функцию одновременно с «Общим ratsnest»(«General ratsnest»), кнопка на левой панели инструментов. Если ratsnests отображается неправильно, то команда «Обновить» (кнопка в правой части меню, или средняя кнопкой мыши), зачастую, исправит картину.
Если вы хотите не использовать «Общий ratnests» — отключить для удобства просмотра, но все еще хотите видеть ratsnest для определенного контакта или компонента, используйте «Местное отображение Ratsnest»(«Display Local Ratsnest», в русской версии этот инструмент называется «Добавить модули» — согласно справочным данным «KiCad»), расположенный на правой панели. Когда этот инструмент активен, нажав на контакт или модуль — будет показывать его ratsnest. Вы можете добавить дополнительные отображения ratsnests, нажав на нескольких модулях, или очистки показ, нажав в пустой области. (Вы можете увидеть модуль ratsnest, переместив его, но возможен риск разорвать какую-нибудь связь, которая уже подключена к нему. Если вы нарушите связи таким образом, вам придется удалить связи или их сегменты и восстановить их.)
English:
When you are moving a module Pcbnew will show «airwires», which are
white lines connecting each of the modules pins to the nearest other
place (pin or track) on the same net. The airwires dynamically
change as you move the component, «rubberbanding» and sometimes
«snapping» to other nearer endpoints. This feature helps you find
placements with short overall connection lengths. You can turn the
airwire feature on and off with the «Module Ratsnest» button in
the left toobar.
In addition to the per-module animated airwires, Pcbnew can display
a «general ratsnest», showing all the unconnected nets for the whole
drawing. That’s useful for seeing «hotspots» in the drawing — areas
where many nets cross. In later stages of the layout process, it’s
helpful for locating nets that have not yet been routed. You can
turn this feature on and off with the «General ratsnest» button in
the left toolbar. If the ratsnests seem to display incorrectly,
the «Redraw» command (in the right-click menu, or middle mouse button)
will often fix the display.
If you want to leave «general ratnests» turned off for tidiness, but
you still want to see the ratsnest for a specific pin or component,
use the «Display Local Ratsnest» tool in the right toolbar. When that
tool is active, clicking on a pin or module will display its ratsnest.
You can add additional ratsnests to the display by clicking on more
modules, or clear the display by clicking in an empty region. (You
could see a module’s ratsnest by moving it, but that would risk breaking
any tracks that are already connected to it. If you break tracks in
this way, you would have to delete the tracks or some segments thereof
and reconnect them.)
Подсветка цепи — Net highlighting[править]
«Подсветка цепи» инструмент (на правой панели) предусматривающий другой метод просмотра соединений для конкретной цепи. С активацией этой инструмента, при нажатии на ножку(площадку) или на дорожку, все ножки(площадки) и дорожки в этой цепи станут подсвечены. При нажатии на другую ножку(площадку) изменится подсветка новой цепи, при нажатии на свободное место погасится вся подсветка.
English:
The «Net highlight» tool (right toolbar) provides another way to see
the connections for a particular net. With that tool active, if you
click on a pad or a track, all of the pads and tracks on that net
will be highlighted. Clicking on a different pad will change the
highlight to the new net, and clicking in an empty are will clear
all the highlighting.
Правила контроля чертежа — Design Rules Check[править]
«Правила контроля чертежа» («DRC») — функция контроля новых трасс(соединений), чтобы они не слишком близко располагались друг к другу. Эти разрешающие правила настраиваются в пункте меню — «Размеры»> «Дорожки и переходные отверстия»(«Dimensions»>«Tracks and Vias»). С включенными Правилами контроля чертежа(«DRC On»; по умолчанию), Pcbnew не позволит вам разместить отрезок трассы(дорожки), который нарушает правила. При проведении отрезка трассы, «охраняемое пространство» вокруг него отображается узким линиями. Если это «охраняемое пространство» совпадает с имеющимся объектом, Pcbnew не размещает отрезок трассы при нажатии кнопки. Правила контроля чертежа могут быть отключены «Выключить Правила контроля чертежа»(«DRC Off»), в верхней части левой панели.
Теперь вернемся к нашей задаче. Расположить элементы, как показано на следующем рисунке(которого нет). Нажимая правой кнопкой мыши на модуле, вы можете выбрать различные способы его перемещения и его переориентации.
English:
The «Design Rule Check» (DRC) feature checks new tracks to ensure that
things don’t get too close together. (The clearance rules are configured
by the «Dimensions>Tracks and Vias» menubar item.) With «DRC on» (the
default), Pcbnew will not allow you to place a track segment that violates
the rules. While you are drawing a track segment, the «keepout area»
around it is shown by narrow lines. If that keepout area overlaps an
existing object, Pcbnew won’t place the segment when you click.
DRC can be turned off with the «DRC Off» button at the top of the left toolbar.
Now let’s return to the task at hand. Place the components as shown in the
following figure. You can right-click over a module to select various
ways to move and reorient it.
<figure>
Автоматическая разводка(трассировка) — Auto-routing[править]
Разместив все модули, давайте попробуем авто-трассировку. Команды автоматической трассировки доступны в меню нажатием правой кнопкой мыши, но сначала вам надо сделать их доступными — нажатием кнопки «Режим Трассировки и Авто-трассировки»(«Mode Track and Autorouting» ), кнопка на верхней панели инструментов.
Нам хотелось бы сделать одностороннюю плату для этой простой схемы, поэтому мы расскажем об использовании Авто-трассировки только для одной стороны. Щелкните правой кнопкой мыши в пустую область и выберите пункт «Глобальная Авто-трассировка»> «Выбор пары слоев»(«Global Autoroute»>»Select layer pair»). В диалоговом окне выберите «Медь»(«Copper») как верхний и нижний слои(Top Layer & Bottom Layer), и нажмите кнопку ОК. (Некоторые люди называют его «припаянная сторона» вместо «сторона меди».)
Теперь щёлкните правой кнопкой мыши в пустую область и выберите пункт «Глобальная Авто-трассировка»> «Авто-развести все модули»(«Global Autoroute» > «Autoroute All Modules»). Поскольку речь идет о небольшой цепи, вы скоро должны увидеть разводку похожую один в один на приведённую на рисунке ниже(которого нет). (Для сложных схем или на медленных машинах процесс разводки может занять несколько минут.)
Дополнительно вы можете указать Pcbnew: авто-развести всё за один раз, авто-развести один модуль, цепи или контакты. Щелкните правой кнопкой мыши «Авто-трассировка» над модулем по маршруту всех цепей, связанных с этим модулем. Щелкните правой кнопкой мыши «Авто-трассировка цепи» над контактом по маршруту всей цепи, связанной с этим контактом. Щелкните правой кнопкой мыши «Авто-трассировка контакта» над контактом по маршруту кусочка цепи, ближайшего соседнего с этим контактом. Вы можете использовать это, чтобы помочь авто-трассировщику выполнять лучше разводку, выбирая порядок следования по разводящейся цепи.
English:
Having placed all the modules, let’s try the auto-router. The auto-routing
commands are accessed with the right-click menu, but you first have to
enable them by clicking the «Mode Track and Autorouting» button in the
top toolbar.
We wish to make a single-sided board for this simple circuit, so we’ll
tell the auto-router to use only one side. Right-click in an empty area
and select «Global Autoroute>Select layer pair». In the dialog, select
«Copper» for both Top Layer and Bottom Layer, and click OK. (Some people
call it the «solder side» instead of the «copper side».)
Now right-click in an empty area and select «Global Autoroute >
Autoroute All Modules». Since this is a small circuit, you should
soon see a routing similar to the one in the figure below. (For
complex circuits or slow machines the routing process can take
several minutes.)
<figure>
In addition to autorouting everything at once, you can tell Pcbnew to autoroute
a single module, net or pad. Right-click «Autoroute» over a module to route
all the nets connected to that module. Right-click «Autoroute net» over a pad
to route the entire net connected to that pad. Right-click «Autoroute pad» over a
pad to route a portion of the net, from that pad to a nearby neighbor. You
can use these to help the autorouter to do a good job by choosing the order
in which nets are routed.
Ручная правка[править]
Для завершения проекта обычно требуется ручное вмешательство. Автоматическая система трассировки часто не может найти способа провести некоторые соединения; такие соединения отображаются как перемычки. Иногда разработчик предпочитает другой путь для некоторых соединений, чем тот, который определился системой автоматической трассировки.
Для устранения таких проблем можно удалить некоторые соединения (особенно те, что препятствуют разводке в важных зонах соединений) и либо повторить автоматическую трассировку, либо определить маршрут для соелинений вручную, либо сделать и то и другое.
Следующая иллюстрация показывает проект, исправленный вручную. Для того, чтобы уменьшить риск короткого замыкания при последующем производстве, старайтесь не располагать соединения между выводами интегральных микросхем.
<figure>
Следующая техника ручной правки поможет вам завершить разработку платы.
English version of above:
Manual layout
Manual intervention is usually necessary to complete the layout.
Often the autorouter does not find a way to route some of the nets —
those unrouted nets are displayed with ratsnest lines. For some of
the routed nets, the user will often prefer a different routing than
the one the autorouter chose.
To fix such problems, you might have to delete some of the routed
tracks (particularly ones that «block» important routing zones) and
either re-run the autorouter, route some of the tracks manually, or
some combination of the two.
The following figure shows a layout that was redone manually. In
order to reduce the risk of short circuits during later fabrication
steps, the manual layout avoids having tracks pass between pairs
of IC pins.
<figure>
The following manual-layout techniques will help you complete
the layout:
Удаление соединений[править]
Используя правую кнопку мыши можно удалить одиночное соединение. Если вам нужно удалить подряд несколько соединений лучше использовать инструмент «Удаление элементов» («Delete items»), расположенный на правой стороне (пиктограмма выглядит как ластик на конце карандаша). Заметьте, что на время активации данного инструмента курсор принимает особую форму. Не забудьте выключить данный инструмент по окончании удаления (нажмите правой кнопкой мыши на «Положить инструмент» («End Tool»), выберите другой инструмент из правого набора инструментов или просто нажмите Esc) чтобы случайно не удалить что-нибудь нужное.
При использовании правой кнопки мыши для удаления соединений, можно указать, что нужно удалить Сегмент соединения, Соединение или Линию. «Сегмент» — это часть соединения между двумя «вершинами» («вершина» — место изгиба соединения). «Соединение» — это непррывная последовательность сегментов, соединяющая две контактных площадки для пайки элементов. «Линия» — это все соединения, относящиеся к одному участку схемы из непосредственно соединенных элементов.
English version of above:
Deleting tracks
From the right-mouse menu you can delete
single track pieces. If you want to delete several tracks in
succession, it’s faster to use the «Delete items» tool in the right
toolbar (the icon looks like a pencil eraser). Notice the special
cursor shape when Delete tool is active. Remember to turn off the
Delete tool when you’re done (right-click «End Tool», or choose a
different tool from the right toolbar, or just hit the Esc key), so
you don’t accidentally delete something later.
When using the right-mouse to delete tracks, you can choose to delete
either a Segment, a Track, or a Net. A «segment» is a piece of track
between two «nodes» (a node is a place where the track can change
direction). A «track» is a connected set of segments between two
module pads. A «net» is all of the tracks that are associated
with a given schematic net.
Рисование соединений[править]
Для того, чтобы нарисовать новые соединения, используйте инструмент «Добавить соединения и пути», расположенный справа. Начните соединение кликнув левой кнопкой мыши на контактной площадке. Передвиньте указатель мыши с тянущейся за ним линией к точке перегиба и еще раз нажмите левую кнопку мыши. (Если точка перегиба не зафиксировалась после этих действий, значит Контролер соблюдения правил разводки (Design Rule Checker) обнаружил проблему. Мешающий объект будет указан небольшой белой стрелкой.) Продолжайте соединение, добавляя в необходимых местах перегибы. По достижению точки назначения (обычно — другой контактной площадки), закончите соединение двойным щелчком мыши или из меню, вызываемого по правой кнопке мыши, — «Завершить соединение» («End Track»).
Во время рисования соединения, Pcbnew выделяет все элементы, которые должны быть соединены с данной Линией — это могут быть контактные площадки или уже проведенные соединения. Также отображается белая перемычка между начальной контактной площадкой и ближайшей контактной площадкой Линии и желтые перемычки до всех других контактных площадок данной Линии. Это помогает увидеть возможные направления проведения соединения.
Контролер соблюдения правил разводки (Design Rule Checker) не позволит вам соединить новую Линию с существующим элементом (соединением, линией или путем) из другой Линии. Также вы не сможете провести соединеие слишком близко к такого рода элементу. (Термин «слишком близко» определяется с помощью Меню->Настройки->Размеры->Зазоры контактной площадки ? («menubar > Dimensions > Track and Vias > Clearance»).) Это означает, что невозможно соединить элементы на печатной плате до тех пор, пока они не соединены на схеме!
Соединть оставшиеся Линии (Connect the remaining nets) — разъем DB9 прикрепляетя на сторону компонентов печатной платы. На реальной плате, которая предполагается односторонней, будет необходимо использовать провода или перемычки для того, чтобы сделать необходимые соединения. Однако, мы можем использовать Pcbnew для того, чтобы отобразить эти проаодв так, как будто они были бы соединениями второго (со стороны компонентов) слоя печатной платы. Это также даст нам также возможность проиллюстрировать возможности Pcbnew по проектированию многослойных печатных плат.
Смотри также Manual Routing Notes — Примечания к ручной разводке соединений
English version of above:
Drawing tracks
To draw a new tracks, use the «Add tracks and vias» tool from the right
toolbar. To start a track, left-click on a pad. Extend the track
line to the next corner and left-click again to place the corner node.
(If the corner does not «stick» when you try to place it, the Design Rule
Checker found a problem. A small white arrow shows the interfering
object.) Continue extending the track and placing corners as
necessary. When you reach the destination point (typically a pad),
finish the track by either double-clicking on the destination point,
or with right-click «End Track».
While you are drawing a track, Pcbnew hightlights all of the items
that are supposed to be attached to that net — both pads and
already-placed tracks. It also displays a white ratsnest line from
the starting pad to the nearest pad on the net, and yellow airwires to
all of the other pads on that net. That helps you see possible
destinations for your new track.
The Design Rule Checker will prevent you from connecting a new track
to an existing item (track, pad, or via) on a different net from the
one you’re routing. It won’t even let you get too close to such an
item. («Too close» is defined by «menubar > Dimensions > Track
and Vias > Clearance».) This means you cannot connect things on the
board unless they are connected on the schematic!
Connect the remaining nets — the DB9 connector pins on
the component side of the board. On the real circuit board, which is
intended to be single-sided, we’ll need to use wires or jumpers for
those connections, but we can use Pcbnew to represent those wires as
if they were component-side PCB tracks. This will also give us an
opportunity to illustrate Pcbnew’s multiple-layer capabilities.
See Also: Manual Routing Notes
Двусторонние печатные платы[править]
Earlier, we told the autorouter to use only the copper side, and we’ve
been using that side for our manual routing too. Now we want to start
using the component side too. There are several different ways to
control the layer selection, depending on which tool is active.
- With the «Add tracks and vias» tool active, right-click «Select Working Layer» chooses the electrical layer for new tracks.
- With the «Add tracks and vias» tool active, right-click «Select layer pair for vias» gives you a dialog similar to the global autorouter layer dialog, so you can select top and bottom layers for new vias.
- With the Selection tool active, right-click «Global Autoroute > Select Layer Pair» controls the layers the autorouter uses.
- With the Selection tool and most of the other tools, right-click «Select Working Layer» controls the layer for subsequent drawing commands (in addition to electrical layers like copper and component, you can also draw on auxiliary layers like silkscreens and solder masks).
Activate the «Add tracks and vias» tool —
right-click «Select Layer Pair» and choose Top Layer = Component ,
Bottom Layer = Copper.
Connect the DB9 pins. Start drawing a track from one of the MAX232 pins that is supposed
to be connected to the DB9 connector. That track should start out
on the copper layer. Extend the track toward the DB9 as shown in
the figure below.
<figure>
When you get near the DB9, right-click «Place Via» and then extend the
track over to the DB9 connector pin. Notice that the track switched
to the component side after the via. (The board could still be fabricated
as single sided, using jumper wires instead of the component side tracks.)
Repeat the process for the 2 remaining unconnected nets as shown in the
figure below. Now that you are drawing on the component side of the
board, you have two options for connecting the remaining tracks:
a) You could start the track at the DB9 connector and move toward
the MAX232 part, switching automatically to the copper side when
you place a via, or
b) You could manually switch back to the copper side, then start the
track at the MAX232 end. To switch manually, either right-click
«Select Working Layer», or choose «copper» from the drop-down list
near the right end of the top toolbar.
<figure>
If you need to move a module to the other side of the board,
use right-click «Invert Module». The pads will change color,
showing you that they are on the other layer, and the drawing
will change to its mirror image, consistent with the flip that
must occur to put the device «upside down».
Многослойные печатные платы[править]
Мы рассмотрели работу только с двумя слоями, но Pcbnew позволяет использовать больше.
The menu item «Preferences > General Options» lets you choose anywhere from
1 to 16 copper layers.
ddd
Контур платы — Board outline[править]
Нарисовать Контур Платы. В KiCad для этих целей существует специальный слой под названием «Edges PCB» (контур платы).
Вы можете выбрать его из выпадающего меню слоев или нажатием правой кнопки мыши, выбрав пункт «Select Working Layer» (Данный способ не сработает, если активен инструмент «Add tracks and vias»(Добавить дорожки и переходные отверстия)).
Для того, чтобы вам было проще рисовать контур платы, вы можете выбрать полноразмерный курсор. Это позволит вам гораздо удобнее чертить прямоугольники и другие объекты с прямыми углами. Для того, чтобы изменить вид вашего курсора нажмите кнопку «Change Cursor Shape»(Изменить форму курсора) на левой панели.
После выбора слоя «Edges PCB» и включения полноразмерного курсора,
нажмите кнопку «Add graphic line or polygon» (Добавить графическую линию или полигон) на правой панели.
Нарисуйте контур платы как показано ниже, и завершите построение двойным нажатием на левую клавишу мыши или выбором пункта «End Drawing» (Закончить черчение) правой кнопки мыши. Помните, что в статусной строке отображаются все координаты вашего курсора, что может помочь вам при рисовании.
<figure>
Так же существуют инструменты для рисования окружностей, закруглений, текста и прочее. Они полезны не только для рисования контура платы, но и так же для рисования по слою шелкографии и паяльной маски. В данном руководстве это будет рассмотрено лишь поверхностно.
Zone Fills[править]
At this point, we could fabricate the design, but instead we’ll do one
last optimization. We’ll fill the open areas on the copper side with
a copper zone. In addition to the extra electrical grounding, it reduces
waste because less corrosive liquid («etchant») is needed to dissolve
away the copper. (It also make mechanical etching or PCB milling
feasible.)
Select the Net to Connect to the Zone
If you want the zone to be connected to a net (for example GND), select
that net using the Net Highlight tool.
You must first wire up the net with traces before filling in the zone, or
you will get DRC errors. If you do not want the zone to be connected to a net,
make sure that no net is currently hightlighted (also look in the status bar
at the bottom of the window).
Activate the «Add zones» tool — click on the «Add zones» tool in the right toolbar.
Use the left mouse button to draw a zone boundary, double-clicking to complete
the polygon.
Then, in an empty area, right-click «Select Working Layer» and
choose the copper layer. In an empty area inside the board
outline, right-click «Fill zone». You’ll get a dialog with several
options controlling the filling process. Experiment to see how they
work. If you don’t like the result of a fill, right-click «Delete Zone»
and try again. If there are unfilled «islands», you can fill them
too by doing the fill operation with the mouse over those zones.
Two fill results are shown below, with different settings for «Grid»
(0.010 and 0.005).
Figure below demonstrates a completed board
Файл:Complete board.png
The «Zone Limit» boundary cannot be edited; you have to delete it and start over.
This can be tedious if you want to revise your layout. One workaround is to
draw a boundary with a track that is not associated with any net. You can draw
such a track by turning DRC off. The zone fill will stop at that track (assuming
that it is not highlighted when you perform the fill), and you can later reposition
the track with the usual track editing commands.
Просмотр 3D-модели платы в 3D Viewer[править]
You can look at a 3D representation of the board by selecting
«3D Display > 3D Display» from the menubar. The 3D Viewer lets
you rotate the image to see it from any angle. The 3D view
doesn’t show filled zones, because they would obscure everything
else.
The 3D view always shows tracks and vias; it shows the part packages
too if the necessary library files are present. The 3D view of this
design can be more elaborate if you copy some 3D components from
the author’s web site (address at end).
To change it so you see a socket instead of the MAX232 device,
bring up it’s Module Properties dialog (either by double-clicking
in an free area over the module with the Selection tool active,
or with right-click «Edit Module»). Select the «3D settings» tab.
Browse to find the file «soquete_16.wrl». (It will be easier to
find your additional 3D shape files if you place them in the project
directory or a subdirectory.)
The 3D view of a device can consist of several different pieces,
so you could display both the socket and also the part in the
socket. To do that, go into the «3D Settings» dialog as before
and this time click on «Add 3D Shape». Browse to select the
shape «dil_16.wrl», and set the Y Offset to 0.1500. That will lift
the part picture off the board so it appears to be in the socket.
You could have done this in the other order too — instead of
first changing the dil_16 to a socket, you could have just
change the dil_16’s offset to 0.1500 and then added the socket
as the second shape.
You could also use the new capacitor models (c_vert_c1v5.wrl) from the
author’s web site. It’s not a good idea to change the models in the
original KiCad libraries. Instead, put the new models in a separate
directory and edit the module properties to refer to the file in the
new directory. The result should look like the following figures.
Figure shows an axonometric view of board from component side
Файл:Complete 3D.png
Создание файлов для промышленного изготовления платы[править]
Если вы используете сторонний продукт для изготовления печатных плат, то вам необходимо сгенерировать Gerber-файлы, описывающие слои плат. Сначала вам возможно необходимо будет нанести fiducial маркеры на ваш рисунок с помощью сервиса «Add Mires» справа на панели инструментов. Также существует сервис «Adjust Offset», который позволяет контролировать the origin for drill and placement files. Для создания Gerber-файлов используйте команду «Начертить» («Plot») (кнопка вверху панели инструментов либо пункт меню «Файлы>Начертить» («Files>Plot»)). Выберите формат вывода Gerber и установите другие опции согласно вашим fab shop’s требованиям.
Если вы планируете изготавливать платы самостоятельно, используя термический либо фотографический методы, вам следует напечатать проверочные чертежи (plots) на обычной бумаге перед тем как наносить конечный чертеж на реальный носитель. Проверочный чертеж может помочь вам получить действительный масштаб, компенсируя различия принтеров. Для принтера автора нужно было устанавливать масштабный коэффициент равным 1.03480 чтобы сделать печать точной по размерам.
Для определения правильного масштабного коэффициента измерьте размер компонента с известными длиной и шириной на проверочном чертеже или сравните его с соответствующим размером в самой Pcbnew. Для этой цели может быть использован сервис «Добавить cotation» («Add cotation») справа на панели инструментов, также чтобы узнать точную позицию курсора вы можете посмотреть на панель состояния внизу.
В свою очередь удостоверьтесь, что ваши компоненты точно нанесены на проверочном чертеже. Будет очень досадно, когда выяснится что вы использовали неверный отпечаток для детали уже после того как плата будет изготовлена.
После уточнения масштаба можете печатать окончательный чертеж. Удостовертесь, что сделали выбор правильных слоев перед печатью!
Ограничения миниурока[править]
There are many aspects of KiCad that this tutorial does not address. Information about
them may be found in the on-line help. Here is a partial list of such things:
- Preferences
- Library Editing
- DRC Configuration
- Labels
- Multi-section devices
- Hidden pins
- Polar Coordinates
- Buses
- Hierarchical (multi-page) drawings
- Bill of Materials
- Communication between EeSchema and Pcbnew
- Revising designs
- Silkscreens and other layers
- Changing the sizes of various items
- Grid and unit issues
- Rescuing board designs
- Device documentation features
Благодарности[править]
Этот миниурок изначально был написан на португальском языке, реквизиты автора:
Автор: Рене С. Маркет (Renie S. Marquet) 16/09/2005 Analyst of Systems Niterói -RIO DE JANEIRO - Brazil Hobbysta of electronics: сайт: http://www.reniemarquet.cjb.net email: reniemarquet@uol.com.br (проверьте официальный сайт KiCad и узнайте о новых трюках и компонентах)
Оригинальная португальская версия доступна на указанном сайте.
Данный урок был сконвертирован в формат HTML и текст несколькими добровольцами и программно переведен с португальского на английский.
Мич Брэдли (Mitch Bradley) перефразировал его в доступный английский, добавив Wiki-форматирование и дополнительные объяснения.
Время на прочтение
8 мин
Количество просмотров 105K
Введение
Одним из критических замечаний к предыдущей статье было следующее: дескать фу таким быть, стрелять из пушки по воробьям да ещё проприетарным софтом за 10000$, к тому же наверняка украденным с торрентов. Оставляя за кадром моральную сторону вопроса, а так же презумпцию невиновности, обратимся к следующему вопросу — а что там у нас имеется в Open Source секторе, пригодное для решения задач проектирования электронной техники. В частности изготовления печатных плат. Наиболее достойной, на мой взгляд, оказалась кроссплатформенная программа KiCAD, распространяемая по лицензии GNU GPL. Имеются версии для Linux, Windows и macOS.
Рассмотрим этот инструмент подробнее применительно к уже решенной мною задаче — трассировке печатной платы для преобразователя уровней на базе MAX232.
1. Установка KiCAD и библиотек
Дистрибутив программы и инструкции по установке имеются на её официальном сайте. Так как я предпочитаю использовать Linux, а конкретно Arch Linux, то установка сводится к заклинанию для пакетного менеджера
$ sudo pacman -S kicad kicad-library kicad-library-3d
Первый пакет — сама программа, второй — библиотеке компонентов, третий — 3D-модели компонентов. Собственно и всё. Аналогичный набор пакетов имеется для всех популярных дистрибутивов Linux. Для Windows качаем бинарный инсталлятор здесь. Для macOS все аналогично. В общем, установка элементарна и затруднений не вызывает.
2. Чертим принципиальную схему
Запустив KiCAD мы увидим главное окно программы. Оно содержит дерево проекта и кнопки вызова программных компонент, предназначенных для различных этапов проектирования устройства.
Идем в меню Файл -> Новый проект -> Новый проект. Нам предложат выбрать место, где будут располагаться файлы проекта, а так же выбрать его имя. Все файлы, относящиеся к проекту лучше расположить в отдельном каталоге. Я располагаю все в каталоге ~/work/kicad/rs232, и проект назову rs232.
После создания проекта в дереве образуются два файла: rs232.pro — файл проекта; rs232.sch — файл принципиальной схемы. Дважды кликаем по файлу схемы и переходим Eeschema — программу для рисования схем
Формат основной надписи чертежа, естественно буржуазный. Но нас пока не интересует следование ГОСТ и ЕСКД. Нам надо оценить возможности пакета для решения конкретной практической задачи, путь даже такой простой. Поэтому приступим к рисованию схемы.
С правой стороны окна расположена панель инструментов. На ней имеется кнопка с изображением операционного усилителя — жмем на неё и переходим в режим размещения компонентов. Кликая мышью в поле схемы мы инициируем появление диалога
В строке фильтра начинаем набирать «max232». система производит поиск по библиотеке и предлагает нам интересующую нас микросхему. Выбираем её, жмем ОК и курсором мыши помещаем компонент в нужное место схемы. Аналогичным образом кладем на схему электролитический конденсатор, который отзывается в KiCAD по имени CP
Наводим курсор на конденсатор, жмем «V» и в появившемся окне задаем его номинал
Если навести курсор на любой элемент, в частности только что добавленный конденсатор, то нажатием соответствующих клавиш можно выполнять следующие действия
M — переместить компонент (начать перемещение)
C — создать копию компонента
R — повернуть компонент по часовой стрелке
X — отразить компонент относительно горизонтальной оси
Y — отразить компонент относительно вертикальной оси
Действуя описанным образом, размещаем все остальные компоненты схемы. Нам понадобятся следующие элементы
Имя компоненты в библиотеке | Тип компонента | Количество |
---|---|---|
CP | Электролитический конденсатор | 4 |
D | Диод | 1 |
DB9 | Коннектор типа DB-9 | 1 |
CONN_01x05 | Однорядный штыревой коннектор (5-pin) | 1 |
Кроме того, нам понадобится земля и питание +5 В. Эти элементы добавляются в режиме размещения портов питания, который включается на правой панели кнопкой с символом «земли». Нам понадобятся следующие порты: GND — собственно «земля»; +5V — без комментариев.
В конечном итоге на поле схемы у нас получится что-то вроде этого
Теперь, нажатием кнопки с изображением зеленой линии переходим в режим «Разместить проводник» и соединяем выводы всех элементов согласно принципиальной схеме устройства. Если нам нужна дополнительная «земля», наводим курсор на ближайшую «землю», жмем «C» и клонируем её, без отрыва от процесса соединения элементов. В конечном итоге у нас получится следующая схема
Обращаем внимание на то, что элементы схемы не пронумерованы. Для этой цели удобно воспользоваться функцией нумерации элементов. Вызываем её либо из меню Инструменты -> Обозначить схему, либо нажимая кнопку «Обозначить компоненты схемы» на верхней панели инструментов. Нам покажут диалоговое окно с настройками именования элементов
Задаем интересующие нас настройки и жмем «Обозначить компоненты». Теперь другое дело
Полагая, что мы закончили схему, проверяем правильность её построения с точки зрения правил KiCAD. Для этого жмем на верхней панели кнопку с изображением божьей коровки с зеленой галочкой. В предложенном нам окне жмем кнопку «Выполнить» и получаем результат
Ошибок нет, но зато есть 13 предупреждений. Эти предупреждения принципиальны — они указывают на то, что некоторые выводы элементов у нас никуда не подсоединены, а также на то, что мы не подали питание на схему.
Неиспользуемых выводов у нас много. Чтобы система не ругалась на нас по их поводу, отметим эти выводы ка неиспользуемые. Для этого выберем режим указания неиспользуемых пинов нажатием кнопки с косым крестом «X» на правой панели, так называемый флаг «Не подключено». Помечаем этим флагом все незадействованные пины
Входы второго канала MAX232 (ножки 8 и 10) подтягиваем к «земле», с тем чтобы гарантировать нулевое напряжение на них при работе устройства.
После этого проверяем схему ещё раз
Отлично, всего два предупреждения о не подключенном питании. Питание в нашем случае подается с другого устройства через штыревую колодку P1, поэтому системе следует указать не это, используя виртуальный порт питания PWR_FLAG. Устанавливаем этот порт питания на схему и подсоединяем его к порту питания +5V, к «земле» и проводу идущему от разъема P1 к диоду, как показано на рисунке
Таким образом мы указываем системе по каким линиям в схему подается питание и следующая проверка проходит уже без ошибок и предупреждений. Сохраняем готовую схему.
Теперь следует сформировать список цепей схемы, который будет использоваться нами в дальнейшем. Для этого идем в меню Инструменты -> Сформировать список цепей, или жмем соответствующую кнопку на верхней панели. В появившемся окне
выбираем родной для KiCad формат списка цепей, задаем имя файла списка rs232.net и жмем кнопку «Сформировать».
Схема готова и можно приступать к следующему этапу
2. Связывание компонентов и их посадочных мест
Этот этап отражает особенность KiCAD — схемное обозначение компонента отвязано от его посадочного места и визуального представления. Прежде чем приступить к разводке платы, каждому компоненту надо привести в соответствие его посадочное место (footprint) — топологическая структура задающая по сути размер и расположение отверстий и/или контактных площадок на плате, предназначенных для монтажа данного компонента. Это делается с помощью входящей в состав пакета программы CvPcb. Для её запуска идем в меню Инструменты -> Assign Component Footprint. Система немного задумается и выдаст окно
В первой колонке расположен список доступных библиотек. Во второй колонке — список компонентов, представленных в нашей схеме. В третьей — список доступных посадочных мест. Скажем нам нужна определится с форм-фактором конденсатора C1. У нас имеются в наличии конденсаторы Ether для монтажа в отверстия с диаметров 5 мм, высотой 11 мм и с расстоянием между выводами 2 мм. Хорошо, выбираем библиотеку Capacitor_ThroughHole (конденсаторы для монтажа в отверстия) в первой колонке, конденсатор C1 во второй колонке и посадочное место C_Radial_D5_L11_P2 в третьей колонке. Двойным щелчком по выбранному посадочному месту связываем его с компонентом. Справа от конденсатора C1 появится выбранное посадочное место, как показано на рисунке выше.
Для проверки посмотрим на чертеж посадочного места, нажав кнопку с изображением микросхемы под лупой на верхней панели
Нажав в окне просмотрщика кнопку с изображением микросхемы, мы увидим 3D-модель компонента
Убеждаемся, что выбранное посадочное место соответствует фактической детали, имеющейся у нас. Таким же образом связываем и остальные компоненты. У меня вышел вот такой список
Надо сказать найти нужное посадочное место с непривычки довольно трудно. Но мне удалось обойтись стандартными библиотеками. В любом случае, проблема отсутствия нужной детали решается путем гугления или самостоятельного изготовления (но это выходит за рамки статьи).
Сохраняем полученный список, закрываем CvPcb и заново генерируем список цепей. Теперь всё готово чтобы приступить к непосредственной разводке платы.
3. Разводка печатной платы
Для этого из меню редактора схем Инструменты -> Layout Printer Circuit Board запускаем программу-трассировщик Pcbnew
Для настройки правил трассировки идем в меню «Правила проектирования» и в окне
задаем ширину дорожек, зазор между ними, диаметр отверстий, диаметр сверла в соответствии с имеющимися у Вас техническими возможностями. Мои настройки представлены на скриншоте.
Далее необходимо импортировать спроектированную схему. Для этого идем в меню Инструменты -> Список цепей. В появившемся окне выбираем файл списка цепей (наш rs232.net сформированный на предыдущем этапе) и жмем кнопку «Прочитать текущий список цепей»
Если мы не ошибались на предшествующих этапах, процесс пройдет без ошибок. Закрываем окно и видим, что компоненты разместились в окне чертежа платы
Разумеется они все слиплись в кучу. И их придется растащить на предназначенные для них места. Перемещение компонентов происходит теми же командами что и в редакторе схем — наводим курсор на элемент и жмем «M». Если мы хотим переместить компонент на другую сторону платы, то в режиме перемещения нажимаем клавишу «F». Так следует поступить с микросхемой U1, ибо она располагается со стороны дорожек, ввиду SMD-исполнения корпуса.
Попыхтев немного получаем что-то подобное
Стараемся размести компоненты так, чтобы получалось как можно меньше пересекающихся связей. Теперь можно приступать к трассировка. Автоматическая трассировка у меня не вышла, возможно я не до конца разобрался с её настройками. Для ручной трассировки перейдем в режим трассировки нажав на верхней панели кнопку «Режим дорожек: автотрассировка».
Правой кнопкой мыши щелкаем по пустому пространству рабочего окна и в выпавшем меню выбираем «Выбор рабочего слоя». В появившемся окне выбираем слой B.Cu (медь с обратной стороны платы)
Наводим курсор на какой-либо пин и жмем «X». Появится дорожка, идущая от выбранного пина до текущего положения курсора. Тянем эту дорожку, фиксируя её промежуточные точки однократными щелчками мыши. По завершении, на последнем пине делаем двойной щелчок. Если нам не нравится результат, жмем Esc отменяя проведенную дорожку. Другие полезные команды и их горячие клавиши доступны в контекстном меню, вызываемом правой кнопкой в момент трассировки.
Надо сказать что процесс трассировки интуитивно понятен и довольно скоро мы получаем результат
Желтой линией на скрине показан контур платы. Чтобы нарисовать его переходим в слой Edge.Cuts (список слоев расположен в окне программы справа) и инструментом «Линия или полигон» (кнопка с изображением пунктирной линии на правой панели инструментов) рисуем контур платы.
Теперь всё готово. Сохраняем результат. Можно просмотреть получившуюся плату в режиме 3D (в меню Просмотр -> Просмотрщик 3D)
Результат выглядит довольно симпатично, правда монтаж можно сделать и поплотней.
Чтобы получить, например, шаблон для ЛУТ, идем в меню Файл -> Печать. В появившемся окне
Задаем печатаемый слой (B.Cu — медь с задней стороны платы), обязательно выставляем галочку «Зеркально», проверяем что выставлен масштаб 1:1 и убираем галку «Печать рамки листа». Жмем печать. Если у нас нет принтера, то печатаем в PDF
Получая на выходе искомый шаблон
Заключение
Надо сказать, что я довольно бегло пробежался по возможностям KiCAD, обращая внимание лишь на ключевые моменты его использования. Эта статья некоторый вводный мануал, обобщающий весьма разрозненную информацию, имеющуюся в сети. Тем не менее он может служить хорошим стартом.
Можно сделать вывод, что программа вполне пригодна для проектирования печатных плат, учитывая что описание всех её возможностей выкатится не в один десяток подобных статей. Её несомненным преимуществом является бесплатность и открытый формат всех конфигурационных файлов и библиотек, дающих бескрайний простор для расширения компонентной базы.
Надеюсь было интересно. Спасибо за внимание!
Краткий обзор
О Руководство по Kicad, Руководство пригодится новичкам, которые хотят использовать Kicad. Как и с Eagle, это будет непросто. Но как только привыкнете к нему, Вам понравится использовать его для разработки макета печатной платы. В этом обучении Вы узнаете, как использовать руководство Kicad для создания, редактирования и связывания библиотек печатных плат. Всё это будет происходить перед их экспортом в Gerbers для изготовления.
Шаг 1: Скачивание руководства Kicad
Первое, что Вам нужно сделать, чтобы начать работу, — это загрузить KiCad. Важно, чтобы у Вас была последняя версия программного обеспечения, в зависимости от вашей программы.
После установки программы необходимо создать окно навигации, которое позволит открывать периферийные программы, такие как макет печатной платы и ввод схем.
Шаг 2: Настройка проекта
Вам нужно будет загрузить проект для KiCad и распаковать файлы в Вашем локальном каталоге. Для этого могут понадобиться следующие файлы:
Pro — помогает отслеживать структуру
CMP: определяет контуры, которые будут использоваться с компонентами схемы.
Схема платы Kicad: они определяют схему печатной платы
Sch- относится к схеме
Это основные файлы, которые необходимо совместно использовать в проекте KiCad. Кроме того, Вам может потребоваться предоставить общий доступ к файлу контура.
Обратите внимание, что KiCad работает иначе, нежели Eagle, и требует, чтобы Вы определяли контур, по которому должен идти каждый компонент.
Шаг 3: Настройка библиотеки компонентов
Вам нужно дважды щелкнуть Kicard Eechema. Если Вы получили сообщение об ошибке, игнорируйте его. Если схема загружается со знаком вопроса, это означает, что в KiCad отсутствует ссылка. Поэтому может потребоваться связать ее с устройствами, содержащими схему.
Связывание Ваших компонентов с библиотеками
Щелкните библиотеки компонентов и разрешите создать открытое окно. В файле проекта содержится информация о том, где находится файл библиотеки компонентов.
Шаг 4: Добавление компонентов в Вашу схему
Если Вы хотите добавить устройство в схему, всё, что вам нужно сделать, это нажать кнопку «Добавить». Она открывает окно компонента и позволяет выбрать компонент среди сотен доступных. Следующее, что нужно сделать, это выбрать устройство и нажать Enter. Затем поместите его в следующую схему.
Как только конденсатор будет установлен, Вы заметите, что он все ещё находится в режиме размещения. Здесь Вам нужно нажать Esc, чтобы вернуться в обычный режим указателя.
Копировать компонент очень просто. Для этогго поместите мышь на 3,3В и нажмите С, чтобы скопировать устройство и поместить его в нужное положение.
Шаг 5: Подключение компонентов
Затем Вы должны попытаться соединить компоненты, наведя указатель мыши на кружки и нажав W.
Шаг 6: Аннотирование компонентов схемы
KiCad помогает добавлять аннотации к Вашей схеме автоматически. Для этого нажмите кнопку аннотировать компоненты схемы и использовать настройку по умолчанию, а затем нажать кнопку, чтобы подтвердить это. Kicad запросит у вас подтверждение аннотации. Как только Вы подтвердите это, компоненты будут добавлены.
Привет, я Хоммер, основатель WellPCB. На сегодняшний день у нас более 4000 клиентов по всему миру. Если у вас возникнут какие-либо вопросы, вы можете связаться со мной. Заранее спасибо.
РадиоКот >Обучалка >Программные пакеты >KiCad >
Изучаем KiCad. Часть первая.
Наверное каждый радиолюбитель знает такую замечательную программу для разводки печатных плат, как Sprint Layout. Она настолько проста и интуитивно понятна, что разберётся каждый школьник. Плюс ко всему — русифицирована. Именно поэтому она завоевала такую популярность, что некоторые продолжают в ней разводить довольно сложные проекты, убивая не один день (а то и недели) драгоценного времени. Этим людям я советую взглянуть на более сложные EDA , которые потребуют некоторого времени на их изучение, зато потом оно с лихвой окупится быстротой и качеством разводки плат под новые проекты.
Таких систем проектирования не очень много, и они все на слуху: P-CAD, OrCAD, DipTrace, Proteus, Eagle и другие. Но всех их объединяет одно — они платные, если и есть бесплатные версии, то они сильно урезаны, хотя нашего брата этим не испугать…
Open source же проекты, как часто бывает, были настолько сырыми, что их использование без словаря русского мата было невозможным. Но один из этих проектов оказался не просто пригодным к использованию, а отлично работающим, и гораздо удобнее некоторых проприетарных аналогов.
Это программный комплекс, предназначенный для разработки схем и проектирования печатных плат. Состоит из нескольких частей:
- Eeschema — редактор схем
- CvPcb — сопоставление УГО компонентов и посадочных мест
- Pcbnew — трассировщик печатных плат
- GerbView — просмотр и редактирование gerber-файлов
- Bitmap2Component — утилита для добавления изображений
- pcb_calculator — удобный калькулятор
- KiCad — менеджер проекта и всего этого безобразия.
Интерфейс всех частей полностью русифицирован, а самое главное — имеет полную и грамотную русскую справку.
Я не буду расписывать процесс установки, он стандартен и описан в справке. Итак, запускаем:
Это окно управления проектом. Нажимаем «начать новый проект» — сохраняем файл проекта.
Файл проекта — текстовый файл с расширением .pro, в котором хранятся все настройки текущего проекта: нестандартные пути к библиотекам, пути к файлам схем и плат, и другие вещи, относящиеся к текущей рабочей сессии.
Под него нужно выделить отдельный каталог и все файлы, что там лежат, отображаются на дереве слева. Кроме непосредственно рабочих файлов туда можно сложить что-нибудь относящееся к текущему проекту, например даташиты, книги, просто текстовые файлы с любым вашим творчеством. Всё, что находится в этом каталоге можно заархивировать одним щелчком мыши (пиктограмма с изображением архиватора) — удобно, например, для пересылки по e-mail.
Всё, можно приступать к созданию схемы.
Запускается кнопкой на правой панели. Сначала будет страшное сообщение, что файл схемы не найден. Это происходит потому, что KiCad запустил Eeschema и дал ей команду открыть файл <имя_проекта.sch>, которого пока не существует. Не пугаемся, просто нажимаем «сохранить» в редакторе схем. Теперь в дереве проекта создался файл схемы (пока пустой), и если закрыть и открыть заново редактор — сообщения не будет.
Файл схемы — текстовый файл с расширением .sch, в нём и хранится принципиальная схема.
Осваиваемся. Инструментов там не много по сравнению с другими системами. Левая панель отвечает за настройки отображения, на правой находятся все инструменты. Попробуем создать простейшую схему — транзистор, два резистора и светодиод. Выбираем справа инструмент «Разместить компонент» и тыкаем в любом месте листа, в диалоге жмём «выбор просмотром»
Это окно выбора компонентов из библиотек. Выбираем либу «Power», компонент GND, справа вверху кнопку «разместить компонент» — он появится на листе. Аналогично транзистор из «transistors» и LED из «device». Двигать компоненты можно через контекстное меню (вообще все действия там есть) или клавишей «M», вращать «R», копировать «C», удалять «Delete». Соединяем как надо, должно получиться что-то типа этого:
Но что это? Разве это красивая схема? Что это за земля, а резистор? Убожество! Не подходят нам буржуйские УГО, ну никак! Не, если вам нравится — можете пользоваться, а я лучше нарисую свои, благо все средства для этого есть. Да в любом случае столкнётесь с тем, что какого-нибудь компонента не хватает, придётся либо усердно гуглить, либо рисовать. Зачастую второе быстрее.
Находится в меню «Инструменты» либо на аналогичной кнопке на панели инструментов. Он очень похож на редактор схем, но убраны ненужные инструменты, оставлена панель рисования. Самое главное, нужно не запутаться с последовательностью действий при создании нового компонента. Для этого вначале нажимаем «Создать новый компонент» вверху:
Поле «имя компонента» задаёт его название, и должно быть уникально внутри библиотеки. «Обозначение» — это его обозначение на схеме, например «R» — резистор, «C» — конденсатор, и т.д. «Количество элементов корпусе» указывается для логики, ОУ и других микросхем, состоящих из физически одинаковых блоков, которые можно заменить на плате для более удобной разводки. Это поле необходимо как для автотрассировщика, так и для ручной трассировки. Но у нас пока таких элементов нет, оставим 1. Остальные поля пока оставим по умолчанию.
На листе появятся имя компонента и его обозначение. Пока рисовать не начинаем, если что — имя и обозначение можно поправить прямо на листе.
Теперь самое важное: нужно создать новую библиотеку с нашим компонентом, чтобы не испортить стандартные (они еще пригодятся). Нажимаем кнопку вверху «Сохранить текущий компонент в новой библиотеке», и сохраняем файл по удобному пути. В этом месте создастся файл библиотеки с текущим компонентом внутри.
Файл библиотеки — текстовый файл с расширением .lib, содержит в себе УГО компонентов, их характеристики и описание.
Увидим такое сообщение. Это означает, что вновь созданная библиотека не подключена к проекту, и мы работаем с ней просто как с отдельным файлом. Но подключить её можно прямо сейчас, в редакторе компонентов, в меню «Настройки» — «Библиотека». Нажимаем «Добавить» и добавляем в список свой файл. Двигаем его вверх списка, так как порядок библиотек имеет значение, если в разных библиотеках встретятся компоненты с одинаковым именем. Например наш резистор называется «R» и у нас, и в библиотеке «device». В редакторе схем будет отображаться тот, чья библиотека выше в списке.
Библиотеку подключили, теперь надо её выбрать, как рабочую для редактора компонентов. Это кнопка «Выбор рабочей библиотеки». Откроется окно со списком, и там уже должна быть наша. Я обозвал её «R»
После выбора, в заголовке окна редактора компонентов должно появиться название текущей библиотеки. Отлично.
Данный компонент уже сохранён в библиотеке, но если внести некоторые изменения, его нужно пересохранить. Это кнопки «Обновить текущий компонент в текущей библиотеке» и «Сохранить текущую библиотеку на диск». Можно просто нажать последнюю, она спросит сохранять ли при этом компонент или нет.
Итак, повторим немного основные вещи работы с библиотеками, чтобы не путаться в дальнейшем:
- Создать библиотеку можно кнопкой «Сохранить текущий компонент в новой библиотеке»
- Подключить созданную (или любую другую) библиотеку можно в меню «Настройки» — «Библиотека» редактора компонентов или редактора схем. Она остаётся подключенной именно в этом проекте.
- Выбирается текущая (рабочая) библиотека редактора компонент одноимённой кнопкой
- Сохранить/загрузить компонент в текущей библиотеке так же можно одноимённой кнопкой
- Записать все изменения в файл библиотеки можно кнопкой «Сохранить текущую библиотеку на диск»
Рисуются они очень просто, из набора примитивов. Доступна окружность, прямоугольник, дуга и линия. Этого вполне достаточно. Устанавливаем сетку как удобнее, и рисуем компонент по центру листа:
В контекстном меню можно установить толщину линии и другие параметры. Теперь осталось добавить выводы. Там-же, на панели, есть кнопка «добавить вывод». Тыкаем её, и тут начинается самое интересное.
- Имя вывода — отображается около вывода, обычно используется для маркировки выводов микросхем. Если хотите указать, что это инверсный сигнал, можно поставить перед именем знак «~», при этом имя будет отображаться с верхним подчёркиванием. Если оставить только знак «~», значит вывод будет без имени (он подставляется автоматически, если поле пустое)
- Номер вывода — проставляется обязательно. Отображение можно включить/отключить в настройках компонент. Нумеровать надо с единицы, т.к. эти номера привязываются к номерам контактных площадок.
- Ориентация — направление. Можно не ставить, а вертеть его потом как угодно клавишей «R». Там, где кружочек, будет подводиться соединение.
- Обозначение — маркер на месте соединения вывода и корпуса. Обычно обозначают инверсные, и другие типы входов/выходов, но обозначения буржуйские и смотрятся некрасиво. Лучше свои нарисовать при необходимости.
- Электрический тип — самое важное поле. Ошибившись тут при создании компонента получим кучу ошибок при проверке схемы. Разберём их:
- вход/выход используется у логики, ОУ, других деталей, где ножка имеет чёткое состояние: высокое входное сопротивление (вход), либо низкое выходное (выход)
- двунаправленный используется там, где вывод может быть как входом, так и выходом. Например I/O-порт микроконтроллера.
- трёхстабильный — выход с тремя состояниями (высокий, низкий, высокоимпедансное состояние)
- пассивный — думаю, понятно. Сейчас он нам и будет нужен (для резистора).
- не определено — контроля ERC этой цепи не будет. Лучше не использовать, но можно выбрать там, где не знаете, что поставить.
- вход/выход питания — очень важный тип вывода, но об этом позже.
- открытый коллектор/эмиттер — соответственно выходы с ОК/ОЭ. Тоже не забываем про них.
- не подсоединён ставится у некоторых деталей (в основном микросхем), где на стандартном корпусе больше выводов, чем нужно. В даташитах обычно обозначаются «NC», т.е. никуда не подключены. Если поставить этот тип сразу, отпадёт необходимость ставить знак «не подсоединено» каждый раз на схеме.
Теперь ясно, что выбирать. Ставим тип вывода «пассивный», длину покороче, и ставим на лист. То же самое со вторым, только не забываем поставить другой номер.
Ну вот, этот резистор более похож на настоящий, русский резистор!
Теперь двойным щелчком на свободном месте листа (или кнопке сверху) открываем свойства компонента. На первой вкладке («Параметры») выключаем отображение номеров и названий выводов (резистору они не нужны), на второй добавляем описание и ключевые слова. Последние очень советую добавить, так как по ним быстрее найти компонент при рисовании схемы (помните то маленькое окошко при добавлении компонента на лист?). Можно так же указать путь к даташиту на диске, потом его можно будет посмотреть в контекстном меню компонента на схеме.
Ну и фильтр посадочных мест тоже очень советую заполнить, т.к. это очень упростит привязку в будущем. Заполняется он просто: если включен фильтр, будут отображаться только те посадочные места, имена которых подходят под маску. Например задаём маску «R*» — отфильтруется всё, начинающееся на «R». А вот «R??» отфильтрует все названия их трёх букв, начинающиеся на «R», например «R01», «Rsh» и т.д.
Теперь проверим, что получилось. Нажимаем кнопку проверки (с красным жуком).
Да, это означает, что выводы компонентов не находятся в узлах стандартной сетки. Чтобы подвести к ним проводник, нужно будет уменьшать сетку редактора.
Смысл в том, что стандартная сетка предназначена для размещения более крупных компонентов, которые легко вывести на печать для оформления документации. Лучше, конечно, следовать этому правилу, но мне стандартная сетка показалась крупновата, и я все свои компоненты подогнал под сетку в 10mils (0.254мм). Я всё-таки радиолюбитель, и ГОСТы мне не указ. Как вам поступить — решайте сами.
Как только все компоненты готовы, можно сохранять библиотеку и закрывать редактор. Библиотеки, которые были подключены, останутся подключены в редакторе схем, это можно увидеть в аналогичном меню «Настройка» — «Библиотеки». Ну что, посмотрим, что получилось?
Уже лучше, правда? Да, это потребовало немного труда, но это разовая работа, дальше просто используйте эти библиотеки где удобно.
Теперь нажимаем кнопку «Обозначить схему», подтверждаем, и получаем автоматически расставленные позиционные обозначения. Разумеется их можно поправить вручную при необходимости.
Теперь нужно проверить схему, не допущены ли там явные ошибки. Это делается с помощью инструмента контроля электрических цепей — ERC. Нажимаем кнопку с жуком сверху, и видим такой текст:
А так же маркеры на схеме. Но как же так? Вроде всё правильно, но почему ошибки?
Всё очень просто: мы забыли указать, какие цепи относятся к шинам питания.
Дело в том, что на схемах принято обозначать части логических микросхем, ОУ, и других (так же независимые контакты реле), содержащих в себе логически независимые и идентичные блоки, отдельно. При этом у них не указываются выводы питания, хотя на самом деле они есть, и должны быть разведены на плате.
Тут можно видеть, как такие элементы отображаются на схеме и в редакторе. Если в свойствах компонента задать количество элементов больше единицы (4 для этой микросхемы), то на верхней панели активируются два выпадающих списка:
Выбирая отдельные элементы, можно настроить распиновку выводов у каждого отдельно, при этом электрические функции выводов остаются идентичными.
Но если надо настроить функции выводов у разных блоков по-своему, это тоже возможно!
Нужно нажать кнопку рядом с выпадающими списками: — при этом выводы каждого элемента будут настраиваться отдельно.
Далее помещаются выводы питания. Их лучше сделать нулевой длины и обязательно невидимыми. При этом в свойствах вывода ставится признак «общий для всех частей компонента», и самое главное — тип вывода поставить «Вход питания»
Так как после подобных манипуляций выводы питания становятся не видны на схеме, единственной привязкой их к физическим цепям остаётся только их имя. Так что тут внимательней: если вы назвали вывод VCC, и этим же именем цепь питания на схеме, на которую по задумке должно подаваться, например, +12В, то трассировщик вам и вбахает на микросхему эти 12В… По традиции названием VCC называют питание для всей логики (+5В или +3.3В), так что стандартные компоненты в библиотеках имеют выводы питания именно с такими именами. Но никто не мешает вам обозвать их по-своему.
Обозначение земли и цепей питания маркируются аналогично: невидимый вывод с нужным именем и свойством «вход питания». Но при этом надо сделать так, чтобы можно было подвести к нему цепь, т.е. пририсовать к невидимому выводу видимую часть, как показано на рисунке:
Справа — невидимая надпись имени компонента в библиотеке, слева — позиционное обозначение компонента, по центру — невидимый вывод нулевой длины, и пририсованная к нему ножка.
Есть один нюанс: позиционное обозначение нельзя сделать невидимым для нового (только что созданного) компонента библиотеки, хотя можно отключить его отображение на схеме. Видимо недоработка интерфейса, но это поправимо: импортируем похожий компонент из стандартной библиотеки и перерисовываем по своему, оставив обозначение как было (особо продвинутые могут поправить файл библиотеки в текстовом редакторе).
Все символы питания находятся в стандартной библиотеке «power». Она немного особая: кнопка «разместить порт питания» в редакторе схем работает только с ней. Хотя можно не использовать этот инструмент, а добавлять эти элементы как обычные компоненты. Если хотите использовать свою библиотеку, проще удалить стандартную из списка (физически она останется, можно подключить заново) и добавить свою с тем же именем. Тогда программа просто не заметит подлога.
Итак, теперь понятно, откуда у нас ошибки на схеме — есть одни входы питания, но нет ни одного выхода. Нет — добавим! В библиотеке «power» есть специальный символ для этого — «PWR_FLAG». Он специально создан для того, чтобы на схеме можно было добавить хотя-бы один выход питания. Соответственно имеет один вывод с таким статусом. Я его тоже перерисовал, т.к. Стандартный мне не понравился.
Прогоняем проверку — вуаля! Ни одной ошибки!
Так же свойством выхода питания могут обладать и выводы реальных источников питания, например выводы батарей, интегральных стабилизаторов (посмотрите в редакторе на всеми любимую LM317), и т.д., при этом специальный флаг питания будет не нужен.
Любая цепь на схеме имеет своё имя. Оно задаётся автоматически при прокладке любого проводника, и имеет вид числа («N-000000», вместо нулей порядковый номер). Для удобства некоторые цепи можно назвать осмысленными именами, с помощью инструмента «Разместить имя цепи».
Так как KiCad кроссплатформенный продукт, он без проблем понимает все идентификаторы на любом языке. То есть вы легко можете назвать вывод, цепь, деталь, да что угодно русскими буквами. Хотя я не советовал бы этого делать.
Eeschema имеет очень много возможностей, все их рассматривать не имеет смысла, так как есть справка. Этого достаточно будет для старта. А вот продолжение будет гораздо интереснее — будем учиться рисовать посадочные места, разводить платы на автомате и вручную, и даже создавать 3D-модели!
Все вопросы в
Форум.
Как вам эта статья? |
Заработало ли это устройство у вас? |
Contributors:
Nate
Favorited
Favorite
17
Introduction
If you’re like me and you’ve decided to take the plunge from EAGLE PCB to KiCad it can be really jarring. EAGLE had many quirks and rough edges that I’m sure I cursed when I first learned it back in 2005. Since then EAGLE has become a second language to me and I’ve forgotten all the hard bits. So as you migrate to KiCad remember to take breaks and breathe (and say ‘Key-CAD’ in your head). You’ll be dreaming in KiCad in no time!
This tutorial will walk you through a KiCad example project from schematic capture to PCB layout. We’ll also touch on library linking, editing, and creation. We’ll also export our PCB to gerbers so the board can be fabricated.
While this tutorial is aimed at beginners I am going to use terms such as ‘schematic components’ and ‘polygon pours’. If something doesn’t make sense that’s ok, just take a moment to do a quick search. If you really get stuck please use the comments section on the right. We always want to improve our tutorials to make them easier.
KiCad Project Window
Download and Install KiCad
Let’s get started! Head over to KiCad’s download page and download the latest version of the software for your specific platform:
Run KiCad
Once installed, run KiCad. A main navigation window will display where you will be able to open all the periphery programs like schematic capture and PCB layout.
Click the image for a closer look
The KiCad project window looks quite empty and sad. Let’s open an example!
Setting Up a Project
The ZOPT2201 UV sensor designed originally in SparkX is a great I2C UV Index sensor and will serve as our starting example for this tutorial. Download the ZOPT220x UV Sensor Breakout designs for KiCad and unzip the four files into a local directory:
Once the four files are located in a local directory (try looking in your downloads folder for …\ZOPT220x_UV_Sensor_Breakout-Tutorial), click File -> Open Project and open the ZOPT220x UV Sensor Breakout.pro file.
Click the image for a closer look
What are all these files?
- ** *.pro** — Main project file to keep track of the file structure.
- ** *.cmp** — Defines which footprints go with which schematic components.
- ** *.kicad_pcb** — The PCB layout.
- ** *.sch** — The schematic.
These four files are all you need to share a KiCad design with a fellow collaborator. You may also need to share a footprint file, which will be explained more later on in this tutorial.
You may have had your first critical-judgment-eye-squint. Why is there a file to define which footprints go with which schematic components? This is fundamental to KiCad and is very different from how EAGLE works. It’s not a bad thing, just different.
Setting Up Schematic Component Libraries
Double click on the schematic file with Kicad’s Eeschema schematic editor. You’ll probably get an error:
Ignore this for now. Click ‘Close’.
The schematic will load with lots of components with question marks (i.e.??). KiCad is missing the link to the devices within this schematic. Let’s get them linked!
Linking Component Libraries w/ Eeschema
From within EeSchema, click on Preferences -> Component Libraries. This will open a new window. In the image below you can see that the project file contains information about where it should look for «Component library files«. Each project has its own connections to different file structures. We need to tell this project where to find the symbols for this schematic.
We will need the SparkFun_SchematicComponents.lib file. Download and store it in a local directory:
From the KiCad window, click the top ‘Add’ button. We’ll show you how to create your own schematic symbols in a bit.
Navigate to the directory where you stored the SparkFun_SchematicComponents.lib file and click ‘Open’. This file contains all the schematic components.
Once you’ve added the SparkFun schematic components library file, you should see it added to the list.
The astute will note the slightly different directory structure in the window:
C:\Users\Nathan…
and
C:\Users\nathan.seidle…
That’s the difference between my home PC and my work PC. To avoid future errors when opening this schematic, let’s remove the entry from the active library files. Highlight the C:\Users\Nathan… entry from the list and click on the ‘Remove’ button.
Click on ‘OK’ to close out the Component Libraries manager. Now close and re-open the schematic to refresh.
Congrats! No more ?? boxes. For more information about using schematic component libraries across multiple computers, check the next subsection about the «user defined search path.» Otherwise, let’s start editing the schematic!
User Defined Search Path: Using Component Libraries on Multiple Computers
The schematic component libraries are assigned using KiCad’s Component Library Manager. If you’re like me and have schematic libraries shared across multiple computers, adding a «User defined search path» is helpful:
In the image , I have «..\..\SparkFun-KiCad-Libraries» defined. This is the local relative path to a Dropbox folder. These component library paths are specific to this project and *.pro file. When I open this project on my laptop, it will first look for the files in the «C:\Users\nathan.seidle…» location. It will fail and then search the relative path of «** ..\SparkFun-KiCad-Libraries**» and find the files. It allows me to share libs between computers and between GitHub repos without having to reassign the libraries every time I open the project on a different computer.
For now, you should continue with the tutorial. In the future, you may want to revisit this if you use KiCad across multiple computers.
Editing a Schematic
If I get you to do nothing else, I will get you to learn the keyboard shortcuts! Yes, you can click on the equivalent buttons. However, the speed and efficiency of KiCad really shines when muscle memory kicks in so start memorizing. Here are the keyboard shortcuts in KiCad’s Eeschema that we will be using frequently in this tutorial:
- a — To add component.
- c — Copy a component when the cursor is over another component.
- w — To wire components.
- v — Edit component value.
- Esc — Escape mode or whatever command in progress and return to normal pointer mode.
- ctrl+z — Undo. Use liberally to undo any mistakes.
- ctrl+s — To save. Make sure to save often!
This breakout board needs a larger 4.7uF decoupling cap (because I say so). Let’s add it!
Adding Component to Schematic
Press ‘a’ to add a device to the schematic. This will open the component window. (If you are using a different tool you may need to click on the schematic as well):
There are hundreds of components (668 items according to the title bar). Feel free to dig around but to quickly find what we need type ‘cap’ into the field Filter:. Select the device labeled as C_Small from the device library. Then hit enter or click ‘OK’.
Place it on the schematic next to the 0.1uF cap.
After you place the capacitor, you’ll notice you’re still in placement mode. Hit the ‘Esc’ button on your keyboard to return to normal pointer mode. I find myself hitting escape twice a lot just to be sure I’m back in default state.
Copying Component
Once in default state put your mouse pointer on top of the 3.3V marker on the 0.1uF cap. Press ‘c’ to copy that device and place it above the new capacitor.
Do the same for the ground marker. Press ‘ctrl+s’ to save your work.
Wiring Components
Now let’s wire them together. You guessed it, press ‘w’ but here’s the catch: have your mouse pointer over one of the bubbles before you press ‘w’.
Move your mouse to the other bubble and left click on the mouse to complete the wiring for GND. Remember if you mess up, press ‘Esc’ once or twice to return to default. Then move your mouse pointer to the bubble you want to connect and press ‘w’ and begin wiring 3.3V. The shortcut ‘w’ stands for wire.
Did something go wrong? Use ‘ctrl+z’ liberally to undo any mistakes.
Power and ground are now connected to our capacitor.
Changing a Component Value
Let’s change the value from C_Small to 4.7uF. Hover the mouse pointer over C_Small and press ‘v’ (for value change). Change C_Small in the Text field by typing 4.7uF. Then hit enter or click ‘OK’.
Congrats! You’ve just wired up your first schematic component. Press ctrl+s to save your work.
Annotate Schematic Components
But what about the C? designator?! Don’t worry about it! One of the many benefits of KiCad is the ability to auto-annotate a schematic.
Click on the Annotate schematic components button.
Use the default settings and simply click on Annotate button to confirm.
KiCad confirming annotation
KiCad will ask you if you’re sure, simply press return or click ‘OK’ again.
Capacitor with correct value and designator! We are all set. Time to edit the PCB.
Editing a PCB Layout
Before we start editing the PCB, here are the keyboard shortcuts in KiCad’s Pcbnew that we will be using frequently in this tutorial:
- + — Press to switch next layer.
- — — Press to switch to previous layer.
- m — Move item.
- b — Update ground polygon pours.
- Delete — Remove a trace or component.
- x — Route new track.
- v — Add through via.
- n — Next grid size. Use with caution. There will be tears if you use a grid outside of 50mils or 25 mils.
- Page Up — Return to the top copper layer.
- Esc — Escape mode or whatever command in progress and return to normal pointer mode.
- ctrl+z — Undo. Use liberally to undo any mistakes.
- ctrl+s — To save. Make sure to save often!
Generate Netlist
We’ve got our schematic, now let’s get the new 4.7uF cap placed on the board. From the schematic, click on the ‘Generate netlist’ button.
You’ll see the following window:
KiCad is powerful. And with this power, comes an overwhelming number of options. Lucky for us, we are just scratching the surface so we don’t need to fiddle with any of these options. Simply press enter or click ‘Generate’ to confirm this screen. KiCad will ask you where you want to save the netlist as a ** *.net** file with the default location being the project folder. Again, press enter or click ‘Save’ to confirm.
Configuring Layer Colors
Return to the main project window and double click the ** *.kicad_pcb** file.
Welcome to PCB editing. Of all the differences between EAGLE and KiCad it was the look within PCB layout that threw me off the most. Under the View menu you will find three other views: Default, OpenGL, and Cairo. I prefer OpenGL. Lets switch Canvas to OpenGL for now.
Your mouse wheel does what you expect: Zoom In/Out and Pan by Clicking.
I don’t like the layer colors! Ya, me either. To change the layer colors, on the right side menu use your mouse wheel to click on the green square next to B.Cu (bottom copper layer). I prefer the following layer colors:
- Red 2 (Default) for F.Cu (Top Copper)
- Blue 4 for B.Cu (Bottom Copper)
- White for F.SilkS (Front Silk Screen)
- Yellow 3 for B.SilkS (Bottom Silk Screen)
- Gray 3 for Edge.Cuts (a.k.a board outline or dimensional layer in EAGLE)
- Gray 2 (Default) for F.CrtYd (Denotes the total board space required on the top layer for the component)
Pressing ‘+’ and ‘-‘ will switch between top and bottom copper layers. This is useful when you need to view a certain layer.
It’s all cosmetic but these layer colors make it easier for me to see what’s going on.
Be sure to poke around the Render tab (next to the Layer tab), namely the Values and References check boxes.
I find the Values and References extremely distracting when turned on so I leave them OFF. Many designers live and die by these values, so use as needed.
Adding a Footprint
Aren’t we here to add a 4.7uF cap to the board? Where is it? It’s nowhere, sorry.
What’s going on? We failed to assign a footprint to the capacitor we added in the schematic. Remember, KiCad does not link schematic components to footprints the same way EAGLE does. We have to specifically connect a footprint to each schematic component that was added.
Navigate to back to schematic and click on the ‘Run CvPcb’ button to associate components and footprints:
If this is the first time you’ve run CvPcb you’ll get this warning:
Simply click through it.
Depending on how many libraries you have installed, this may take up to 30 seconds. We will make this better later in the tutorial but for now, be patient.
In the left column is all the footprint libraries that KiCad ships with. In the middle is the list of components in your schematic. On the right is any footprint that may work with the highlighted component in the middle. Your job is to double click on the footprint on the right that goes with the component in the middle.
To make life easier click on the ‘View selected footprint’ button.
Now you can preview the footprint as you click down the list in the right.
In Windows, I press and hold the Windows button and press the left arrow and release. This will lock the CvPcb window on one side. Then select and lock the Footprint Preview Window to the right. This allows us to flip through footprints in the left window while seeing the preview on the right.
Highlight C2 in the middle column. Then double click the Capacitors_SMD:C_0603 in the right column. C2 should now be assigned a footprint.
Re-Generate Netlist
Close the CvPcb window and click ‘Save and Exit’. We need to re-export the Netlist. Remember how to do that? Click the ‘Generate netlist’ button again, press enter twice. Open to the PCB editor either from the schematic or from the project window.
Hey! It’s still missing! We changed things, so we need to import the netlist! Remember how? Click on the ‘Read netlist’ button and you should see this window:
Click ‘Read Current Netlist’ and ‘YES’ to confirm. You can also hit enter twice. You should see the new capacitor near the board.
This is a decoupling cap so let’s put it next to the 0.1uF cap that is already there. Start by hovering over the new cap and press ‘m’ for move.
Left click to place the capacitor. Now press ‘m’ over the 0.1uF cap in the way by moving it to the left.
Press ‘b’ to update the GND polygon pours.
We’ve got some traces to fix but this isn’t too bad. Hover over the bits of traces that you want to remove and press ‘Delete’. Let’s delete the trace and via that is under the capacitor’s +3v3 terminal. If your pointer is over multiple items (as shown in the image below with the cursor over both the trace and capacitor), KiCad will pop up a menu to clarify your selection. This is basically asking you to pick which one you want to operate on.
If you ever run into a problem press ‘Esc’ to return to default pointer mode. If you ever delete something wrong press ‘ctrl+z’.
Once you’ve removed most of the offending traces, you can begin routing by pressing ‘x’.
Single click on the pad that has the gray air-wire and drag it to the pad that it needs to connect to. Single click again to lock the wire in place. Press ‘b’ to update the polygons.
In the image below, KiCad is trying to route this trace in an odd way. If we place the trace here it will create an acute angle which is generally bad (read up on «acid traps»). We want the trace to be a T intersection. We need to change the grid.
Well that’s annoying!
Press ‘n’ to go to the next grid size. I needed to hit ‘n’ only once to go to the 0.25mil grid to get this nice intersection, you may need to get to a finer grid. You can also find this in the menu options under «Grid: 0.0635mm (2.5mils).»
Nice T intersection!
In the image below, I am routing the GND air wires. This is not really needed because the polygon pour connects the two pads but it does illustrate how good the ‘magnetic’ routing assistance is in KiCad. It’s very quick and easy to go from pad to pad.
We have two air-wires left. To get these we’ll need to place vias down to the bottom layer. Start by pressing ‘x’ and clicking on the start of the capacitor’s air wire for GND again.
Bring the trace out.
When you’ve reached open ground press ‘v’ to create a via. Single click to place the via and KiCad will automatically start routing on the bottom layer. Press ‘Esc’ to stop laying down traces; the polygon pour will take it from here. Pressing ‘Page Up’ will take you back to the top layer.
One air wire left!
To get this last air wire, you can try clicking on the GND pad of the 0.1uF cap but annoyingly KiCad won’t start routing?! Why?! It’s actually a good thing: the SDA trace is too close (overlapping actually) to the GND pad on the 0.1uF cap. By not letting you start routing KiCad is saying that trying to put a trace here would violate the DRC rules. What to do? Rip up the SCL and SDA lines to make some room.
Aha! Much better. Press ‘x’, click on the capacitor’s GND terminal, bring the trace out, and press ‘v’ to drop a via in this area. Hit escape to stop routing (let the polygon take care of it). Finally, press ‘Page Up’ to return to the top layer view.
Use the ‘Delete’ and ‘x’ buttons to re-route the SDA and SCL lines to finish up this board. Then press ‘b’ to update the polygons. The board should look similar to the image below.
Routed with no air wires!
Congrats! We have finished routing the footprints. Now let’s run the DRC to see if we’re legal.
How to Remove a Component’s Footprint from a PCB Layout
Before we continue let’s go over the process for modifying or removing a component from a PCB layout. For example, let’s say that you wanted to remove an extra capacitor or resistor from a design. You would do all the regular steps:
- Delete device from the schematic.
- Export the netlist by clicking the generate netlist button.
- Import the netlist into PCB Layout by clicking on the read netlist button.
The difference is a few import settings:
During the netlist import the default settings are to ‘Keep’ exchange footprint and to ‘Keep’ extra footprints.
Here, we need to change two things:
- Exchange Footprint -> Change: This will allow footprints to change
- Extra Footprints -> Delete: This will remove any extra footprints that remain
You may also want to ‘Delete’ unconnected tracks to clean up any left over tracks from the component you removed.
Running Design Rule Check
Click on the ladybug with the green check mark on it to open the Design Rule Check (DRC) window.
Let’s take a moment to talk trace width, trace spacing, and vias. In general, SparkFun designs boards with:
- 10mil trace width
- 10mil trace spacing
- 20mil vias
We go smaller than this on many designs but if you’re designing your first PCB, do not design it with 4mil traces and 8mil vias. You shouldn’t need to go that small on your first board.
Why design in 10mil trace/space when a fab house allows 8mil or smaller for the same price?
Making PCBs is tricky and for each increment of tolerance you remove you increase the chances that the PCB (proto or not) will be fabricated with an error. And those errors can be hard to identify. We design with 10mil trace/space in order to insure and reduce the probability that we’ll see PCBs with errors on the production floor. There’s nothing worse than troubleshooting a faulty product and asking yourself: «I’ve tried every rework and soldering trick in the book, is it the PCB that’s bad?»
That stated, we are seeing many PCB fab houses charge low prices for 7mil trace/space and 12mil vias. If you’ve got a complex board with tight layout challenges, it’s better use the smaller trace/space and vias. Save yourself the layout time and rely on the PCB fab house to correctly fabricate your board.
We generally use the KiCad defaults of:
- Clearance: By Netclass
- Min Track Width: 0.2mm = 7.9mil
- Min Via Size: 0.4mm = 15.7mil
Press enter again to run the DRC with the default settings.
ErrType(): Via near track
Aw shucks! What’s wrong with my board? The vias marked with red arrows are too close to the traces near by. The error message will show up in the window as an error indicating: «Via near track.» Fix them by ripping up (press ‘Delete’) any traces near the vias and re-route them (press ‘x’).
After adjusting the traces causing the issues, re-run the DRC. These three flags should disappear.
DRC markers have been cleared
Congrats! You’ve fixed those «Via near track» issues.
ErrType(): Pad near pad
But wait, we are not done yet! There are still two DRC error arrows left with the error indicating: «Pad near pad». KiCad is trying to tell us the pads on this solder jumper are too close together. SparkFun has used this footprint for years and is comfortable with the design so let’s change the Netclass clearance constraint.
Open the DRC rules from the Design Rules menu.
Here is where you can create specific rules for specific traces and classes of traces. The problem that we are running into is the Default Clearance is 7.9mil (0.2mm). If we decrease this to 7mil (0.1778mm), click ‘OK’, and re-run the DRC…
DRC errors resolved! Now reducing the DRC clearances in order to get your board to pass DRC is not an ideal solution. We want the pads on the solder jumper to be close enough to be easily jumpered with solder so increasing the distance between the pads on the footprint would be counterproductive. In general, you should set your DRC rules and stick to them.
Watch Your Airwires!
One last note about DRC: Leaving airwires on your PCB is a sure fire way to generate coasters (bad, unusable PCBs).
From the DRC window there is a ‘List Unconnected’ button. This will show you the location of any unconnected traces (I had to rip up the SDA trace on the bottom right side of the PCB to show this error). It’s very important that you check for airwires before ordering your PCBs. As you progress through your layout, I recommend focusing on the ‘Unconnected’ count at the bottom of the screen (circled in pink). If you think you are done routing a board but still show a few unconnected wires that you can’t find, the DRC window will help you locate them.
Press ‘ctrl+s’ to save your work.
Well done. You’ve made it through design rule checking! Now it’s time to order boards.
Exporting Gerbers
We added a component to the schematic, we modified the PCB layout, and we checked for errors. Now we are confident and ready to have our boards made! Time to export the gerber files.
Generate Drill and Gerber Files
Gerber files are the ‘artwork’ or the layers that the PCB fabrication house will use to construct the board. We’ve got a great tutorial on the different layers of a PCB so be sure to read up if all this is new to you.
Click on the ‘Plot’ button next to the printer icon in the top bar to open the ‘Plot’ window.
In general, there are 8x layers you need to have a PCB fabricated:
- Top Copper (F.Cu)+ Soldermask (F.Mask) + Silkscreen (F.SilkS)
- Bottom Copper (B.Cu) + Soldermask (B.Mask) + Silkscreen (B.SilkS)
- Board outline (Edge.Cuts)
- Drill file
In the Plot window with the Plot format set for Gerber, be sure these Layers are checked:
- ☑ F.Cu
- ☑ B.Cu
- ☑ B.SilkS
- ☑ F.SilkS
- ☑ B.Mask
- ☑ F.Mask
- ☑ Edge.Cuts
Additionally, click on ‘Generate Drill File’ button. You can use the defaults here as well. More on the PTH vs. NPTH check box in a minute. For now just click ‘Drill File’ or press enter to generate the drill file.
Click on ‘Close’ in the ‘Drill Files Generation’ window.
Click ‘Plot’ to generate the gerber files for the layers and then click ‘Close’.
Time to Review Your Gerbers
This is the last chance to catch any errors before paying real money. Reviewing the gerber layers often shows you potential errors or problems before you send them off to fab.
Return to the main KiCad project window and open up GerbView by clicking on the button.
Once KiCad’s GerbView is open, click on File -> Load Gerber File. Select all the files shown and click Open.
Next, click File -> Load EXCELLON Drill File. Load your drill files by selecting the all the drill files shown and click ‘Open’. They should be in the same directory.
The layout looks very different but this is a good thing. You’ve been staring at your design for hours and it’s hard for your brain to see issues. I generally do not change the layer colors unless I have to. I want the gerber review to be jarring and different from my layout practices so that I’m more likely to catch issues.
From this view, turn off all the layers but the Top Copper (layer 5). Additionally from the Render menu, turn off the Grid and DCodes. This will make the review less cluttered.
Now step through the different layers by toggling them on and off. You’re looking for irregularities and things that look out of place. Here are some things I look for:
- Do any traces have weird routing that could be improved?
- Do the vias line up with the top copper where they should?
- Does the top solder mask make sense with the SMD IC’s footprint?
- Are the via’s covered in soldermask (also called ‘tented vias’) or are they exposed?
- Does the top silkscreen look good? Make sense? Everything aligned the way I want it? Are pin 1 indicators clear?
Now turn everything off and repeat for the bottom layers.
Did you catch it? There are a handful of things wrong with this example.
- The bottom silkscreen is missing the GND indicator.
- The top GND silkscreen indicator is in italics.
- There are two drill files for some reason.
Leaving a silkscreen indicator off won’t break your board but it’s small defects like this that the gerber review is meant to catch.
Whoops! Bottom silkscreen for GND is missing!
Homework:
Take a moment and return to the PCB layout window to edit the make these corrections.
- Add the a silkscreen to the bottom layer for GND. To do this, select the bottom silk layer (B.SilkS) in Pcbnew. Click on Place -> Text, type «GND» in the Text: field, and click ‘OK’. You can also copy text on the bottom silkscreen layer by right clicking it, selecting Duplicate, and placing text next to the GND pad. Make sure to change text to GND by right clicking the text, selecting Properties, changing the text, and clicking ‘OK’.
- Change the top GND indicator so it’s not italics. To do this, edit the text properties and change the Style: to Normal.
- Plot new gerber files.
- Review your work in GerbView to verify the fixes.
Now, we need to deal with the two drill files.
PTH vs NPTH
When generating the drill file for this design two files where generated:
- *.drl — The standard EXCELLON drill file you need to send to PCB fab house.
- *-NPTH.drl — The non-plated through hole drill file.
Non-plated through holes are holes on your PCB that do not have copper covering the vertical walls of the hole. This is sometimes required for advanced designs where thorough electrical isolation is needed. However, it is rare. While plated through holes (PTH) are common and cheap, NPTH requires an extra step in the PCB fabrication process and will often cost extra.
We don’t need NPTH for this design, so what happened? The ‘STAND-OFF’ footprint (i.e. used for the drill holes top of the board for mounting holes) was imported from the SparkFun Eagle library and KiCad seems to think it is a non-plated hole for some reason.
To correct this go back to the PCB layout, click on the Plotter, click ‘Generate Drill File’ and select the box that says ‘Merge PTH and NPTH holes into one file’. In a later section, we’ll go over how to edit the ‘STAND-OFF’ footprint to use a regular PTH hole.
Solder Paste Stencils
Are you doing SMD reflow? Need to order a stencil to apply the solder paste to your board? Turn on F.Paste in the Plot window to generate the top paste layer.
This *.gtp file is sent to a stencil fabricator to create the stainless steel or mylar solder paste stencil. If you’re unfamiliar with stenciling solder paste we have a fabulous tutorial.
We use OSHStencils for our proto stencils. The top paste layer is not needed to fabricate a PCB.
Order Your Board!
If you’re happy with your layout, let’s order some PCBs! Every fab house understand and works with gerber files, so navigate to the directory on your computer where your KiCad project resides.
Select and zip the following 8x files:
- *.drl — Drill file
- *.gbl — Gerber Bottom Layer
- *.gbs — Gerber Bottom Soldermask
- *.gbo — Gerber Bottom Silkscreen (Overlay)
- *.Edge.Cuts.gm1 — Board Outline (Gerber Mechanical 1)
- *.gtl — Gerber Top Layer
- *.gts — Gerber Top Soldermask
- *.gto — Gerber Top Silkscreen (Overlay)
You could zip all the files in the directory and send them off to your fab house but I don’t recommend it. There are a tremendous number of PCB layout software packages generating all sorts of different file names and formats. It’s often difficult to tell if ** *.cmp ** is a gerber file or something else. Does the customer care about the ***.gtp** file or is that just extra? It’s better to give the fab house only what you want fabricated.
The final step? Order your boards! The gerbers are the universal way to communicate with a PCB vendor. There are hundreds if not thousands of PCB vendors out there. Shop around!
In addition to your gerbers, you’ll need to specify via email or the PCB vendor’s website various elements of the PCB:
- What thickness PCB? 1.6mm is standard but 0.8mm is just as rigid and may help with 50 ohm trace impedance matching.
- What color soldermask? Green is default but red looks awesome.
- What color silkscreen? White is most common but other colors are available.
- How many layers? This example is a 2x layer board meaning there is just a top copper and bottom copper. However, some designs need to have 4x, 10x, and even 16x layers to route the board. Additional layers increase the cost significantly.
The Soldermask Looks Big
If you had a look at the soldermask on this PCB and wondered why it looked odd, you’re not alone. Let’s compare the PCB’s soldermask for KiCad (as shown in green) and Eagle (as shown in pink). You should notice two things:
- In the KiCad design, I have a pad on the main sensor that looks like it’s slightly mis-placed. Pad 1 doesn’t line up with the other pads. Weird. It’s a problem that needs to be fixed, but the error won’t kill the board.
- More importantly, the soldermask on the Eagle design has gaps between the pins on the connector and the sensor IC. This will help reduce solder bridging between pins. In the KiCad version, the mask apertures look too big.
KiCad Soldermask
Eagle Soldermask
In the image below, we can see the SMD Qwiic connector within Eagle. The default soldermask clearance is 0.1mm per side in Eagle.
In KiCad’s Pcbnew, open the ZOPT220x Breakout and click on Dimensions -> Pads Mask Clearance. KiCad’s solder mask clearance has a default of 0.2mm per side. We recommend you change this value to 0.1mm. Most fab houses will use 0.1mm as their default as well. You will then need to re-export your gerbers and load them back into GerbView.
Making the clearance smaller than 0.1mm will cause difficulties for the fab house to get the registration correct.
This section will show you how to create your own local custom footprints so that you can use them and connect them to schematic components using CvPcb. We’re going to assume you’ve already been through the previous sections of this tutorial; you should have KiCad downloaded and installed.
Open KiCad’s project manager and then click on the PCB footprint editor button.
You may get the warning. That’s ok, just click through it. This is KiCad’s way of telling you it’s going to create the default table of libraries that link to KiCad’s extensive GitHub repos.
Click Preferences -> Footprint Libraries Manager. This will open the list of all the footprint libraries now accessible to you.
This is a tremendous list of libraries! Click ‘OK’ to close the manager.
Let’s poke around these libraries. Click on ‘Load footprint from library’ button and then ‘Select by Browser’. This is a handy tool for perusing the available footprints.
Navigate to the LEDs -> LED_CREE-XHP50_12V footprint. Here is an example footprint in LEDs library. Double click on this footprint to open it up in the editor.
Note the title bar of the editor window has changed. The active library is now LEDs and it is read only. Obviously KiCad wants to control their libraries; not just anyone can save to their repos. If we want to edit this footprint we need our own local copy.
Let’s create a local directory to keep all our local footprints. For this tutorial, please create a local folder called ‘C:\KiCadLibs\’ (or your platform’s equivalent).
Now click on File->Save Footprint in New Library.
I recommend using different directory names for different sets of footprints (resistors, connectors, LEDs, etc). Select the ‘KiCadLibs’ folder that was created and then type ‘\LEDs’. KiCad will create the new ‘LEDs.pretty’ directory with a file ‘C:\KiCadLibs\LEDs.pretty\LED_CREE-XHP50_12V.kicad_mod’. And we’re off to the races. Except, not quite yet.
Notice the title bar in the Footprint Editor still states the active library is LEDs and is read only. We need to switch the active directory to our local folder. I’m going to head you off: File->Set Active Directory doesn’t work as it only gives you the list of libraries that KiCad ships with. Oh KiCad!
Before we can set our new footprint directory as active, we need to make KiCad aware of it. Re-open the Preferences -> Footprint Libraries Manager.
Click on the ‘Append with Wizard’ button. You’ll be asked to locate the directory you want to add. In this case, we want to add the ‘Files on my computer’. Click on the ‘Next >’ button, select the directory we created (i.e. ‘C:\KiCadLibs\LEDs.pretty’. Click on ‘Next >’ a few times. When prompted ‘Where do you wish the new libraries to be added’, select ‘To Global library configuration (visible to all projects)’ and click ‘Finish’.
KiCad may throw an error because the ‘LEDs’ nickname is used twice. I renamed mine to ‘LEDs-Custom’ then click on ‘OK’ to close out the Footprint Libraries Manager.
If you inspect the Footprint Editor tool bar again, you’ll see the LEDs library is still active and read only. Now we can click on ‘File->Set Active Library’. Here is where KiCad shines — the Filter works well. Type LED and select the LEDs-Custom library.
At last! We have an active local library. Now when you click ‘Save footprint in local library’ or press ‘ctrl+s’ KiCad will prompt you with a Save Footprint window with Name (annoyingly every time). Press enter and your modifications will be saved.
Now you can explore creating and editing footprints using the Footprint Editor.
After you’ve created your first footprint or two be sure to read KiCad’s KiCad Library Conventions (KLC). It’s a well documented system for creating community share-able footprints. Left to our own devices we will all create things a little differently; the KLC tries to get us all on the same page and SparkFun follows it.
In the future, if you’re creating a lot of footprints consider using git repo to manage the changes. At SparkFun, we use the following structure:
- \SparkFun-KiCad-Libraries — A git repo directory containing all KiCad schematic component files (*.lib)
- \SparkFun-KiCad-Libraries\Footprints — Contains directories of footprints
- \SparkFun-KiCad-Libraries\Footprints\LEDs.pretty — Directory containing all the LED footprints (*.kicad_mod)
- \SparkFun-KiCad-Libraries\Footprints\Sensors.pretty — Directory containing all the sensor footprints (*.kicad_mod)
- etc.
By using a git repo, SparkFun engineers and our users can contribute schematic components and footprints.
Paring Down the KiCad Libraries
When opening CvPcb to assign footprints to the schematic components, it can take a very long time to load. This is because KiCad is pinging all the KiCad github repos and pulling down 93 libraries. To make this faster, we recommend removing the libraries that are either deprecated or libraries that you will never use.
It’s quick and easy to remove a library: select a row in the Footprint Libraries Manager and click the ‘Remove Library’ button. If something goes wrong, don’t panic! Simply click ‘Cancel’ in the manager window and the library manager will close without saving changes. If things go really wrong, you can always delete the ‘fp-lib-table’ file and restart KiCad. This will cause it to create the footprint table with the KiCad defaults.
The footprint libraries table file (on Windows 10) is located in your AppData. It should look similar to: ‘C:\Users\Nathan\AppData\Roaming\kicad\fp-lib-table’ .
The contents of ‘fp-lib-table’
Removing the deprecated libraries brings the default count down to 75 and CvPcb still takes an annoyingly long time to load. This is where you’ll have to make some tough decisions. Do you plan to ever need the ‘Shielding-Cabinets’ library? Perhaps. Perhaps not. If I ever do need an RF shield for a design, it will most likely be a custom part or a part that is not in the library. So that one gets the toss.
SparkFun is taking a blended approach. We’re becoming very familiar with the default KiCad libraries and using their footprints wherever it makes sense. When we find or use a package we like, we copy it over to the SparkFun-KiCad-Libraries GitHub repo. At the same time, we’re continuing to leverage all our custom Eagle footprints that we’ve been using and creating for over a decade. We know and trust these footprints. I have had many PCBs ruined because I trusted someone else’s footprint so I tend to be very paranoid. Use the community where you can but be very rigorous about checking them for correctness.
If you’re needing a generic 2×5 pin male header, check the KiCad libraries. It should work fine. However, if you’re using a more eclectic part, you may be better off creating the footprint from scratch. Even if the KiCad libraries contain the part, you’ll want to check it against the datasheet very closely and do a one to one test print.
Using Eagle Footprints in KiCad
If you’re familiar with Eagle, it can be scary to think all the time spent creating footprints will be lost when switching to KiCad. Don’t fear! KiCad inherently reads Eagle footprints! Yep, it’s built right in. Now don’t get too excited. KiCad can’t read your Eagle schematic components but we have a solution for that in a later section.
The approach we are taking at SparkFun is to link to a local copy of all our classic Eagle Librarie Anytime we need one of the Eagle footprints, we copy and paste it into a modern KiCad library. We don’t have to re-create the footprint but by moving it over to a KiCad library. We are able to then edit the footprint as needed. Furthermore, any new footprints are created from scratch and saved to the appropriate SparkFun KiCad library.
You should have already opened the PCB Footprint Editor at least once by now. This will have created a ‘fp-lib-table’ file that we will be editing shortly. Now to get started, be sure that KiCad is closed.
Download the SparkFun Eagle Libraries from GitHub.
Unzip them into a local directory of your choice. I store our Eagle libraries in a DropBox folder so both my desktop and laptop can access the same set of files.
You could use the Footprint Libraries Manager located in the footprint editor but adding or removing many libraries becomes tedious; it’s easier to edit the table file directly.
The contents of fp-lib-table
The ‘fp-lib-table‘ tells KiCad where to find all the various libraries and what types of libraries they are (KiCad, github, EAGLE, etc).
We are going to edit this file to add in the SparkFun libraries as well as remove the deprecated libraries and libraries that SparkFun doesn’t use.
Here are the files of importance:
- original fp-lib-table — This is what KiCad creates by default. You don’t really need to download it. It’s just for reference.
- sparkfun fp-lib-table — The list of SparkFun libraries. You don’t need to download it, just for reference.
- combined fp-lib-table — This is the combination of the original table, with extraneous libraries removed and SparkFun libraries added.
Download the ‘combined fp-lib-table’ to a local folder. Rename it to ‘fp-lib-table’. Now move the file to where KiCad expects it. The footprint libraries table file (on Windows 10) is located in the AppData folder similar to: ‘C:\Users\Nathan\AppData\Roaming\kicad\fp-lib-table’. You’ll want to overwrite the file that is there.
Once the file is in place, re-open KiCad, open the PCB footprint editor, and finally the Footprint Libraries Manager. You should see a long list of libraries including the new SparkFun libraries.
The last step is to tell KiCad the local path to the SparkFun libraries. Currently it’s a variable called SFE_LOCAL. We need to assign this to something. Close the Library Manager window, click on Preferences -> Configuration Paths. Click the ‘Add’ button. Edit the Name and Path fields.
In the image below, you can see I’ve set the ‘SFE_LOCAL’ variable to a local path of ‘C:\Users\nathan.seidle\Dropbox\Projects\SparkFun-Eagle-Libraries\’. Set this variable to wherever you locally stored the SparkFun Eagle Libraries.
Congratulations! You can now see, use, and copy all the SparkFun Eagle libraries.
Creating Custom KiCad Schematic Components
Once you’ve learned to create your own schematic parts and custom footprints, you become unlimited by what technologies you can play with. Let’s get started!
From the main project window start the Schematic library editor.
This process is similar to how we started a custom footprint library. First, let’s find a schematic symbol we want to start our custom library with. The photocell is just as common as it gets. Let’s pull in the ‘R_PHOTO’ schematic component from the device library and use it to start our new custom schematic component library.
Start by clicking on the ‘Selecting working library’ (i.e. book) icon located in the upper left corner. Then select ‘device’ to set the working library.
Click on the ‘Load component to edit from current library’ button and type r_photo in the filter to quickly locate the photoresistor component. When located, click ‘OK’.
Click on ‘Save current component to new library’ button
I recommend you store this *.lib file in the same ‘C:\KiCadLibs\’ directory we stored the footprint library within. I called my lib file ‘CustomComponents.lib’ so that I know these are mine.
Once you click ‘Save’, a warning will pop up. This is just KiCad’s polite way of letting you know that you can’t access your library until you link to it. So let’s do that.
Click on Preferences -> Component Libraries to view the current set of libraries. In the image below, we can see the stock schematic component libraries that ship with KiCad. Next to the ‘Component library files,’ click ‘Add’.
Navigate to your ‘C:\KiCadLibs’ directory and then open ‘CustomComponents.lib’. It should now appear at the bottom of the Component library files list. Click ‘OK’ to return to the library editor.
Again, click on the ‘Select working library’ button but this time either scroll to your custom list or type ‘Custom’ to find the ‘CustomComponents’ library. Click ‘OK’.
Then click on ‘Load component to edit from the current library’ button and we should see only the photoresistor schematic component. Double click on R_PHOTO to begin editing it.
Now at this point, we can add new symbols from scratch to our library and we can also copy from one library to another.
How to Copy a Component to Your Custom KiCad Library
KiCad is always changing and they’ve made leaps and bounds improvements but copying a schematic component from one library to another is still a bit wild.
For example, let’s copy the CP2104 from the silabs library into our custom library. Start by setting the active library to the one that contains the part you want to copy by clicking on the ‘Select working library’ button. In our example, we want to set silabs as the active library.
Load the CP2104 component by clicking on the ‘Load component to edit from the current library’ button.
Now set the active library to the library we want to copy the CP2104 into. For this example, that means that we need to click on the ‘Select working library’ button and set the active library to ‘CustomComponents’.
Click on the ‘Update current component in current library’ button to save the component in CustomComponents.lib. The ‘Save current library to disk’ button will become enabled and you can save this component to your custom library.
To verify it’s now in the library click on the ‘Load component to edit from the current library’ button. You should see your new shiny CP2104 in the list.
How to Delete a Component from Your Custom KiCad Library
Bad CP2104! Bad component.
To remove a component, be sure you’ve set your custom library as the active one. Let’s try removing the component that we just added in our custom library CustomComponents.lib. If you have not already, click on ‘Select working library’ to set the active library to CustomComponents. Click on the ‘Delete component in current library’ (i.e. the trash can) button. You’ll be prompted for which component you want to remove. Select CP2104 from the list.
Click ‘OK’ and then ‘Yes’ to delete the component from the library. Click the ‘Current library to disk’ button and ‘Yes’ to save.
Shout out to Joan_Sparky! He is the best! (No relation)
KiCad Library Convention
Be sure to check KiCad’s KiCad Library Convention once you get comfortable creating components. These conventions take into account a heap of industry specialized knowledge that we can all benefit from.
Resources and Going Further
Congratulations! That was a big tutorial and you made it through.
For more information related to KiCad, check out the resources below:
- KiCad — Official KiCad page.
- Download KiCad — KiCad software download page for your operating system or distribution.
- Online Documentation
- Library GitHub Repo — The schematic and 3D libraries supported by KiCad team.
- Contextual Electronics: KiCad YouTube Video Series
- Lachlan’s Eagle to KiCad Converter GitHub Repo —
Eagle schematic/library to KiCad schematic/library ULP conversion script. - ZOPT220x UV Sensor Breakout KiCad Files (ZIP) — Example KiCad Files used in this tutorial.
- SparkFun_SchematicComponents.lib — Library used to link components in in this tutorial for the ZOPT220x UV Sensor Breakout schematic.
- original fp-lib-table — This library is what KiCad creates by default.
- sparkfun fp-lib-table — The list of SparkFun libraries. You don’t need to download it, it’s just for reference.
- combined fp-lib-table- This is the combination of the original KiCad table, with extraneous libraries removed and SparkFun libraries added.
- SparkFun Eagle Library GitHub Repo — Classic SparkFun Eagle library.
- SparkFun KiCad Library GitHub Repo — SparkFun’s Eagle library ported to a Kicad library.
Now that you’ve learned how to modify schematics, PCB layouts, and libraries, it’s time to try out your skills on your own custom project. We recommend using the ZOPT220x UV Sensor Breakout KiCad files as the starting point for your next project. From this example project, you can delete or add devices as you need rather than starting from a blank canvas.
Need some more inspiration? Check out SparkFun’s Enginursday and project blog posts about KiCad.
Eagle to KiCad
If you are an EAGLE guru starting to get your feet wet with KiCad, be sure to checkout Lachlan’s Eagle to KiCad converter for converting your Eagle PCB layouts to KiCad. It’s not perfect but Lachlan has done a tremendous amount of groundwork.
Thanks for reading and if you have any comments or questions please ask them in the comments section.
Digi-Key and SparkFun KiCad Video Series
Or check out 10-part KiCad video series with Digi-Key and SparkFun as Shawn designs a simple 555 timer circuit for a badge, orders parts, and solders the badge together! The video linked below is just after Digi-Key guides you through KiCad and we begin to apply our skills to create the badge.