Peter Hofbauer’s private Homepage
Selbstbauprojekte eigene Entwicklungen
Home Kinderauto Haustechnik Messgeräte Radios/Verstärker Software Maschinen Impressum Letzte Änderung: 08.Juli 2013 Copyright: frei! Impressum Letzte Änderung: 02.Februar 2024 Copyright: frei!

Meine Erfahrungen mit der Schaltplan/Layout-Software KiCAD.

KiCAD ist kostenlos und ohne Begrenzungen. Ich verwende es seit einigen Jahren. Mein Urteil: KiCAD ist gut!!! Ich betone das hier weil in vielen Foren darüber gestritten wird. Als Hobbyist sollte man sich davon nicht beirren lassen. Es lohnt auf jeden Fall sich in KiCAD einzuarbeiten. KiCAD ist eine freie Software, die in Frankreich entwickelt und gepflegt wurde und jetzt in Cern weiter gepflegt wird. Inzwischen gibt es für alle Teile Handbücher, sogar in Deutsch! Das ist für freie Software selten. Ich habe einige kleine Programme für KiCad geschrieben. Nach Entpacken das Programm irgendwo sichern. Dann mit der normalen WINDOWS-Funktion eine "Verknüpfung erstellen", mit dessen Hilfe man die Programme starten kann. Eine Installationsdatei gibt es nicht, es wird nichts eingetragen. Hinweis: Anwendung natürlich auf eigene Gefahr. Bitte vorher die Dateien sichern, die werden zum Teil ohne Vorwahnung überschrieben. Ich verwende die Programme schon länger ohne einen Fehler erkannt zu haben. Mein Betriebssystem: XP und Win7. Die Programme Nr.1 und Nr.2 habe ich mit XPROFAN programmiert, den Rest mit Purebasic.

Hilfsprogramm Nr.1 für KiCAD: Bibliotheken aufräumen (Version 1.1 vom Aug.2013) (nur BZR 4022)

(Für KiCAD 5 siehe unten, Hilfsprogramm Nr. 7) KiCAD wird mit fertigen Bibliotheken geliefert. Diese sind von vielen Anwendern zusammengestellt und deshalb etwas durcheinander. Weil in KiCAD eigene Symbole einfach kreiert werden können ist das kein wirklicher Nachteil. Ich habe mir eigene Bibliotheken angelegt und nur solche Teile darin aufgenommen, die ich auch brauche. Zum Glück sind alle Dateien für KiCAD lesbare ASCII-Dateien. Deshalb kann man kleine Zusatzprogramme leicht selber entwickeln. Ich habe eine Software für Aufräumarbeiten entwickelt. In zwei Fenstern werden zwei Bibliotheksdateien geladen. Dann kann zwischen beiden kopiert oder gelöscht werden. Das geht in KiCAD zwar auch, aber zu umständlich. Für die beiden Typen von Bibliotheken (Schaltplan-Symbole und Platinen-Bauteile "Footprint" ) je eine getrennte Software Symbol-Sortierer für den Schaltplan = "symbol_HP.exe" Footprint-Sortierer fürs Layout =  "modul_HP.exe” Die Dateien werden komplett in den Arbeitsspeicher geladen und dort bearbeitet. Die Originaldateien bleiben zunächst im Originalzustand. Zum Schluss kann man die Dateien mit “Datei speichern” sichern. Entweder die Originaldatei überschreiben oder unter einen neuen Namen anlegen. Es dürfen auch in beiden Fenstern die selbe Datei geladen werden. Man muß dann aufpassen welches Fenster man zum Schluss sichert. Unterm Fenster ein kleines Kontrollbild des markierten Bauteils. Nicht sehr schön (die Kurven fehlen), aber es dürfte reichen. Die Pfeile zwischen den Fenstern bewirken eine Kopie eines markierten Teiles in der angezeigten Richtung. Der "..löschen" Button löscht ein markiertes Bauteil ohne Rückfrage. Vorm beenden des Programms das sichern der Dateien nicht vergessen, das geht nicht automatisch. Hinweis zum Symbol-Sortierer: KiCAD setzt vorm Symbolname eine Tilde (~) wenn der Name mit “unsichtbar” im Symboleditor gekennzeichnet wurde. Wegen der Tilde erscheinen diese Symbole am Anfang der Liste. Hinweis zum Footprint-Sortierer: Seit der neueren Version 2013-07-07 verwendet PCBNEW ein anderes Dateiformat. Die Maßeinheit wurde von 1/10000tel Inch in mm geändert. Der Footprint-Sortierer arbeitet mit beiden Formaten einwandfrei. Allerdings geht ein Verschieben zwischen verschieden Formaten nicht. Ein entsprechender Hinweis erscheint dann.   So sehen die beiden Programme aus:
Die Programme bestehen aus je einer exe-Datei. Nach dem Entpacken sollten die Programme das jeweilige KiCad-Verzeichnis für die Bibliotheken kopiert werden. Zum Beispiel: "symbol_HP" nach c:\programme\kicad\share\library\ "modul_HP" nach c:\programme\kicad\share\modules\ Download: die beiden Programme (1,2MB)
Home

Software

Hilfsprogramm Nr.2 für KiCAD: Gesamt-Stückliste erzeugen (nur BZR 4022)

Hinweis: Funktioniert nicht mehr ab Version 4 weil die csv-Datei nicht mehr wie vorher erzeugt wird. Wenn man größere Projekte entwickelt, benötigt man meist mehrere Platinen. Dabei muss man die einzelnen Platinen auf mehrere KiCAD- Projekte, also Schaltpläne, verteilen. Ich habe hier ein einfaches Programm zur Addition von mehreren Stücklisten geschrieben. Das geht mit einer normalen Büro-Software auch, aber dies Programm macht noch etwas anderes. Wenn man in KiCAD-Schaltplan bei den Bauteilwerten wie in D üblich ein Komma zur Dezimaltrennung verwenden, erzeugt das in einer csv-Datei ein ungewolltes Trennzeichen. Dies Programm will in der Originalstückliste von KiCAD als Trennzeichen statt Komma ein Semikolon haben. Das muß man in KiCAD beim erzeugen einer Stückliste einstellen. Mein kleines Programm entfernt zunächst alle Kommas und ersetzt diese durch einen Dezimalpunkt. Die Stückzahl gleicher Bauteile wird addiert und die Liste dann mit Komma als Trennzeichen ausgegeben. Das Programm ist also auch nur zum entfernen von Kommas in der Stückliste verwendbar. Die Bedienung: Nach Aufruf erscheint eine kleiner Bedienhinweis. Nach Enter muss man alle Eingangs-Dateien nacheinander angeben. Zum Schluss noch den Dateinamen für die Ausgabe *.csv-Datei. Download:  das Programm GesamtSL.zip (560kB)

Hilfsprogramm Nr.3 für KiCAD: Verdrahtungsliste aus Netzliste konvertieren (für KiCad 3 und 4)

Dieses kleine Programm erzeugt aus der Netzliste eine Verdrahtungsliste. Eine solche Liste ist von Nutzen wenn man eine Schaltung von Hand verdrahten muss. Die Verdrahtungsliste (in der Ausgabedatei) ist auf 1000 Zeilen begrenzt. Das Programm wurde mit BureBasic geschrieben. Hinweis: Funktioniert auch ab Version 4.
Die Netzliste aus KiCAD und
die erzeugte Verdrahtungsliste
Die Software “Drahtliste.exe” zeigt nach Aufruf eine Dateiauswahl zur Auswahl der gewünschten Netzliste *.net. Nach “Öffnen” wird sofort ohne Nachfragen die neue Liste intern im Arbeitspeicher erzeugt. Das geht blitzschnell. Dann wird eine Dateiauswahl für Ausgabe einer Verdrahtungsliste im Textformat (”*.txt) gezeigt. Nach “Speichern” ist die Liste fertig und kann mit jeden beliebigen Textprogramm angesehen oder ausgedruckt werden. Mehr als diese beiden Dateiauswahlen sind auch nicht zu sehen. Download: das Programm “Drahtliste.zip” (7,2kB)

Hilfsprogramm Nr.4 für KiCAD: krumme Bohrergrössen kürzen (Version 1.1 vom Mai 2017, für KiCad 3 und 4)

Im Laufe der Zeit sind die Bohrdaten in meiner Footprint-Bibliothek unterschiedlich definiert worden. Teilweise in mm, und teilweise in Zoll (mil). Ein Bohrer mit 40mil Durchmesser steht in der Bohrdaten mit 1,024mm und wenn er in mm definiert wurde sind es 1mm. Die Folge: die automatische  Bohrmaschine will verschiedene Bohrer haben obwohl die Abweichung wurscht ist. Wenn ich meine Platinen mit der CNC fertige, nervt das unnötige Anhalten der Maschine. Deshalb habe ich dieses einfache Programm geschrieben. Es ändert alle Bohrungen in der *.kicad_pcb Datei auf ein Zeichen hinter dem Komma nach dem gerundet (auf- oder ab) wurde. Aus 1,024mm wird also 1,0mm und aus 1,524mm wird 1,5mm. Die Anzahl der verschiedenen Bohrer wird dadurch gekürzt.
CodeNr aus KiCad
Netzname aus KiCAD falls im Schaltplan angegeben
Nach Aufruf des Programms “Bohrdaten” muss in der dann sichtbaren Dateiauswahl die *.kicad_pcd Datei ausgewählt werden. Sofort danach erscheint das obige Fenster “Bohrdaten” mit den vorhandenen und daneben die gekürzten Bohrdaten. Nach “Neue Bohrdaten Übernehmen” wird die alte Datei mit den neuen Daten überschrieben. Das Ergebnis ist nach erneuten Aufruf der selben Datei (zwecks Kontrolle) zu sehen. Es sind nur noch die korregierten Daten wie oben rechts gezeigt in der Datei. Diese Software funktioniert nur mit den PCB-Formaten mit der Erweiterung kicad_pcb.  Also auch mit KiCad Version 4. Download: das Programm “Bohrdaten.zip” (21kB)

Hilfsprogramm Nr.5 für KiCAD: Platinenfertigung auf einer CNC-Portalfräse (KiCad 3 und 4)

Metode 1: mit Linegrinder

Die Fertigung von Platinen mit Hilfe einer CNC-Fräse, also “Isolierfräsen”,  ist nur sinnvoll bei groben Strukturen. Leiterbahnen sollten nicht unter 0,4mm und Lötaugen nicht unter 2mm sein. Es gibt allerdings auch Beispiele mit wesentlich kleineren Strukturen, aber das bekommt man nur mit viel Übung und viel neuen Sticheln hin. Ich rate davon ab! Meine Platinen entwerfe ich mit KiCAD. Zum Isolierfräsen ist eine G-Kode-Datei nötig. Die kann KiCad aber nicht erzeugen. Nach einigen Versuchen habe ich es geschafft mit “Linegrinder” und mein kleines Zusatzprogramm “KonvdertLinegrinder” einen für meine CNC-Steuerung lesbaren G-Kode zu erzeugen. Linegrinder ist eine kostenlose Software, kann vom Netz geladen werden. Hinweis: es ist eine neue Version von KiCAD (2015-01-16 BZR 5376 oder neuer) nötig weil Linegrinder in den Gerberdateien mm-Angaben braucht. Die älteren Versionen arbeiten noch mit Zoll. Der Ablauf 1.) das fertige Layout mit das Zusatzprogramm “Bohrdaten” bearbeiten um die Anzahl der Bohrungen zu vermindern. 2.) In KiCAD den Ursprung (0,0) auf die obere linke Kante der Platine setzen. Dann die Platine mit ein Fenster markieren und “wenden”. Also die Lötseite nach oben bringen. Das kann man in KiCAD>Plotten und Linegrinder zwar auch, aber dann passen Bohrungen nicht mit den Leiterbahnen zusammen. 3.) Mit hier gezeigten Einstellungen in KiCAD>Plotten die Layout und Bohrdatei erzeugen.
4.) Dann Linegrinder aufrufen und die Einstellungen wie hier gezeigt für *.drl und *.gbr vornehmen Meine hier gezeigten Einstellungen gehen davon aus, das ein Tiefentaster verwendet wird. Die Position Z=0 ist die Oberfläche der Platine. Bohrungen, Datei *.drl DrillingNumberOfDecimalsPlaces = 3 (Nachkomma) DrillingZDepth = -4, absenken unter Null = 4mm DrillingZClearLevel = 8, Flughöhe über der Platine = 8mm DrillingZFeedRate = 300, Z-Geschwindigkeit fürs Bohren = 300mm/min DrillingXYFeedRate = 800, Fluggeschwindigkeit = 800m/min Isolierfräsen, Datei *.gbr Application Units = MILLIMETERS IsoPlotPointsPerApplicationUnit = 78 (defaultwert), bestimmt die Auflösung / Genauigkeit   IsoCutWigfh = 0,1, Frässpurbreite = 0,1mm IsoFlipMode = No_Flip, Spiegeln = aus IsoPadTouchDownsWanted = Flase, Bohrer ankörnen = aus, IsoPadTouchDawnZLevel = nicht nötig IsoXYFeedRate = 800, Fräsvorschub = 800mm/min IsoZClearLevel = 5, Flughöhe = 5mm, schnell IsoZCutLevel = -2, Z-Fräsposition 2mm unter Null IsoZFeedRate = 200, Fräser eintauchen = 200mm/min IsoZMoveLevel = 5, Flughöhe = 5mm ReferencePinGCodeEnabled = False, Funktion = aus, ReferenzPinClearLevel = 5, Rest nicht relevant.
5.) Mit “Open Gerber/Drill File..” die Datei *.gbr laden, dann “Convert to GCode”, zur Kontrolle den G-Code ansehen und mit “Save Iso GCode” speichern
6.) Mit “Open Gerber/Drill File..” die Datei *.drl laden, dann “Convert to GCode”, zur Kontrolle den G-Code ansehen und mit “Save Drill GCode” speichern Linegrinder hängt hinten an den originalen Layout- Dateinamen noch “_ISOLATION_GCODE.nc dran. Die Bohrdatei erhält ein “_Drill_GCODE.nc hinten dran.
7.) Dann kommt mein kleines Zusatzprogramm “KonvertLinegrinder” an die Reihe. Nach dessen Aufruf ist eine Dateiauswahl zu sehen. Dann eine Datei *.nc auswählen. Danach kommt nur noch ein Fenster mit “Fertig”. Jetzt kann die Platine auf einer Fräse bearbeitet werden. LineGrinder erzeugt für einen Vollkreis nur einen G02 (G03) -Code. Weil dann aber Anfang und Ende eines solchen Kreises identisch sind, erzeugt meine Fräse nur einen Punkt. “KonvertLinegrinder” ändert den G02 und G03-Code für einen Vollkreis in 2 Halbkreise. Dann gehts. In eine *.nc-Datei für die Bohrungen setzt KonvertLineGrinder einen Stopp für den Bohrerwechsel. Dazu wird der T?-Code gesucht und daraus eine Stopp-Meldung generiert damit meine Maschine zwecks Bohrerwechsel anhält. Hinweis: meine Fräse arbeitet mit der Steuerung Estlcam+Arduino. Nur an meiner Fräse habe ich das Verfahren getestet. Ob es auch an anderen Fräsen geht? Vermutlich ja! Download: das Programm “KonvertLinegrinder.zip” (7kB)
Die Software wurde mit KiCAD Version: (2013-07-07 BZR 4022)-stable getestet und betrieben. Die neueren Version ab 4 teste ich zur Zeit. Die Programme habe ich zusätzlich mit KiCad Version 4 getestet und wenn nötig und möglich angepasst. Das ist bei den Programmen angegeben.

Metode 2: mit Visolate

Visolate ist eine kostenloses java-Software zum Erzeugen von G-Code aus einer Gerber-Datei. Visolate erzeugt (im Gegensatz zu LineGrinder) die Gravierspuren nur mit G01-Kommandos. Kreise werden als Vielecke gezeichnet. Visolate kann außer den normalen Outline-Mode noch den  Voronoi-Mode. Wozu ist das Gut? Beim Outline-Mode wird der Umriss der Leiterbahnen mit einer Gravierstichel gefräst. Zwischen den Leiterbahnen bleiben Kupferflächen übrig die eigentlich zu nichts verwendet werden. Man kann das Restkupfer auch als GND-Fläche verwenden, siehe weiter unten. Bei der Voronoi-Mode wird zwischen den Leiterbahnen gefräst ,so dass kaum Restkupfer übrig bleibt. 1.) In KiCAD muss die Leiterplatte wie oben beschrieben gewendet werden damit die Lötseite oben ist. Dann den Ursprung auf die obere linke Seite setzen. Dann Plotten: Gerber, F.Cu, Verwende Hilfsachse als... Bohrdatei erzeugen: Millimeter, Behalte Nullen, Gerber, Hilfsachse Wichtig: KiCad arbeitet ab Version 4 in mm nicht mehr in zoll. Visolate benötigt aber zoll. In der *.gbr-Datei sind die Werte zwischen G04 APERTURE LIST* und G04 APERTURE END LIST* in mm. Das kann man mit Taschenrechner und Editor von Hand korregieren, also die Werte durch 25,4 teilen. Einfacher gehts mit meiner kleinen Software “AppListeKorregieren.exe”. 2.) Mit Visolate:  Datei laden: Browse, Load *.gbr, und Anzeigen lassen: fit, Mod (Outline oder Voronoi) auswählen und Taste: Make Toolpaths Dann werden die Fräsbahnen sichtbar und man muss noch die Daten zum Fräsen einstellen: cutting hight = -2mm, (Fräsposition unter Oberfläche Print) und travel clearance = 5mm (Flughöhe) eingeben cutting feedrate = 1200 (Fräs-Geschwindigkeit) und plunge feedrate = 200 (Z-EintauchGeschwindigkeit) eingeben in mm/Minute. 3.) Leider verarbeitet Visolate keine Bohrdaten. Dazu muss man wie oben beschrieben LineGrinder verwenden. Für die Bohrdaten.nc mein kleines Programm “KonvertLineGrinder” verwenden, damit nachträglich Stopp-Code für den Bohrerwechsel in die Datei kommen. 4.) Kontrolle ob Leiterbahnen und Bohrungen zusammenpassen, also die identischen Ursprung haben. Dazu kann die kostenlose Software “NC-Corrector V4.0” verwendet werden. Damit kann man beide G-Code-Dateien gleichzeitig (übereinander) anzeigen lassen. Hinweis: Visolate ist eine Java-Software. Leider wird Visolate bei jeden Java-Update überschrieben.  Also Linegrinder unbedingt irgendwo sicher bereithalten und nach einen Java-Update wieder ins Java-Verzeichnis kopieren. Download: das Programm “AppListeKorregieren.zip” (13kB)

Hilfsprogramm Nr. 6 für KiCAD: Restkupfer als GND-Fläche verwenden (für KiCad 3 und 4)

Dazu darf man in Kicad die GND-Leitungen nicht verlegen. Die GND-Bohrungen werden ins Restkupfer gebohrt. Damit für diese Bohrungen kein Pad gefräst wird, müssen alle GND-Pads auf der Kupferseite verschwinden. Auf die nicht verwendete Bestückungsseite müssen die Pads aber bleiben sonst verschwinden auch die Bohrungen. Dazu habe ich eine kleine Software “GNDpads” geschrieben, die alle GND-Pads auf der Lötseite löscht. Die *.kicad_pcb -Datei laden und “Öffnen”. Die Software meldet dann nur noch “Fertig!” oder eine Fehlermeldung falls die Datei nicht existiert. Vorsicht: die Datei wir ohne Warnung überschrieben, sollt man vorher sichern. Funktioniert jetzt (Juni 2018) auch mit KiCad 4... Download: das Programm “GNDpads.zip” (7kB)

Hilfsprogramm Nr. 7 für KiCAD: Stückliste aus der Schaltplandatei *.sch (KiCAD 5)

Die Stücklisten-Erzeugung in KiCAD funktioniert nur wenn die Schaltpläne annotiert sind, also alle Position-Ziffern vorhanden sind. Meine kleine Software “BestellListe_sch” kann das ohne diese Vorbedingung. Meine Projekte haben oft mehrere Platinen in getrennten KiCAD-Projekten. Zusätzlich kommen die einzelnen Platinen-Schaltpläne als Unterschaltungen in einen Haupt- Schaltplan. In diesen Haupt-Schaltplan sind aus KiCAD- Sicht keine elektrischen Verbindungen zu den einzelnen Platinen. Bei so einen Konstrukt kann KiCAD keine Gesamt-Stückliste generieren. Auch dafür habe ich diese Software geschrieben. Nach Aufruf von “BestellListe_sch” erscheint zunächst nur eine Datei-Auswahl. Nach Auswahl eines KiCAD- Schaltplanes  erscheint ein einfaches Text-Fenster. Zuerst durchsucht das Programm die Datei nach Unterschaltungen (*.sch) und auch nach Unterschaltungen in den Unterschaltungen. Es werden alle beteiligten Schaltplandateien gesammelt und daraus eine Gesamt- Stückliste erzeugt. Im Beispiel hier habe ich den Schaltplan RGP9300 ausgewählt. Das ist ein Schaltplan mit 7 Unterschaltungen. Zu sehen sind Verzeichnis, die Datei RPG9300 und noch die 7 darin enthaltenen  Unterschaltungen. Alle Schaltungen werden berücksichtigt. Als Ergebnis werden 2 verschiedene csv-Ddateien erzeugt: 1.) MIT Pos.-Nr, immer wenn Position, Wert und Footprint identisch sind wird deren Stückzahl aufaddiert. 2.) OHNE Pos-Nr, hier werden nur Wert und Footprint berücksichtigt. Links sind csv-Daten und rechts sind die csv-Dateien in meine Datenbank (PC-Database 3..) eingelesen worden. Darin kann man die Daten besser sehen und sortieren. In der csv sind die Daten nicht sortiert. Downloads: XPROFAN-Sourcecode und die BestellListe_sch.exe Getestet mit KiCAD 5 unter WIN10. Ab KiCAD 5.99 ist des Format der *.sch anders, dann funktioniert es nicht mehr.
Hinweis: Auf der letzten Seite meines CNC-Artikels habe ich die Fertigungseinrichtung mit Vakuumplatte beschrieben.
Software Software