Platinen-Bestückung: Billig-CNC-Fräse als Lötpasten-Dispenser (Teil 2)

Teure Edelstahl-Pastenschablonen erspart man sich mit unserem DIY-Dispenser: Im zweiten Teil geht es um die Software und Tipps für erfolgreiches Arbeiten.

In Pocket speichern vorlesen Druckansicht 9 Kommentare lesen
Lesezeit: 8 Min.
Von
  • Carsten Meyer
Inhaltsverzeichnis

Für die Ansteuerung unseres CNC-Dosierers aus Teil 1 des Projekts für einen Lötpasten-Dispenser im Selbstbau benötigt man ein Programm, das die Pad-Positionen aus den vom Layout-Programm ausgegebenen Gerber-Daten in G-Code-Befehle für die GRBL-Steuerung umsetzt und mit 115200 Bd/8n1 an den virtuellen COM-Port (die Fräsensteuerung arbeitet wie viele Arduino-Clones aus China mit dem USB-Seriell-Umsetzer CH340) ausgibt.

Die Gerber-Schablonendatei enthält ganz zu Anfang eine Format-Spezifikation und eine Liste mit den verwendeten "Blenden", also den Pad-Abmessungen – ein Relikt aus Zeiten der CNC-Fotobelichter. Der Blendenliste folgen simple XY-Positionen; bei Pads sind sie mit dem Suffix "D03*" (Flash-Belichtung) abgeschlossen:

G04 EasyPC Gerber Solder Paste *
%FSLAX35Y35*% // Format-Spezifikation Vor-/Nachkommastellen
%MOIN*% // Inches, oder %MOMM*% für mm
%ADD11R,0.04128X0.05112*% // Definition Blende 11, Rechteck
%ADD13R,0.05900X0.09800*% // Definition Blende 13, Rechteck
%ADD14C,0.00787*% // Definition Blende 14, Kreis usw.
%ADD10R,0.07600X0.02100*%
%ADD12R,0.05112X0.04128*%
X0Y0D02* // Move-Befehl, Nullpunkt
D02*
D10* // Auswahl Blende 10
X106394Y103780D03* // XY-Koordinaten 1. Pad für Blende 10
Y108780D03* // Y-Koordinaten 2. Pad für Blende 10 usw.
Y113780D03*
Y118780D03*
Y123780D03*D02*
D11* // Auswahl Blende 11
X17644Y101644D03* // XY-Koordinaten 1. Pad für Blende 11
X25644D03*
X37644D03*
X45644D03*
...
M02* // Ende

Wir verwenden die Pad-Abmessungen, um bei größeren Pads mehr Paste aufzutragen und gegebenenfalls auf mehrere Punkte zu verteilen, so dass auch größere Bauteile (z.B. Spannungsregler) eine ausreichende Menge Lötpaste erhalten.

Wegen ihrer äußerst mächtigen Listen- und Tabellenfunktionen wählten wir für die Programmierung die Delphi-Entwicklungsumgebung von Embarcadero, die als Community Edition für Maker kostenlos heruntergeladen werden kann. Unser Dosier-Programm importiert nicht nur Gerber-Pastendaten, sondern kann auch einfache SMD-Patterns (etwa für SO- und BGA-Gehäuse) selbst anlegen. Das ist äußerst praktisch, wenn zum Beispiel ein BGA-Chip nach dem Auslöten nachbestückt werden muss; ein Pastenauftrag mit Schablone ist dann ja nicht mehr möglich, und niemand möchte 196 oder 256 Pastenkleckse von Hand aufbringen.

(Bild: Unser selbstgeschriebenes Dispenser-Programm legt auf wunsch auch einfache Patterns für Nachbestückungsaufgaben an.)

Nach einigen Experimenten fanden wir einen optimalen Dosier-Algorithmus: Zunächst fährt die Nadel mit etwa 2mm Z-Abstand an das Pad heran und es wird ein kurzer Druckluft-Impuls (50 bis 200ms, abhängig von der Pad-Größe) ausgelöst, so dass sich an der Kanülenspitze ein kleines Pasten-Tröpfchen bildet. Dann wird die Spitze mit Z-Höhe 0 aufgesetzt und rasch wieder nach oben gezogen; das Tröpfchen bleibt dann am Pad kleben. Bei größeren Pads (> 2,5mm) werden zwei oder vier Tröpfchen auf dem Pad verteilt.

Stellen Sie nach dem Start zunächst die Schnittstelle und deren Parameter ein (Button Setup). Für GRBL 0.9 verwenden Sie die Baudrate 115200, 8 Data Bits, 1 Stop Bit, kein Parity und kein Flow Control. Das Programm ist auch mit der neueren GRBL-Version 1.1 kompatibel, nutzt aber dessen luxuriöse Jog-Funktionen nicht. Nach den anschließenden Connect führt die Software ein automatisches Homing der Maschine durch, der Maschinen-Nullpunkt ist damit bekannt.

Wichtig ist, dass man vor dem Start den Nullpunkt der Platine einstellt. Da die Gerber-Pad-Daten möglicherweise einen (unbekannten) Offset aufweisen, ermittelt unser Programm nach dem Laden der Pad-Datei zunächst das am weitesten links unten liegende Pad (in der Grafik-Darstellung mit Ref Zero gekennzeichnet) und verwendet dessen Koordinaten als Ausgangspunkt. Dieses Pad fährt man nun mit den Jog-Tasten exakt mittig an, so dass die Kanülenspitze gerade an der Oberfläche kratzt, und setzt dann mit All Zero den Nullpunkt.

Der Z-Nullpunkt lässt sich mit einem Blatt Schreibpapier zuverlässig ermitteln: Das Papier auf die Platine legen und die Dosiernadel mit den Z-Jog-Buttons vorsichtig herunterfahren, bis das Papier ganz leicht eingeklemmt wird; die Z-Höhe beträgt dann 0,1mm. Dann das Papier wegziehen, weitere 0,1mm nach unten gehen und den Nullpunkt setzen.

Willkürlich ausgewähltes Pad als Referenzpunkt: Wenn das Blatt Papier unter der Dosiernadel ganz leicht eingeklemmt wird, ist die Nadelspitze noch 0,1mm von der Oberfläche entfernt.

Sie können in der Pad-Positionsliste aber auch ein anderen Pad als Referenz auswählen, wenn etwa wie im Bild das Pad links unten zu groß ist, um exakt seine Mitte bestimmen zu können; das in der Liste aktivierte Pad wird in der Grafik rot hervorgehoben. Dann genau dieses Pad auf der Platine anfahren, mit der rechten Maustaste auf den Listeneintrag klicken und im Pop-up-Menü den Eintrag Set Zero Reference (Nozzle is at this Pad) auswählen. Der Platinen-Nullpunkt wird dann automatisch berechnet, All Zero darf dann nicht mehr betätigt werden!

Damit Sie nicht viele hundert Pads auswählen müssen, um das passende zu finden, kann man in der Apertures-Liste eine Vorauswahl treffen. Klicken Sie hier auf eine Zeile mit einer kleine Blende, und die aktive Zeile der Pad-Positions-Liste springt dann automatisch auf das erste gefundene Pad mit ebendieser Blende (bzw. diesen Abmessungen). Für bestimmte Aufgaben (etwa Nachbestückung) ist es möglich, Blenden oder Pads zu deaktivieren oder neu zuzuweisen (siehe Einträge der Pop-up-Menüs). Es ist sogar möglich, nur ein einzelnes Pad neu zu "dispensen" (Pop-up-Menü in der Tabelle).

Unsere Vorgaben für Dosierzeit (Dwell ms) und Padgrößen-Multiplikator (Pad Mult), mit dem man die Dosierzeit je nach Pad-Abmessungen verlängert, sind empirisch ermittelt, gegebenenfalls müssen Sie diere Werte nach Bedarf und Dosiernadel-Durchmesser anpassen. Das Programm merkt sich seine Einstellungen in einer INI-Datei im gleichen Verzeichnis, das gilt auch für die Schnittstellen-Parameter (über den Button Setup).

Den VACUUM-Regler am AD-982 benötigen wir nicht, er wird ganz nach rechts gedreht; die eingebaute Vakuumdüse verbraucht sonst ständig Druckluft. Bei dünnflüssigen Medien sorgt er ansonsten dafür, dass ein Unterdruck die Flüssigkeit wieder etwas in die Dosierspritze zurücksaugt. Gute Ergebnisse erzielten wir mit einem eingestellten Druck von 3 Bar, auf dem auch unsere Dosierzeit-Vorgben basieren.

Damit der vom Programm errechnete Dosierimpuls ausgegeben wird, muss der grüne Schalter am AD-982 auf "MAN" stehen. Als Dosiernadel verwenden wir extrakurze, stumpfe Luer-Kanülen mit 0,8mm Außendurchmesser oder für sehr feine BGA-Pads solche mit 0,7mm. Die bei Lötpasten-Spritzen oft mitgelieferten 1,25-mm-Kanülen sind schon für IC-Pads zu grob. Die Farbcodes der Dosiernadeln sind leider bei chinesischen Fabrikaten abweichend von üblichen Konventionen – am besten mit der Schieblehre ausmessen.

Für wenige Euro erhält man bei Amazon ein solches Set mit Dosiernadeln. Die ganz dünnen Nadeln sind allerdings nur für dünnflüssige Medien geeignet, brauchbar sind hier die blauen, violetten und rosafarbenen, für größere Pads auch die schwarzen.

Bedenken Sie, dass die Lötpaste nach spätestens einem Tag eintrocknet und dann die Kanüle verstopft; diese ist dann unbrauchbar. Wir bewahren unbenutzte, aber bereits benutzte Kanülen deshalb in einem kleinen Gläschen fest verschlossen in mit Isopropanol getränktem Küchenkrepp auf. Für den Fall, das eine neue oder längere Zeit unbenutzte Kanüle verwendet wird, gibt es in unserer Software einen Feed Air-Button. Man drückt ihn so lange, bis (bei hochgefahrener Z-Achse) ein feines Würstchen an der Kanüle erscheint, das man vor dem Dosiervorgang natürlich abwischen muss. Beim Wechsel der Dosiernadel wird oft eine kleine Luftblase eingeschlossen, auch diese muss vor dem Dispensen mit dem Feed Air-Button herausgedrückt werden.

Zum Löten der Platine eignet sich zum Beispiel unsere Bügeleisen-Reflow-Station, aber natürlich auch jeder Reflow-Ofen. Das Ergebnis kann sich sehen lassen.

Die Materialliste, ein ausführbares Programm und die Delphi-Sourcen finden Sie in unserem Github-Repository zum Projekt.

(cm)