Ich dachte, gelesen zu haben, dass das neue Kicad auch den Weg von PCB
Layout zu Schaltung ermöglicht - finde dazu aber nichts mehr.
Also: Layout malen, Schaltplan ableiten?
Die fixe Suchfunktion hat gerade das ausgespuckt:
https://docs.kicad.org/6.0/en/getting_started_in_kicad/getting_started_in_kicad.html#pcb_design_workflow> any design changes made in the board layout can be pushed back to the schematic
to keep the two consistent.
Irgendwo im Menü gibt es neben "Update PCB from Schematic" auch "Update
Schematic from PCB".
Bisher habe ich das immer nur bei kleineren Änderungen benutzt, da hat
es gut funktioniert. Ob man damit auch komplett vom Layout zur Schaltung
gelangt, habe ich noch nicht ausprobiert, klingt aber nach einem
interessanten Ansatz - insb. für Reverseengineering.
Wie sollte das gehen?
Du kannst im PCB geografisch annotieren oder Footprints und Werte ändern
und das ins SCH übernehmen, aber nicht viel mehr.
Kicad fährt eine Philosophie die Dir viele Freiheiten lässt, nämlich das
SCH Symbol und PCB Footprint im wesentichen nur über die Pinnummern
zusammenhängen.
Du könntest einen Widerstand mit einem SOIC-16 verknüpfen, wenn Du
wolltest und Kicad würde zwar warnen das es für die Pins 3-16 keinen Pin
im SCH gibt, aber den Widerstand mit Pin 1+2 im PCB verbinden.
Das ist alleine Deine Verantwortung und ermöglicht es mit wenigen
Grundsymbolen ohne feste FP Zuordnung zu arbeiten statt jedes Bauteil
erstmal komplett anlegen zu müssen wie unter Eagle.
Eingefleischte Eagle User bekommen da einen Föhn, ich finds super und
kenne das von einigen anderen CAD Programmen.
Das PCB kennt also kein SCH Symbol und kann auch keines für Dich
erraten.
Selbst wenn das ginge, hättest Du im SCH dann einen wilden Block aus
unpositionierten SCH Symbolen weil noch niemand jemals einen
funktionierenden Autoplacer gebaut hat.
Schon nicht für ein PCB, wo es nur noch um gute verdrahtbarkeit geht und
schon garnicht für eine SCH wo es um ÜBERSICHT geht.
Ausserdem ist der Weg krass falsch.
Der Schaltplan beschreibt die Funktion.
Der Weg geht immer über den Schaltplan zum PCB.
Alles andere ist totaler Murks.
dfgh schrieb:> Reverseengineering.
Du kannst ohne SCH eine Layout direkt im PCB nachpinseln und Dir dann
eine Netzliste exportieren.
Ob Dir das irgendwas bringt, beim Versuch daraus einen Schaltplan zu
bauen, wage ich zu bezwweifeln.
Was beschreibt diese Netzliste?
(Auflösung im Bild)
@dfgh: Wo soll denn das "update schematic from PCB" zu finden sein?
@Max M.: Natürlich ist es Murks, erst ein komplettes PCB von Hand zu
erzeugen und im Nachgang einen Schaltplan daraus zu machen. Aber: Oft
habe ich z. B. die Situation, daß ich mehrere IC-Ausgänge mit R-Array
hochziehen muß und erst im Board-Layout sehe, daß ich besser andere Pins
verbunden hätte, weil sich alle Leitungen überkreuzen und mir die Ebenen
versauen.
In solchen Fällen wäre es hilfreich, wenn man die Verbindungen in Pcbnew
umhängen und alles entzerren könnte, und die vertauschten Pins in den
Schaltplan zurück übertragen könnte.
Natürlich kann ich mir die "besseren" Verbindungen merken/aufschreiben,
im Schaltplan ändern und PCB updaten. Aber das ist äußerst mühsam.
Ich würde ein solches "reverse engineering" sehr begrüßen.
Hallo wolfgang.
Wolfgang M. schrieb:> @dfgh: Wo soll denn das "update schematic from PCB" zu finden> sein?
A) Im Schaltplaneditor: Oberes Pull down Menue > Werkzeuge > "Platine
aus Schaltplan aktualisieren" und "Schaltplan aus Platine
aktualisieren".
B) Im Layout Editor: Oberes Pull down Menue > Werkzeuge > "Platine aus
Schaltplan aktualisieren" und viel weiter unten "Schaltplan aus Platine
aktualisieren". Direkt unter "geografische Reannotation".
> @Max M.: Natürlich ist es Murks,
~~~~
~~~
~~
~
> In solchen Fällen wäre es hilfreich, wenn man die Verbindungen in Pcbnew> umhängen und alles entzerren könnte, und die vertauschten Pins in den> Schaltplan zurück übertragen könnte.
Leider funktioniert das noch nicht so toll.
Ich habe versuchsweise mal auf einer Platine eine Diode um 180°
herumgedreht und nachgesehen, ob das in den Schaltplan übernommen wird.
Wird es nicht. Der Grund wird mir klar, wenn ich die herumgedrehte Diode
im Layout ziehe: Sie ist immer noch mit den vorherigen Netzten
verbunden.
Was funktioniert, ist die Übernahme von Bauteilwerten und bedingt die
Übernahme von Referenzbezeichnern. Nämlich dann, wenn Du
Referenzbezeichner vertauschst, also aus einem Anschluss X3 wird X4 und
der vorherige X4 wird X3.
Wenn Du das so umänderst, dass Referenzbezeichner verschwinden oder neue
hinzukommen, fangen die Probleme an.
> Natürlich kann ich mir die "besseren" Verbindungen merken/aufschreiben,> im Schaltplan ändern und PCB updaten. Aber das ist äußerst mühsam.> Ich würde ein solches "reverse engineering" sehr begrüßen.
Ich denke, damit so etwas funktioniert, müssen erhebliche Erweiterungen
in der Struktur vorgenommen werden.
Am wichtigsten wäre das die durch die Veränderung im Layout erzeugten
geänderten Verbindungen als neue Netzliste aus dem Layouteditor heraus
abgelegt werden können.
Weiter:
Es müsste bekannt sein, welches Symbol einem neu hinzugefügten Bauteil
zugeordnet werden soll. Das könnte aber interaktiv gemacht werden, z.B.
durch eine Liste, die Du durchgehst und zu jedem unbekannten Symbol eine
Zuweisung aus einem Symbolbrowser vornimmst.
Nachtrag:
Application: KiCad
Version: 6.0.5+dfsg-1, release build
Platform: Linux 5.18.0-1-amd64 x86_64, 64 bit, Little endian, wxGTK,
xfce, x11
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
msdo hptrmh schrieb:> Ich dachte, gelesen zu haben, dass das neue Kicad auch den Weg von PCB> Layout zu Schaltung ermöglicht - finde dazu aber nichts mehr.
Das ist immer reiner Murks. Viel Spaß die ganzen Verbindungen für
Menschen lesbar machen. Das ist im Schematic von Kicad nämlich der
reinste Müll Leitungen zu ändern. Das funktioniert überhaupt nicht gut
und kommt bei weitem nicht an die Funktionen professioneller Tools
heran. Ansonsten mag ich Kicad eigentlich. Es wäre ja mal ein Start
Bauteile im Schematic verschiebbar zu machen und dann nicht alle
Leiterbahnen mit irgendwelchen Winkeln zu haben.
Bernd W. schrieb:> Am wichtigsten wäre das die durch die Veränderung im Layout erzeugten> geänderten Verbindungen als neue Netzliste aus dem Layouteditor heraus> abgelegt werden können.
Vielleicht geht es einfacher, wenn man das Wort "Pinswap" wörtlich
nimmt. Pcbnew muss wissen, welche Pins an einem Bauteil vertauschbar
sind. Bei einer Diode z.B. keine, bei einem Pull-Up-Netzwerk alle bis
auf einen. Dann ändert sich beim Pinswap nicht die Netzliste sondern nur
die Pinnummern.
Die nächste Stufe wäre ein Gateswap innerhalb eines Bauteils. Dabei wird
eine Gruppe von Pins mit einer anderen Gruppe vertauscht. Das scheint
kaum schwieriger zu sein als ein Pinswap.
Gateswap zwischen Bauteilen spielt in einer anderen Liga, aber praktisch
würde schon Stufe 1 und 2 viel helfen.
Und das ist vielleicht etwas für KiCad 42. Aber ich könnte mir
vorstellen, dass man das tatsächlich garnicht haben will:
> Es müsste bekannt sein, welches Symbol einem neu hinzugefügten Bauteil> zugeordnet werden soll.
Danke Bernd. Deine ausführliche Antwort erspart mir eigene, umfangreiche
Versuche. Mir reichte es schon, von OpenSuse15.3 auf 15.4 umzusteigen,
um Kicad 6.05 installieren zu können. Das neue Kicad kennt wiederum
einige Schaltplan-Symbole nicht, die mit Kicad 5.08 unproblematisch
waren. Ich werde wieder zurückgehen auf 5.08 und noch etwas warten.
Die Kritik an Kicad weiter unten kann ich nicht verstehen. Kicad kostet
nichts, leistet aber sehr viel. Habe schon mehrere 4-lagige Platinen
erstellt und bin zufrieden. Auch das Zusammenspiel mit dem Autorouter
klappt hervorragend: Kritische Leitungen selbst legen, den Rest an
Freerouter übergeben.
Gruß aus Bremen
Wolfgang
Wolfgang M. schrieb:> Natürlich kann ich mir die "besseren" Verbindungen merken/aufschreiben,> im Schaltplan ändern und PCB updaten. Aber das ist äußerst mühsam.
Genau so mach ich das immer: Im Schaltplan gedreht (oder gespiegelt),
"update PCB" und dann im Layout gedreht.
Ja, es könnte einfacher gehen, aber ich komme damit klar.
Wolfgang M. schrieb:> Das neue Kicad kennt wiederum> einige Schaltplan-Symbole nicht, die mit Kicad 5.08 unproblematisch> waren.
Moin nach Bremen,
Die "Sprache" der Symbolbibliotheken hat sich von V5 auch V6 geändert,
aber es gibt in V6 eine Übersetzungsfunktion, die bei meinen eigenen
Libs auch gut funktioniert hat. Die konvertierten Libs haben deutlich
mehr Bytes, im Texteditor siehst Du, dass jedes Symbol auch deutlich
mehr Zeilen hat. Bernd kennt auch den Namen der Sprache, ich habe ihn
vergessen. Die Maße werden umgerechnet, die neuen Symbole sind metrisch
(mm), V5 war im Schaltplan noch tausendstel Zoll. Probiere doch mal, ob
das mit Deinen Libs auch klappt, bevor Du wieder zurück zu V5 gehst.
Bezüglich OS: Tumbleweed läuft zuverlässig und ist auch bei den
Programmen immer sehr aktuell. Vielleicht wäre das als Dualboot
zusätzlich zu Leap was für Dich, falls Du der Zuverlässigkeit nicht ganz
traust. Ich habe das so gemacht und bin jetzt doch nur unter Tumbleweed.
Läuft einfach.
Hallo ZF,
hatte schon wieder zurückgestellt, aber neu auf 6.0.5 umzustellen, war
keine große Tat. Guter Tipp! Etwas suchen, dann im Library Manager von
EEschema betreffende Library suchen, einbinden; Kicad erkennt sie als
"Legacy" und bietet gleich die Umwandlung an. Hat problemlos geklappt.
Obwohl das einfache Pin-/Netzvertauschen in Pcbnew (noch?) nicht klappt,
bleibe ich natürlich bei 6.0.5.
Die Einträge in den neuen *.kicad_symbol sehen übrigens aus wie die
Skriptsprache Lisp. Zumindest sieht es bei Emacs/Xemacs genauso aus.
Tumbleweed hatte ich mal installiert, aber das kollidiert mit meiner
Modellbahn-SW Rocrail. Die gibt es leider nur noch als Binaries, für
Opensuse nur noch Leap15.4.
Noch einen schönen restlichen Sonntag.
Wolfgang M. schrieb:> Die Einträge in den neuen *.kicad_symbol sehen übrigens aus wie die> Skriptsprache Lisp. Zumindest sieht es bei Emacs/Xemacs genauso aus.> Tumbleweed hatte ich mal installiert, aber das kollidiert mit meiner> Modellbahn-SW Rocrail. Die gibt es leider nur noch als Binaries, für> Opensuse nur noch Leap15.4.> Noch einen schönen restlichen Sonntag.
Das sind S-Expressions. Und LISP-Programme werden üblicherweise in
S-Expressions beschrieben, genauso wie ELISP, welches du aus Emacs
kennst.
Ich würde LISPs nur nicht als Skriptsprachen bezeichnen. Zumindest nicht
in der Allgemeinheit.
Eins N00B schrieb:> Das sind S-Expressions. Und LISP-Programme werden üblicherweise in> S-Expressions beschrieben, genauso wie ELISP, welches du aus Emacs> kennst.
Ich weiß auch nicht welche Hirnkrankheit jemanden dazu bewegt sich für
S-Expressions zu entscheiden.
Hallo Dennis.
Dennis E. schrieb:> Eins N00B schrieb:>> Das sind S-Expressions. Und LISP-Programme werden üblicherweise in>> S-Expressions beschrieben, genauso wie ELISP, welches du aus Emacs>> kennst.>> Ich weiß auch nicht welche Hirnkrankheit jemanden dazu bewegt sich für> S-Expressions zu entscheiden.
Weil sie schön einfach sind, und einfach zu parsen.
Siehe: https://en.wikipedia.org/wiki/S-expression
Die meisten klarschriftlesbaren Datenformate sind irgendwie so ähnlich
aufgebaut. Statt spitzer Klammer wird was anderes genommen, manchmal
fehlt das Zeichen am Beginn eines Ausdrucks oder es existieren ganz
spezifische Schlüsselwörter.
Diese Lisp Notation ist recht gut definiert und überall bekannt. Was
sollte also dagegen sprechen?
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Hallo Wolfgang.
ZF schrieb:>> Das neue Kicad kennt wiederum>> einige Schaltplan-Symbole nicht, die mit Kicad 5.08 unproblematisch>> waren.> Die "Sprache" der Symbolbibliotheken hat sich von V5 auch V6 geändert,> aber es gibt in V6 eine Übersetzungsfunktion, die bei meinen eigenen> Libs auch gut funktioniert hat. Die konvertierten Libs haben deutlich> mehr Bytes, im Texteditor siehst Du, dass jedes Symbol auch deutlich> mehr Zeilen hat.
Zum konvertieren bindest Du die Bibliotheken als Bibliotheksformat
"Legacy" ein. Pull down Menue "Einstellungen" > "Symbolbibliotheken
verwalten" Da ich schon seit KiCad 3 auf die Einführung der
S-Expressions bei Symbolbibliotheken gewartet habe, gehe ich davon aus,
das sich nicht nur 5er, sondern auch 4er und 3er Bibliotheken
konvertieren lassen.
Zum konvertieren findet sich dann irgendwo im
Bibliotheksverwaltungsfenster ein Button.
> Probiere doch mal, ob> das mit Deinen Libs auch klappt, bevor Du wieder zurück zu V5 gehst.
Symbol- und Footprints, die man (erfolgreich) verwendet hat, sollte man
auch nicht in der "normalen" Bibliothek ablegen (da würden sie bei einem
Update überschrieben), sondern irgendwohin, wo man sie auch
wiederfindet. Und bevorzugt diese Bibliotheken verwenden, es sei, man
braucht etwas neues.
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Hallo Bernd,
alles schon passiert. Habe meine eigenen (oder hizugefügten) Symbole
unter $HOME/kicad-local/library/local.lib. Ich meine, auch das war schon
eine Erfindung von kicad. Das Konvertieren war ein Klacks und nach dem
Speichern gibt es eine local.kicad_sym. Alles vollautomatisch. Man muß
es nur eben wissen.
Die S-Expressions sehen auf den 1. Blick kompliziert aus, die vielen
Klammern erschlagen einen erst mal. Aber dem liegt eine recht einfache
Struktur zugrunde (darum wohl einfach zu parsen), und sofern man einen
Editor benutzt, der zusammengehörende Klammern markieren kann
(Emacs/Xemacs), ist das halb so schlimm.
Danke euch für die Hilfe.
Wolfgang
Max M. schrieb:> Der Weg geht immer über den Schaltplan zum PCB.> Alles andere ist totaler Murks.
Das ist eine sehr eingeschränkte Sichtweise.
Wenn die Aufgabe beispielsweise darin besteht, aus einer vorliegenden
Platine ohne weitere vorhandene Dokumentation die Funktionalität bzw.
den Schaltplan dieser Platine abzuleiten, dann ist eine Software, die
dieses Ziel erreichbarer macht Gold wert!
Natürlich kann ich stattdessen auch mit Papier und Bleistift an die
Aufgabe herantreten, d.h. Bauteil für Bauteil für jeden einzelnen
Pad/Pin jede einzelne Verbindung zu allen anderen Pads/Pins auf der
Platine brute-force-mäßig durchdeklinieren und mir damit auf Papier eine
Netzliste erarbeiten. Und diese dann einem EDA/CAD-Werkzeug meiner Wahl
samt der aufgepinnten Bauteile übergeben und mir auf diesem Weg mühsam
einen Schaltplan herausarbeiten.
Da ist ein graphischer Ansatz am Rechner schon deutlich bequemer - und
minimiert Fehler!
Etwa dergestalt, daß ich also einfach die Bauteile der bestehenden
Platine auf einer "leeren Platine" am Rechner quasi virtuell bestücke,
und anschließend die Verbindungen der Originalplatine zunächst einmal
nur ganz plump (und damit eben wenig fehleranfällig) nachzeichne.
Per Knopfdruck erzeugt das Programm daraus dann eine erste
Schaltplanansicht, in der natürlich zunächst alle Komponenten "auf einem
Haufen" liegen und nur anhand ihrer Netzlisten miteinander
zusammenhängen.
Wer aber eine ordentliche Kenntnis der elektronischen Grundschaltungen
hat, der wird daraus alsbald eine sachgerechte Anordnung der Bauteile
und letztlich einen blitzsauberen Schaltplan erzeugen können (aus dem
man dann natürlich auch jederzeit wieder ein völlig anderes Layout
erzeugen könnte).
Insbesondere zu Reparaturzwecken von eher klassischer Elektronik (hard
wired) ist so ein Werkzeug fast unerlässlich. Je mehr Software in einer
Schaltung steckt, umso weniger aussagekräftig ist ja leider die
Schaltung als solche ;-)
Target3001 kann das Geforderte zum Beispiel:
https://server.ibfriedrich.com/wiki/ibfwikide/index.php/Reverse_Engineering
(Die Anleitung zu diesem Feature liest sich deutlich komplizierter als
die Angelegenheit dann in der Praxis ist, wie ich gerade feststelle...)
Hallo Gerrit.
Gerrit J. schrieb:> Das ist ein feature für chinesische klinbuden, die Produkte nehmen und> als eigen verkaufen.
Das wird mittlerweile hier genauso versucht. In vielen Bereichen hat
Südostasien, China und Indien mittlerweile eine Marktührerschaft.
> Alle anderen anwendungsszenarien sind> selbstverschuldet.
Das isr richtig, aber wer macht keine Fehler?
Auf der anderen Seite ist ein reverse engineering an eigenen Produkten
auch immer Anlass den Kram zu überdenken und damit für Verbesserungen,
in welche Richtung auch immer.
Es gibt schon Anwendungen für ein Vorgehen Plyout > Schaltplan, aber im
normalen Designprozess sollte das vermieden werden. Zumindest bin ich
mit sowas immer auf die Nase gefallen, weil ich mich selber verwirrt
habe.
Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de
Nix Murks - ein Feature! schrieb:> Wenn die Aufgabe beispielsweise darin besteht, aus einer vorliegenden> Platine ohne weitere vorhandene Dokumentation die Funktionalität bzw.> den Schaltplan dieser Platine abzuleiten, dann ist eine Software, die> dieses Ziel erreichbarer macht Gold wert!
Geht mit KiCad.
BTDT.
Das Originallayout wurde mit der Bitmap-zu-Bauteil-Umwandlung zu einem
Footprint konvertiert und so als Vorlage für das Platzieren von
Bauteilen und Leiterbahnen genommen.
Für das Hinzufügen von Bauteilen und Netzen geht man kurz in den
Schaltplaneditor, gibt dort das Gewünschte ein und macht ein Update
auf's PCB...