Peter Hofbauer’s private Homepage
Selbstbauprojekte
eigene Entwicklungen
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)
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.