Forum: Platinen PCB von BMP drucken


von B. P. (skorpionx)


Angehängte Dateien:

Lesenswert?

Ich fertige meine PCB mit der Toner-Transfer-Methode. Dabei wichtig ist 
dass Bahnen breite nicht zu klein ist . Auch Abstände zwischen den 
Bahnen sollten nicht zu klein sein. Ich Plotte im KICAD meine Platine im 
Format Postscript. Die File übergebe na ich an CorelDraw X5 Graphic. Von 
CorelDraw exportiere ich BMP Bild. Das BMP Bild bearbeite ich mit meinem
Programm. Ich habe mein altes Programm für Manipulation von Bmp Image 
unter Visual Studio noch mal bearbeitet. Sehe den Screenshot. Fangen wir 
von der oberen rechten Ecke. Gehen wir in Formatierungs Richtung. 
Einheiten in Millimeter oder Inch. Width und Height vom PCB. Es wird 
angenommen, dass Height immer den größere Anzahl von Dots in X- und 
Y-Achsen vom Bmp Bild. Also ist das unabhängig von der aktuellen Lage 
vom Bild. Man kann auch hier Autosize aktivieren. Voraussetzung dafür 
ist, dass diese Information im Bild erhalten ist. Das geladenes Bild 
wird gedehnt auf die definierte dpi. Voreinstellung ist 900 dpi. Für das 
neue Bild können auch Nachbarndots einbezogen werden (das Schwarze wird 
größer...). Danach läuft alles in der
Reihenfolge von Oben nach unten in der linken Kolumne vom Screenshot. 
Alle Operationen sind durch CheckBox aktiviert. „BMP image formating“: 
Das geladenes Bild wird wie beschrieben formatiert, sonst wird ein 
geladenes Bild ohne Formatierung bearbeitet. „delete white border“:
Weißer Umrand vom BMP wird gelöscht. „Edges Isolation:“ nur Geschichte 
(habe ich vergessen). „black minimum „und „white minimum“: wenn in 
diesem Bereich wird Schwarz in Weiß oder Weiß in Schwarz umgewandelt. 
Das soll kleine Auswüchse liquidieren (z.B. Kleines Weißes Loch auf 
Schwarzem). „black enlarge“ und „white enlarge“: Schwarz oder Weiß wird 
vergrößern mit
Anhaltung von Minimalabstand. „smoothen edges“: Schwarz wird vergrößern 
auf Art vom Schneeball. Leider ohne Kontrolle vom Abständen 
Schwarz-Weiß.
Es wird immer ein Bild in X-Achse bearbeitet. Danach (wenn definiert…) 
wird das Bild um 90 Grad gedreht und die andere Achse bearbeitet. Anzahl 
von solchen Drehungen wird durch „number of loops“ definiert.
von Harald K. (kirnbichler)


Lesenswert?

B. P. schrieb:
> Auch Abstände zwischen den
> Bahnen sollten nicht zu klein sein. Ich Plotte im KICAD meine Platine im
> Format Postscript. Die File übergebe na ich an CorelDraw X5 Graphic. Von
> CorelDraw exportiere ich BMP Bild. Das BMP Bild bearbeite ich mit meinem
> Programm.

Klingt irgendwie maximal umständlich. Warum nicht KiCad so 
konfigurieren, daß es gleich eine brauchbare Druckvorlage 
(Leiterbahnbreiten etc.) ausgibt und diese dann auf einem 
postscriptfähigen Drucker oder, wenn nicht vorhanden, via Ghostscript 
auf einen anderen Drucker ausgeben?
von B. P. (skorpionx)


Lesenswert?

Harald K. schrieb:
> Klingt irgendwie maximal umständlich. Warum nicht KiCad so
> konfigurieren
Mit dem Programm kann man jedes BMP-Bild auch vom Screenshot 
(.pdf)bearbeiten. Bei der Entwicklung in Kicad muss man sich keine 
Gedanken über Bahnbreiten machen.Ich habe sehr viele Optionen gemacht. 
Aber wesentlich weniger sind notwendig. Alle Möglichkeiten sind 
geöffnet. Etwas zu aktivieren über CheckBox ist ganz einfach.
von Rainer W. (rawi)


Lesenswert?

B. P. schrieb:
> Bei der Entwicklung in Kicad muss man sich keine
> Gedanken über Bahnbreiten machen.

Hat KiCAD keinen Design Rules Check oder benutzt du den nur nicht?
Der läuft ins Leere, wenn man hinterher wieder mit einem Graphikprogramm 
an den Leiterbahnen rumfummelt.

p.s. Die KI sagt, dass KiCAD einen integrierten DRC besitzt.
: Bearbeitet durch User
von F. (radarange)


Lesenswert?

Wow, das ist schon arg umständlich.
Dass dazu auch noch vergessen wird, was bestimmte Checkboxen überhaupt 
machen, ist sehr vertrauenerweckend.

Wahrscheinlich hast du letztendlich Schwellenwertoperationen, erosion 
und dilation maximal umständlich implementiert. Die Idee ist soweit 
schon richtig, aber wahrscheinlich könnte das alles von etwas 
methodischerer Herangehensweise profitieren.
von Harald K. (kirnbichler)


Lesenswert?

B. P. schrieb:
> Bei der Entwicklung in Kicad muss man sich keine
> Gedanken über Bahnbreiten machen.

Äh, wie bitte? Man mach ein richtiges Layout, mit den richtigen 
Leiterbahnbreiten, und kann das entweder so, wie es ist, zu Papier 
bringen, oder es so, wie es ist einem Fertiger übergeben, der einem 
daraus eine professionell gefertigte Platine herstellt. Ein und das 
gleiche Layout, zwei Anwendungen.

Die Idee, ein Layout anzufertigen, und dann mühsam nachträglich an 
Leiterbahnbreiten und Abständen herumzufrickeln ... auf die muss man 
auch erst mal kommen.
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

Die Literatur aus den Vorhergehenden Jahrhundert ist voll mit Prints von 
Layouts, da macht die nachbearbeitung von birmaps durchaus Sinn, bspw.: 
https://www.buchfreund.de/de/d/p/83567271/das-bauplan-bastel-buch-2-amateur-bibliothek

IMHO könnte man das Bitmap zuerst vektorizieren.

https://de.wikipedia.org/wiki/Vektorisierung_(Grafik)

Wenn jeder Leiterzug dann ein Vektor resp. eine Kette von Vektoren ist, 
kann man diese in "Striche unterschiedliche Stärke" umwandeln und so das 
Layout für die oben genannte Tonertransfermethode passend neu erzeugen.

Ja, es gibt eine Zeit vor KiCAD.
von B. P. (skorpionx)


Angehängte Dateien:

Lesenswert?

G1 vor Bearbeitung und G2 nach Bearbeitung. Das war noch mit meiner 
älteren Version vom Programm.
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Angehängte Dateien:

Lesenswert?

Interessantes Beispiel, da braucht es IMHO noch Nachbearbeitung an den 
"Kontaktstellen" (siehe Anhang). Aber möglicherweise fällt das bei der 
Tonertransfermethode nicht auf.

PS: Für bitmaps sollte *.PNG das bessere Format als *.JPG sein, JPG 
könnte mit Artefakten das Layout verändern.

PS1:
https://www.mikrocontroller.net/articles/Platinenherstellung_mit_der_Tonertransfermethode

PS2: da mal ein Klassiker der Achtziger mit gedruckten Platinenvorlage, 
die Elektronik-Bauplan-Reihe in der DDR: 
https://i.ebayimg.com/images/g/wK0AAOSwm-FdeRno/s-l500.jpg
: Bearbeitet durch User
von Klaus (feelfree)


Lesenswert?

Für solche Workflows wurde wohl die Redewendung "von hinten durch die 
Brust ins Auge" erfunden.
von Harald K. (kirnbichler)


Lesenswert?

Bradward B. schrieb:
> Die Literatur aus den Vorhergehenden Jahrhundert ist voll mit Prints von
> Layouts,

Wenn man das für nötig hält. Der Threadstarter aber erzeugt Layouts mit 
KiCad, und kann aus irgendeinem Grund dort nicht einfach die richtige 
Leiterbahnbreite einstellen, wie sein Bild "G1" zeigt.

Wenn man etwas mit KiCad geübt ist, ist es auch einfacher, ein 
gescanntes Layout nachzuzeichnen, als zu versuchen, aus dem Scan mit 
Bildbearbeitung noch etwas rauszuholen. KiCad unterstützt das Abzeichnen 
von Layouts; man kann eine Bitmap als Hintergrund laden, und dann darauf 
zeichnen. Das wurde mit KiCad 7 oder 8 eingeführt.
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

Klaus schrieb:
> Für solche Workflows wurde wohl die Redewendung "von hinten durch die
> Brust ins Auge" erfunden.

Nein.

eher "Kopieren von einseitigen Platinen mit Hausmitteln".

Ist in der Restauration nicht unüblich auch die "alten" 
Herstellverfahren zu verwenden, warum bspw. die Platine eines Oldtimers 
erst in KiCAD einhäumern und den Chinesen zum Fertigen geben, wenn man 
es auch mit Hausmitteln kann.
von Klaus (feelfree)


Lesenswert?

Bradward B. schrieb:
> Ist in der Restauration nicht unüblich auch die "alten"
> Herstellverfahren zu verwenden, warum bspw. die Platine eines Oldtimers
> erst in KiCAD einhäumern

Ich sehe nicht, dass der TE irgendwas Altes restauriert.
Aber selbst wenn, dann tut er ja genau das, was Du screhibst: Er hämmert 
es in KiCAD ein, nur um dann dessen Output nochmal maximal umständlich 
zu bearbeiten.
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

> Wenn man das für nötig hält. Der Threadstarter aber erzeugt Layouts mit
> KiCad, und kann aus irgendeinem Grund dort nicht einfach die richtige
> Leiterbahnbreite einstellen, wie sein Bild "G1" zeigt.

Ob es mit der Bahnbreite allein getan ist, für Tonertransfer muss auch 
die Lötaugenbreite etc. angepasst werden. Der TO denkt halt in 
Kupferflächen und wie die für seine Prozessschritte angepasst werden 
müssen. Vielleicht hat ja KiCAD DRC und Anpassungen für 
"Toner-Transfer-Technologie", ich glaube eher nicht.

>> Ist in der Restauration nicht unüblich auch die "alten"
>> Herstellverfahren zu verwenden, warum bspw. die Platine eines Oldtimers
>> erst in KiCAD einhäumern
>
> Ich sehe nicht, dass der TE irgendwas Altes restauriert.

Was nicht bedeutet, das er es nicht tut.
Eine Recherche mit etwas Spekulation legt schon nahe das der TO eher im 
Bereich Einzelstückfertigung unterwegs ist und eher mit dem 
"mechanischen Gewerke" verbunden ist. Oder jemand anderes als der TO der 
noch mit der Toner Transfer Methode arbeitet hat Interesse an 
"Bitmap-pimping-tools".

PS: wenn schon in KiCAD, dann könnte man auch Teardrops zur 
Kontaktierung der Lotaugen verwenden, sollte einige der gezeigten 
Fehlstellen vermeiden lassen.
: Bearbeitet durch User
Beitrag #8054059 wurde vom Autor gelöscht.
von Klaus F. (klaus27f)


Lesenswert?

B. P. schrieb:
> G1 vor Bearbeitung und G2 nach Bearbeitung.

Naja, G1, dieses abgeblich in KiCad neu erstellte Layout sollte 
unbedingt ordentliche Leiterbahnbreiten bekommen, von Anfang an.
Statt 0,2mm oder 0,3 geht hier bestimmt deutlich mehr (Freiraum 0,2mm).
Speziell der außen umlaufenden Leiterbahnzug (evtl. "GND") kann leicht 
auf 0,8 oder mehr erhöht werden.
Und wenn man das Layout gar zweiseitig macht, benannte "GND" flächig auf 
die 2. Seite bringt, dann wird alles richtig gut.
5 Stück der Leiterplatte dann bei Jlcpcb, kosten keine 5 Euro, incl. 
Versand (global standard direct line, 10-14 Tage warten).

Das o.g. Programm mag nützlich sein für gescannte alte Papiervorlagen.
Aber auch diese kann man mit genausoviel Zeitaufwand neu erstellen.
Die Zeiten von Hohlnieten-Durchkontaktierungen und ÄtzBADezimmer sind 
zum Glück vorbei.
von H. H. (hhinz)


Lesenswert?

Klaus F. schrieb:
> 5 Stück der Leiterplatte dann bei Jlcpcb, kosten keine 5 Euro, incl.
> Versand (global standard direct line, 10-14 Tage warten).

Aktuell 3,58€.
von Rolf (rolf22)


Lesenswert?

Bradward B. schrieb:
> Für bitmaps sollte *.PNG das bessere Format als *.JPG sein, JPG
> könnte mit Artefakten das Layout verändern.

Tatsächlich kann man bei .jpg den Grad der Komprimierung wählen, bis 
herunter zu "verlustfrei". Kann durchaus nützlich sein, ist aber weithin 
unbekannt.
von Rolf (rolf22)


Lesenswert?

Bradward B. schrieb:
> Eine Recherche mit etwas Spekulation legt schon nahe das der TO eher im
> Bereich Einzelstückfertigung unterwegs ist

Einzelstück oder nicht, ich lese bei ihm: "Ich Plotte im KICAD meine 
Platine im Format Postscript."
Wie mag da wohl die Platine ins KiCAD reinkommen? Bestimmt nicht von 
irgendeiner Bitmap-Vorlage.
von Harald K. (kirnbichler)


Lesenswert?

Bradward B. schrieb:
> Ob es mit der Bahnbreite allein getan ist, für Tonertransfer muss auch
> die Lötaugenbreite etc. angepasst werden.

Kann man mit KiCad. Du hingegen kannst noch nicht mal richtig zitieren. 
Pappnase.
von Gerd E. (robberknight)


Lesenswert?

Ein Postprocessing vor der Fertigung ist durchaus üblich und wird von 
den professionellen Herstellern auch gemacht.

Aber natürlich nicht auf Bitmap-Ebene, das ist der falsche Ansatz.

Das sollte man mit Vektor-Formaten machen und dann auch in einem 
Vektorformat an den Drucker übergeben. Ordentliche Drucker können z.B. 
bei Postscript-Ausgabe an den Rändern optimieren weil sie ihre interne 
Auflösung und deren Grenzen/Schwächen ganz genau kennen. Das geht mit 
Pixel-Layout nicht.

Am besten wäre also wohl ein Gerber-Postprocessor. Hier gibts ne fertige 
Library die die Basis für sowas darstellen könnte:
https://github.com/jaseg/gerbonara
von Rainer W. (rawi)


Lesenswert?

Bradward B. schrieb:
> wenn schon in KiCAD, dann könnte man auch Teardrops zur Kontaktierung
> der Lotaugen verwenden, sollte einige der gezeigten Fehlstellen
> vermeiden lassen.

Wenn schon in KiCAD, dann könnte man dort direkt die richtige 
Leiterbahnbreite wählen. Die Fehlstellen  entstehen bei der 
Nachbearbeitung und wer weiß, was die aus, wegen der falschen 
Leiterbahnbreite, völlig unpassenden Teardrops macht.
Beitrag #8054335 wurde von einem Moderator gelöscht.
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

Harald K. schrieb:

> Kann man mit KiCad. Du hingegen kannst noch nicht mal richtig zitieren.
> Pappnase.

Offtopic und unnötig. Und Verstoss gegen die Nutzungsbedingungen: 
https://www.mikrocontroller.net/articles/Hilfe:Forum_Nutzungsbedingungen#Nicht_erlaubte_Inhalte
: Bearbeitet durch User
Beitrag #8054366 wurde von einem Moderator gelöscht.
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Bradward B. schrieb:
> Offtopic und unnötig.

Dein Boykott der Zitatfunktion ist ebenfalls unnötig. Vielleicht sollten 
wir die Benutzung der Zitatfunktion einfach in die Nutzungsbedingungen 
aufnehmen?

Ja, ist off-topic hier.
von Christoph Z. (rayelec)


Lesenswert?

B. P. schrieb:
> G1 vor Bearbeitung und G2 nach Bearbeitung. Das war noch mit meiner
> älteren Version vom Programm.

Egal was das ist, so solltest du das nicht nachbauen. Layouts mit 
geschlossenen, die ganze Leiterplatte umschliessenden Leiterzügen sind 
eine 100%-Garantie für unerklärliche Phänomene (EMV-Probleme).
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

Jörg W. schrieb:

> Dein Boykott der Zitatfunktion ist ebenfalls unnötig.

Ich sehe hier keinen Boykott und keinen Nutzen in der Wiederholung des 
Autoren-Pseudonyms in jeder Replik. Auch um nicht eine 
ad-homimem-Argumentation zu verfallen.

* https://de.wikipedia.org/wiki/Boykott
* https://de.wikipedia.org/wiki/Argumentum_ad_hominem

> Vielleicht sollten
> wir die Benutzung der Zitatfunktion einfach in die Nutzungsbedingungen
> aufnehmen?

Ja, da hätte mal eine Grundlage um einen nicht unwesentlichen Anteil der 
Beiträge (bespielsweise alle vor ca. 2012) zu entfernen. Ob das dann 
noch mit dem Haftungsprivileg zu vereinbaren ist, darf bezweifelt 
werden.

> Ja, ist off-topic hier.

Dann schieb die relevanten Teile nach mikrocontroller.net 
(https://www.mikrocontroller.net/forum/website)
: Bearbeitet durch User
von H. H. (hhinz)


Lesenswert?

Christoph Z. schrieb:
> Layouts mit
> geschlossenen, die ganze Leiterplatte umschliessenden Leiterzügen sind
> eine 100%-Garantie für unerklärliche Phänomene (EMV-Probleme).

Kommt schon mal vor, als Antenne.
von Klaus (feelfree)


Lesenswert?

Christoph Z. schrieb:
> Layouts mit
> geschlossenen, die ganze Leiterplatte umschliessenden Leiterzügen sind
> eine 100%-Garantie für unerklärliche Phänomene (EMV-Probleme).

Aber da wird doch bestimmt der Shield angeschlossen! Wie soll der denn 
sonst abschirmen, wenn er den Rest nicht einkreist?!!!1elf!!!
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

Neben einer Antenne wäre der PCB Guard Ring ein weiteres Beispiel für 
einen umlaufenden Leiterzug.

* 
https://www.myemssolutions.com/pcb-guard-ring-everything-you-need-to-know/
: Bearbeitet durch User
von Εrnst B. (ernst)


Angehängte Dateien:

Lesenswert?

F. schrieb:
> Wahrscheinlich hast du letztendlich Schwellenwertoperationen, erosion
> und dilation maximal umständlich implementiert.

Und irgendein Bug ist noch drinnen. Sonst könnten solche Fehler an den 
Lötaugen nicht auftreten.

Hab mal Spaßeshalber probiert, was mit OpenCV und ein paar Zeilen Python 
zu machen ist. Im Anhang das Resultat mit 3,5&8 Pixel Verbreiterung.
von Εrnst B. (ernst)


Angehängte Dateien:

Lesenswert?

Spaßeshalber:
Leiterbahnen um 100 Pixel verbreitert. Input-Bild zur Kontrolle 
halb-Transparent überlagert. Schaltung stimmt immer noch, Resultat ist 
jetzt eher ein "Vorschlag zum Freihandfräsen"

Aber man sieht schön, wie der Algorithmus arbeitet:

Zuerst "Netzliste" erstellen, sozusagen für jeden schwarzen Pixel 
merken, zu welcher Leiterbahn/Netz er gehört.
Hört sich kompliziert an, ist in OpenCV schon fix-und-fertig vorhanden: 
cv2.connectedComponents(binary_image)

Dann Voronoi-Mengen bestimmen, für jedes weiße Pixel die Info welche 
Leiterbahn am nächsten liegt.

https://de.wikipedia.org/wiki/Voronoi-Diagramm

(fertiger Algorithmus aus scipy)

Dort wo sich das ändert, also Grenze zwischen zwei Regionen, muss weiß 
bleiben. (Sperrzone)

Dann jede Leiterbahn um die gewünschte Breite wachsen lassen, aber nur 
innerhalb ihrer eigenen Voronoi-Zone.
cv2.dilate und cv2.bitwise_and mit der Sperrzone.

Sicherheitshalber nochmal cv2.connectedComponents auf das Resultat, ob 
die Anzahl der Leiterbahnen auch gleich geblieben ist (30 in dem 
Beispielbild).
von Rainer W. (rawi)


Lesenswert?

Bradward B. schrieb:
> Ich sehe hier ... keinen Nutzen in der Wiederholung des
> Autoren-Pseudonyms in jeder Replik.

Du hast es immer noch nicht begriffen, dass sich dahinter ein Link auf 
die Quelle befindet.

Druckst du die Beträge aus, bevor du sie liest, so dass dir der Link 
entgeht?
von Michael L. (nanu)


Lesenswert?

Rainer W. schrieb:
> Bradward B. schrieb:
>> Ich sehe hier ... keinen Nutzen in der Wiederholung des
>> Autoren-Pseudonyms in jeder Replik.
>
> Du hast es immer noch nicht begriffen, dass sich dahinter ein Link auf
> die Quelle befindet.

Er hat das WWW nicht verstanden, Neuland halt. Außerdem fällt quote 
mardern nicht so leicht auf.

> Druckst du die Beträge aus, bevor du sie liest, so dass dir der Link
> entgeht?

Für manche ist halt immer Freitag.
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.