Forum: Platinen KiCad 6 - Komponenten als gruppierte Bauteile in Schaltplan und Platine


von Keks F. (keksliebhaber)


Lesenswert?

Hallo,

mein folgendes Setup/Problem:

Ich habe den Aufbau MCU, mehrere Port-Expander, und mehrere Treiber ICs.

Port-Expander und Treiber sind jeweils gleich, von ersteren habe ich 
drei Stück, von letzteren vier.

Expander und Treiber haben jeweils ihren speziellen Aufbau mit eigenen 
Komponenten (Kondensatoren, Widerständen, etc.) und zumindest der 
Treiber braucht ein durchdachtes Platinenlayout.

Da die Komponenten mehrmals auf der Platine sind, würde ich gerne den 
Aufbau entsprechend modularisieren, also im Schaltplan eine 
Expander-Einheit mit passiven Komponenten als eine Bauteilgruppe 
einfügen, und diese dann entsprechend "verschaltet" als Platinenbauteil 
als fertiges Footprint in PCBNew haben. Dasselbe mit den Treiber-ICs.
Das erspart mir Arbeit, ist organisiert, und die einzelnen Gruppen sehen 
auch gleich aus.
Leider bietet sich für mich in KiCad keine Möglichkeit an das richtig zu 
machen. Ich habe zwar zumindest im Platinenlayouter die Möglichkeit 
Komponenten zu gruppieren, allerdings müsste ich dann beim Kopieren die 
Nets entsprechend anpassen, und Änderungen an einer Gruppe übertragen 
sich nicht auf andere.
Für die MCU-Gruppe habe ich das so gelöst, dass ich mir ein Template 
erstellt habe, auf dem das Projekt basiert. Das funktioniert da super, 
aber ich sehe keine Möglichkeit mehrere Templates miteinander (mehrfach) 
zu kombinieren.

Ich glaube das Grundproblem wird auch hier beschrieben:
https://forum.kicad.info/t/item-groups-and-copy/24499/4

Hat jemand von euch eine Lösung für sich gefunden um das am 
zufriedenstellensten umzusetzen?
Vielleicht gibt es online auch Beispielprojekte, die das Problem angehen 
und herunterladbar sind.

Vielen Dank und liebe Grüße
Matthias

: Bearbeitet durch User
von Keks F. (keksliebhaber)


Lesenswert?

Hallo,

jetzt kann ich endlich eine Frage ohne Antworten beantworten, und so ein 
bisschen zurückgeben.

Ich habe das Problem weitaus zufriedenstellend mit dem Plugin "Replicate 
Layout" lösen können. Voraussetzung dafür ist, dass man die 
entsprechende Baugruppe als "hierarchischen Schaltplan" auskoppelt.

Grüße

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Keks F.

Keks F. schrieb:

> Ich habe das Problem weitaus zufriedenstellend mit dem Plugin "Replicate
> Layout" lösen können.

Danke für diese Mitteilung. Dieses Plugin muss ich mir bei Gelegenheit
auch einmal näher ansehen.

> Voraussetzung dafür ist, dass man die
> entsprechende Baugruppe als "hierarchischen Schaltplan" auskoppelt.

So habe ich auch immer angefangen, aber die Umbenennung in PCBnew später 
dann doch manuell mit einem Texteditor gemacht.

Das Auskoppeln als hierarchischen Schaltplan ist ja auch Voraussetzung 
dafür, die Baugruppe auch  wieder mehrmals in EEschema einbinden zu 
können, mit problemloser automatischer Umbenennung in EEschema.

Du kannst allerdings keine Änderungen an einem Bauteil einer dieser 
Baugruppen vornehmen (z.B. andere Widerstandswerte) weil alle auf diesen 
einen hierarchischen Schaltplan referenzieren.

 Ausweg : Den hierarchischen Schaltplan unter anderem Namen Speichern 
und separat als hierarchischen Schaltplan einbinden. Änderungen dort 
sind unabhängig vom anderen hierarchischen Schaltplan und vice versa.

 Tipp : Eine Bibliothek mit hierarchischen Schaltplänen für immer 
wiederkehrende Aufgaben anlegen. Port Expander, Levelshifter z.B. 
braucht man ja immer wieder. Wenn Du den hierarchischen Schaltplan 
grundsätzlich unter anderem Namen im Projektordner speicherst, und 
darauf referenzierst, musst Du auch keine Angst haben, das Änderungen 
anderswo auf Deinen aktuellen Schaltplan Einfluss nehmen. Und beim 
Archivieren geht er auch nicht verloren.

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

: Bearbeitet durch User
von Keks F. (keksliebhaber)


Lesenswert?

Hallo Bernd,

vielen Dank für deine Nachricht!

Tatsächlich hatte ich vorhin Probleme mit Änderungen an den 
Schaltplanklonen.
Ich wollte eine LED durch eine andere austauschen (generell, also für 
alle Elemente), scheinbar kam es da zu einem Problem beim automatischen 
Annotieren und die Referenznamen überlappten sich mit anderen Bauteilen.
Das aufzuräumen war ziemlich nervig, ich denke mal es handelt sich um 
einen Bug.

Abseits davon ist es das erste Mal, dass ich mich mit hierarchischen 
Schaltplänen auseinandersetzen musste, meine Schaltungen waren in der 
Hinsicht (und wahrscheinlich allgemein) sehr simpel. Glücklicherweise 
hatte ich jetzt eine direkte praktische Anforderung dafür und werde das 
jetzt auch in weiterem bisherigen Umfang benutzen.

Das Plugin ist echt gut, allerdings kam es mir jetzt regelmäßig vor, 
dass beim Replizieren einige Elemente nicht selektiert und kopiert 
worden sind, unabhängig von den Einstellungen.
Da würde ich aufpassen.
Ich machte dazu auch schon einen BR auf.

Grüße
Matthias

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Matthias.

Keks F. schrieb:

> Tatsächlich hatte ich vorhin Probleme mit Änderungen an den
> Schaltplanklonen.
> Ich wollte eine LED durch eine andere austauschen (generell, also für
> alle Elemente), scheinbar kam es da zu einem Problem beim automatischen
> Annotieren und die Referenznamen überlappten sich mit anderen Bauteilen.
> Das aufzuräumen war ziemlich nervig, ich denke mal es handelt sich um
> einen Bug.

Beobachte einmal genau was passiert. Eventuell auch mal nicht über 
KiCad, sondern indem Du Dir die Dateien auch einmal mit einem Editor 
ansiehst. Wenn Du einen Verdacht hast, versuche den Fehler geziehlt zu 
produzieren. Wenn das funktioniert, ist das sehr wertvoll in Bug 
Reports.

>
> Abseits davon ist es das erste Mal, dass ich mich mit hierarchischen
> Schaltplänen auseinandersetzen musste, meine Schaltungen waren in der
> Hinsicht (und wahrscheinlich allgemein) sehr simpel. Glücklicherweise
> hatte ich jetzt eine direkte praktische Anforderung dafür und werde das
> jetzt auch in weiterem bisherigen Umfang benutzen.

Ich habe in KiCad 4 einmal sehr ausführlich mit hierarchischen 
Schaltplänen herungespielt und meine Erfahrungen in einer
Anleitung hier zusammengefasst: 
https://www.mikrocontroller.net/wikifiles/7/79/HierarchischeSchaltplaeneAlsBausteineInKicad_RevC_23Dec2013.pdf
Das funktionierte exakt noch so in KiCad 5, und funktionierte auch 
Anfang dieses Jahres noch grundsätzlich von der Struktur und Idee her 
auch noch in KiCad 6, auch wenn sich das Dateiformat der 
Schaltplandateien geändert hat. Das muss aber nicht so bleiben....

Das mit "simplen Schaltungen" auszuprobieren ist der richtige Weg. So 
läßt sich noch einfach nachvollziehen, was da im Hintergrund abläuft. 
Wenn es einmal klar ist, hat man auch eine Chance, das in 
komplizierteren Fällen zu erkennen.

>
> Das Plugin ist echt gut, allerdings kam es mir jetzt regelmäßig vor,
> dass beim Replizieren einige Elemente nicht selektiert und kopiert
> worden sind, unabhängig von den Einstellungen.
> Da würde ich aufpassen.
> Ich machte dazu auch schon einen BR auf.

Mit Plugins habe ich mich noch nicht auseinander gesetzt. Ich habe 
allerdings schon Python Skripte geschrieben, die mir KiCad Dateien 
manipuliert haben. Wie man so etwas schreibt, damit es als Plugin 
funktioniert, muss ich mir noch näher ansehen.
Aber nicht jetzt, ich bin auf der Arbeit zimlich eingespannt......

Für die Phython Skripte war es immer erforderlich, KiCad zu beenden und 
neu zu starten, damit die geänderte Datei überhaupt eingelesen wurde. 
Ich stelle mir jetzt einfach naiv einmal vor, ein Plugin wäre ein 
Programm oder ein Skript, das gestartet wird, die Datei(en) manipuliert 
und dann eine Rückmeldung gibt, damit KiCad die Dateien neu und 
aktualisiert einließt.

Bug Reports sind extrem wichtig für Programmierer, weil so kriegen sie 
überhaupt erst einmal mit, wenn was nicht funktioniert. In ihren eigenen 
Tests hatte wahrscheinlich immer alles funktioniert.
Denk aber daran, den Fehler unmittelbar vor der Erstellung eines Bug 
Reports mit der frischsten Version von KiCad die schon alle aktuellen 
Bugfixes hat oder einer experimentellen Version zu reproduzieren. 
Möglicherweise ist der Fehler ja schon behoben.....

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

: Bearbeitet durch User
von Keks F. (keksliebhaber)


Lesenswert?

Hallo,

Bernd W. schrieb:
> Bug Reports sind extrem wichtig für Programmierer, weil so kriegen sie
> überhaupt erst einmal mit, wenn was nicht funktioniert. In ihren eigenen
> Tests hatte wahrscheinlich immer alles funktioniert.
> Denk aber daran, den Fehler unmittelbar vor der Erstellung eines Bug
> Reports mit der frischsten Version von KiCad die schon alle aktuellen
> Bugfixes hat oder einer experimentellen Version zu reproduzieren.
> Möglicherweise ist der Fehler ja schon behoben.....

danke für die lieben Worte, aber ich bin vom Fach. :)

Die Fragen sind für mich fairerweise folgende:
-Gerade beim ersten Mal: Bin ich da selber Schuld?
-Wie viel Aufwand ist der Report für mich?

Gerade an letzterem bin ich jetzt zwei Mal gescheitert. Es ist mir nicht 
gelungen im Programm selber, oder über Suchen Log-Fenster oder -Dateien 
zu finden. Entsprechende Anfragen online gehen in die Richtung "Wenn du 
einen Bug hast, gehe da und da hin um die Versionsinformation zu 
bekommen".
Ja, toll.
Merkwürdig.
Gerade beim Bugs, die Plugins betreffen, werden irgendwoher Logs 
gezeigt.

Vielleicht weißt du ja aus dem Stehgreif, wo die sind. :)

Grüße
Kein Funker aber scheinbar fast in Rufweite :)

EDIT:
Mein Stand jetzt ist, es gibt gar keine Logs, aber einige Plugins 
schreiben ihre eigenen Logdateien.

: Bearbeitet durch User
von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Matthias.

Keks F. schrieb:

> danke für die lieben Worte, aber ich bin vom Fach. :)

Umso besser! Ich übrigens nicht, und weil ich weiss, dass das auch für 
andere gilt, die hier mitlesen, halte ich es für besser, solche Themen 
trotzdem gelegentlich detailiert anzusprechen.

Ich denke, dass ich in Foren nicht nur meinem direkten Gegenüber 
antworte, sondern vielen anderen auch, die ebenfalls mitlesen, und aus 
eigener Erfahrung weiss ich, das solche Randbemerkungen oft sehr 
hilfreich sein können, wenn ich wo nicht Bescheid weiss.

Beziehe das daher auch nicht so direkt auf Dich.


> -Wie viel Aufwand ist der Report für mich?
>
> Gerade an letzterem bin ich jetzt zwei Mal gescheitert. Es ist mir nicht
> gelungen im Programm selber, oder über Suchen Log-Fenster oder -Dateien
> zu finden. Entsprechende Anfragen online gehen in die Richtung "Wenn du
> einen Bug hast, gehe da und da hin um die Versionsinformation zu
> bekommen".
> Ja, toll.
> Merkwürdig.
~~~~
~~~
~~
~
> Vielleicht weißt du ja aus dem Stehgreif, wo die sind. :)

Solange ich mich mit KiCad beschäftige, habe ich nie davon gehört, das 
KiCad selber Logdateien anlegt.
Vieleicht ganz früher mal, vor 2010 oder so......
Die Teile von KiCad, die "Fehler Reporte" erzeugen, wie ERC oder DRC ec. 
, was man auch als eine Form von "Log" auffassen könnte, fragen explizit 
nach, wo und unter welchem Namen die gespeichert werden sollen.

> Gerade beim Bugs, die Plugins betreffen, werden irgendwoher Logs
> gezeigt.
>

Plugins sind ja auch eigentlich externe Programme, die auf gute 
Kollaboration mit KiCad gezüchtet sind.

>
> EDIT:
> Mein Stand jetzt ist, es gibt gar keine Logs, aber einige Plugins
> schreiben ihre eigenen Logdateien.

Das ist die Antwort, denke ich.

Das mit dem Aufwand bei Bug Reports kenne ich, und rührt daher, dass 
ich, um eine aktuelle KiCad Version zu bekommen, diese frisch 
compilieren muss, da gerade Debian (ausser in Testing) keine aktuellen 
Versionen im Repository hat.
Ich bin aber weder ITler noch Programmierer, und hangele mich halt durch 
die Computertechnik so durch, wie ich es gerade brauche. C bzw. C++ habe 
ich ausser ein paar Anfängen nie wirklich gelernt, und eine Compilierung 
eines Programmes wie KiCad ist jedesmal ein abenteuer für sich, weil 
sich doch immer viel Neues ergeben hat, in dass ich mich zumindest 
oberflächlich einlesen muss. Das kann viel Zeit und Aufwand bedeuten.

>
> Grüße
> Kein Funker aber scheinbar fast in Rufweite :)

Im Netz spuken mehrere Wohnorte von mir herum. Ich selber habe einen 
Nebenwohnsitz für die Arbeit, und das Netz hat ein Gedächnis für 
ehemalige Wohnsitze von mir. Da ich nur ungerne Auto fahre, ziehe ich 
also bei neuen Arbeitsplätzen auch schon mal öfter um. ;O)

Aktuell sitze ich in der Einflugschneise eines Großflughafens. Das ist 
aber kein Grund, mich zu bedauern, weil ich ein dickes Fell habe. ;O)

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

von Max G. (l0wside) Benutzerseite


Lesenswert?

Bernd W. schrieb:
> Für die Python-Skripte war es immer erforderlich, KiCad zu beenden und
> neu zu starten, damit die geänderte Datei überhaupt eingelesen wurde.

Dachte ich auch. pcbnew.Refresh() löst das Problem.

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Max G. schrieb:

>> Für die Python-Skripte war es immer erforderlich, KiCad zu beenden und
>> neu zu starten, damit die geänderte Datei überhaupt eingelesen wurde.
>
> Dachte ich auch. pcbnew.Refresh() löst das Problem.

Danke für den Tipp.

Ich bin mir aber sicher, das zu KiCad 3 und zu anfänglichen KiCad 4 
Zeiten, also vor irgendwas 10 Jahren, dieses noch nicht existierte. ;O)

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.