fritzing-Banner

Meine Workarounds, Ergänzungen und Tipps für fritzing

Warum selber rumpfuschen?

Vielleicht geht es Euch manchmal auch so wie mir: Man sucht nach einem geeigneten Werkzeug im Netz (hier konkret: zum Dokumentieren einer Schaltung auf Lochrasterplatte), findet jede Menge Alternativen, aber überall auch irgendwelche Pferdefüße (zu kompliziert, zu teuer, Funktionen nicht so wie man sich's vorstellt etc.). fritzing gefiel mir auf Anhieb sehr gut. Da ist z.B. das direkte Umschalten zwischen den Ansichten (Steckbrett/Lochrasterplatte, Schaltplan etc.) und auch die foto-realistische Darstellungsweise, die sich sehr gut zum Erstellen von Anleitungen eignet. Beim Arbeiten musste ich mich dann aber leider über eine Reihe von unverständlichen Unzulänglichkeiten ärgern:
  • Man kann im Schaltplan nicht auf europäische Bauteil-Symbole (z.B. für den Widerstand) wechseln.
  • Es gibt Bauteile, z.B. Dioden, deren Beinchenabstand auf der Lochrasterplatte (Steckplatinenansicht) nicht stimmt.
  • Manche Bauteile (u.a. Elkos, Spannungsregler, Transistoren) sind in der Steckplatinenansicht (auch für Lochrasterplatte) eher in der Seitenansicht statt in der Draufsicht dargestellt, so dass sie oft andere Bauteile überdecken und die Darstellung unübersichtlich machen. Das gilt besonders, wenn man die Schaltung auf Lochrasterplatte zusammenstellt, um eine Vorlage für das reale Zusammenlöten zu haben.
  • Vor allem gibt es in der Steckplatinen/Lochrasterplatten-Ansicht keine senkrecht stehenden Widerstände. Auch wenn man den Beinchenabstand beim generischen Widerstands-Bauteil entsprechend zu 100 mil wählt, bleibt in der Steckbrettansicht der liegende Widerstand. Aber so eine Variante braucht's auf der Lochrasterplatte halt einfach (z.B. für eine Schaltung wie diese). Dabei kann man gerne auf die Darstellung der Farbringe verzichten.
  • Man kann zwar einzelne Bauteile selbst definieren, aber das Erstellen von ganzen Reihen (z.B. eine spezielle Widersandsreihe, eine spezielle Kondensator-Reihe, eine Spannungsregler-Reihe etc.) wird nicht unterstützt.
  • In der Schaltplan-Ansicht ist zunächst unklar, wie man Verbindungsknoten (die mit dem Knödel) an beliebiger Stelle setzen kann. Beim verzweifelten Rumprobieren kann es dann schon mal sein, dass man eine Verbindung (Drahtbrücke) löscht. Die verschwindet dann halt leider auch in den anderen Ansichten, ohne dass man gewarnt wird.
Bei der Suche nach Abhilfe zeigte sich, dass manche Probleme teilweise schon vor Jahren im fritzing-Forum angesprochen wurden. Die dortigen Antworten (siehe z.B. thread 1546) oder die Hinweise von erfahrenen fritzing-Usern in einem von mir gestarteten Thread gaben mir wenig Hoffnung, dass sich da zeitnah irgendwelche Updates von offizieller Seite anstoßen ließen. Ich wollte schon fast wieder hinschmeissen, aber im Großen und Ganzen passte mir fritzing doch immer noch am besten.

Also habe ich mich hingesetzt, etwas reverse engineering und mühsames Foren-Absuchen betrieben. Dabei sind ein paar Sachen rausgekommen, die ich mit Euch teilen möchte.

Patches für Euro-Schaltsymbole (EN/IEC 60617)

Also u.a. dieses Symbol statt diesem .

Die hier beschriebenen Patches sind einfach und schnell zu machen, bedeuten aber einen Eingriff in die fritzing-Installation, der wiederholt werden muss, wenn man die fritzing-Anwendung neu aufspielt oder wenn eine Aktualisierung durchgeführt wurde.

Der Austausch der Schaltsymbole geht folgendermaßen:

Man wechselt an geeigneter Stelle im Installationsverzeichnis die entsprechende Graphikdatei aus. Ihr findet diese Datei im Ordner für Programme (für Window in der Regel: "C:\Program Files (x86)"). Dort geht Ihr dann in den Ordner "fritzing.0.9.3b.64.pc\fritzing-parts\svg\core\schematic" und sucht die Datei "resistor.svg". Die benennt Ihr um, z.B. indem Ihr ein ".bak" an den Namen hängt (man muss sie ja nicht gleich löschen). Dann kopiert Ihr diese Datei rein. Fertig!

Das Gleiche kann man z.B. auch noch mit dem Elko-Symbol (gepolter Kondensator) machen: Datei "capacitor_polar.svg" umbenennen und durch diese ersetzen.

Um nach diesen Patches die Änderungen wirksam werden zu lassen, muss man in fritzing dann noch unter dem Reiter "Bauteil" die Funktion "Bauteil-Datenbank neu erstellen..." ausführen. Voilà, nach dem erneuten Start von fritzing erscheinen die ausgetauschten Graphiken auch bei bereits bestehenden Enwürfen.

O.k., es kann Probleme mit der Schreibberechtigung in o.g. Verzeichnissen geben. In der Regel muss man aber nur nochmal extra auf klicken. Wenn Ihr da aber nicht weiterkommt, müsst Ihr schauen, wie Ihr Euch als Administrator einloggen könnt (z.B. nach "Verstecktes Administrator-Konto aktivieren" googeln).

Bauteile angepasst für Lochrasterplatte

Wie oben schon erwähnt, sind die Steckbrettansichten vieler Core-Bauteile (also die, die direkt mit dabei sind) für die Lochrasterplatte ungeeignet. Sie überdecken andere Bauteile und/oder haben einen Beinchenabstand, der nicht dem eigentlichen Bauteil (wie auf der Leiterplatte) entspricht. Nach viel Rumprobieren und Hilfe über das fritzing-Forum (siehe hier) konnte ich einen Reihe von eigenen Bauteilen mit entsprechend korrigierter Steckbrett-Ansicht kreieren, die ich Euch hiermit zum Runterladen breitstelle:

Hier gibt es dann auch noch eine Arduino-ProMini-Platine, die für's Aufkleben gedacht ist. Gegenüber dem identisch aussehenden Core-Bauteil sind alle Anschlusspunkte als Lötfläche (statt Stifte) definiert. Damit kann man die Platine auf einer Lochrasterplatte platzieren, ohne dass sie sich gleich mit dem darunter liegenden Raster verbindet. Die gewünschten Anschlüsse werden explizit mit Drahtbrücken gezogen. Dies entspricht der von mir praktizierten Bauweise.

Und, weil ich den auch noch gemacht habe: einen L272 (Dual Power OP-Amp).

Falls Ihr weitere Bauteile braucht, findet Ihr im nächsten Abschnitt meine Tipps und Erkenntnisse, die Euch Frust ersparen sollen.

Tipps zum Erstellen eigener Bauteile

Der offizielle Weg geht über den (neuen) Bauteile-Editor. Das Ganze ist aber etwas umständlich und die Möglichkeiten sind eingeschränkt. Für ein effektiveres Arbeiten und ein Ausschöpfen der Möglichkeiten habe ich folgende Tipps und Informationen:
  • Erstellen/Ändern von Bauteilen nur über das Editieren der entsprechenden *.fzp-Dateien (Metadaten) und der zugehörigen *.svg-Dateien (Grafiken für die verschiedenen Ansichten). Neue Bauteile werden durch Kopieren und Anpassen aus vorhandenen Vorlagen abgeleitet. Die genannten Dateien enthalten Text im xml-Format und sind deshalb alle z.B. mit WordPad bearbeitbar. Die *.fzp-Dateien der eigenen Bauteile gehören ins Verzeichnis "...\Dokumente\Fritzing\parts\user", die zugehörigen *.svg-Dateien nach "...\Dokumente\Fritzing\parts\svg\user\breadboard" (Steckbrettansicht), "...\icon" (Auswahlansicht), "...\pcb" (Leiterplattenansicht) bzw. "...\schematic" (Schaltplanansicht). U.a. hier ist das ausführlicher beschrieben.
  • Der xml-Code in den *.svg-Dateien definiert Vektorgrafiken. fritzing sucht darin nach bestimmten Schlüsselelementen, um u.a. festzustellen, wo sich im Bild welche elektrischen Anschlüsse befinden. Üblicherweise verwendet man einen Grafik-Editor (hier Inkscape) zur Darstellung und Bearbeitung. Die Erfahrung beim Bearbeiten von Steckbrettansichten mit Inkscape hat aber gezeigt, dass nach dem "Anfassen" von Anschlusselementen die Datei oftmals so verändert abgespeichert wird, dass fritzing die erwarteten Schlüsselelemente offenbar nicht mehr erkennt. Das Teil ist dann unbrauchbar, da es auf dem Steckbrett bzw. der Lochrasterplatte keine Verbindung mehr eingeht. Mein Tipp: fritzing-Schlüsselelemente direkt im xml-Code bearbeiten. Man findet leicht die Anschluss-Elemente im Code, indem man nach "connector" sucht. Wenn man weiß, dass das Koordinatensystem links oben seinen Ursprung hat, erschließt sich auch relativ leicht, wie man die xy-Positionsparameter ändern muss, um gewünschte Verschiebungen etc. vorzunehmen.
  • Dagegen ist eine Bearbeitung der rein illustrativen Bildelemente (Bauteilansicht mit Schattierungen) tatsächlich mit Inkscape möglich und empfehlenswert. Wichtig ist dabei, zu wissen, wie die Elemente gruppiert sind: Bei den Grafiken für's Steckbrett heißt die oberste Ebene "breadboard" darin findet fritzing die o.g. Schlüsselelemente. In einer Untergruppe (id="gn") ist der Rest zu finden. Man muss dieser Gruppe "beitreten" (siehe Menü rechte Maustaste), dann kann man dort Löschungen Verschiebungen, Einfügungen etc. vornehmen. Gruppierungen nicht aufheben!
  • Nach den Änderungen in einer *.svg-Datei passt meistens der Viewport, d.h. die Umrandung der Grafik, die in fritzing das Bauteil abgrenzt, nicht mehr. In Inkscape gibt es zwar die Möglichkeit diese bequem anzupassen, allerdings führt das oft auch wieder dazu, dass das Teil unbrauchbar wird. Am besten man passt die Parameter width, height und viewBox (ziemlich am Anfang des xml-Codes) gleich manuell an. Dazu kann man hier nachlesen, wie diese wirken. Wichtig ist aber vor allem, zu wissen, dass width und das dritte Argument von viewBox, genauso wie height und das vierte Argument von viewBox immer mit dem gleichen Faktor geändert werden müssen. Beachtet man das nicht, wird die Grafik verzerrt.
  • Es gibt eine Reihe von generischen Core-Bauteilen. Verwendet man ein solches Teil, dann kann man nach der Platzierung den Bauteilewert im Inspector aus einer Liste wählen oder auch frei eingeben. Typisches Beispiel ist der Ohm-Wert beim Widerstand. Kopiert man sich nun ein solches Teil als Vorlage für eine eigene Variante, dann will man natürlich auch die generischen Eigenschaften erhalten. Dazu muss man wissen, dass fritzing offensichtlich an der moduleId (ziemlich am Anfang der *.fzp-Datei), erkennt welche Spezial-Behandlung das Bauteil braucht. Beim Widerstand ist das z.B. auch noch das Ändern der Farbringe, je nach gewähltem Ohm-Wert. Mindestens bei folgenden Core-Bauteilen gibt es eine spezielle Behandlung im fritzing-Code:
    Bauteil moduleId
    Widerstand mit Farbringen ResistorModuleID
    Potentiometer PotentiometerModuleID
    Kondensator CapacitorModuleID
    Induktivität InductorModuleID
    Zener-Diode ZenerDiodeModuleID.
  • Die moduleId kann mit irgendeinem zusätzlichen Text vorne erweitert werden, um für verschiedene Varianten jeweils eine eindeutige ID zu kreieren. So hat bei den Core-Bauteilen z.B. der kleine Keramik-Kondensator (capacitor_ceramic_100mil.fzp) die moduleId "100milCeramicCapacitorModuleID" und der große Elko (capacitor_electrolytic_large.fzp) hat "LargeElectrolyticCapacitorModuleID". Beide werden von fritzing, was die wählbaren Werte anbelangt, gleich behandelt, d.h. die gleiche Kapazitäts- und Spannungsreihe werden angeboten.
  • Schlüsselwörter in *.fzp sind case-sensitiv, was für bestimmte Funktionen eine Rolle spielt. Schreibt man bei einem Kondensator z.B. "Capacitance" statt "capacitance" (bei <properties>), funktioniert zwar alles, aber es erscheint in der Schaltplanansicht nicht automatisch der Kapazitätswert im Label.

Verbindungspunkte im Schaltplan

Ich habe lange gesucht und rumprobiert, bis ich gefunden habe, wie's geht. Die spärlichen Hinweise in den Foren (z.B. thread 1109 oder thread 989) muss man erst mal finden und verstehen. Unter Hilfe "Tipps und Tricks habe ich's erst nachträglich entdeckt.

Verbindungen im Schaltplan 1
So findet man die Verbindungen vor dem manuellen Anordnen der durchgezogenen Verbindungslinien vor.


Verbindungen im Schaltplan 2
Man kann schon mal die direkten orthogonalen Verbindungslinien von einem Bauteil-Anschlusspunkt zum anderen ziehen. Fehlt nur noch eine horizontale Linie mit Verbindungspunkten.


Verbindungen im Schaltplan 3
Einen Verbindungspunkt irgendwo auf einer existierenden Verbindungslinie setzt man, indem man zunächst einen Biegepunkt an dieser Stelle setzt (z.B. mit einem Doppelklick). Es gibt keinen Snap auf das Gitter.


Verbindungen im Schaltplan 4 Jetzt kommt das Entscheidende: Man muss diesen Punkt mit gleichzeitig gedrückter Alt-Taste anfassen, um von da aus neue Verbindungslinien ziehen zu können, ansonsten zieht man ja einfach nur die existierende Linie. Hat man die erste abgehende Linie erfolgreich zu einem anderen Punkt gezogen, erscheint der ersehnte dicke Knödel. Für das Ziehen weiterer abgehender Verbindungen muss man wieder die Alt-Taste gedrückt halten.


Verbindungen im Schaltplan 5
So, jetzt noch den Verbindungspunkt am Gitter einrasten, indem man nochmal draufklickt und ein bisschen schiebt. Fertig.


Falls Ihr Euch fritzing runterladet und benutzt, vergesst nicht etwas zu spenden, damit eine Weiterentwicklung möglich ist!

Wollt Ihr einen Kommentar loswerden oder habt Ihr eine Frage? Schickt mir eine Mail