====== KiCad Multi-User Setup (in Bearbeitung) ====== Bei [[https://team14.at|Team14]] verwenden wir [[https://kicad-pcb.org|KiCad]] auf mehreren PCs mit sogar unterschiedlichen Betriebsystemen: Windows 10 und Linux Mint 18. In diesem Artikel beschreibe ich unser Setup und worauf geachtet werden muss. ((bezieht sich auf KiCad 5, inwieweit dies auch für KiCad 4 gilt, muss noch geprüft werden)) ===== Synchronisation ===== Zur Synchronisation unserer Daten verwenden wir einerseits Seafile, und andererseits git-versionierte Projekte mit GitLab. ===== fp-lib-table und sym-lib-table ===== Ab KiCad 5 werden neben den Footprints nun auch die Schaltplansymbole über zentrale bzw. projektspezifische Tabellen verwaltet. Das sind einfache Textdateien, die die Bibliotheken auflisten. Hierbei sollten fixe Pfade in den Einträgen unbedingt vermieden werden. ==== projektspezifisch ==== Bei den prjektspeziefischen Tabellen passiert dies automatisch durch den Präfix ${KIPRJMOD}. ==== systemweit ==== Bei den systemweiten Tabellen, die unter Linux im Ordner ~/.config/kicad zu finden sind, sollten auch unbedingt fixe Pfade vermieden werden. Für die offiziellen Libs von GitHub werden planmäßig entsprechende Umgebungsvariablen in der Datei ~/.config/kicad/kicad_common angelegt, siehe auch [[kicad_project_portierung_von_v4_auf_v5|KiCad 5: Projektportierung von KiCad4]]. Hier kann man aber auch firmeneigene Variablen anlegen. Bei uns ist die Firmenbibliothek ein einziges Git-Repository, in dem sich Symbole, Footprints und 3D-Modelle befinden. Durch den Eintrag in die **kicad_common** # Team14 library path: TEAM14_LIB_DIR=/home/karl/Team14/git/team14-kicad-libs kann man dann die neu geschaffene Umgebungsvariable in den beiden systemweiten Tabellen verwenden, und somit ganz auf fixe Pfade in den beiden Tabellen verzichten. {{ ::2018-04-19_009.png?direct&400 |}} ===== Was ist auf jedem System zu machen? ===== ==== kicad_common ==== In der kicad_common müssen die Pfade auf jedem System richtig eingerichtet werden. Das sollte die einzige Datei sein, in der systemspezifische Pfade stehen. ==== Sonchronisierung der Tabellen ==== Da die systemweiten Tabellen an einer speziellen Stelle im Dateisystem liegen müssen, stellt sich die Frage, wie man die am besten synchronisiert. === Git Repository === in dem KiCad Config-Ornder befinden sich einige Dateien, wobei eigentlich nur die **fp-lib-table** und **sym-lib-table** synchronisiert werden sollen. D.h. man könnte diesen Ordner per Git verwalten, wobei fast alle Dateien in der .gitignore gelistet sind. * Vorteile: Versionierung und Diff macht Änderungen sichtbar * Nachteil: manuelles Triggern (push/pull) notwendig === Seafile mit Symlinks === Man könnte diese Dateien auch per Seafile synchronisieren, wobei sich diese dann irgendwo im "Firmen-Ornder" befinden. Per Symlink können die Dateien dann in den KiCad Config-Ordner verlinkt werden. * Vorteile: vollautomatisch und versioniert * Nachteil: Symlinks sind auf Windows zwar möglich, aber unüblich. === Seafile mit manuellem Kopieren === Um keine Symlinks verwenden zu müssen, könnten die Dateien auf Aufforderung z.B. per eMail, vom Benutzer manuell aktualisiert. * Vorteil: bewusstes Update * Nachteil: manueller, lästiger Vorgang Da ein Update dieser Tabellen nach anfänglicher Einrichtung nur selten aktualisiert werden müssen, ist ein manueller Eingriff vermutlich akzeptabel. ===== KiCad 4 ===== Für KiCad 4 existiert die neue sym-lib-table noch nicht, und somit stehen die Pfade der verwendeten Symbol Bibliotheken in der .pro Datei. Ziel ist es somit * überflüssige Bibliotheken aus der .pro Datei entfernen * sicherstellen, dass alle Bibliotheken sich in Pfaden der Umgebungsvariablen befinden ==== Projektdatei bereinigen ==== Die Projekt Datei (*.pro) sollte der Übersicht halber so gut wie möglich bereinigt sein. Um herauszufinden, weleche Bibliotheken im Projekt überhaupt in Verwendung sind, bietet es sich an, die Netzliste zu analysieren. cat my-kicad4-project.net | grep -i [.]lib Dies liefert z.B. folgende Ausgabe: {{ ::2018-04-24_001.png?direct&400 |}} Hier kann auch gleichzeitig überprüft werden, ob Bibliotheken in Verwendung sind, die sich nicht in den Pfaden der Variablen von ''kicad_common'' befinden. Dies sollte unbedingt behoben werden, da es ansonsten zu Problemen auf den Unterschiedlichen Systemen der Benutzer kommen kann. ==== Umgebungsvariablen in der Projektdatei ==== KiCad 4 ersetzt manuell eingestellte Pfade im **Component Libraries Dialog** leider nicht nicht durch die verfügbaren Umgebungsvariablen. Das muss daher per Text-Editor gemacht werden. Hier ein Auszug einer optimalen Projektdatei, die nur Pfade aus den Umgebungsvariablen verwendet: ... LibDir=${TEAM14_SYMBOLS_DIR};${KICAD4_SYMBOLS_DIR} [eeschema/libraries] LibName1=dsd-cc LibName2=t14_zeilhofer LibName3=device LibName4=Connector LibName5=Transistor LibName6=linear LibName7=t14_ic LibName8=BMS LibName9=t14_semiconductor LibName10=t14_mech LibName11=t14_connectors LibName12=Switch LibName13=power ... Leider fehlt hier völlig der Zusammenhang, welche Lib in welchem Pfad enthalten ist (( Eine Schreibweise wie z.B. LibName3=${KICAD4_SYMBOLS_DIR}/device wird von KiCad leider nicht richtig interpretiert)). Das ist ja einer der Gründe, warum mit KiCad 5 die sym-lib-table eingeführt wurde. Dies kann wie oben beschriebn jedoch mit der Netzliste analysiert werden. Wir haben die Situation mit einem Präfix für unsere Team14 Libs etwas verbessert. ACHTUNG: Die ''power'' lib taucht in der Netzliste nicht auf und darf in der Liste in der .pro Datei nicht vergessen werden! ==== Hinweise ==== Auf meinem System sind unter /usr/share/kicad/library die Bibliotheken installiert, die ich (irgendwann) mit KiCad mitinstalliert habe. Obwohl ich KiCad 4.0.7 per PPA auf meinem System installiert hab, sind diese Bibliotheken nicht identisch mit den offiziellen Libs für V4.0.7, die man sich hier herunterladen kann: http://downloads.kicad-pcb.org/libraries/ \\ Für die Zusammenarbeit mit KiCad 4 über mehrere Systeme hinweg verwenden wir die Lib V4.0.7 als gemeinsamen Nenner. ==== Verwendete Umgebungsvariablen ==== In der ''kicad_common'' für KiCad 4 habe ich z.B. folgende Bibliothekspfade eingetragen: === KiCad 4 Lib === KICAD4_3D_DIR=/home/karl/Team14/git/kicad4-packages3D KICAD4_FOOTPRINTS_DIR=/home/karl/Team14/git/kicad4-footprints KICAD4_SYMBOLS_DIR=/home/karl/Team14/git/kicad4-symbols === Team14 Lib === TEAM14_3D_DIR=/home/karl/Team14/git/team14-kicad-libs/packages3D TEAM14_SYMBOLS_DIR=/home/karl/Team14/git/team14-kicad-libs/symbols TEAM14_FOOTPRINTS_DIR=/home/karl/Team14/git/team14-kicad-libs/footprints ===== Links ===== * https://forum.kicad.info/t/kicad-multi-user-capability/7096 * https://forum.kicad.info/t/any-ultimate-guide-on-how-to-use-kicad-4-and-5-on-one-system/10413 {{tag>kicad software deutsch artikel}}