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
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
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
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
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
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.
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
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.
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