KiCad

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
KiCad

KiCad-Logo.svg
KiCad-Pcbnew-Hackrf-One.png
Screenshot der Version 4.0.0
Basisdaten

Entwickler Jean-Pierre Charras
Erscheinungsjahr 1992
Aktuelle Version 5.1.6[1]
(15. Mai 2020)
Betriebssystem Linux, Microsoft Windows, macOS, FreeBSD
Programmiersprache C++[2]
Kategorie EDA
Lizenz GNU General Public License
deutschsprachig ja
www.kicad-pcb.org

KiCad ist ein freies ECAD-Programmpaket zur Entwicklung von Leiterplatten in der Elektronik. Es wird von einer Gruppe von freiwilligen Entwicklern und zwei Wissenschaftlern des CERN entwickelt und steht unter der GPL-Lizenz. KiCad ist als vorkompiliertes Paket für Linux, Windows, MacOS und FreeBSD verfügbar, es basiert auf dem WxWidgets-Framework.

Beispiel für die 3D-Ansicht einer erstellten Leiterplatte

Entwicklungsgeschichte[Bearbeiten | Quelltext bearbeiten]

Im Jahr 1992 wurde KiCad erstmals veröffentlicht. Der Initiator des Projektes, Jean-Pierre Charras, ist Wissenschaftler am Laboratoire des Images et des Signaux (LIS) in Grenoble, Frankreich und Lehrer am IUT de Saint-Martin-d’Hères.[3]

In 2012 wurde das Dateiformat für Boards und damit die Dateiendung von „.brd“ auf „.kicad_pcb“ umgestellt. Aktuelle KiCad-Versionen können beide Formate einlesen und abspeichern.

Seit 2013 arbeitet die Abteilung BE-CO-HT vom CERN an KiCad, was der Entwicklung einen Schub gab.

Ende des Jahres 2015 veränderte das KiCad-Team mit Version 4.0.0 den Release-Mechanismus. Zuvor gab es keine offizielle Installationsdatei zum Download und Nutzer mussten sich behelfen, indem sie den Quellcode selbst kompilierten. Seitdem erscheinen regelmäßig neue Versionen und zeitnah Patches für Bugs, sofern diese das Programm zum Absturz bringen.[4]

Seit Dezember 2019 ist der Projektleiter (Maintainer) Wayne Stambaugh bei der KiCad Services Corporation (KiPro) fest angestellt.[5]

Komponenten[Bearbeiten | Quelltext bearbeiten]

KiCad beinhaltet folgende Programmteile:

  • KiCad – Grundmodul mit integrierter Projektverwaltung
  • EESchema – Schaltplan-Editor
  • Schematic library editor – Ein Editor, um Schaltplansymbole zu erstellen. Diese Komponente war in älteren KiCad-Versionen ein Teil von EESchema.
  • CVpcb – Tool für die Verbindung eines Schaltplansymboles mit einem oder mehreren Bauteil-Footprints. Dieser Teil ist in neueren Versionen in EEschema integriert.
  • PCBnew – Layout-Editor für Leiterplatten mit integriertem Footprint/Modul-Editor
  • PCB footprint editor – Ein Editor, um Bauteil-Footprints zu erstellen. Diese Komponente war in älteren KiCad-Versionen ein Teil von PCBnew.
  • Gerbview – Programm zum Datenaustausch im Gerber-Format, z. B. für Plotter oder Leiterplattenhersteller
  • Bitmap2component – (experimentell) Werkzeuge zur Erstellung von Symbolen und Footprints aus Bitmaps (z. B. um Logos zu importieren)
  • PCB Calculator – ein „Taschenrechner“ und Formelsammlung für Berechnungen rund um die Entwicklung von Schaltungen und Leiterplatten
  • PL-Editor – Editor für den in KiCad üblichen Zeichnungsrahmen

Arbeitsablauf[Bearbeiten | Quelltext bearbeiten]

EESchema – Schaltplan-Editor[Bearbeiten | Quelltext bearbeiten]

Zuerst wird mit EESchema ein Schaltplan unter Verwendung der Schaltplansymbole aus der Symbolbibliothek erstellt. Dabei unterstützt EEschema sogenannte hierarchische Schaltpläne, das heißt, ein Schaltplan kann als „Blackbox“ Unterschaltpläne enthalten, die wiederum weitere Unterschaltpläne enthalten können. Umgekehrt kann auch aus vorhandenen Unterschaltplänen durch passendes Einbinden in übergeordnete Schaltpläne sehr schnell ein Schaltplan modular aufgebaut werden.

Schaltplansymbole können mit dem in EESchema enthaltenen Symboleditor angepasst oder komplett neu erstellt werden. Des Weiteren enthält EESchema ein Tool für Annotation (Automatisches Vergeben von Referenzbezeichnern für die verwendeten Bauteile) und für einen ERC (Electrical rule check), der den Schaltplan grob auf Fehler untersucht, zum Beispiel, ob alle Pins angeschlossen sind, mit Ausnahme derer, bei denen ausdrücklich kein Anschluss gewollt ist. Eine Netzliste kann in verschiedenen Formaten exportiert werden, wie für Spice oder den Specctra Autorouter. NGSpice ist integriert.[6]

CVpcb[Bearbeiten | Quelltext bearbeiten]

Danach wird diese Netzliste in CVpcb eingelesen. Dort kann jedem Bauteil ein Footprint (in KiCad Module genannt) zugewiesen werden. Bei einem Technologiewechsel (z. B. beim Übergang von Through hole- auf SMD-Technik) können hier auch nachträglich andere Footprints eingetragen werden. Nach erneutem Abspeichern der Netzliste kann diese nun in das Platinenlayoutmodul von KiCad, PCBnew, eingelesen werden. Ein anderer Ansatz ist der direkte Verweis auf Footprints, der in ein Feld des Symbols eingetragen wird. Diese Footprints erscheinen dann als Voreintrag in CVpcb, wo sie auch noch editiert werden können. Fehlt der Verweis auf den Footprint im Symbol, bleibt die Liste in CVpcb an der Stelle leer, und muss dort editiert werden.

PCBnew – Layout-Editor[Bearbeiten | Quelltext bearbeiten]

In PCBnew werden die Bauteile auf der Platine platziert und mit Leiterbahnen verbunden. Auch können Netzklassen definiert werden, die z. B. Leiterbahnbreiten und Isolationsabstände festlegen. Das Verbinden kann manuell oder über den mitgebrachten Autorouter erfolgen. Auch ein externer Autorouter, der irgendwo auf einem Server läuft oder ganz fremde Software, wie z. B. der Specctra Autorouter, kann verwendet werden.

Das manuelle Routen wird von einem abschaltbaren permanenten DRC (design rule check) unterstützt, der überprüft, ob Leiterbahnbreiten und Abstände gemäß der Netzlistendefinition eingehalten werden und das Platzieren nicht DRC-konformer Leiterbahnen verhindert. Der DRC kann auch nach Abschluss der Arbeit extra gestartet werden, dann werden Ausnahmen und alle anderen DRC-Verletzungen gemeldet, so dass man entscheiden kann, ob man die Regelverletzung beseitigt oder als Ausnahme zulässt.

PCBnew beherrscht interaktives „Push & Shove“ sowie „matched pair“, um das manuelle Routen zu erleichtern. Allerdings basiert dieses auf der Hardwareunterstützung durch die Grafikkarte mit openGL, so dass es auf älteren Rechnern oder bei nicht unterstützter Hardware nicht verwendet werden kann. Gewöhnliches manuelles Routen funktioniert aber dann noch.[7][8] Der Push & Shove-Router ist eine gute Alternative zu Autoroutern, besonders wenn man bedenkt, dass die Ergebnisse von Autoroutern ja im Allgemeinen auch noch manuell überarbeitet werden müssen.

PCBnew unterstützt das Einbinden schon vorhandener gerouteter Platinen, so dass aus verschiedenen Platinen Ausschnitte entnommen und zu einer neuen verbunden werden können. Allerdings müssen alle dafür nötigen Annotationen von Hand vorgenommen werden.

PCBnew enthält ein HF-Tool, mit dem bequem Stubs und Gaps definierter Abmessung erzeugt werden können. Des Weiteren können Polygone eingelesen werden, die als Shapefile (eine Liste von Koordinaten) vorliegen. Auf die Art und Weise lassen sich HF-Filterstrukturen und Antennen erzeugen, aber auch andere Kupferstrukturen wie Sensorflächen oder „Lötjumper“.

Die Ausgabe der Platine kann als Extended Gerber, PostScript, DXF, HPGL, SVG oder direkt auf einen Drucker erfolgen. Bohrdatenfiles, Pick+Place-Daten für SMD-Bestückungsroboter und eine Stückliste (BOM) als Text oder CSV können erstellt werden.

Bauteilbibliothek[Bearbeiten | Quelltext bearbeiten]

Es stehen viele Bauteilbibliotheken im Repository zur Verfügung, die durch die Arbeit der aktiven Community entstehen. Des Weiteren können Eagle-Bibliotheken direkt importiert werden. Mittlerweile gibt es auch externe Anbieter von Bibliotheken, wie z. B. SnapEDA, die einen Export ihrer Bibliotheken auch für KiCad ermöglichen, oder der Bauteilehändler Digi-Key, der ebenfalls Footprints und 3D-Modelle zu seinem Bauteilangebot zum Download auch für KiCad anbietet.[9]

Gerbview[Bearbeiten | Quelltext bearbeiten]

Eine Besonderheit stellt die Fähigkeit von KiCad dar, „Extended Gerber“ mit dem mitgebrachten Gerberviewer „Gerbview“ nicht nur anzusehen, sondern auch als Layout in PCBnew importieren zu können.

Dort kann man die Platine bearbeiten, z. B. zu größeren Nutzen vervielfachen, und wieder als Extended Gerber exportieren. Eine weitergehende Bearbeitung ist aber nur möglich, wenn eine Netzliste besteht. Diese könnte durchaus von Hand unter Benutzung von Gerbview und PCBnew erstellt werden. Insofern ist KiCad für reverse engineering geeignet.

Der Programmteil Bitmap2component wandelt Bitmaps wahlweise in Symbole oder in Footprints um. Auf diese Weise können also auch Logos oder spezielle Muster für HF-Anwendungen in KiCad importiert werden, sofern sie als Bitmap vorliegen. Diese Funktion ist allerdings sehr neu (im Frühjahr 2011 eingefügt) und eher als experimentell zu bezeichnen.

PCB Calculator[Bearbeiten | Quelltext bearbeiten]

Der PCB Calculator enthält einige kleine Berechnungsprogramme bzw. Tabellen. Berechnet den Wellenwiderstand von Leitungen, Leiterbahnbreiten und -widerstände. Dimensionierungswiderstände von Spannungsreglern, die ähnlich dem LM317.

3D-Modell[Bearbeiten | Quelltext bearbeiten]

KiCad ermöglicht die 3D-Vorschau der erstellten Leiterplatten sowie einen Export des mechanischen Leiterplattenmodels (mit Bauteilen) im VRML- oder STEP-Format. Dafür müssen die verwendeten Bauteile auch als 3D-Modelle hinterlegt sein, z. B. im Format VRML (WRL) oder STEP. Standardbauteile sind bereits integriert. Zum Erstellen und Bearbeiten der Bauteile als 3D-Modell ist externe Software erforderlich, z. B. Wings 3D, FreeCAD oder Blender (alle ebenfalls Open Source).

Mit dem externen Werkzeug TTConv können AutoCAD-dxf-Dateien im- und exportiert werden.

Automatisierung[Bearbeiten | Quelltext bearbeiten]

KiCad besitzt eine Python-Schnittstelle (Python 3) die aber zurzeit nur für das Board implementiert ist.[10] Geplant ist etwas Ähnliches, wie Eagle es mit den ULPs bereits eingeführt hat. Da alle Dateien nicht im Binärformat, sondern als Textformat vorliegen, können diese relativ leicht extern manipuliert werden.

Dokumentation[Bearbeiten | Quelltext bearbeiten]

Für das KiCad-Projekt existieren umfangreiche offizielle Dokumentationen[11] und Tutorials[12] in verschiedenen Sprachen, welche auf GitLab unter dem offiziellen KiCad documentation project gepflegt werden[13].

Literatur[Bearbeiten | Quelltext bearbeiten]

Weblinks[Bearbeiten | Quelltext bearbeiten]

Allgemein
Commons: KiCAD – Sammlung von Bildern, Videos und Audiodateien
Symbol- und Bauteil-Bibliotheken

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. KiCad 5.1.6 Release. 15. Mai 2020 (englisch, abgerufen am 16. Mai 2020).
  2. The kicad Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 18. Oktober 2018).
  3. KiCad-PCB.org About KiCad.
  4. kicad-source-mirror: Stable Release Policy In: github.com, Abgerufen am 23. Mai 2019
  5. Project Leader Joins KiCad Services Corporation. 2. Dezember 2019; (amerikanisches Englisch).
  6. KiCad, Eeschema mit NGSpice ( nightly builds ) In: mikrocontroller.net, Abgerufen am 23. Mai 2019
  7. Kicad Interactive router(release version) In: YouTube, Abgerufen am 23. Mai 2019
  8. Kicad - Differential pair routing and trace length matching In: YouTube, Abgerufen am 23. Mai 2019
  9. Digi-Key bietet jetzt Downloads für KiCad-Bauteilmodelle an In: Digi-Key ELECTRONICS, Abgerufen am 23. Mai 2019
  10. KiCad 5.1.0 Releasenotes. 14. März 2019; (englisch).
  11. https://docs.kicad-pcb.org Offizielle Dokumentation zu KiCad in verschiedenen Sprachen
  12. Tutorials Help -> Tutorials
  13. KiCad documentation repository. KiCad EDA, 20. März 2020, abgerufen am 20. März 2020 (englisch).
  14. Maik Schmidt /psz: Kupferpfadfinder. In: c’t. Februar 2020;: „... zeigt die Handhabung anhand praktischer Projekte, vergisst aber auch nicht, Einsteigern das kleine Einmaleins des Arbeitens mit Platinen zu vermitteln. ... ein kompletter Arduino-Klon ... Das mit vielen farbigen Abbildungen und Screenshots versehene Buch regt zum aktiven Lesen an. Die deutsche Fassung hätte es allerdings verdient, besser lektoriert zu werden.“