Forum: Platinen Belichten von Platinen mit CNC-Fräse + UV-Laser


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Florian W. (florenzw)



Lesenswert?

Hallo,

ich habe in den letzten Tagen mit den letzten Tagen das „Isolierlasern“ 
von Platinen ausprobiert.
Das Ziel war mit möglichst geringem Aufwand, d.h. ohne eigens gebauter 
Maschine, ohne speziellen Controller und ohne neu geschriebener Software 
zum Ziel zu gelangen.

Setup:
Ich habe auf meine CNC-Fräse (MGN12 Kugelumlaufschlitten + SFU1204 
Kugelumlaufspindeln) eine 405nm / 50mW Laserdiode (SLD3232VF) mit 
Glaslinse gebaut. Der Abstand Platinenoberfläche – Linse beträgt 5cm. 
Die Diode hängt über 500Ohm an 24V und wird durch einen BS170 
geschaltet.

Das Layout wurde aus KICAD als GERBER exportiert und mit FlatCAM in 
GCode umgewandelt. Parameter: Tool dia 0,14mm, Pass overlapp 0,07mm, 
Passes 30, Combine Passes.

Dieser GCode wurde dann im Texteditor durch Suchen  Ersetzen  Alle so 
modifiziert, dass eine Bewegung der Z-Achse nach oben durch M5 (Laser 
ausschalten) und nach unten durch M3 (Laser einschalten) ausgetauscht 
wurde.

Als CNC-Controller verwende ich LinuxCNC, das über den P-Port direkt die 
Schrittmotortreiber und die Laserdiode ansteuert.

Belichtet wurde Bungard-Material, entwickelt mit 1,5% NaOH und geätzt 
mit 32%HCl/30%H2O2/H2O, beides in einer geschwenkten Schale.

Ergebnis:
50mW sind mehr als ausreichend. Mit 1000mm/min und einer Punktbreite von 
0,7mm wird der Fotolack 100%ig belichtet, ev. geht sogar noch mehr, habe 
nicht weiter getestet.
Selbst mit einer billigen Linse lässt sich der Laser auf ca. 0,05mm 
fokussieren – das ist zu fein. Man muss im leicht de-fokussierten 
Bereich arbeiten um einen Durchmesser von 0,1 – 0,2mm zu bekommen, erst 
damit kann man vernünftig arbeiten.
Die Platine mit den Footprints hat 28 Minuten gebraucht zum Belichten. 
Aber das ist der absolute worst-case. Kaum lange Geraden, die Mechanik 
hat ihre Vmax fast nie erreicht, da so gut wie alle Strecken im 
sub-mm-Bereich liegen. Sehr wenig Kupfer auf der Platine. Eine Menge 
Text. Eine Platine mit geraden Leiterbahnen und ein paar GND-Flächen ist 
in einem Bruchteil dieser Zeit zu belichten.

Ab 0,15mm sind die Leiterbahnen vollständig, in der Praxis würde ich 
mich ab 0,25mm trauen.
Mit der eingesetzten Software bleiben immer noch kleine Kupferreste 
übrig, die mich aber nicht weiter stören.

Fazit:
Ich habe mein letztes Layout auf Folie ausgedruckt. Für meine 
Bedürfnisse ist die Qualität absolut ausreichend. Einen großen Vorteil 
sehe ich auch darin, dass sowohl das Belichten als auch das Bohren von 
der gleichen Maschine erledigt werden, die beiden Arbeitsschritte also 
perfekt aufeinander passen sollten.

Noch nicht ganz befriedigend ist die Software zum Erstellen des GCodes. 
Mir schwebt ein Programm vor, das, wie ein Slicer beim 3D-Drucken, ein 
bis zwei Umrisse macht und dann den Rest definiert ausfüllt. (Ich habe 
schon versucht daraus ein STL zu machen, ist mir nur nicht gelungen … 
KICAD → dxf-Export → Freecad → Absturz … wenn da jemand eine Idee hätte, 
bitte melden)

Da für diese Methode des Platinenbelichtens jeder nicht ganz wackelige 
3D-Drucker geeignet sein sollte, sehe ich da viel Potential.

Aloha,
FlorenzW

von Conny G. (conny_g)


Lesenswert?

Hi Florian,

ich mache gerade ähnliches mit dem nicht-ganz-wackligen Ultimaker 2 :-)

Beitrag "Re: UV-Laserdrucker II"

Erstes Platinenergebnis von gestern war schon mal nicht soo daneben:

Beitrag "Re: UV-Laserdrucker II"

Ich teste im Augenblick noch das pixelweise belichten, demnächst auch 
mal das Isolierlasern.
Ich versuche mich gerade mit einer Auflösung von 1000 dpi, die maximale, 
die der UM2 kann, wenn ich die technischen Daten richtig interpretiere.

Kann sein, dass die Unschärfe vom ersten Versuch von Überbelichtung 
kommt oder von zu hoher Auflösung vs. Laserpunktgröße, das finde ich 
gerade mit einem Lauf mit 30% weniger Belichtungsleistung heraus.
Wenn das immer noch unscharf ist, dann ist es zu hohe Auflösung vs. 
Laserpunkt.

Den Fokus habe ich heute nochmal geprüft, besser geht es nicht.
Teste das mit einer Fahrt von links oben nach rechts unten auf 
Thermopapier. An der Stelle wo der Fokus ist habe ich einen Streifen von 
ca. 1 cm Länge, draus kann ich das Z des besten Fokus errechnen.

Bzgl. Isolierlasern habe ich schon mit dem PCB-GCode-Plugin von Eagle 
gespielt, das sieht sehr gut aus. Nur die Bohrungen macht es nicht, weil 
es für die Fräse nicht nötig ist - man würde sie ja auch einfach bohren 
lassen.
Das noch gefixt, dann kann ich auch das mal testen.
Man kann bei dem PCB-GCode recht gut in den GCode eingreifen und eigenen 
Code als Prefix/Postfix hinterlegen und den verwendeten GCode 
konfigurieren als Profil.

Grüße,
Conny

von nur mal so (Gast)


Lesenswert?

Florian W. schrieb:
> Die Diode hängt über 500Ohm an 24V und wird durch einen BS170
> geschaltet.

Soll das heißen, du benutzt für die Laserdiode keine KSQ ??!

Sehr sehr wagemutig . Sicher hast du einen ganzen Vorrat an Dioden....

von Florian W. (florenzw)



Lesenswert?

Servus Conny,

wir arbeiten an der selben Sache! :-)  Und die Ergebnisse sind auch 
vergleichbar.
Ich hänge ab jetzt auch meine GCode-Files ran, vielleicht helfen die für 
Vergleiche. Solange keine Subroutinen drin sind, müssten die eigentlich 
auf einem 3D-Drucker auch laufen.

Fokussieren:
Zur Grobeinstellung lege ich ein einseitig beschichtetes Stück FR4 mit 
der Kupferseite nach unten unter den Laser. Je näher man am Fokus ist, 
desto dunkler wird der Lichtpunkt, bis er im Fokus fast im Laminat der 
Platine verschwindet.
Zur Feineinstellung nehme ich ein kleines Stück einer fotobeschichteten 
Platine und belichte das Testpattern im Anhang. Das Sind 5x2mm große 
Rechtecke, die mit Linien im 0,1mm-Abstand ausgefüllt sind. Im Fokus 
wird der Lack aufgeschmolzen, das sieht man ohne, dass die Platine 
entwickelt ist.
Per Definition lege ich den Z=0-Punkt auf die Mitte des Bereichs, in dem 
man die Spuren sieht, in diesem Fall +0,3mm.

Im nächsten Schritt will ich mir die Breite einer belichteten Spur in 
Abhängig zur Höhendifferenz zu Z=0mm genauer anschauen.

@nur mal so:
Was kann eine KSQ besser als mein Widerstand, der an einer stabilen 
Versorgungsspannung hängt?

Aloha, Flo

von nur mal so (Gast)


Lesenswert?

Florian W. schrieb:
> Was kann eine KSQ besser als mein Widerstand, der an einer stabilen
> Versorgungsspannung hängt?

Der Laserdiode ein längeres stressfreies Leben bescheren ?

Informiert euch dazu selbst, oder kauft halt öfters mal Ersatz...

von Florian W. (florenzw)


Lesenswert?

Und wo soll der Stress herkommen?

von Conny G. (conny_g)


Lesenswert?

Hi Florian:

Fokus:
Ich verwende für die Findung des Fokuspunkts Thermopapier und fahre 
einmal komplett X durch und Z von zB 70 nach 200.
Dann kann man an der Stelle des Fokus auf dem Thermopapier einen Strich 
von 1cm sehen, das kann ich dann beim X abmessen und das Z ausrechnen.
Das Thermopapier ist übrigens einfach eine Faxrolle.

Könntest Du mir das Footprint-Layout als PNG mit 500 und 1000dpi 
schicken?

Ich bin mir noch nicht ganz im Klaren, ob meine zu dicken Löcher in den 
Pads von Überbelichtung oder einen zu großen Laserpunkt kommen.
Ich glaube fast letzteres, denn Reduktion der Belichtung hat es bis 
jetzt noch nicht spürbar verbessert, aber Reduktion der Auflösung hat.

Vg,
Conny

von Florian W. (florenzw)



Lesenswert?

Da ist das Layout. Ich hab's aus KiCAD als SVG exportiert und dann mit 
InkScape in ein Bitmap konvertiert.

Die Idee mit dem Thermopapier zu Testzwecken ist genial. Was ich bei der 
Methode mit der Platine sehr schätze ist, dass die Höhe dann auch genau 
so passt. Es sieht so aus, dass für ein perfektes Ergebnis der Fokus auf 
mindestens +-0,2mm genau passen muss.
Genaueres folgt.

Ich habe mir deine Platinen angeschaut - sehr schön. Es gibt noch eine 
mögliche Erklärung für die zu großen Löcher. Die Breite von Leiterbahnen 
und der Durchmesser von Löchern ist stark davon abhängig, wie die 
Platine geätzt wurde. Wenn die Maße passen sollen, muss die Platine auf 
dem Punkt aus der Ätzlösung raus, sonst werden durch Überätzung Bahnen 
schmaler und Löcher dicker.

Aloha, Flo

von Conny G. (conny_g)


Lesenswert?

Florian W. schrieb:
> Da ist das Layout. Ich hab's aus KiCAD als SVG exportiert und dann mit
> InkScape in ein Bitmap konvertiert.

Danke!

> so passt. Es sieht so aus, dass für ein perfektes Ergebnis der Fokus auf
> mindestens +-0,2mm genau passen muss.

Das hängt von der Brennweite der Linse ab. Ich habe sie bei mir so 
eingestellt, dass der Fokuspunkt einen Abstand von 10cm hat, dann ist 
der Fokusbereich vertikal relativ groß.
Wie gesagt gibt es bei einer Diagonalfahrt von 20cm Breite und 13cm Höhe 
einen Streifen von 1cm auf dem Thermopapier, d.h. der Bereich des Fokus 
ist >5mm.
Dann kommt es nicht mehr auf den Zehntelmillimeter an, nur noch auf 
1-2mm.
Bei Dir sind es 0.6mm wo der Laser genügend Leistung "auf den Punkt" 
bringt, d.h. der Brennpunkt ist sehr nah am Laser, nur 2-3cm?

> Platine geätzt wurde. Wenn die Maße passen sollen, muss die Platine auf
> dem Punkt aus der Ätzlösung raus, sonst werden durch Überätzung Bahnen
> schmaler und Löcher dicker.

Das mit dem Überätzen kenne ich, das macht eigentlich nicht soo viel 
aus, wenn es man es nicht gerade um 10min übertreibt (alles schon 
gemacht natürlich :-).
Das sieht eher danach aus, dass das Problem schon bei der Belichtung 
entsteht, sieht man auch nach dem Entwickeln des Fotoresist schon, dass 
die Restringe sehr dünn sind.

von Conny G. (conny_g)


Lesenswert?

Der 500dpi Footprint-Test druckt.

von Florian W. (florenzw)


Angehängte Dateien:

Lesenswert?

Kalibrierung:
Ich habe ein Layout erstellt mit horizontalen und vertikalen 
Leiterbahnen zwischen 0,1mm und 0,5mm.
Dieses Layout habe ich in FlatCAM mit einem angenommenen Toolradius von 
0,20mm und einer Überlappung von 0,3 (Das ist der Faktor im Verhältnis 
zum Werkzeugdurchmesser, also 30% und nicht absolut 0,3mm, wie ich bis 
jetzt immer angenommen habe) in GCode umgewandelt.

Dieses GCode-File wurde dann 5x nebeneinander auf eine Platine mit einer 
jeweiligen Abweichung vom perfekten Fokus von 
-0,8mm/-1,2mm/-1,6mm/-2,0mm/-2,4mm belichtet.

Die Idee dahinter ist, dass bei der Bedingung, die mit einem Durchmesser 
des Laserpunkts von 0,2mm korrespondiert, die Breite der Leiterbahnen 
stimmt.
Und das tut sie recht gut, siehe Vermessung.pdf. Ich werde ab jetzt 
1,8mm unterhalb der optimalen Fokussierung belichten.

Das zweite wichtige Ergebnis dieses Experiments: Es gehen 0,1mm-Bahnen! 
4mill! (...ok... sie sind einen Hauch dicker...)
Ich habe die Bahnen unter dem Auflichtmikroskop angeschaut und mit dem 
Multimeter durchgemessen – einwandfrei. (Mir fällt jetzt zwar spontan 
nichts ein, für was ich die gebrauchen könnte, freuen tut's mich 
trotzdem :-)

Falls es jemand interessiert, habe ich das GCode-File rangehängt. Das 
wird aber nur unter LinuxCNC laufen, da es mit Subroutinen arbeitet. Wer 
es mit einem 3D-Drucker oder GRBL laufen lassen will, muss manuell die 
Subroutine in den Absprung kopieren.

@Conny: Mit welchen Programm wandelst du deine Bitmaps in GCode um?

Aloha, Flo

von Florian W. (florenzw)


Angehängte Dateien:

Lesenswert?

Erfolgreich reproduziert:

Ich habe das Testlayout mit den Footprints mit den optimierten 
Parametern nochmal belichtet, entwickelt und geätzt. Die Belichtungszeit 
ist auf 22 Minuten gesunken. Die 0,1mm-Bahn  ist ganz (sagt das 
Multimeter).
Ein paar Krümel Kupfer sind auf der Platine noch übriggeblieben, die 
aber die Funktion nicht beeinträchtigen sollten. Mit optimierter 
Software müsste man auch dieses kleine Problem noch loswerden.

Fazit:
Das Ergebnis ist viel besser als Alles, was ich bis jetzt mit Folie 
hinbekommen habe. Ich betrachte die Methode für mich als ausoptimiert.

Aloha, Flo

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Hi Florian,

hier mein Ergebnis von heute Nachmittag!

Bin auch äußerst zufrieden.

Die 4mil Leiterbahn sieht eigentlich ganz gut aus, hat aber eine kaputte 
Stelle, wo auch immer die herkommt, denn der Rest sieht eigentlich nicht 
so aus als wäre es Zufall.
Auf dem Mikroskop-Bild (mein USB-Mikroskop taugt leider nicht so) kann 
man aber Unterätzung erahnen, vielleicht ist einfach das der Grund.

Jedenfalls kratzt die Qualität an den 4mil, das ist schon mal gut.
Auch bei mir ist das besser als alles was ich je mit Folie geschafft 
habe.

Belichtet mit 2.500 mm/min, 45mA, 500dpi.


Vg,
Conny

von Florian W. (florenzw)


Lesenswert?

Extrem lässig! Die sieht ja besser aus als meine Platine!
Dass da keine Kupferkrümel drauf sind, wie bei mir, gefällt mir sehr 
gut.

Beide Ansätze funktionieren. Jetzt muss ich auch mal rastern.
Mit welchem Programm machst du deinen GCode aus dem Bitmap?

Aloha, Flo

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Hi Florian,

mit einem Python-Script, anbei!

Vg,
Conny

von Florian W. (florenzw)


Lesenswert?

Vielen Dank!

von Bernd (Gast)


Lesenswert?

@ Florian

Auf einem Bild des Eingangsbeitrages ist ein Schraubstock mit 
Zentimeterskala zu sehen. Wo hast du den gekauft?

von Florian W. (florenzw)


Lesenswert?

Servus Bernd,

den gibt's bei www.cnc-plus.de

Genau den, den ich habe, gibt's scheinbar nicht mehr. Von den 
Abmessungen her ist ungefähr der:

http://cnc-plus.de/de/Spanntechnik/Schraubstoecke/Mini-Zentrierschraubstock--Maschinen-Schraubstock-2214.html

Aloha, Flo

von Bernd (Gast)


Lesenswert?

@ Florian

Vielen Dank für den Link :)

von Florian W. (florenzw)


Angehängte Dateien:

Lesenswert?

Bin der Perfektion einen großen Schritt näher gekommen:

Schwer inspiriert von Connys Skript habe ich beschlossen, die 
Datenaufbereitung ebenfalls in die eigene Hand zu nehmen.

Meine Idee ist den Vorteil des „Isolierlaserns“, die perfekten Ränder, 
mit dem Vorteil des Rasterns, die perfekt belichtete Fläche, zu 
vereinen. Deshalb habe ich ein Programm geschrieben, das zuerst den um 
den Laserradius korrigierten Umriss der Elemente belichtet und 
anschließend die Fläche dazwischen.

Als Datenquelle habe ich den dxf-Export von KiCAD gewählt, da er im 
wesentlichen nur aus LINE-Elementen besteht. Gerber wäre logischer 
gewesen, dieses Format ist aber deutlich schwerer zu durchschauen, 
deshalb hat dxf gewonnen.

Das Skript dxf2laser.py rekonstruiert erst einmal die Polygone und 
säubert sie von übereinander liegenden Punkten, sehr kurzen und gerade 
einander stehenden Strecken.
Anschließend wird der Umriss eines jeden Polygons mit dem Abstand des 
Laserradius berechnet.
Dann wird die Fläche außerhalb der berechneten Umrisse mit Linien 
gefüllt.
Berechnete Umrisse + Füllmuster werden direkt als G-Code, optimiert für 
LinuxCNC, exportiert.

Dieses Programm ist ein PROOF OF CONCEPT im alpha-Stadium und nur für 
den Import von dxf-Daten aus KiCAD 4.0.2 und nur für den Export nach 
LinuxCNC gedacht. Alles anderen möglichen Datenquellen und -ziele werden 
voraussichtlich ohne Anpassung des Programms nicht funktionieren. Da 
mein limitierender Faktor der Mangel an Zeit ist, werde ich nicht 
weiterbauen.  Jeder der möchte kann sich den Code anpassen wie er will.

Die Test Footprints-Platine ist jetzt so gut wie perfekt, 
Belichtungszeit 42 Minuten (mit 5mm Rand), Laserdurchmesser 0,2mm (1,8mm 
unterhalb des Fokus bei 50mm Brennweite), 1000mm/Minute. Die 4mill-Bahn 
ist ganz.
Neben der schwer optimierten Datenaufbereitung war noch eine Kleinigkeit 
von Bedeutung: Bei genauerer Betrachtung meiner vorhergehenden 
Testplatinen ist mir aufgefallen, dass LinuxCNC bei 90°-Ecken 
eigenmächtig Kreisbögen rein gebaut hat! Der Befehl G64 P0.001 erledigt 
dieses Problem, die maximale Abweichung vom vorgegeben Pfad wird auf 
0,001mm beschränkt.

Eine kleine Einschränkung gibt es (logischerweise):
Zwei Ränder dürfen sich nicht näher kommen als der Durchmesser das 
Lasers ist. Bei den Zahlen 1, 6, 9 und dem i ist diese Bedingung leider 
nicht erfüllt.

Etwas störend ist, auch wenn es sich nicht auf die Qualität auswirkt, 
dass LinuxCNC beim Ein- und Ausschalten des Lasers durch M3 und M5, auch 
wenn sich die dadurch getrennten Streckenabschnitte auf einer Linie 
liegen, bremst und beschleunigt. Hat jemand eine Idee, wie man das 
verbessern könnte?

Aloha, Flo

von hp-freund (Gast)


Lesenswert?

Hast Du schon mit den Einstellungen "Maximum Accelleration" für die 
einzelnen Achsen experimentiert?

von Conny G. (conny_g)


Lesenswert?

Hi Florian,

das ist ja jetzt wirklich super. Die Kleinigkeiten bei den Zahlen kann 
man wirklich vernachlässigen. Das Script hört sich nach ordentlich 
Arbeit an, sehr gut gelungen!

Ich bin soweit noch beim Rastern geblieben. Einerseits habe ich bereits 
einen Standard erreicht, der voll ausreichend ist (wäre) und arbeite 
gerade an Perfektionierungen (z.B. in beide Richtungen belichten und die 
4mil sicher zu schaffen). Andererseits gefallen mir einige Eigenheiten 
des Isolierlaserns nicht, im Prinzip genau die Dinge, die Du jetzt 
gelöst hast. Müsste ich auch nochmal lösen, weil Eagle plus ULP Script 
eine andere Plattform ist.

Bei der 4mil Bahn frage ich mich immer, was man da eigentlich bekommt 
auf der Platine. Mir scheint das geätzte Ergebnis viel dünner zu sein 
als 4mil und ist vermutlich deshalb immer kaputt.
4mil sind 0,2mm, das müsste mit der Lupe gesehen dicker sein als ein 
mm-Strich eines Lineals. Aber die Leiterbahn ist eher deutlich dünner 
als dieser Teilstrich, der m.E. 0,1mm dick ist.
Vermute, dass die Dicke des Laserpunkts schnell aus den 4 mil "Soll" ein 
1-2 mil "Ist" macht und das vom Ätzvorgang her kaum mehr zu schaffen 
ist.

Deshalb versuche ich gerade einen Anlauf mit 1000dpi zu belichten, aber 
nur dafür um "halbe" Pixel (aus Sicht der 500dpi, die ich erreichen 
will) zu haben, die ich noch als Abstand zu den Strukturen einfügen 
kann.
D.h. ich gebe den Leiterbahnen etc. noch einen Pixel Contour dazu, der 
dabei hilft "netto 4mil" zu behalten.
Das kann ich bei 500dpi zwar auch, dann wird die Zugabe aber zuviel.

Hatte nämlich mit meiner Testplatine der ersten Versuche immer das 
Problem, dass die kleinen Vias/Pads nur noch wenig Restring hatten, weil 
der Laser sowohl außen als auch innen zuviel wegnahm.
So geht's mir weniger um die 4mil - das ist Spielerei - vielmehr um 
vernünftige Pads. Und das ohne die Eagle-Standardwerte zu justieren, das 
könnte man ja auch.

Lg,
Conny

: Bearbeitet durch User
von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Das hat mich jetzt genauer interessiert und so kopierte ich mal die 
0,5mm-Bahn auf die 0,1mm-Bahn.
Was ist denn der vertikale Abstand der 0,1mm-Bahnen, ist das 2x 0,1 inch 
Raster, also 0,508mm?

Wenn die 0,5 wirklich 0,5mm sind, dann schrumpfen die 0,1mm schonmal um 
10-20% und es sind nur noch 0,085mm / 3,3mil.

Ich glaube allerdings, dass auch den 0,5mm hier bereits knapp 0,05mm 
fehlen, damit wären es netto 0,45mm.
Das durch fünf geteilt und minus 15% (die 0,1 sind auf dem Foto etwas 
kleiner als ein Fünftel der 0,5) ergibt 0,075 oder 3mil statt 4mil.

Das Belichten "frisst" also vermutlich 1mil am Rand.

Wenn ich also jetzt überall 1 Pixel bei 1000dpi = 0,0254mm = 1mil zugebe 
komme ich raus bei 4mil (Soll) + 2mil (Zugabe) - 1mil ("Randunschärfe") 
= 5mil (Ist).

Sind zwar keine 4mil, aber zumindest eine Leiterbahn ohne 
Unterbrechungen und Restringe, die genug Substanz haben.
Und nur 2mil Abstand zwischen Objekten bei 1mil "Unschärfe" ist eh nicht 
sinnvoll zu haben, also dürfte 1mil Zugabe keine Probleme bereiten.

: Bearbeitet durch User
von Dieter F. (Gast)


Lesenswert?

Conny G. schrieb:
> 4mil sind 0,2mm

Hallo Conny G,

nö - das sind etwas mehr als 0,1 mm - genau 0,1016 mm (1 mil = 0,0254 
mm).

4 mil sind schon spannend - wenn Du mal richtig Spaß haben willst 
versuche mal eine entsprechende Spirale zu belichten :-)

http://www.delorie.com/pcb/spirals/

Mit der "Zugabe" habe ich auch schon gespielt - leider mit 
unbefriedigendem Ergebnis. Daher arbeite ich aktuell an Möglichkeiten 
den Fokus des Lasers zu vermessen und zu optimieren.

Gruß
Dieter

von Conny G. (conny_g)


Lesenswert?

Dieter F. schrieb:
> Conny G. schrieb:
>> 4mil sind 0,2mm
> nö - das sind etwas mehr als 0,1 mm - genau 0,1016 mm (1 mil = 0,0254
> mm).

Stimmt, sorry. Wobei dann aber trotzdem meine Rechnung passt, dass etwa 
1mil beim Belichten Hops geht.

> 4 mil sind schon spannend - wenn Du mal richtig Spaß haben willst
> versuche mal eine entsprechende Spirale zu belichten :-)
>
> http://www.delorie.com/pcb/spirals/

Ah, da gibt's die, das habe ich schon gesucht. Ja, wenn ich mein Setup 
ganz im Griff habe, dann probiere ich das mal.

> Mit der "Zugabe" habe ich auch schon gespielt - leider mit
> unbefriedigendem Ergebnis. Daher arbeite ich aktuell an Möglichkeiten
> den Fokus des Lasers zu vermessen und zu optimieren.

Ich habe schon eine Weile dazu recherchiert. Der Laser hat 2 
verschiedene Öffnungswinkel x und y. Man macht das mit Zylinderlinsen 
verschiedener Brennweite um 90 Grad verdreht die Fokuspunkte der zwei 
Ebenen zusammenzuführen. Alternativ mit Prismen. Dann wird der Fokus 
rund statt oval.
Typische Werte sind anscheinend irgendwas 10 vs. 20 Grad in die zwei 
Richtungen.
Die Linsen sind nicht so einfach zu bekommen und echt teuer, zumindest 
alles, was ich bis jetzt gefunden habe.
Wenn man den Fokus dann rund gemacht hat statt elliptisch hat man 
jedenfalls schon mal den kleinstmöglichen Punkt, der halb so gross ist 
vs. ohne Ausgleich der Ellipse.
Den muss man dann noch so fokussieren können, dass der auch nur 0,05 
oder 0,025 groß ist... dann gehen echte 500/1000dpi und damit 1-2mil an 
Auflösung.

Was ich auch noch nicht weiß ist die Step-Auflösung meines Ultimaker. Da 
muss ich bei Zeiten mal die Parameter der Firmware genauer untersuchen, 
daraus müsste sich das rekonstruieren lassen, wie er von 
G-Gode-Koordinaten in Motorsteps umrechnet.
Denn wenn ich auf 500 oder 1000 dpi setze und das nicht in den Steps 
liegt, die der Drucker nativ hat, dann gibt es Abweichungen. Und wenn 
ich 1000dpi versuche und er kann sie gar nicht, dann ebenfalls.
Da brauche ich nicht nicht mit der Größe des Fokuspunkts anfangen...

von Florian W. (florenzw)


Lesenswert?

hp-freund schrieb:
> Hast Du schon mit den Einstellungen "Maximum Accelleration" für die
> einzelnen Achsen experimentiert?
Das habe ich noch mal abgeklopft - leider ohne Erfolg. Die Lösung habe 
ich M62 P-x / M63 P-x gefunden. Die ermöglichen zur Bewegung 
synchronisierte Schaltvorgänge in LinuxCNC - aber nur zwischen G1-Moves. 
Sobald ein G0 dazwischen ist, wird trotzdem gebremst. Sieht zwar auf dem 
Bildschirm seltsam aus, da nur noch weiße Linien, aber funktioniert. 
Jetzt rastert's flüssig.

@Conny:
Die Methode mit der Punktzugabe sollte durchaus funktionieren. Ein 
Bitmap als Datenquelle zu benutzen ist zwar der universellste Weg - das 
Ziel (fürchte ich) muss aber Gerber sein.

Irgendwie setzt sich bei mir schön langsam die Ansicht durch, dass man 
das Programm so jetzt nicht mehr stehen lassen kann. Dafür 
funktioniert's zu gut.
Im wesentlichen sehe ich drei Punkte, die noch abgearbeitet werden 
müßten:

- den Dateiimport auf Gerber umbauen:
Mein Fehler war, mir die offizielle Spezifikation dieses Formats 
anzuschauen - brrrrr - das sollte man nicht machen.
Nach dem ich jetzt meinen ersten Schrecken überwunden habe, werde ich 
mich mal der klassischen Dateianalyse zuwenden :-)

- beim Dateiexport optimierte Profile für GBRL, Marlin... erstellen:
Kein großes Problem.

- GUI ranbauen.
Hab zwar so was in Python noch nie gemacht, aber irgendwie geht das 
schon.

Wir sollten zusammenarbeiten!

Zu den Leiterbahnbreiten:
Je dünner die Bahnen werden, desto stärker spielt auch das Ätzen eine 
Rolle. Ich habe beschlossen, da jetzt keine Energie mehr reinzustecken. 
Ich sehe die 4mil-Bahn ausschließlich als Qualitätsparameter, aber nicht 
als etwas, das ich ernsthaft vorhabe zu ätzen.

Der Abstand zwischen den Bahnen beträgt 25mil = 0,635mm

Zum unrund fokussierten Laser:
Das Problem wird durch die Belichtung außerhalb des Fokus beseitigt. Bei 
einem Durchmesser von 0,2mm scheint er ziemlich rund zu sein.

Noch eines ist mir aufgefallen: Beim Vergleich meiner ersten mit meiner 
letzten Platine fällt auf, dass beim ersten Versuch die Ränder viel 
rauer sind als beim letzten. Der Unterschied in den Bedingungen ist, 
dass die erste Platine im Fokus belichtet wurde (also der Lack 
aufgeschmolzen wurde), die letzte Platine mit d = 0,2mm (da ist keine 
Schmelzspur mehr im Lack zu sehen).
Fazit: Irgendwie scheint sich der thermisch misshandelte Fotolack zu 
seinem Nachteil zu verändern und die Qualität der Ränder leidet.

von hp-freund (Gast)


Lesenswert?

Florian W. schrieb:
> - den Dateiimport auf Gerber umbauen:

http://flatcam.org/ kennst Du?

von Conny G. (conny_g)


Lesenswert?

Florian W. schrieb:
> - GUI ranbauen.
> Hab zwar so was in Python noch nie gemacht, aber irgendwie geht das
> schon.

Ich habe mir das gerade am Wochenende angesehen, wie ich meine Scripts 
etwas komfortabler bekäme und fand als eine der interessantere der 
Optionen (weil scheinbar sehr einfach):

http://www.wspiegel.de/tkinter/tkinter01.htm

> Wir sollten zusammenarbeiten!

Gerne. Ich muss jetzt aber erstmal das rastern in den Griff kriegen, da 
bin ich ganz nah dran das perfekt zu haben.

> Ich sehe die 4mil-Bahn ausschließlich als Qualitätsparameter, aber nicht
> als etwas, das ich ernsthaft vorhabe zu ätzen.

Dito. Ich will auch nur wissen wo die Grenze ist und die dort haben wo 
es mir sagt, dass alles andere immer einwandfrei klappen wird.

von Klaus (Gast)


Lesenswert?

Florian W. schrieb:
> Mein Fehler war, mir die offizielle Spezifikation dieses Formats
> anzuschauen - brrrrr - das sollte man nicht machen.
> Nach dem ich jetzt meinen ersten Schrecken überwunden habe, werde ich
> mich mal der klassischen Dateianalyse zuwenden :-)

Die Abneigung gegen Gerber hat mich die ganze Zeit gewundert. Eigentlich 
gibts da nur ganz wenige Sachen: Fahre mit geschlossener Blende an eine 
Koordinate, fahre mit offener Blende an eine Koordinate und mach an der 
aktuellen Position kurz das Licht an.

Zusätzlich kann man noch Form und Größe des Lichtpunktes aus einer 
Tabelle wählen. Die original Gerber-Plotter hatten auch nur sehr wenige 
Plätze auf der Blendenscheibe. Gut abgehangene Layoutprogramme können 
Gerberfiles auch für sehr einfache Blendentabellen erzeugen, auf Wunsch 
auch mit optimiertem Fahrweg.

Ein Photoplotter war auch nicht viel anders als eine CNC. Statt 
verschiedener Werkzeuge hatte er eine Lampe mit verschiedenen Blenden. 
Heute läßt man sich eine "Pseudo-Blendentabelle" passend zum Layout 
erzeugen, und den Fahrweg interessiert ein Rasterplotter nicht. Das muß 
aber nicht so sein, viele Gerbergeneratoren können es auch anders.


MfG Klaus

von Conny G. (conny_g)


Lesenswert?

Conny G. schrieb:
> Was ich auch noch nicht weiß ist die Step-Auflösung meines Ultimaker. Da
> muss ich bei Zeiten mal die Parameter der Firmware genauer untersuchen,
> daraus müsste sich das rekonstruieren lassen, wie er von
> G-Gode-Koordinaten in Motorsteps umrechnet.
> Denn wenn ich auf 500 oder 1000 dpi setze und das nicht in den Steps
> liegt, die der Drucker nativ hat, dann gibt es Abweichungen. Und wenn
> ich 1000dpi versuche und er kann sie gar nicht, dann ebenfalls.
> Da brauche ich nicht nicht mit der Größe des Fokuspunkts anfangen...

In der Konfiguration rechnet er mit 80 Steps/mm. Das wären 2032dpi.
Plausibilitätsprüfung:
Der Motor hat 1,8 Grad pro Step. Wird mit 16 Microsteps angesteuert. 
Ergibt 0,1125 Grad pro Step. Bei 0.0125mm/Step ergibt das 40mm für 360 
Grad oder 12.7mm Durchmesser für die Übersetzung von Motor nach Gurt.
Das kommt hin, das passt.

von Walter T. (nicolas)


Lesenswert?

Das sieht ja extrem vielversprechend aus - und wirft einige Fragen auf.

-Woher bekommt ihr Leiterplatten mit Foto-Negativ-Lack?
-Wie schützt ihr eure Augen?

Viele Grüße
W.T.

von Conny G. (conny_g)


Lesenswert?

Walter T. schrieb:
> -Woher bekommt ihr Leiterplatten mit Foto-Negativ-Lack?

Es ist Bungard Foto-Positiv-Material

> -Wie schützt ihr eure Augen?

http://www.insaneware.de/epages/61714203.sf/de_DE/?ObjectPath=/Shops/61714203/Products/lsbep1

von Walter T. (nicolas)


Lesenswert?

Conny G. schrieb:
> Walter T. schrieb:
>> -Woher bekommt ihr Leiterplatten mit Foto-Negativ-Lack?
>
> Es ist Bungard Foto-Positiv-Material

OK, ich habe mir erst im Nachhinein die Bilder noch einmal ganz in Ruhe 
angeschaut.... dann hätte sich die Frage nicht gestellt.

Conny G. schrieb:
>> -Wie schützt ihr eure Augen?
>
> 
http://www.insaneware.de/epages/61714203.sf/de_DE/?ObjectPath=/Shops/61714203/Products/lsbep1

Oha. Wenn es in der Preiskategorie anfängt zu taugen, wird das Belichten 
per Laser plötlich sehr interessant.

von Robin E. (why_me)


Angehängte Dateien:

Lesenswert?

Gerber ist echt nicht schwer, zumindest die Grundfunktionen. Das einzige 
kompliziertere sind die Makros.

Ich schreibe aktuell an einem Gerber zu Bitmap-converter in c#.

Mein aktueller Stand ist:
Alle Funktionen bis auf Makros (AM-Befehl) funktionieren.

Was noch fehlt/feinschliff benötigt:
- nur die Kontur der Platine erzeugen, aktuell habe ich nur eine feste 
größe
- negative Koordinaten, aktuell nur positiv in x und y
- hübsche GUI
- Speicherdialog beim Exportieren
- Makro-Befehl, haupsächlich das dekodieren und berechnen mit variablen. 
Sollte nicht all zu schwer sein, eigentlich nur im string etwas ersetzen 
und ausrechnen.

Leider fehlt aktuell etwas die Zeit weiter zu machen. Aber falls ihr 
Lust habt, mit zu machen, könnt ihr euch gerne per PM bei mir melden.

Im Anhang sind erzeugte Bitmaps, mit 1000DPI aus einer Gerber File

E: Beim rechten Bild fehlen die Achteckigen Pads, die werden als Makro 
realisiert. Sonst siehts mMn. recht gut aus.
Die voll versenkten SMD-Pads sind im Gerber-file auch so, hab einfach 
das erste genommen, das ich gefunden hab.

: Bearbeitet durch User
von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Parameter etwas weiter getuned, die Qualität wird immer besser:
1000dpi
7500mm/min
nur links-nach-rechts
70mA Strom
ohne Zugabe von Contour-Pixeln

Leider hat es eine der kurzen Seiten der 4mil Bahn doch wieder gekillt - 
die 4mil sind (noch) nicht zuverlässig drin.
Sieht aber schon weniger kritisch aus wie vor ein paar Tagen,  noch ein 
bisschen weiter optimieren, dann müsste das klappen :-)

Der Versuch das ganze "two way", also links-nach-rechts und 
rechts-nach-links, zu belichten hat leider noch nicht funktioniert - da 
gibt es anscheinend Verschiebungen der Belichtung auf dem Rückweg von 
ca. 0,05mm.

von Klaus (Gast)


Lesenswert?

Robin E. schrieb:
> Ich schreibe aktuell an einem Gerber zu Bitmap-converter in c#.

Möglicherweise könnte man hier etwas Honig saugen

http://gerbv.geda-project.org/

MfG Klaus

von Florian W. (florenzw)


Angehängte Dateien:

Lesenswert?

Man wächst mit der Herausforderung :-)

Der Gerber-Import steht, bisher ausschließlich mit KiCAD 4.0.2 getestet.
Importiert werden runde, ovale und rechteckige Pads und Linien 
verschiedener Breite.
Laut Robin E. soll's noch Makros geben – das geht nicht (ist mir auch 
noch nicht untergekommen).

@Klaus @Robin E.:
Jetzt weiß ich endlich, was ich gebaut habe: Einen Photoplotter!
Ihr habt vollkommen Recht, ist wirklich kein Hexenwerk. Ich habe mir 
versehentlich die Spezifikation der Erweiterung aus den 90ern 
durchgelesen...
Vielen Dank für's Angebot Robin. Ich bin Gelegenheitsprogrammierer und 
froh, wenn ich's mit Python irgendwie hinbekomme, ein Umstieg auf C# 
würde die Sache um Monate zurückwerfen.
http://gerbv.geda-project.org/: heißes Programm, zu dem Zeitpunkt hatte 
ich schon halbwegs den Durchblick.

Das Hauptproblem beim Import war das Verschmelzen der Polygonen, da 
meine Absicht ist, vektororientiert zu arbeiten. Nachdem ich einsehen 
musste, dass es mit selbst zusammengeklopften Funktionen nicht 
weitergeht, war der Ausweg die Library shapely, auf die ich im Code von 
FlatCAM (thx hp-freund) gestoßen bin.

Mein erster Versuch, alle Geometrien als Flächen anzulegen, und die 
übereinander liegenden dann zu verschmelzen scheiterte an Flächen mit 
Loch (z.B. die 0). Das Loch war dann nämlich weg.
Die Lösung war nach längerem Probieren das Verschmelzen der Umrisse.

Die graphische Ausgabe habe ich zu Testzwecken auf pyplot umgestellt, 
was sich zwar katastrophal auf die Performance auswirkt aber dafür eine 
perfekte Kontrolle dessen, was das Programm so macht, ermöglicht.

Dieses Programm ist ein PROOF OF CONCEPT im alpha-Stadium und nur für 
den Import von gerber-Daten aus KiCAD 4.0.2 und nur für den Export nach 
LinuxCNC gedacht. Alles anderen möglichen Datenquellen und -ziele werden 
voraussichtlich ohne Anpassung des Programms nicht funktionieren.

Zwingend erforderlich sind bei dieser Version dir Libraries 
matplotlib.pyplot und shapely. Unter Ubuntu gar kein Problem, unter 
Windows war für shapely die Lösung ein vor kompiliertes Binärfile, das 
es hier gibt:
http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely

Das Ein- und Ausschalten des Lasers erfolgt jetzt über M62 P-0 / M63 
P-0.

@Conny:
Das ist jetzt perfekt. Wie lange brauchst du für das Testlayout?

Sollte jemand ein Layout mit ein paar verschiedenen Footprints, 
Leiterbahnen und ein bisschen Text in Eagle haben, würde ich mich über 
einen Gerber-Export zu Testzwecken freuen.

Aloha, Flo

von Florian W. (florenzw)


Lesenswert?

Walter T. schrieb:
> -Wie schützt ihr eure Augen?

EP-1 Protection Goggles for190-540nm 800-2000nm

http://www.ebay.de/itm/201060076630?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

von Conny G. (conny_g)


Lesenswert?

Florian W. schrieb:
> Man wächst mit der Herausforderung :-)

Wow, da hast Dir jetzt aber massiv Arbeit gemacht, Respekt!!

> @Conny:
> Das ist jetzt perfekt. Wie lange brauchst du für das Testlayout?

Bei 7.500mm/min braucht es bei "einseitiger" Belichtung (nur 
left-to-right, hin 7.500, zurück 10.000) etwas weniger als 1h, bei 
zweiseitiger (Hin- und Rückweg) etwas mehr als 30min.

von Florian W. (florenzw)


Angehängte Dateien:

Lesenswert?

Ich habe etwas Zeit gefunden um am gbr2laser-Skript weiter zu basteln.

In der Version 0.12 wird das Füllmuster nur noch zu 25% in einen Umriss 
hineingezogen und nicht mehr bis an die Mittellinie wie in der 
vorhergehenden Version. Das ist für eine vollständige Belichtung einer 
Fläche immer noch vollkommen ausreichend und schafft Spielraum, sollte 
beim schnellen Ausfüllen der Laser doch mal etwas über das Ziel hinaus 
schießen.

Das Skript kann jetzt das Gerber-Drillfile von KiCad einlesen und in 
GCode umwandeln.
Obacht: Im Exportdialog von KiCad die Einheiten von Zoll auf mm 
umstellen!
Es werden alle Bohrungen unabhängig vom Durchmesser ausgegeben, hinter 
jedem Loch steht als Kommentar im GCode-File die Toolnummer dabei. Mit 
einem Blick in das originale Drillfile läßt sich dann feststellen, 
welche Toolnummer welchem Durchmesser zugeordnet ist. Durch löschen der 
nicht gewünschten Bohrungen im Editor kann man dann manuell für jeden 
Durchmesserbereich ein File erstellen.

Diese Version wurde bis jetzt in zwei verschiedenen Projekten 
erfolgreich angewendet. Insgesamt wurden bis jetzt 8 einseitige Platinen 
gemacht – ohne irgend ein Problem.

Was noch fehlt:
- Polygone Masseflächen gehen nicht.
- Gefräste (nicht runde) Löcher in Pads (z.B. Hohlsteckerbuchse / barrel 
jack) gehen auch nicht.
- Doppelseitige Platinen gehen nicht.

Da es so schön funktioniert hat habe ich immer schneller belichtet und 
bin bei 800mm/min an die Grenze dessen gestoßen, was mit einer 
50mW-Laserdiode möglich ist. Ab 1000mm/min blieb bei der aktuellen 
Charge Platinen (Bungard) zwischen zwei Linien des Füllmusters beim 
Entwickeln ein feiner Grat übrig (nur unter dem Mikroskop zu erkennen). 
Bei  800mm/min dauert die Belichtung einer 160mm x 100mm großen Platine 
knapp 3 Stunden. Mein CNC-Gestell fährt mit bis zu 1600mm/min, also 
müsste man mit einer 200mW-Laserdiode eine solche Platine in unter 2 
Stunden belichten können.

Fazit:
Für einseitige Platinen mit leichten Einschränkungen brauchbar.
Bohren ist ein Traum, da Belichten und Bohren auf der gleichen Maschine 
stattfindet. Man muss nur einen einzigen Punkt in Übereinstimmung 
bringen.

Aloha, Flo

von Florian W. (florenzw)


Angehängte Dateien:

Lesenswert?

Und noch das Wichtigste: Das Skript :-)

von Guido B. (guido-b)


Lesenswert?

Florian W. schrieb:
> Da es so schön funktioniert hat habe ich immer schneller belichtet und
> bin bei 800mm/min an die Grenze dessen gestoßen, was mit einer
> 50mW-Laserdiode möglich ist.

Das verstehe ich nicht, stimmen die Einheiten? Ich belichte momentan
mit ca. 300 mm/s und bekomme mit der 100-mW-Diode Probleme wegen
Überbelichtung. Ok, ich verwende Tentingresist, der ist etwa um den
Faktor 4 bis 6 empfindlicher. Aber so ein Unterschied?

von Florian W. (florenzw)


Lesenswert?

Ja, so ist es, da war der Wurm drin.
So recht konnte ich mir das auch nicht erklären, da es auch meinen 
Erkenntnissen von ganz oben widerspricht:
> Mit 1000mm/min und einer Punktbreite von
> 0,7mm wird der Fotolack 100%ig belichtet, evtl. geht sogar noch mehr,
> habe nicht weiter getestet.

Was los ist, habe ich erst kapiert, nachdem ich verstanden habe, warum 
mir der BS170 durchgebrannt ist und ich mir am neuen den Finger 
verbrannt habe:

Als Quick&Dirty-Lösung hatte ich parallel zum Gate des BS170 eine 
Low-Power-LED über 2kOhm geschaltet, um zu sehen, wann der Laser an ist. 
Der P-Port meines alten PCs hatte mit diesen 2mA kein Problem. Dann habe 
ich meinen Werkstatt-PC auf den neuesten Stand gebracht. Mit dem neuen 
Board bricht die Ausgangsspannung des P-Ports auf ca. 3V ein, wenn man 
ihn mit 2mA belastet, was dazu führt, dass der BS170 nicht mehr ganz 
durchschaltet und die Laserdiode nur noch mit einem Teil ihrer Leistung 
läuft. Im Nachhinein wundere ich mich, dass die Diode überhaupt noch 
gelasert hat.

Ohne die Low-Power-LED parallel zum Gate vom BS170 schaltet dieser 
wieder ganz durch und die Erkenntnisse von ganz oben sollten wieder 
stimmen. Jetzt muss ich mir doch mal einen ordentlichen Treiber bauen, 
mit Optokoppler :-)

Allgemein glaube ich, dass der Vergleich der 
Belichtungsgeschwindigkeiten zweier verschiedener Methoden in mm/min 
oder mm/sec keinen Sinn macht, da erst der Vergleich der belichteten 
Fläche pro Zeiteinheit zu einer sinnvollen Aussage führt. Bei 800mm/s 
sind es bei einer Belichtungsbreite von 0,2mm theoretisch 160mm²/min. In 
der Praxis bleiben ca. 100mm²/min übrig, da die Flächen überlappend 
belichtet und die Umrisse abgefahren werden.
Das größte Optimierungspotential sehe ich durch die polygone 
Massefläche, da dadurch die zu belichtende Fläche erheblich abnimmt und 
man durch eine Optimierung der Fahrwege die Belichtungszeit für die 
ganze Platine erheblich reduzieren kann.
Eine andere Möglichkeit wäre, beim Ausfüllen die Belichtungsbreite zu 
erhöhen, indem man mit dem Laser näher an die Platine fährt.

Es gibt noch viel zu tun :-)

von Florian W. (florenzw)


Lesenswert?

Erratum: Bei 800mm/min sind es bei einer Belichtungsbreite von 0,2mm 
theoretisch 160mm²/min.

von Markus M. (mmax)


Lesenswert?

Hi,

Ich hab auch eine CNC Fräse in Verwendung, komm aber mit dem normalen 
Isolationsfräsen in Kombination mit einer Höhenkorrektur ganz gut 
zurecht.

Mich würde aber interessieren ob man mit der Methode auch das Belichten 
von Lötstopplack (SD 2368 UV Reihe von peters) hinbekommt. Hat das schon 
mal jemand versucht?

lG,
Max

: Bearbeitet durch User
von Roland (Gast)


Lesenswert?

Spannungsspitzen. Sollen für Laserdioden tödlich sein. Gruß Roland

von Conny G. (conny_g)


Lesenswert?

Hi Florian,

hast Du mit diesem Script noch weitergemacht?

Vg,
Conny

von FlorenzW (Gast)


Lesenswert?

Servus Conny,

das Skript ist noch etwas entlaust worden und befindet sich seit vielen 
Monaten im produktiven Einsatz. Bis jetzt habe ich ca. 30 Platinen damit 
gemacht - eine schöner als die andere :-)

Die aktuelle Version des Skripts muss ich jetzt unbedingt reinstellen, 
bin blos gerade im Urlaub. So im Laufe der nächsten zwei Wochen gibt's 
ein Update.

Grüße, Florian

von Michael (Gast)


Lesenswert?

Könnt ihr mir das Layout mal hochauflösend (5000 x 4000 oder besser ) 
zum testen senden?

von Florian W. (florenzw)


Angehängte Dateien:

Lesenswert?

Hier ist mein aktuelles Testlayout, erstellt in KiCad.
Im ZIP-File ist auch ein Export als SVG (Vektor) enthalten. Damit kann 
sich dann jeder über Gimp o.ä. ein Bitmap mit gewünschter Auflösung 
erstellen.

von Florian W. (florenzw)


Angehängte Dateien:

Lesenswert?

Hier ist die aktuelle Version meines Skripts, mit der ich in den letzten 
Monaten einige Platinen gemacht habe.

Was hat sich getan:
- Einige Bugs wurden eliminiert
- Das Skript gibt jetzt automatisch von jedem GBR- und DRL-File einen 
nicht gespiegelten, einen an der x-Achse gespiegelten und einen an der 
y-Achse gespiegelten G-Code aus.

Doppelseitige Platinen habe ich noch nicht getestet, sollten aber 
funktionieren. Unbedingt aufpassen, dass die Ränder von Ober- und 
Unterseite übereinstimmen oder die Option „Set xMin and yMin to zero“ 
ausschalten.

Weiter oben habe ich geschrieben:
> Fokussieren:
> Zur Grobeinstellung lege ich ein einseitig beschichtetes Stück
> FR4 mit der Kupferseite nach unten unter den Laser. Je näher
> man am Fokus ist, desto dunkler wird der Lichtpunkt, bis er im
> Fokus fast im Laminat der Platine verschwindet.

Das funktioniert nur, wenn man ein einseitig mit Kupfer beschichtetes 
Stück Bungard Platinenmaterial nimmt, das beidseitig mit Fotolack 
überzogen ist!!! Das ist mir erst neulich aufgefallen, als ich‘s mit 
Platinenmaterial probiert habe, von dem ich den Fotolack mit Aceton 
abgewischt hatte. Der Fotolack darf ruhig belichtet sein, er muss nur da 
sein. Dieses Verfahren ist ausreichend genau. Die Feineinstellung, wie 
oben beschrieben, ist eigentlich nicht erforderlich. Mann sollte nur 
einmal kalibrieren, wie tief der Punkt der Fluoreszenzlöschung im 
Laminat liegt (bei mir 0,3mm unter der Oberfläche).

FlorenzW

von Florian W. (florenzw)


Lesenswert?

Habe noch was vergessen:
- polygone Flächen gehen ab jetzt auch :-)

von Axel R. (Gast)


Lesenswert?

Florian W. schrieb:

>
> Da es so schön funktioniert hat habe ich immer schneller belichtet...
dann hier:
> Bei  800mm/min dauert die Belichtung einer 160mm x 100mm großen Platine
> knapp 3 Stunden.

Steht dort 3(DREI) Stunden?
Ich kanns mir nicht vorstellen, das das drei Stunden dauern soll.
Das wäre mir echt zu lang!
Hätte ich auch nicht gedacht, wäre für mich ein "Abbruchkriterium"
Gruß Axel

Geil siehts ja schon aus, muss ich zugeben. Gefällt mir sehr gut - aber 
3Stunden fürs Belichten - oha

von Matthias L. (limbachnet)


Lesenswert?

Naja, wenn der Laser nur die Iso-Kanäle belichten würde, dann ginge es 
auch schneller - aber der räumt ja auch die Freiflächen aus, und das 
dauert...

Sieht mir aber trotzdem besser aus als Isolationsfräsen und geht 
schneller als das Bestellen einer Belichtungsfolie.

Wer mit dem heimischen Drucker erstklassige Belichtungsvorlage 
hinbekommt, fährt natürlich mit dem Folien-Belichtungs-Verfahren besser.

von Dieter F. (Gast)


Lesenswert?

Axel R. schrieb:
> Hätte ich auch nicht gedacht, wäre für mich ein "Abbruchkriterium"
> Gruß Axel

Ja, akzeptiert :-) - mach mal nach Deiner Art :-)

von Florian W. (florenzw)


Lesenswert?

Axel R. schrieb:

> Steht dort 3(DREI) Stunden?

Dieser Wert hat nur noch historische Bedeutung, da er noch mit einer 
Version ermittelt wurde, die keine polygonen Flächen konnte (siehe Bild 
der Platine). Inzwischen kann das Skript auch dieses Gerber-Feature.

Über den Daumen gepeilt kann man sagen, dass man pro cm² eine Minute 
rechnen kann. Es werden aber nur zu belichtende Flächen abgefahren. Bei 
einem ordentlichen Layout bleiben aber ca. 90% des Kupfers stehen, 
bedeutet: Von 160cm² einer Euro-Platine werden 16cm² belichtet -> sind 
16 Minuten, dann kommt noch der Rand dazu, dann sind's im schlimmsten 
Fall 25 Minuten.

Und man muss ja nicht daneben sitzen und zuschauen.
(wobei ich das bei meinen ersten Platinen durchaus gemacht habe :-))

von Axel R. (Gast)


Lesenswert?

Das klingt doch gleich ganz anders ;)

von Conny G. (conny_g)


Lesenswert?

Ich habe das Script heute versucht zu testen.
Für Python 3 gibt es ein bisschen was zu tun.
Und ich komme mit Gerber aus Eagle leider gerade nicht recht weiter, 
folgende Fehlermeldung:
1
Plotting geometry
2
0
3
1
4
2
5
3
6
7
Traceback (most recent call last):
8
  File "gbr2laser.py", line 1355, in <module>
9
    perimeter = optimizing_outline_travel_V2(perimeter)
10
  File "gbr2laser.py", line 455, in optimizing_outline_travel_V2
11
    while i < len(perimeter):
12
TypeError: object of type 'LineString' has no len()

Das Array "perimeter" scheint leer zu sein?

von florenzw (Gast)


Lesenswert?

Das Skript ist für Python 2 geschrieben und bis jetzt ausschließlich mit 
KiCad getestet. Am besten erst mal schauen, ob's mit der Testplatine 
durchläuft (alle abgefragten Punkte mit Return bestätigen). 
Installationshinweise zu den verwendeten Bibliotheken siehe oben.

Und am wichtigsten: Nicht aufgeben!

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Das Update des Script auf Python 3 war etwas Fleissarbeit, aber 
unproblematisch.
Ja, mit der Testplatine läuft es durch.
Kannst Du sehen, was los ist, wenn ich Dir das Gerber anhänge?

von Florian W. (florenzw)


Lesenswert?

Stell mal den Export im Eagle von Zoll auf mm um.

: Bearbeitet durch User
von Conny G. (conny_g)


Lesenswert?

Mmh, war nicht erfolgreich.

Ich würde jetzt mal den Ansatz nehmen die minimale Gerber-Datei zu 
erzeugen, die möglich ist.
D.h. in Eagle nur 1 Leiterbahn und einen Umriss und fertig.

Könntest Du mir ebenso ein minimales Gerberfile aus Kicad erzeugen, 
damit ich eine Referenz habe?
Oder anders gefragt: was braucht das Script als Minimum um zu 
funktionieren?

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Anbei: "GerberTest" als .brd, Bild und .grb

Ein Board, 50x50 mit 1 Leiterbahn.

Das ist ja ziemlich simpel, was dabei herauskommt:

1
G75*
2
%MOMM*%
3
%OFA0B0*%
4
%FSLAX25Y25*%
5
%IPPOS*%
6
%LPD*%
7
%AMOC8*
8
5,1,8,0,0,1.08239X$1,22.5*
9
%
10
%ADD10C,0.40640*%
11
%ADD11C,1.27000*%
12
D10*
13
X0000457Y0000457D02*
14
X0049987Y0000457D01*
15
X0049987Y0051257D01*
16
X0000457Y0051257D01*
17
X0000457Y0000457D01*
18
D11*
19
X0006807Y0006807D02*
20
X0043637Y0006807D01*
21
M02*

von Conny G. (conny_g)


Lesenswert?

Der erste Fehler: "No tools found".
1
$ python gbr2laser.py
2
What do you want to calculate:
3
1: Perimeter + filling
4
2: Only filling
5
3: Only perimeter
6
(default 1) 
7
Gerber-File as input(default GerberTest.gbr) 
8
ngc-File as output (default output.ngc)
9
Drillfile as input(default Testlayout.drl) 
10
ngc-File as drilloutput (default output_drill.ngc)
11
Assumed laserdiameter in mm (default 0.1)
12
Set xMin and yMin to zero Y/N (default Y)
13
Border around your layout in mm (default 2.0)
14
Distance between filling lines im mm (default 0.15)
15
Perimeterspeed in mm/min (default 250)
16
Fillingspeed in mm/min (default 250)
17
G-Code to switch laser on (default M62 P-0)
18
G-Code to switch laser on (default M63 P-0)
19
Optimize fillingpattern Y/N (default N)
20
Filling bidirectional Y/N (default N) 
21
22
Import tools
23
GerberTest.gbr
24
No tools found!
25
IllegalArgumentException: Operation not supported by GeometryCollection
26
27
Traceback (most recent call last):
28
  File "gbr2laser.py", line 1286, in <module>
29
    geometry =  cascaded_union(geometry).boundary
30
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/shapely/geometry/base.py", line 442, in boundary
31
    return geom_factory(self.impl['boundary'](self))
32
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/shapely/geometry/base.py", line 65, in geom_factory
33
    raise ValueError("No Shapely geometry can be created from null value")
34
ValueError: No Shapely geometry can be created from null value

von Florian W. (florenzw)


Lesenswert?

Über der Liste der Werkzeuge fehlt die Zeile:
G04 APERTURE LIST*
In deiner ursprünglichen Test.gbr ist diese Zeile vorhanden, die 
Werkzeuge wurden aus dieser Datei auch einwandfrei importiert.

Bitte poste mal die ursprüngliche Test.gbr exportiert in mm statt in 
Zoll. Ich glaube, da fehlt es nicht weit.

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Florian W. schrieb:
> Über der Liste der Werkzeuge fehlt die Zeile:
> G04 APERTURE LIST*
> In deiner ursprünglichen Test.gbr ist diese Zeile vorhanden, die
> Werkzeuge wurden aus dieser Datei auch einwandfrei importiert.

Ich hatte diese Zeilen manuell eingefügt.

Die Test.gbr anbei!

von Florian W. (florenzw)


Lesenswert?

Abmessungen der Platine:
xMin:  0 mm
yMin:  0 mm
xMax:  10.63448 mm
yMAx:  7.82016 mm
Area:  83 mm2

Kann das sein oder ist das immer noch Zoll?

von Conny G. (conny_g)


Lesenswert?

Florian W. schrieb:
> Abmessungen der Platine:
> xMin:  0 mm
> yMin:  0 mm
> xMax:  10.63448 mm
> yMAx:  7.82016 mm
> Area:  83 mm2
>
> Kann das sein oder ist das immer noch Zoll?

Da stimmt was nicht. Die Platine müsste ca. 60x80mm sein.
Ich bekomme das Gerber File daraus auch bei Online Viewern nicht 
angezeigt.
Deine Testplatine aber schon....

von Florian W. (florenzw)


Lesenswert?

Ein Problem habe ich in der Werkzeugdefinition lokalisiert.
Ovale Werkzeuge werden so angegeben:
%ADD26O,2.400000X1.600000*%
In der Test.gbr sieht das so aus:
%ADD25OC8,1.67640*%
Ich weiß nicht, was mir diese Zeile sagen will.
Schau mal, ob du in Eagle auf eine ältere Gerber-Version umschalten 
kannst. Ich exportiere in KiCad mit 4.6 in mm.

von Robin E. (why_me)


Lesenswert?

Mit der Zeile %ADD25OC8,1.67640*% wird ein Makro aufgerufen mit dem 
Inhalt:
5,1,8,0,0,1.08239X$1,22.5*

Die 5 Steht dann für Polygon und die 8 gibt ein Achteck an.

Und weil das ganze noch nicht kompliziert genug ist, wird der 
Durchmesser des Achtecks noch variabel gehalten und in diesem Fall mit 
1,6764 multipliziert.
Also 1,08239*1,6764 = 1,81451...

Edit:
Kann alles hier nachgelesen werden:
https://www.ucamco.com/files/downloads/file/81/the_gerber_file_format_specification.pdf

Aber da ist Kicad deutlich angenehmer, das verwendet glaube ich keine 
makros.

: Bearbeitet durch User
von Robin E. (why_me)


Lesenswert?

Und das gerbertest von eagle liefert ganz komische werte. Da stimmt was 
mit den Nachkomma stellen nicht.
4. Zeile FSLAX gibt das an, 2 stellen vor dem Komma und 5 danach.

Demnach wäre der Rahmen von 0,0045 bis 0,4998 als grob 0,45mm groß.
Und die Linie unten quest geht von 0,068 bis 0,43 also ca 0,362mm.

Wenn man FSLAX manuell auf %FSLAX43Y43*% ändert, dann passt das ganze 
wieder.

Da scheint wohl der gerber Export bei eagle einen Fehler zu haben. Oder 
er wurde falsch bedient... kann ich heute Abend oder morgen mal 
gegentesten.

: Bearbeitet durch User
von Conny G. (conny_g)


Lesenswert?

Das würde ich nicht ausschliessen, dass es ein Bedienfehler ist - ich 
habe mich noch nicht mit Gerber beschäftigt :-)

Gerade mal nachgeschaut. In Eagle gibt es die eagle.def, die die 
CAM-Definitionen enthält und da ist die Zeile mit dem FSLAX hartcodiert 
drin.

Hier die Config von GERBER_RS274X:

1
@GERBERAUTO
2
Long          = "Gerber RS-274-X photoplotter, coordinate format 2.5 inch"
3
Units         = MM
4
Info          = "Plotfile Info:\n"\
5
                "\n"\
6
                " Coordinate Format : 2.5\n"\
7
                " Coordinate Units  : Millimeter\n"\
8
                " Data Mode         : Absolute\n"\
9
                " Zero Suppression  : None\n"\
10
                " End Of Block      : *\n"\
11
                "\n"
12
Init          = "G75*\n"           \ allow positive and negative coordinates
13
                "%%MOMM*%%\n"      \ MOde of units is INch (MM for mm)
14
                "%%OFA0B0*%%\n"    \ horizonal and vertical OFfset is 0
15
                "%%FSLAX25Y25*%%\n"\ Format Statement is Absolute (I for incremental) 2.5
16
                "%%IPPOS*%%\n"     \ Image Polarity is POSitive (NEG for negative)
17
                "%%LPD*%%\n"       \ Layer Polarity Dark (C for clear on negative planes)
18
                "%%AMOC8*\n5,1,8,0,0,1.08239X$1,22.5*\n"\ Octagons are emulated with a circle (using 8 vertices)
19
                "%%\n"            ; and therefore the diameter must be enlarged with '1 / cos(pi / 8)'
20
Reset         = "M02*\n"
21
ResX          = 25400
22
ResY          = 25400
23
Move          = "X%0.7dY%0.7dD02*\n"    ; (x, y)
24
Draw          = "X%0.7dY%0.7dD01*\n"    ; (x, y)
25
Flash         = "X%0.7dY%0.7dD03*\n"    ; (x, y)
26
Circle        = "%%AD%sC,%7.5f*%%\n"        ; (code, diameter)
27
Rectangle     = "%%AD%sR,%7.5fX%7.5f*%%\n"  ; (code, dx, dy)
28
Oval          = "%%AD%sO,%7.5fX%7.5f*%%\n"  ; (code, dx, dy)
29
; According to the RS-274-X specs there is an aperture macro
30
; primitive that allows us to specify an octagon (i.e. a polygon with
31
; 8 vertices). As some Gerber viewers seem to have problems with that,
32
; we would have to use a round shape for that.
33
; If your Gerber processor cannot handle the polygon primitive you may
34
; uncomment the following line and comment out the line after it:
35
;Octagon       = "%%AD%sC,%7.5f*%%\n"   ; (code, diameter) (looks like there is no octagon, so we take a circle)
36
Octagon       = "%%AD%sOC8,%7.5f*%%\n" ; (code, diameter)
37
AreaBegin     = "G36*\n"
38
AreaEnd       = "G37*\n"

: Bearbeitet durch User
von Florian W. (florenzw)


Lesenswert?

Vielen Dank @Robin für die Informationen.
Macros einzupflegen schaffe ich z.Zt. nicht.
... eigentlich bräuchte man nur einen Präprozessor, der diese Macros in 
polygone Flächen umwandelt, und die kann das Skript ... grübel ...

Ich habe die Hoffnung noch nicht ganz aufgegeben, dass man durch 
zurückschalten auf eine ältere Gerber-Version, die Macros los wird.

Oder gibt's eine Konverter, der Macros in polygone Flächen umwandelt?

von Conny G. (conny_g)


Lesenswert?

Es scheint nur für die 8-eckigen Pads wird ein Makro benutzt?

http://www.eaglecentral.ca/index.php?t=msg&goto=120995&f239c0b816b15624e4fb2c9a379ef8c8/

von Florian W. (florenzw)


Lesenswert?

Und die achteckigen Pads rund machen?

von Conny G. (conny_g)


Lesenswert?

Ich glaube das ist nicht das Hauptproblem mit dem Script, höchstens ein 
kleines Stolpersteinchen bei den Tools.
Ich habe ja eine andere Platine, die geht auch nicht, auf der ist gar 
kein Pad.

von Robin E. (why_me)


Lesenswert?

Das makro ist nicht das Problem, das gehört zum gerber format dazu und 
funktioniert auch im gerber viewer. Das Problem ist, dass die ganzen 
Koordinaten um Faktor 100 zu klein sind. Die Durchmesser der Werkzeuge 
stimmen allerdings. Also bekommt man nur einen undefinierbaren punkt, 
anstatt einer Platine, weil eine 10x10cm layout auf 1x1cm gequetscht 
wird.

Welche Eagle Version und welches skript verwendest du Conny? Und wäre es 
evtl möglich eine andere Version zu testen.

von Conny G. (conny_g)


Lesenswert?

Ich debugge gerade die Maße, da habe ich noch nicht verstanden, warum 
das Script immer 5.x mm gibt, obwohl ich den Skalierfaktor in Eagle 
verstelle.

Jedenfalls braucht das Script die "geometry", die auf D03 Commands 
basiert, Eagle gibt bei meiner Supersimpel-Platine mit einer kurzen 
Leiterbahn aber kein D03 aus.
Was ist D03, wofür braucht man das?

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Antwort: die Pads sind D03.

Gefällt dem Script aber trotzdem noch nicht.

Plotting geometry
Traceback (most recent call last):
  File "gbr2laser.py", line 1364, in <module>
    plot_geometry(geometry, 'black')
  File "gbr2laser.py", line 1043, in plot_geometry
    while i < len(geometry):
TypeError: object of type 'LineString' has no len()

Habe es übrigens modifiziert, dass es nicht mehr die G04 für die Tools 
benötigt, geht jetzt auf %AD.

Das GRB:

G75*
%MOMM*%
%OFA0B0*%
%FSLAX46Y46*%
%IPPOS*%
%LPD*%
%AMOC8*
5,1,8,0,0,1.08239X$1,22.5*
%
%ADD10C,0.406400*%
%ADD11C,1.270000*%
%ADD12R,1.006400X1.006400*%
D10*
X000000Y000000D02*
X000000Y050800D01*
X049530Y050800D01*
X049530Y000000D01*
X000000Y000000D01*
D11*
X006350Y006350D02*
X043180Y006350D01*
D12*
X006350Y006350D03*
M02*

: Bearbeitet durch User
von Conny G. (conny_g)


Lesenswert?

geometry sollte ein Array sein, ist es aber nicht?
Ergebnis von print(geometry).

Plotting geometry
LINESTRING (2.67183 3.27, 2.734070884109272 3.266942301436845, 
2.795712354480242 3.257798653056051, 2.856160770056584 
3.242657113189952, 2.914833979551833 3.221663503144667, 
2.971166927884509 3.195020002861205, 3.024617097967448 
3.162983203812116, 3.058033379984215 3.1382, 3.1382 3.1382, 3.17503 
3.1382, 3.17503 3.021203379984216, 3.199813203812116 2.987787097967447, 
3.231850002861206 2.934336927884508, 3.258493503144667 
2.878003979551832, 3.279487113189953 2.819330770056583, 
3.294628653056051 2.758882354480241, 3.303772301436845 
2.697240884109271, 3.30683 2.635, 3.303772301436845 2.572759115890729, 
3.294628653056051 2.511117645519759, 3.279487113189953 
2.450669229943417, 3.258493503144667 2.391996020448168, 
3.231850002861206 2.335663072115492, 3.199813203812116 
2.282212902032553, 3.17503 2.248796620015785, 3.17503 2.1318, 3.1382 
2.1318, 3.058033379984215 2.1318, 3.024617097967448 2.107016796187884, 
2.971166927884509 2.074979997138795, 2.914833979551832 
2.048336496855333, 2.856160770056583 2.027342886810047, 
2.795712354480241 2.012201346943948, 2.734070884109271 
2.003057698563155, 2.67183 2, 2.635 2, 2.572759115890728 
2.003057698563155, 2.511117645519758 2.012201346943949, 
2.450669229943415 2.027342886810048, 2.391996020448167 
2.048336496855333, 2.335663072115491 2.074979997138795, 
2.282212902032552 2.107016796187884, 2.248796620015785 2.1318, 2.16863 
2.1318, 2.1318 2.1318, 2.1318 2.248796620015785, 2.107016796187883 
2.282212902032553, 2.074979997138794 2.335663072115492, 
2.048336496855333 2.391996020448168, 2.027342886810047 
2.450669229943416, 2.012201346943948 2.511117645519759, 
2.003057698563155 2.572759115890729, 2 2.635, 2.003057698563155 
2.697240884109271, 2.012201346943948 2.758882354480241, 
2.027342886810047 2.819330770056584, 2.048336496855333 
2.878003979551832, 2.074979997138794 2.934336927884508, 
2.107016796187883 2.987787097967447, 2.1318 3.021203379984216, 2.1318 
3.1382, 2.16863 3.1382, 2.248796620015785 3.1382, 2.282212902032551 
3.162983203812115, 2.33566307211549 3.195020002861205, 2.391996020448166 
3.221663503144666, 2.450669229943414 3.242657113189952, 
2.511117645519756 3.257798653056051, 2.572759115890726 
3.266942301436845, 2.634999999999997 3.27, 2.67183 3.27)
Traceback (most recent call last):
  File "gbr2laser.py", line 1365, in <module>
    plot_geometry(geometry, 'black')
  File "gbr2laser.py", line 1044, in plot_geometry
    while i < len(geometry):
TypeError: object of type 'LineString' has no len()

von Conny G. (conny_g)


Lesenswert?

Das cascaded_union ändert von Multipolygon nach LineString, das kommt 
mir komisch vor. Gerade, wenn später das Linestring kein "len" hat, also 
kein Array mehr ist.

geometry = gbr_import(filename_input, delta)
print(geometry)
geometry =  cascaded_union(geometry).boundary
print(geometry)

ergibt:

MULTIPOLYGON (((-0.2032 2.488482295867422e-17, -0.2032 0.0508, ....
LINESTRING (0.04318 0.64135, 0.1054208841092719 0.6382923014368449, ...

von Conny G. (conny_g)


Lesenswert?


von Florian W. (florenzw)


Angehängte Dateien:

Lesenswert?

Habe das Minimalbeispiel mit folgenden Änderungen zum Laufen gebracht:
G04 APERTURE LIST*
G04 APERTURE END LIST*
vor und hinter der Werkzeugdefinition eingefügt und
Anzahl der Stellen der Koordinaten auf 9 mit Nullen aufgefüllt.

Es ist nicht hoffnungslos :-)

von Conny G. (conny_g)


Lesenswert?

Das G04 habe ich ja behoben in dem ich das Parsing geändert habe.

Macht das mit den 9 Stellen das Problem mit dem LineString object?
Ich glaube das ist etwas anderes bei mir.

von florenzw (Gast)


Lesenswert?

> Das G04 habe ich ja behoben in dem ich das Parsing geändert habe.
Erkennt das Skript auch das Ende der Werkzeugdefinition?

> Macht das mit den 9 Stellen das Problem mit dem LineString object?
Könnte durchaus sein, da das Skript den halben Laserdurchmesser von der 
Geometrie abzieht und wenn die kleiner als der Laserdurchmesser ist, 
bleibt nichts mehr übrig.

> Ich glaube das ist etwas anderes bei mir.
Ich würde das Originalskript unter Python 2.7 laufen lassen. Eine große 
Fehlerquelle weniger.

von Conny G. (conny_g)



Lesenswert?

Also was auch immer das jetzt ist, jetzt tut sich was. :-)
Ich habe bei Eagle die ResX/ResY Faktoren vergrössert und die 
Float-Formatierung angepasst.
1
ResX          = 2540000
2
ResY          = 2540000
3
Move          = "X%4.10dY%4.6dD02*\n"    ; (x, y)
4
Draw          = "X%4.10dY%4.6dD01*\n"    ; (x, y)
5
Flash         = "X%4.10dY%4.6dD03*\n"    ; (x, y)

Ah, die Zahlen sind immer noch Faktor 10 falsch. Damit dominiert die 
Laserdicke das Layout :-)

florenzw schrieb:
>> Das G04 habe ich ja behoben in dem ich das Parsing geändert habe.
> Erkennt das Skript auch das Ende der Werkzeugdefinition?

Ja:
1
# -----------Import Tools------------
2
    while (i < file_length):
3
4
        last_pos = file_input.tell()  # remember the position before this line
5
6
        line = file_input.readline()
7
        
8
        if not line.startswith("%AD"):
9
            break;
10
11
        ...
12
13
   file_input.seek(last_pos)        # restart with last read line

Bis zu der Zeile lesen, wo nicht mehr %AD am Anfang steht und dann 
abbrechen und wieder zum Anfang der Zeile gehen.
Das geht eleganter, aber ich hacke ja das Script erstmal zur 
Funktionsfähigkeit.

von Conny G. (conny_g)



Lesenswert?

Besser.

: Bearbeitet durch User
von Florian W. (florenzw)


Lesenswert?

Jetzt wirds!
Dann fasse ich jetzt mal den aktuellen Stand zusammen:
Problem 1: Export in Zoll
 - in Eagle lösbar
Problem 2: Erkennung von Anfang und Ende der Werkzeugdefinition
 - gelöst, wird von mir eingepflegt
Problem 3: Macros
 - nur mit größerem Aufwand lösbar, für's erste entbehrlich
Problem 4: Krummer Gerber-Export aus Eagle
 - in Eagle lösbar

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Florian W. schrieb:
> Jetzt wirds!
> Dann fasse ich jetzt mal den aktuellen Stand zusammen:
> Problem 1: Export in Zoll
>  - in Eagle lösbar
> Problem 2: Erkennung von Anfang und Ende der Werkzeugdefinition
>  - gelöst, wird von mir eingepflegt
> Problem 3: Macros
>  - nur mit größerem Aufwand lösbar, für's erste entbehrlich
> Problem 4: Krummer Gerber-Export aus Eagle
>  - in Eagle lösbar

Ja, das ist richtig so. Idealerweise würde ich Dir noch das eagle.def 
schicken, dann hast Du eine funktionierende Eagle-Config im Paket.
Hoste das Script doch auf einem Git Repository, das ist genial!

Ich habe jetzt noch einen X-/Y-Offset eingefügt, denn mein 
Anschlagrahmen für die Platine sitzt bei X=53, Y=59.
Könnte ich auch mit einem G-Code machen einen Offset einzurichten (ich 
glaube das war G92), aber explizit im G-Code sind mir die Koordinaten 
lieber :-)

Und ich habe den erzeugten G-Code noch etwas geändert, denn ich steuere 
den Laser über einen Parameter am G01:
G01 X100 Y100 B1
Das "B1" schaltet für diesen Move den Laser ein.
Könnte jetzt auch die Firmware modifizieren das M62/M63 zu verstehen, 
aber das war jetzt der einfachere Weg.

Jetzt bin ich bereit für einen ersten realen Belichtungsversuch :-)

Die Platine wird übrigens ein Test für eine Wärmeplatte. Kürzlich 
gelesen und neugierig, ob das funktioniert.
Das auf Vor- und Rückseite einer Platine müsste bei 12V einen Widerstand 
von 1,4 Ohm, einen Strom von 8,9A und eine Wärmeleistung von 106 Watt 
ergeben.
Ich wollte das spasshalber mal schutzlackieren und in der Aufheizphase 
in meine Ätzküvette hängen zur Beschleunigung der Erwärmung - der 
mitgelieferte 150W Heizstab ist etwas schwach auf der Brust, dauert über 
20min. Mit der "Heizplatine" müsste es in 10min gehen.

Und das führte mich übrigens auch dazu Dein "Isolationsfräsen"-Script zu 
testen, denn das ist das ideale Szenario dafür:
Ich brauche ganz schnell einen Prototyp, meine 2.000dpi, die für eine 
Europlatine pixelweise 5-6h brauchen sind völlig überdimensioniert.
Freilasern der Tracks ist hier die ideale Methode, die Schwingungen des 
Druckkopfs beim Richtungswechsel sind hier egal und auch, ob der 
Laserpunkt hier 0,2mm breit ist, Hauptsache genug Leistung damit die 
Tracks frei werden.

Ach ja: Und das Script müsste für das Laserschneiden von SMD-Stencils 
aus 150µ Folie perfekt sein :-)

: Bearbeitet durch User
von Conny G. (conny_g)


Lesenswert?

Florian W. schrieb:
> Selbst mit einer billigen Linse lässt sich der Laser auf ca. 0,05mm
> fokussieren – das ist zu fein. Man muss im leicht de-fokussierten
> Bereich arbeiten um einen Durchmesser von 0,1 – 0,2mm zu bekommen, erst
> damit kann man vernünftig arbeiten.

Jetzt weiss ich auch, was Du damit meinst. Beim Pixel belichten möchte 
man den Fokus so klein wie möglich haben für mehr Auflösung.
Beim Isolierlasern bekomme ich keinen vernünftigen Ätzvorgang, wenn die 
Linien zu schmal sind... :-)
Musste meine "Heizplatine" gerade nochmal mit defokussiertem Laser 
nachbelichten und hoffe, dass es dann passt.

von Florian W. (florenzw)


Lesenswert?

Super! Ich freue mich sehr darüber, dass du das Skript zum Laufen 
gebracht hast :-)

Beitrag #5005478 wurde von einem Moderator gelöscht.
von Volles Lob (Gast)


Lesenswert?

mec schrieb im Beitrag #5005478:
> Und dann dieses Bild einer Fräse mit UV-Laser ohne irgendwo einen Schutz
> vor der Strahlung zu sehen.

Wow, da passt ja einer auf. 405nm 50mW ist schon mächtig viel UV. Wobei, 
Wikipedia sagt Wellenlängen kleiner als 380nm wäre UV, 405nm ist aber 
größer. Aber auch Wikipedia kann ja irren. Und Streureflexion von 50mW 
können natürlich viel stärker wirken als Sonnenlicht an einem schönen 
Tag. Und das Bild einer nackten Fräse, hier könnten ja auch Kinder 
schauen

von Conny G. (conny_g)


Lesenswert?

Florian W. schrieb:
> Super! Ich freue mich sehr darüber, dass du das Skript zum Laufen
> gebracht hast :-)

Ja, genial. Du musst das auf Github o.ä. veröffentlichen :-)

Baue mir gerade einen 2. Laserkopf, jetzt erstmal mit 100mW ohne Blende 
und später mit 350mW (Diode gerade im Anflug oder auf dem Schiff, wo 
auch immer), um Folien damit zu schneiden und zu testen, ob man die als 
SMD Stencil verwenden kann.
Dein Script müsste perfekt fürs Schneiden der Stencils sein :-)
Hab auch schon einen Stencil aus Messingfolie gemacht (Tonertransfer und 
ätzen wie eine Platine) und hat gut geklappt, aber es ist etwas mühsam.

von mec (Gast)


Lesenswert?

Volles Lob schrieb:
> mec schrieb:
>> Und dann dieses Bild einer Fräse mit UV-Laser ohne irgendwo einen Schutz
>> vor der Strahlung zu sehen.
>
> Wow, da passt ja einer auf. 405nm 50mW ist schon mächtig viel UV. Wobei,
> Wikipedia sagt Wellenlängen kleiner als 380nm wäre UV, 405nm ist aber
> größer. Aber auch Wikipedia kann ja irren. Und Streureflexion von 50mW
> können natürlich viel stärker wirken als Sonnenlicht an einem schönen
> Tag. Und das Bild einer nackten Fräse, hier könnten ja auch Kinder
> schauen

Kannst du die Fragen beantworten, welche ich gestellt habe? Wenn nicht, 
hast du grundsätzlich ein Problem, glauben ist nicht wissen. Und ja ich 
hab schon Leute kennengelernt, die sich mit Laser die Augen ruinierten, 
und ich hab mir mal einen "lokalen Sonnenbrand" geholt, mit deutlich 
hautfreundlicherer Wellenlänge.

Dieser Laser ist wahrscheinlich Klasse 3B, und im Arbeitsleben heist 
das:

"Nach § 5 der im Juli 2010 erlassenen und im November 2016 novellierten 
deutschen Verordnung zum Schutz der Beschäftigten vor Gefährdungen durch 
künstliche optische Strahlung (Arbeitsschutzverordnung zu künstlicher 
optischer Strahlung – OStrV) haben Arbeitgeber die Pflicht, falls sie 
nicht selbst über die erforderlichen Fachkenntnisse verfügen, vor der 
Aufnahme des Betriebs von Lasern der Klassen 3R, 3B und 4 einen 
Laserschutzbeauftragten mit Fachkenntnissen schriftlich zu bestellen."

Privat greift das zwar nicht, aber es sollte einen doch zu denken geben, 
das man wissen sollte, was man macht, diese Verordnung gibt es nicht 
umsonst.
Und bei solchen Posts und Bildern gehe ich nicht davon aus, dass das 
Wissen vorhanden ist.
Aber solange du das alleine in einem fensterlosen Raum machst, ist es 
mir egal, dann lernt man wenigstens aus Fehlern, ohne andere zu 
schädigen.

von Richard B. (r71)


Lesenswert?

mec schrieb:
> die sich mit Laser die Augen ruinierten

Was war los?

Conny G. schrieb:
> auch schon einen Stencil aus Messingfolie gemacht

Wo hast du die Folie her?

von mec (Gast)


Lesenswert?

Da will man Leute auf reale gefahren Aufmerksam machen, und dann wird es 
gelöscht, Toll danke.
Macht halt die gleichen Fehler nochmal, wie schon hunderte vor euch, 
welche aus Leichtsinn jetzt irreparable schäden haben.

von Florian W. (florenzw)


Lesenswert?

@Conny:
Auf die Sache mit den Stencils bin ich schon sehr gespannt, da ich bis 
jetzt die SMDs noch mit der Hand löte und auf Grund zunehmender 
Komplexität meiner Konstruktionen das dringende Bedürfnis habe auf den 
Ofen umzusteigen.

Bei der Heizplatte habe ich nur Umrisse gesehen. Funktioniert das 
Ausfüllen der Flächen bei dir?

von Conny G. (conny_g)


Lesenswert?

Richard B. schrieb:
> Conny G. schrieb:
>> auch schon einen Stencil aus Messingfolie gemacht
>
> Wo hast du die Folie her?

Ich hätte mir sowas vorgestellt:
https://www.amazon.de/Ibico-Einbanddeckel-0-3mm-PP-Folie-schwarz/dp/B0050CHKD8/
Nur noch dünner, 150-200µ.
Schwarz, damit der Laser aus eine Chance zum Schneiden hat, bei 
Klarsicht (die hätte ich schon da) bewegte sich da bei einem Versuch 
früher nicht viel :-)

von Conny G. (conny_g)


Lesenswert?

Florian W. schrieb:
> @Conny:
> Bei der Heizplatte habe ich nur Umrisse gesehen. Funktioniert das
> Ausfüllen der Flächen bei dir?

Nicht ausprobiert, bisher.

von Richard B. (r71)


Lesenswert?

Conny G. schrieb:
> Hab auch schon einen Stencil aus Messingfolie gemacht
> (Tonertransfer und ätzen wie eine Platine) und hat gut geklappt...

Ich meinte diese Messingfolie :)

von Conny G. (conny_g)


Lesenswert?


von Conny G. (conny_g)


Lesenswert?

Richard B. schrieb:
> Conny G. schrieb:
>> Hab auch schon einen Stencil aus Messingfolie gemacht
>> (Tonertransfer und ätzen wie eine Platine) und hat gut geklappt...
>
> Ich meinte diese Messingfolie :)

Sowas hier:
http://www.steingraeber-modelle.de/Messingblech-200-x-300-x-02-mm_RBM05502

Ich hab's zuletzt mit Tonertransfer gemacht, habe auch einen 
Positiv-Sprühlack da, den ich mal probieren wollte.

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Getestet.
Leider lassen sich bei ca. 70mW (so ist der Laser gerade eingestellt) 
noch keine Folien von 0,2mm schneiden.
Da wird nur fleissig herumgeschmolzen, aber egal wie langsam man fährt - 
es geht nicht durch.
Mal demnächst nochmal mit mehr Leistung (100mW) und einer Diode von 
300mW versuchen, die irgendwann mal per Post kommen sollte.

von Florian W. (florenzw)


Lesenswert?

Das sieht sehr gut aus. Ein bisschen mehr Leistung, dann sollte das 
funktionieren.
Du hast den, ich nenne ihn mal, Stencil-Layer als Gerber exportiert und 
dann durch das Skript gejagt?

von Klaus (Gast)


Lesenswert?

Conny G. schrieb:
> Da wird nur fleissig herumgeschmolzen, aber egal wie langsam man fährt -
> es geht nicht durch.

Hat die Folie hinten aufgelegen?

MfG Klaus

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Florian W. schrieb:
> Das sieht sehr gut aus. Ein bisschen mehr Leistung, dann sollte das
> funktionieren.
> Du hast den, ich nenne ihn mal, Stencil-Layer als Gerber exportiert und
> dann durch das Skript gejagt?

Genau, "tCream" und "bCream" (top/bottom) heissen die in Eagle.

Ich habe dafür auch die Geschwindigkeiten von Move, Perimeter und 
Filling differenziert, da man hierfür beim Lasern 10-100mm/min fahren 
möchte, aber die reinen Moves lieber 2500-10000 sein sollten - sonst 
dauert das ewig zum nächsten Pad zu fahren :-)

von Conny G. (conny_g)


Lesenswert?

Klaus schrieb:
> Hat die Folie hinten aufgelegen?

Nein, wg. der Steifigkeit des Teils, das ich zum Testen verwendete ist 
es tlw. 0,5-1mm in der Luft.
Habe alternativ auch so eine silberne Antistatiktasche versucht, die 
wird auch nur aufgeschmolzen und nicht "durchgebrannt".

: Bearbeitet durch User
von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Weitere Versuche gemacht. Laserstrom auf 120mA erhöht, das müsste dem 
Laser gute 100mW Leistung geben. Und gaaanz langsam gefahren, wenige 
mm/min. Ich glaube sogar, dass der Drucker schon nicht mehr langsamer 
kann, denn jede weitere Reduzierung erschien mir eigentlich gleich 
"schnell".

Trotzdem liess sich die PP Folie von 0,2mm nicht "schneiden". Die wird 
nur durchgeschmolzen, das ist weder zuverlässig noch akkurat.

Das habe ich dann aufgegeben, da müsste man ein Folienmaterial suchen, 
das ein bisschen andere Eigenschaften hat und sich vielleicht mehr 
"schneiden" als "schmelzen" lässt.

Ich habe aber einen Versuch mit trivialem Papier gemacht.
Mangels schwarzem Papier einen Notizzettel von 0,1mm Dicke mit Edding 
schwarz gemacht.
Das lässt sich wunderbar schneiden, absolut scharfe Kanten. Muss man 
auch langsam fahren, aber geht gut. Und riecht nach verkohltem Papier 
nicht nach geschmolzenem Kunststoff, auch angenehmer ;-)

Das dann mit Plastiklack angesprüht um die Oberfläche glatt und weniger 
saugfähig zu machen.
Und dann mal einen Stencil-Test mit alter, abgelaufener Lötpaste 
gemacht. Funktioniert!

Das Papier nur 1x mit Lack angesprüht saugt allerdings noch zuviel und 
nimmt die Lötpaste auf. Hatte eine 1cm Wurst drauf, die ist zu 50% im 
Papier verschwunden.
Wäre das eine ganze Platine bräuchte man mehrere Gramm Paste...

Ich würde deshalb mal weitere Versuche mit lackiertem oder 
kunststoffbeschichtetem Papier machen.
Aber Einweg-Papier-Stencil - das ist doch schon mal was!
Glaube sogar mit lackiertem Papier ist der auch ein paar Mal verwendbar.

Das Papier muss allerdings schwarz sein, sonst schneidet es sich sehr 
viel mühsamer. Ein erster Versuch mit weißem Papier war nicht 
überzeugend. Man braucht vermutlich 2 Runden, in der ersten wurde das 
weiße Papier erstmal nur braun.

von Conny G. (conny_g)


Lesenswert?

Grad noch mit einem 0,15mm vermutlich ca 150-200g Hochglanzpapier 
versucht (ein Flyer). Auch mit Edding geschwärzt.
Das hat nicht funktioniert. Es hat nur den Edding weggebrannt, darunter 
kam das weiße Papier zum Vorschein, das wurde nicht weiter "beschädigt". 
Auch mit 2 Runden Lasern nicht. Hochglanzpapier ist deutlich dichter als 
Normalpapier, das schneidet sich schwieriger.
Auf jeden Fall muss das Papier also schwarz durchgefärbt sein.

von roehre (Gast)


Lesenswert?

Hallo Conny,
deine Laserleistung von 100-150 mW reicht nur zum an schmelzen , um 
saubere Kanten zu bekommen , bräuchtest Du mindestens 2000 mW mit kurzen 
Impulsen um den Kunststoff zu verdampfen. Dann bildet sich auch kein 
Grat.
Schau dir mal den Beitrag von " VDX "
http://laserfreak.net/forum/viewtopic.php?f=25&t=54351&start=140

lG Frank

von roehre (Gast)


Lesenswert?

Ach so ,
ich mache meinen G-Code in Eagle mit FastGcode.ulp

https://www.mikrocontroller.net/attachment/233520/FastGcode.jpg
Frank

von Conny G. (conny_g)


Lesenswert?

roehre schrieb:
> Hallo Conny,
> deine Laserleistung von 100-150 mW reicht nur zum an schmelzen , um
> saubere Kanten zu bekommen , bräuchtest Du mindestens 2000 mW mit kurzen
> Impulsen um den Kunststoff zu verdampfen. Dann bildet sich auch kein
> Grat.
> Schau dir mal den Beitrag von " VDX "
> http://laserfreak.net/forum/viewtopic.php?f=25&t=54351&start=140

Da ging's aber um Schneiden von 3-4mm Balsa/Pappelholz.
Manche schneiden 75µ Vinylfolie mit 200-300mW (maximal):
https://hardwarebreakout.com/2013/03/diy-laser-cutter-for-pcb-stencils/

Ich finde Papier gerade ganz spannend. Wenn man Glanzpapier von 
0,7-0,1mm bei 100mW zum Schneiden bringen könnte, ist das eine der 
einfachsten Methoden überhaupt.

von Conny G. (conny_g)


Lesenswert?

roehre schrieb:
> Ach so ,
> ich mache meinen G-Code in Eagle mit FastGcode.ulp
>
> https://www.mikrocontroller.net/attachment/233520/FastGcode.jpg
> Frank

Auch spannend, muss ich mir mal ansehen. mit dem PCB-GCode war ich nicht 
so happy als ich mir das mal angesehen hatte.

Der Gag von Florian's Script ist, dass es Isolieren und Rastern 
kombiniert, es kann per Rastern auch die Flächen abtragen. Das habe ich 
so noch bei keinem Script gesehen.

von roehre (Gast)


Lesenswert?


von Johannes S. (Gast)


Lesenswert?

ich habe auch schon Stencils aus Mylar Folie gelasert, 125 µm dick und 
milchig weiss. Auf einer Maschine mit 30 W CO2 Laser, eingestellt auf 12 
% Laserleistung und 20-30 mm/s Speed (Werte aus dem Kopf). Bei mehr 
Leistung gibts ein Feuerwerk in der Maschine. Ob die Leistungsangabe 
linear ist weiss ich nicht, aber ein paar 100 mW sind definitiv zu wenig 
für so eine Folie.
Bei der Folie bleiben die Stege zwischen Pins bei TQFP noch stehen, 
verbiegen sich aber beim Rakeln. Papier wird da noch eingeschränkter 
sein.

von Robin E. (why_me)


Lesenswert?

Conny G. schrieb:
> Auch spannend, muss ich mir mal ansehen. mit dem PCB-GCode war ich nicht
> so happy als ich mir das mal angesehen hatte.
>
> Der Gag von Florian's Script ist, dass es Isolieren und Rastern
> kombiniert, es kann per Rastern auch die Flächen abtragen. Das habe ich
> so noch bei keinem Script gesehen.

Richtig interessant wird es ja, wenn man noch einen variablen Fokus und 
variable Leistung einstellen kann. Mit einem ganz feinen Laser die 
Kontur belichten, dann mehr Leistung und größerer Punkt für die Flächen.

Dürfte eigentlich nicht so schwer sein, könnte man über Z Achse und 
Spindelgeschwindigkeit machen.

von Florian W. (florenzw)


Lesenswert?

Robin E. schrieb:
> Richtig interessant wird es ja, wenn man noch einen variablen Fokus und
> variable Leistung einstellen kann. Mit einem ganz feinen Laser die
> Kontur belichten, dann mehr Leistung und größerer Punkt für die Flächen.
>
> Dürfte eigentlich nicht so schwer sein, könnte man über Z Achse und
> Spindelgeschwindigkeit machen.

Das ist mir auch schon durch den Kopf gegangen. Absolut möglich. Ich 
vermute, dass sich mit einer solchen Optimierung, die Belichtungszeit 
nochmal halbieren ließe.

von Richard B. (r71)


Lesenswert?

roehre schrieb:
> Dann bildet sich auch kein Grat.

Ja, so ist das nämlich unbrauchbar.
Ansonsten->Toll :)

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Habe es mit etwas Optimierung geschafft auch reguläres weißes Papier zu 
schneiden. Das müsste man halt noch mit Lack/Haarspray etc. bearbeiten 
damit es die Lötpaste nicht aufsaugt. (Letztes Foto).

Vinylfolie geht. Stinkt allerdings fürchterlich. Und die Ränder sind 
nicht so hübsch, weil es auch teilweise schmilzt. Man merkt schon, dass 
die 100mW wirklich die unterste Grenze für sowas sind.

Aber man kann die Lötpaste erfolgreich aufrakeln. Ist nicht ganz sauber 
und die QFN Stege reissen tlw. weg, aber per Hand mit 
Spritze/Zahnstocher bekomme ich es sicher nicht besser hin - insofern 
tut es wohl seinen Zweck. Umsomehr wenn man Lötstopplack / Laminat drauf 
hat.

Also habe ich jetzt zwei Lösungen für Stencils.
Nein sogar drei, Messingfolie ätzen geht ja auch noch. Inzwischen steht 
die Küvette immer bereit wäre also auch moderat viel Aufwand. Würde ich 
auch nochmal probieren, mit Sprühfotolack. Da hat man zwar ein Problem 
mit gleichmässiger Schichtdicke des Lacks, aber den Laser etwas stärker 
eingestellt könnte das trotzdem klappen. Oder mit Edding anmalen und 
wegbrennen... :-)

Ich habe das Script hierfür noch etwas angepasst, dass es jeden 
Perimeter wenn er fertig ist nochmal rückwärts abfährt. Bei den 
Fokustests beobachtet: Der Knackpunkt ist das "Durchstechen" des Lasers, 
v.a. bei weißem Papier, das dauert einen Moment. Sobald es dann "braun" 
ist beim Fokus geht es wie Butter. Und dann es passiert es oft, dass 
eine Seite eines Pad nicht geschnitten ist bis er durchsticht. Wenn er 
nochmal rückwärts fährt gibt es das fast nicht mehr.
Wäre auch noch eine Möglichkeit in der Druckerfirmware das G4 Dwell zu 
implementieren, dass er ein paar Millisekunden stehen bleibt bevor er 
den nächsten Move macht. Würde mir fast noch besser gefallen, ist aber 
mehr Aufwand :-)

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Johannes S. schrieb:
> Bei der Folie bleiben die Stege zwischen Pins bei TQFP noch stehen,
> verbiegen sich aber beim Rakeln. Papier wird da noch eingeschränkter
> sein.

Gerade das Gegenteil bewiesen, siehe Fotos!

Ich habe dem Papier 2 Schichten Haarspray gegeben. Ich meine da wäre 
Klarlack besser, Haarspray macht keine recht viel glattere Oberfläche.

Aber die "Schärfe" der Lötpasten-Pads ist sehr viel besser als Vinyl und 
die Stege haben mehrfaches nicht zimperliches darüberrakeln ausgehalten, 
auch als die Lötpaste schon etwas zäher/trockener war nachdem das Papier 
die Flüssigkeit rauszog.

Also Papier ist aktuell mein Favorit für "Einwegstencils" :-)
Das ist ja für Einzelplatinen total easy: Gerber exportieren, Script 
drüber, Papier in den "3D Drucker Cutter", Lasern, Klarlack drauf, 
rakeln.

Da kann man jetzt noch nach optimalerem Papier suchen. Ich habe hier 
einfach einen Notizzettel verwenden, das müsste so ein 08/15 Standard 
80g-Papier sein wie es sich anfühlt.

Das Papier funktioniert sogar besser als der Messing-Stencil den ich mal 
gemacht hatte, der hatte wg. Unterätzung auch recht unregelmäßige 
Kanten, wie das Vinyl.

von Richard B. (r71)


Lesenswert?

Könntest du das mit der Avery 3491 Folie versuchen?

von Conny G. (conny_g)


Lesenswert?

Richard B. schrieb:
> Könntest du das mit der Avery 3491 Folie versuchen?

Du meinst durchschmelzen/brennen?
Ich würde meinen, dass das so ausgeht wie meine ersten Folienversuche 
mit PP und den Antistatic-Taschen - das schmilzt ein bisschen herum 
(wenn überhaupt) und nichts weiter passiert.
Bei den Antistatic-Taschen konnte ich nachher nichtmal viel Beschädigung 
sehen.

Bei dieser schwachen Leistung von 100mW braucht es einen "Katalysator" 
für die Energie des Lasers, schwarze Farbe oder ein braun werden von 
Papier. Dann wird die Energie absorbiert und in Wärme gewandelt und dann 
passiert was.
Bei durchsichtiger Folie geht der Strahl einfach zu 90% durch die Folie, 
also muss er 10x so stark sein, also 1+ Watt.

von Conny G. (conny_g)


Lesenswert?

Habe jetzt mal das Dwell implementiert bzw. genau gesagt das M62/M63, 
dann kann ich den Laser für einen Moment stehen lassen:
1
G1 X0 Y0 F250
2
G4 P0          -> Sync erzwingen
3
M62            -> Laser an
4
G4 P100        -> 100ms warten
5
M63            -> Laser aus
6
G1 X10 F1 B1   -> 10mm fahren mit Laser an (B1)

Das erste G4 P0 erzwingt das Sync mit den Moves, ansonsten rauscht er 
einfach über das M62 drüber.
100ms scheint noch etwas knapp zu sein für das "Durchstechen". Sieht 
besser aus als vorher, aber noch nicht perfekt.

von Richard B. (r71)


Lesenswert?

Conny G. schrieb:
> Du meinst durchschmelzen/brennen?

Ja, das meinte ich.
Ich dachte, die ist nicht so empfindlich...

von Conny G. (conny_g)


Lesenswert?

Conny G. schrieb:
> 100ms scheint noch etwas knapp zu sein für das "Durchstechen". Sieht
> besser aus als vorher, aber noch nicht perfekt.

Jetzt mit 2 Sekunden wird es besser, aber ist immer noch nicht 
zuverlässig. Kommt immer noch vor, dass der Durchstich erst nach ein 
0,5-1 Millimetern erfolgt.
D.h. die "Rückfahrt" auf dem Perimeter sollte ich drin lassen, sonst ist 
es nicht sicher durchgeschnitten.

von Conny G. (conny_g)


Lesenswert?

Jetzt ist mir noch etwas eingefallen, wie ich 2 Dinge verbessern kann:
Mit dem Laserdrucker eine schwarze Fläche auf das Papier drucken :-)

Einerseits erhöht das die Energie, die vom Laser verwertet wird enorm, 
der "Durchstich" erfolgt sofort (das Papier muss nicht geschwärzt werden 
durch den Laser, es ist bereits schwarz) und die Geschwindigkeit mit der 
ich fahren kann  ist mindestens doppelt so hoch (aktuell teste ich mit 
50mm/min bzw. knapp 1mm/s).

Andererseits versiegelt der Toner die Oberfläche des Papiers - Toner 
besteht ja aus einem hohen Anteil Kunststoff - und das Rakeln sollte 
besser gehen, die Paste weniger schnell trocken werden.

Versuchsreihe läuft.

So sieht das dann aus:

https://www.youtube.com/watch?v=UcV6X_HnsTk

: Bearbeitet durch User
von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Eine Schicht Plastik 70 drauf (einmal deckend eingesprüht), 10min 
trocknen, geht! Die Oberfläche ist dann eigentlich so glatt wie eine 
Folie es wäre. Die Kombi gutes/glattes Papier (wir haben immer gutes 
80g-Papier im Drucker), Toner und am Ende Lack drauf ist perfekt.

Leider hab ich mir beim Bereinigen mit der Pinzette Stege beim QFN 
abgerissen, ein paar Papierchen hingen noch ein bisschen an. Liessen 
sich aber sehr einfach entfernen.
Aber man kann auch kräftig herumrakeln - der Rest hält!

Also ich finde das eine charmante, supersimple Lösung für einen schnell 
selbstgemachten Einwegstencil!
Das Lasern hat ca. 5min gedauert.

von fpga (Gast)


Lesenswert?

>Mit dem Laserdrucker eine schwarze Fläche auf das Papier drucken :-)

Aber dann könnte man doch auch wieder gleich das Layout drucken? Und man 
hat wieder mehr Materialverbrauch. Geht nicht einfach schwarzes Papier?

Gruß J

von Conny G. (conny_g)


Lesenswert?

fpga schrieb:
> Aber dann könnte man doch auch wieder gleich das Layout drucken?

Was würde mir das helfen?

> Und man hat wieder mehr Materialverbrauch.
> Geht nicht einfach schwarzes Papier?

Schwarzes Papier müsste auch gehen, wenn es die "Dichte" von 
Druckerpapier hat. (Prospektpapier etc. ist zu dicht, das schneidet sich 
auch wieder schwerer. )
Dann ist aber möglicherweise die Oberfläche wieder rauer, schlecht für's 
Rakeln, das "Frisst" die Paste.
Ich finde das Toner aufdrucken als Versiegelung und Schwärzen 
gleichzeitig eine gute Lösung. Brauche ich auch kein Spezialpapier 
kaufen, alles immer im Haus.

von fpga (Gast)


Lesenswert?

>Was würde mir das helfen?

Sorry ich war noch bei den pcbs - bei den Stencils macht das Sinn.
Hast du nicht ein XY-Tisch/Portal? Dann könnte sowas doch cool sein, die 
Auger-Pumpe ist toll.

https://www.youtube.com/watch?v=PeYb3snGrU8

Gruß J

von Conny G. (conny_g)


Lesenswert?

fpga schrieb:
> Hast du nicht ein XY-Tisch/Portal? Dann könnte sowas doch cool sein, die
> Auger-Pumpe ist toll.

Ja, die ist cool. :-)

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Lasere gerade mal wieder einen Papier-Stencil mithilfe des gbr2laser 
Scripts :-)

von Guido B. (guido-b)


Lesenswert?

Interessante Spannmethode! ;-)

von Conny G. (conny_g)


Lesenswert?

Guido B. schrieb:
> Interessante Spannmethode! ;-)

Hat sich zuviel gewellt, also die nächstbesten Gegenstände gegriffen. 
:-)

von Florian W. (florenzw)


Lesenswert?

Das gefällt mir sehr gut. Jetzt muss ich mir auch eine stärkere 
Laserdiode gönnen :-)

Ist die beschriebene Methode:
80g/m²-Papier, mit dem Laserdrucker schwärzen, Plastikspray, mit dem 
Laser ausschneiden so noch aktuell?
Mit welcher Leistung und Wellenlänge schneidest du, Conny?

von Conny G. (conny_g)


Lesenswert?

Florian W. schrieb:
> Das gefällt mir sehr gut. Jetzt muss ich mir auch eine stärkere
> Laserdiode gönnen :-)
>
> Ist die beschriebene Methode:
> 80g/m²-Papier, mit dem Laserdrucker schwärzen, Plastikspray, mit dem
> Laser ausschneiden so noch aktuell?
> Mit welcher Leistung und Wellenlänge schneidest du, Conny?

Ja:
90g/m2 Papier
Mit dem Laserdrucker schwärzen
Mit 100mW UV-Laser ausschneiden
Plastikspray/Lackspray

Ist gerade etwas mühsamer, brauche 3-4 Passes, weil ich meinen 
Lasertreiber auf kleinere Leistung eingestellt habe, die ich für die 
Platinen brauche, Ich glaube ich bin gerade bei 25mA statt 100mA.
Heisst also für schwarzes 80-90g Papier reichen 100mW aus.

Allerdings brauchte ich wieder 2h um den Gerber-Export von Eagle zu 
fixen, da hatte ich ja rausgefunden, dass man die ResX/ResY und die 
Float-Formatierung richtig einstellen muss.
Und leider hab ich mir eine alte Eagle-Installation abgelöscht wo ich 
das gemacht hatte, das eagle.def liegt nämlich default im 
Programmverzeichnis. So ein Schmarrn eigentlich... ;-)

Falls jemand die Eagle-Settings braucht, so hab ich es zum Laufen 
gebracht:
1
[GERBER_RS274X_46]
2
3
@GERBERAUTO
4
Long          = "Gerber RS-274-X photoplotter, coordinate format 4.6 inch"
5
Units         = MM
6
Info          = "Plotfile Info:\n"\
7
                "\n"\
8
                " Coordinate Format : 4.10\n"\
9
                " Coordinate Units  : MM\n"\
10
                " Data Mode         : Absolute\n"\
11
                " Zero Suppression  : None\n"\
12
                " End Of Block      : *\n"\
13
                "\n"
14
Init          = "G75*\n"           \ allow positive and negative coordinates
15
                "%%MOMM*%%\n"      \ MOde of units is INch (MM for mm)
16
                "%%OFA0B0*%%\n"    \ horizonal and vertical OFfset is 0
17
                "%%FSLAX46Y46*%%\n"\ Format Statement is Absolute (I for incremental) 2.6
18
                "%%IPPOS*%%\n"     \ Image Polarity is POSitive (NEG for negative)
19
                "%%LPD*%%\n"       \ Layer Polarity Dark (C for clear on negative planes)
20
                "%%AMOC8*\n5,1,8,0,0,1.08239X$1,22.5*\n"\ Octagons are emulated with a circle (using 8 vertices)
21
                "%%\n"            ; and therefore the diameter must be enlarged with '1 / cos(pi / 8)'
22
Reset         = "M02*\n"
23
ResX          = 25400000
24
ResY          = 25400000
25
Move          = "X%4.10dY%4.10dD02*\n"    ; (x, y)
26
Draw          = "X%4.10dY%4.10dD01*\n"    ; (x, y)
27
Flash         = "X%4.10dY%4.10dD03*\n"    ; (x, y)
28
Circle        = "%%AD%sC,%8.6f*%%\n"        ; (code, diameter)
29
Rectangle     = "%%AD%sR,%8.6fX%8.6f*%%\n"  ; (code, dx, dy)
30
Oval          = "%%AD%sO,%8.6fX%8.6f*%%\n"  ; (code, dx, dy)
31
; According to the RS-274-X specs there is an aperture macro
32
; primitive that allows us to specify an octagon (i.e. a polygon with
33
; 8 vertices). As some Gerber viewers seem to have problems with that,
34
; we would have to use a round shape for that.
35
; If your Gerber processor cannot handle the polygon primitive you may
36
; uncomment the following line and comment out the line after it:
37
Octagon       = "%%AD%sC,%8.6f*%%\n"   ; (code, diameter) (looks like there is no octagon, so we take a circle)
38
;Octagon       = "%%AD%sOC8,%8.6f*%%\n" ; (code, diameter)
39
AreaBegin     = "G36*\n"
40
AreaEnd       = "G37*\n"

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Hat auch mit nur 25mA geklappt, aber brauchte 4 Durchgänge und 
Nacharbeit mit Pinzette. Die Schnippsel hingen noch an.
Der Lack trocknet gerade, eine Runde Plastik 70 je vorne und hinten. Das 
dürfte auch zusätzlich gegen das Ausreissen der dünnen Stege wirken. 
Obwohl das auch letztes Mal schon kein Problem war.

von Conny G. (conny_g)



Lesenswert?

Hat perfekt geklappt mit dem Papierstencil. Ich glaube man könnte den 
sogar noch ein zweites Mal verwenden.
Jetzt muss sie nur noch funktionieren, die Platine. :-)

von Conny G. (conny_g)


Angehängte Dateien:

Lesenswert?

Sie funktioniert.
Ist eine Funk-Vorlauf-Temperatur-Steuerung für die 23 Jahre alte 
Heizung.
Die Home-Automation-Zentrale funkt stündlich die Vorlauftemperatur, die 
nach der Außentemperatur der openweathermap.org-API berechnet wird.
Aktuell: 0 Grad, Vorlauftemperatur 68 Grad.

von Dirk R. (nixtodo)


Lesenswert?

Tolle Idee Pastenschablonen aus Papier!
Will ich auch mal probieren.

Wo kaufst du die Lötpaste? bzw. Welches Produkt verwendest du?

VG Dirk

von Conny G. (conny_g)


Lesenswert?


von Dirk R. (nixtodo)


Lesenswert?

Vielen Dank für die Info!

Die habe ich auch schon gekauft, nur halt nur manuell verwendet.

Noch eine Frage:
Auf dem Foto mit dem Papierstencil und der Lötpaste drauf. Ist das der 
komplette Inhalt einer Spritze? (10g / 2,5 ml)

Das wäre dann ja ziemlich teuer für nur eine Platine...

VG Dirk

von Conny G. (conny_g)


Lesenswert?

Dirk R. schrieb:
> Vielen Dank für die Info!
>
> Die habe ich auch schon gekauft, nur halt nur manuell verwendet.
>
> Noch eine Frage:
> Auf dem Foto mit dem Papierstencil und der Lötpaste drauf. Ist das der
> komplette Inhalt einer Spritze? (10g / 2,5 ml)
>
> Das wäre dann ja ziemlich teuer für nur eine Platine...

Hi Dirk,

nein, das dürfte maximal 1-2g sein.
An dem Papier bleibt schon vergleichsweise viel hängen, weil es trotz 
Lackspray noch eine recht raue Oberfläche hat. Aber lass es 0,5-1g mehr 
sein als sonst.

Die Platine ist irgendwas 7x7cm. Wenn da 0,1mm auf dem Papier bleiben, 
dann ergibt das 7x7x0,01 = 0,5ml oder 2g.
Das sind aber m.E. weniger als 0,1mm. Auf den Pads bleiben 0,1mm, das 
sieht schon anders aus.
Ich glaube der Gesamtverbrauch ist hier ca. 1g.

Vg,
Konrad

: Bearbeitet durch User
von herbert (Gast)


Lesenswert?

SMD Anfänger Frage: Ist es denn so schlimm wenn man die Lötpaste über 
eine Spritze  mit Hohlnadel aufbringt oder erlaubt das die Konsistenz 
der Lötpaste nicht? Lässt sich die Lötpaste nachträglich noch einstellen 
und wenn ja ,wo mit? Ein Stenzil für eine Platine halte ich schon für 
übertrieben aufwändig.
Danke schon mal

von Conny G. (conny_g)


Lesenswert?

herbert schrieb:
> SMD Anfänger Frage: Ist es denn so schlimm wenn man die Lötpaste über
> eine Spritze  mit Hohlnadel aufbringt oder erlaubt das die Konsistenz
> der Lötpaste nicht? Lässt sich die Lötpaste nachträglich noch einstellen
> und wenn ja ,wo mit? Ein Stenzil für eine Platine halte ich schon für
> übertrieben aufwändig.
> Danke schon mal

Hi Herbert,

nein, das kann man problemlos machen. Wenn man die Spritze etwas 
erwärmt, dann wird die Lötpaste flüssiger, manchmal sogar zu flüssig.
Das ist nur nervig auf Dauer. Nach ein paar Platinen macht das keinen 
Spass mehr ein paar dutzend Pads zu betupfen, beim Dosieren muss man 
sich halt ziemlich konzentrieren. Gerade größere Platinen über 20-30 
Pads ist nimmer lustig.

Deshalb mache ich lieber mit meinem Laser einen Stencil aus Papier, wie 
beschrieben, dafür muss ich dann nur noch ritsch-ratsch aufstreichen, 
fertig.
Muss ich nicht aufpassen, nicht denken, nicht die Luft anhalten um nicht 
zu zittern, gar nix.
Und der Stencil geht sogar mehr als einmal. Habe meinen letzten dann 
gereinigt und nochmal mit Lack besprüht, passt. Und ab hier stimmt die 
"Rendite" dann auf jeden Fall. :-)

: Bearbeitet durch User
von Dirk R. (nixtodo)


Lesenswert?

Hi Konrad,

heute bin ich mal dazu gekommen die LD an meine CNC Fräse zu bauen.

Während der Aufbauphase konnte ich schon Schwarz bedrucktes Papier 
ankokeln (manuell).
Nachdem die ganze Automatik jetzt läuft verändert sich an dem Papier 
nichts mehr... Selbst bei Stillstand und Dauerbeschuss und 100mA 
Diodenstrom... Da ist jetzt der Wurm drin...

Ich habe hier eine 405nm 100mW von 
http://www.insaneware.de/epages/61714203.sf/de_DE/?ObjectPath=/Shops/61714203/Products/blurayld 
mit einer Kunststofflinse.

Kann die LD kaputt gehen und trozdem noch leuchten?

Verrätst du mir dein Setup?
LD Type, Strom, Linse

VG Dirk

von Conny G. (conny_g)


Lesenswert?

Dirk R. schrieb:
> Während der Aufbauphase konnte ich schon Schwarz bedrucktes Papier
> ankokeln (manuell).
> Nachdem die ganze Automatik jetzt läuft verändert sich an dem Papier
> nichts mehr... Selbst bei Stillstand und Dauerbeschuss und 100mA
> Diodenstrom... Da ist jetzt der Wurm drin...
>
> Ich habe hier eine 405nm 100mW von
> 
http://www.insaneware.de/epages/61714203.sf/de_DE/?ObjectPath=/Shops/61714203/Products/blurayld
> mit einer Kunststofflinse.
>
> Kann die LD kaputt gehen und trozdem noch leuchten?
>
> Verrätst du mir dein Setup?
> LD Type, Strom, Linse

Hi Dirk,

ich glaube die Diode, die ich verwende ist aktuell die:
http://www.insaneware.de/WebRoot/Store20/Shops/61714203/MediaGallery/Laserdioden/SLD3235VF_405nm_100mw.pdf
oder eine "Schwester" davon.
An Strom verwende ich bis zu 90mA, derzeit 25mA - das reicht zum 
Platinen belichten.
Die Linse ist eine Glaslinse, die weniger absorbiert.

Das alles macht aber keinen großen Unterschied ich konnte ja sogar mit 
25mW Papier durchbrennen.

Die Dioden gehen sehr leicht kaputt, sie leuchten dann noch, aber die 
"Power" fehlt. Wenn sie vorher schwarzes Papier angekokelt hat und das 
jetzt nicht mehr tut, der Strom noch derselbe ist und Du auf/ab nach dem 
Fokus suchst und da aber auch nix passiert, dann ist 
höchstwahrscheinlich die Diode kaputt.

Mit Themopapier / Faxpapier kann man da wunderbar prüfen, justieren, 
experimentieren.
Verwende das den Fokus zu ermitteln. Ich fahre mit dem 3D Drucker einmal 
diagonal durch Z über die mit Thermopapier beklebte Platine und kann mir 
von Startpunkt zum Endpunkt und wo der Brandfleck/-strich ist dann per 
Strahlensatz ausrechnen, wo in Z der Fokus ist. Das hinterlege ich dann 
bei meinen Scripts als Konfiguration.

Ich habe inzwischen schon mindestens 5 Laserdioden durch. :-)
Habe mir da vor 2 Jahren 2x mal einen 5er Pack der Dioden aus China 
bestellt, für 20 Euro.
Das ist ratsam, denn man macht immer mal einen Fehler bei der 
Strom-Messung oder beim rumstecken und das war's dann.

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.