Unsere Platinen-Fräse benutzen

Seit einiger Zeit steht eine Gravurmaschine (Roland Camm-2 PNC-2100) in der Station herum. Diese sollte sich eigentlich ganz gut dazu eignen, um Leiterplatten maschinell zu fräsen und zu bohren. Das ist zwar nicht so schön wie ätzen, aber hoffentlich weniger schmutzig.

Die Maschine besteht aus einem Graviertisch und einem Steuergerät. Der Graviertisch hat eine in y-Richtung (vor/zurück) bewegliche Arbeitsplatte und eine in x-Richtung (links/rechts) bewegliche Gravurnadel. Die Gravurnadel ist austauschbar und wird von einer in z-Richtung (hoch/runter) beweglichen Spindel gedreht. Das Steuergerät versteht HPGL – eine Text-basierte Sprache für Vektorgraphiken. Angeschlossen an einen Computer wird es am einfachsten über die Parallele Schnittstelle.

Keine Bilder gefunden.

Die nächsten Schritte

  • Anleitungen erstellen
  • später mal mit dem großen Bohrer neu planfräsen: den 1mm Versatz beibehalten. Da es ein richtiger Bohrer ist, können wir den unbeaufsichtigt laufen lassen.
  • weitere Bohrköpfe kaufen: 0.8mm (MPK-PCB: SX30E-0800105-0) und Langlochbohrer :?: 1.0mm (MPK-PCB: LX30S-1000085-0), einen härteren Fräser (MPK-PCB: DA30-R0500030-0)
  • ein größeres Rad für den Spindelantrieb organisieren. Dann können mit höheren Umdrehungszahlen den Grat verringern und die Lebensdauer der Werkzeuge verbessern.

Inventar

  • Roland Camm-2 PNC-2100
  • original Roland Gravierstichel: 2x 0.32mm (und eine abgenutzter, jetzt >0.5mm), 2x 0.5mm, 1x 0.75mm (gut geeignet für Schraffuren, d.h. Flächen abfräsen?), einige breitere Gravierstichel für Plastik-Türschilder
  • MPK-Kemmer Bohrer: 10x 0.7mm, 9x 1.0mm (und ein abgebrochener, 1.5mm tief), 1x 5.2mm (zum Plan fräsen?)
  • MPK-Kemmer Fräser: 2x 0.5mm VHM Zweischneider (und ein abgebrochener, ca. 0.5mm tief), 3x 0.3mm VHM Zweischneider
  • 1x CopperCAM mit Lizenz
  • PHP-Skripte zum Plan-Fräsen u.ä.

Logbuch

26.01.2013

  • neue Kombination probiert: doppelseitig klebende Folie, ZDown=0.03mm, ZUp=1mm, VZdown=1mm/s, VZup=1mm/s (schneller :?:), VS=1mm/s; erst mit einem neuen 0.5mm Fräser probieren, wenn wir die Tiefe (Z-Null) zuverlässig im Griff haben.
  • eine kleine Druck-Software um die Werkzeugwechsel zu koordinieren und zwischendrin Z-Null neu justieren zu können (die Koordinaten der Bohrlöcher sind sichere Punkte, die Software kann den nächst-liegenden Bohrpunkt anfahren und dort pausieren, bis der Benutzer bestätigt, dass Z-Null neu ausgerichtet ist (geht leider nicht automatisiert!?!?!)
  • Unsere neu programmierte Frässoftware haben wir heute getestet.
    • Die Zeitberechnung scheint nicht zu stimmen. Das Programm wartet immer deutlich länger als die Fräse für die Arbeit wirklich braucht. Gerade beim Bohren ist das aufgefallen.
    • Ein Button zum Sofort-Fortsetzen wäre hilfreich
    • Die Tiefe und Geschwindigkeit beim Bohren hauen überhaupt nicht hin. Haben -1.7mm Tiefe eingestellt, aber die Löcher gehen trotzdem nicht durch
    • Das Einspannen der Bohrer ist schwierig, weil der Arbeitskopf zu tief ist. Es hilft ZUp deutlich zu erhöhen, z.B. +3mm, und dann einzuspannen. Vor dem Z-Kallibrieren sollte man das aber scheinbar wieder auf +1mm zurücksetzen sonst kommt es dort durcheinander.
    • Einige oder alle Tiefendaten (!PZ) kommen nicht in der Ausgabe von unserer Software an :(

12.01.2013

04.01.2013

  • Inzwischen vier mal das Steuermodul gefräst mit wechselndem Erfolg.
    1. Ausversehen hat es alles zwei bis drei mal gefräst (Vorschub: 5mm/s) ⇒ kein Grat, aber zu dick und Probleme mit Z-Null. Hat zu viel von den Pads und Leiterbahnen weggeschnitten.
    2. Z-Null besser eingestellt, nur einmal gefräst (Vorschub 5mm/s) ⇒ relativ viel Grat.
    3. Versuch schneller zu fräsen (Vorschub 15mm/s) ⇒ Fräskopf beim Konischen Ritzstichel ist nach einigen Zentimetern abgebrochen! ⇒ Zu schnell und leider auch noch zu tief, was die Sache nicht besser gemacht hat.
    4. Einen 0.5mm Fräser von MPK-PCB probiert (Vorschub 5mm/s) ⇒ ist eingetaucht und beim Fräsen gleich abgebrochen. Das Loch war deutlich zu tief und der Vorschub zu schnell. Blick ins Datenblatt hat das bestätigt :(
    5. Der abgebrochene Fräskopf hatte noch genug Spitze. Die haben wir missbraucht (Tiefe 0.03mm, Vorschub 5mm/s) ⇒ gut genug, alles war in den gewünschten Maßen aber recht viel Grat.
  • Dann haben wir versucht die 5. Version gebohrt. Der Bohrer ist Randolf runtergefallen und war dann nur noch 1.5mm lang :( Haben erst mit 5mm/s Plunge speed versucht. Da hat der Bohrer nach ein paar Löchern nicht mehr tief genug gebohrt. Haben Plunge speed auf 2mm/s geändert und das war dann zuverlässiger. Leider hatten wir Tiefe 1.5mm eingestellt und die Platine war 1.5mm dick. Da waren die Löcher nicht richtig durch. Das ließ sich mit einer Ankörnspitze manuell ausstechen. Das circular boring der 3.2mm Löcher (für M3 Gewinde) hat wunderbar funktioniert.
  • Die Platine mit Blechschere ausgeschnitten und dann mit Schleifpapier die Grate entfernt. Sieht nun ganz gut aus.
  • Wir hatten angefangen, Klebestreifen zu sparen, damit die Platine nicht so fest sitzt. Das hat zu merkwürdigen Bewegungen in Z-Richtung geführt. Deswegen waren wir immer zu tief.
  • Haben versucht, einen eigenen Plotter für CopperCAM zu definieren. Das geht im Prinzip, aber hilft uns nichts, weil es für die interaktiven Features (z.B. Z-Null ausrichten) wichtig ist, keine weiteren Daten zum Gerät zu schicken. Das geht also nicht so leicht. Die die Werte für ZDown und ZUp fehlen, die müsste man bei jedem Befehl noch hinzufügen (haben wir vergessen).

Konsequenzen:

  • Klebestreifen vollflächig aufbringen statt punktuell. Unbedingt einen Klebestreifen unter dem Messpunkt für Z-Null haben, sonst kann es nie stimmen.
  • Den Produktkatalog von MPK-PCB beachten! Dort sind Empfehlungswerte
    • Fräser Parameter für 0.5mm Durchmesser: 100k U/min RPM, 1.5mm/s Vorschub. Mit der Fräse schaffen wir nicht langsamer als 1.0mm/s Vorschub und 12k U/min (FIXME überprüfen ob U/min oder U/s). Daher werden wir immer Probleme haben, wenn der Fräser zu tief eintaucht. Die Schnittgeschwindigkeit für FR4 sollte 180m/min sein, bei 1/10 der Zielumdrehungszahlen daher auch 1/10 des Vorschubs wählen.
    • Bohrer Parameter für 1.0mm Durchmesser: 47.8k U/min RPM, 5mm/s Z-Vorschub runter, 40mm/s rauf. Aber wir schaffen die Umdrehungszahlen nicht. Bei 20k U/min wird für größere Bohrer 3mm/s empfohlen.
  • Da die Ungenauigkeit in Z-Richtung scheinbar mit dem vertikalen Vorschub zusammenhängt hilft es vielleicht, immer ganz langsam runter zu gehen.
  • keinen generischen Plotter in CopperCAM sondern einen eigenen Druckdienst als Post-Processor programmieren. Da haben wir viel mehr Spielraum und können auch die Werkzeugwechsel etc. korrekt implementieren.

03.01.2013

  • Haben die komplette Fläche plan gefräst. Jetzt kann man größere Platinen drauf befestigen ohne vorher zurecht schneiden zu müssen.
  • Test mit dünnem Teppichklebeband ⇒ bombig, haben die Leiterplatte fast nicht mehr vom Holz runter bekommen. Perfekt
  • Die konischen Gravierstichel von Roland sind an der Spitze abgeflacht. Das ist die Größenbezeichnung auf der Verpackung. Haben einen Test mit 0.32mm Stichel gemacht ⇒ wunderbar.
  • 1,05mm Bohrer von MPK-PCB ausprobiert: wunderbar!
  • es ist besser, schon im ersten durchlauf tief genug zu sein. ansonsten drückt er das kupfer nur runter und im zweiten durchlauf hat er es dann schwerer.
  • die höhe am startpunkt beachten! dort war die große platine leicht zu hoch.
  • höhere drehzahl wäre besser, weil weniger grat und sauberer schnitt ⇒ brauchen die große rolle für höhere Umdrehungszahlen
  • Die Fräse scheint mit der Zeit tiefer zu sinken, verliert ihre Z-Referenz in die ungute Richtung.
    • Fräszeit verkürzen ⇒ Möglichts jede Linie nur einmal fräsen, also zusätzliche Konturen auf 0, Tiefe so, dass einmal reicht, keine Copperplane sondern die Fläche richtig löschen
    • termisches problem, dass sich die Nadel ausdehnt? ⇒ regelmäßig Pausen. unangenehm weil selbstverstärkender Effekt
    • Z-Null regelmäßig neu bestimmen: zusätzliche IN Befehle einbauen, damit die Fräse die Tiefe neu ausmisst. Zum Beispiel einfach regelmäßig zur Origin fahren.
    • Duplikatunterdrückung: Mehrfach vorkommende Liniensegmente entfernen
    • Unnötige Auf-Ab-Bewegungen entfernen (PU;PD;)

Einstellungen für CopperCAM - Tool library:

  1. Engraving tool: Diameter 3mm, Profil conical, Angle 40°, Minimum diameter at bottom 0.32mm, Plunge speed 5mm/s, Maximum depth per pass 0.5mm
  2. Hatching tool: Diameter 3mm, Profil conical, Angle 40°, Minimum diameter at bottom 0.75mm, Plunge speed 5mm/s, Maximum depth per pass 0.5mm
  3. Drilling tool: Diameter 1.05mm, Profil cylindrical, Plunge speed 2mm/s

Einstellungen für CopperCAM - Selected Tools:

  1. Engraving tool: tool 1, Depth 0.05mm, Margin 0.1mm, Engraving speed 5mm/s
  2. Hatching tool: tool 2, Depth 0.05mm, Margin 0mm, Hatching speed 5mm/s
  3. Cutting tool: tool 2, Depth 0.4mm, Cutting speed 5mm/s
  4. Drilling tools: use clostest greater tool, tool 3, allow circular boring nein, drilling depth entsprechend Platine

Einstellungen für CopperCAM - Output data format:

  • HPGL Plotter
  • Scales: X=2,54 y=2,54, Z=-1

28.12.2012

  • Der Webshop von Kemmer-Präzision scheint nicht mehr gepflegt zu werden. Wir müssen da im Januar mal anrufen und schauen was lost ist.
  • Randolf hat bei Ebay Fräser und Bohrer von MPK-PCB bestellt: je drei Fräser 0.3mm und 0.5mm, sowie 10 Bohrer 1.05mm. Das hat wunderbar funktioniert und die waren nach einem Tag schon da.

15.12.2012

  • Haben mit der Abstandslehre geschafft, dass der Gravierstichel nicht mehr so tief eintaucht. Das Problem schein zu sein, dass sich die Nadelspitze ins Kupfer bohrt bevor die Maschine erkennt, dass es angekommen ist. Dadurch ist es dann schon von Anfang an zu tief. Die Abstandslehre schafft einen Pufferabstand, den man dann per Software kompensieren kann. Damit hatten wir erstaunlich gute Erfolge unter 0.8mm Dicke, vielleicht auch 0.5mm Dicke.
  • Erfahrungsbericht von einem anderen Roland CAMM Besitzer: http://mambohead.com/2010/12/convert-engraver-to-mill/. Ein Kommentar sagt, dass er das Steuergerät durch ein Rockcliff 4-axis board ersetzt hat. Wahrscheinlich dann mit Linux EMC2 als eigentlichen Steuerrechner. Andere scheinen den Roland PNC 2300 zum PCB-Fräsen zu verwenden: http://www.rolandforum.co.uk/viewtopic.php?f=33&t=672 und http://www.youtube.com/watch?v=hf0Vzbu5Dz8

08.12.2012

  • Haben die Testplatine auf der Holzplatte festgeschraubt. Es ist tatsächlich so, dass die Verschraubung die Platine unter Druck setzt, so dass sie sich in der Mitte leicht nach oben biegt.
  • Michael, Sigmar und Randolf haben eine kleine Testschaltung in KiCAD erstellt: Stromanschluss, LED, Vorwiderstand und ein weiterer variabler Vorwiderstand. Daraus haben wir PCB Layout erstellt und dann in CopperCAM importiert.
  • Um die kurzen Fräsköpfe leichter wechseln zu können, haben wir an der 0,0-Position unten links die Grundplatte angefeilt. Jetzt kann man die Werkzeuge nach unten entnehmen. Das wird später bei den noch empfindlicheren Werkzeugen sehr nützlich sein.
  • In CopperCAM kann man die Werkzeugtiefe einstellen. Das muss unbedingt korrekt gemacht werden, da diese Werte tatsächlich an die Fräse geschickt werden. Das ist uns aufgefallen, als die Graviernadel für die Platinenumrandung sehr tief in das Material ging. Leider haben die Einstellungen noch nicht gereicht, um die gewünschte Fräsbreite zu erreichen. Die gefrästen Linien sind noch ca. 0.8mm dick und manchmal leider dicker wegen der verbogenen Platte.
  • Randolf hat bei Kemmer Präzision Fräswerkzeuge für Leiterplatten bestellt. Mal schauen ob das noch vor Weihnachten klappt.
  • Für die Abstandsbolzen braucht man 3.3mm Bohrdurchmesser (M4 Gewinde) Gerade bei diesen Löchern lohnt es sich, präzise zu bohren, weil sich dann mehrere Leiterplatten leichter übereinander Stapeln lassen ohne innere Verspannung.

01.12.2012

  • haben 200x140x18mm Arbeitsplatte aus MDF im Baumarkt gekauft und das war super billig. Haben eine der alten Arbeitsplatten genommen, um die Löcher für die Schrauben anzuzeichnen. Beim Bohren muss man sehr exakt sein, sonst bekommt man diese Schrauben nicht rein, sondern macht nur das Gewinde kaputt. Wir haben die Löcher größer bohren müssen und selbst dann hat es gerade so gepasst. Bohrdurchmesser 3,2 und zum Versenken des Schraubenkopfes 6,0.
  • Dann haben wir ein Rechteck 160x120mm mit dem 3mm Zylinderkopf plan gefräst und eine Platine in passender Größe zurecht geschnitten.
  • Die Platinen aus unserem Lager sind einfach immer krumm. Das wollen wir durch festschrauben an allen Ecken beheben. Haben entsprechende Holztreib-Schrauben (M2?) rausgesucht und ein Programm geschrieben, dass mit der Fräse immer an den exakt gleichen Stellen bohrt. Leider war der kegelförmige Fräskopf nicht zum Bohren geeignet: Nach zwei Löchern hat die Fräse das aufgegeben und der Kopf ist nicht mehr in die Leiterplatte eingedrungen. Da werden wir wirklich richtige Bohrer brauchen.
  • Es gibt Schäfte mit 1/8'' (3.175mm) und mit 3.00mm Durchmesser. Wir haben 3.175mm.

24.11.2012

  • CopperCAM Lizenz gekauft und installiert
  • Eigene Software zum Planfräsen programmiert und getestet
  • CopperCAM richtig laufen lassen ⇒ geht im Prinzip aber brauchen solidere Arbeitsplatte und müssen unsere krummen Platinen noch systematischer festschrauben. Ansonsten drückt sich die Platine nach oben in den Fräskopf und dann stimmt die Tiefe nicht.

Mit einem 3mm Fräszylinder haben wir das Planfräsen auf Holzplatten geübt. Dazu haben wir ein PHP-Skript geschrieben, dass die Fräse streifenweise mit 1mm Versatz über die Platte schickt. Das klappte zufriedenstellend nachdem wir den Initialisierungsbefehl (IN) entfernt haben, denn bei jedem IN sucht die Fräse die z-Höhe neu und gräbt sich somit bei jedem Versuch weiter in die Platte ein.

Danach haben mal wieder versucht, testweise das Relaisboard der Ampelsteuerung zu fräsen. Dazu haben wir eine einigermaßen unkrumme Leiterplatte genommen und auf die Holzplatte aufgeschraubt und eine Graviernadel (45° 0.5mm) eingespannt. Die Leiterbahnen hat CopperCAM schön verarbeitet und wir haben diesmal auch geschafft, die Werkzeuge und Geschwindigkeiten richtig einzustellen. Leider war die Leiterplatte nicht gerade genug und die Verschraubung an ungünstigen Stellen. Deswegen hat sich die Leiterplatte dann nach oben in den Fräskopf gedrückt. Dadurch waren die Leiterbahnen nicht 0.5mm sondern 1mm dick geworden und ziemlich tief in das Material. Auch ist CopperCAM noch alle Konturen 2 mal abgefahren, das sollten wir versuchen auszuschalten.

Bis nächste Woche versuchen Sigmar und ich eine neue Arbeitsplatte zu organisieren. Die muss 14×20 cm groß, ca. 1.4cm dick und aus feinem Holz oder MDF sein. Wir werden die dann fest einschrauben anstelle der doch etwas wackligen Einspannvorrichtung und anschließend vorsichtig Planfräsen. Die Leiterplatinen werden wir dann weiterhin festschrauben, aber wir werden die Fräse vorher geschickt benutzen, um die entsprechenden Löcher in die Platine zu bohren. Präziser können wir das nicht per Hand :)

Achja, wir müssen nächstes mal unbedingt gleich einen Staubsauger ran halten. Ganz schön staubige Angelegenheit.

17.11.2012

  • wir haben CopperCAM ausprobiert. Super Software, wenn man sich durchgearbeitet hat. Läuft tadelfrei in WINE. Voraussetzungen:
    • Skalierungsfaktor 2,54 um von inch in cm umzurechnen, sonst ist das gefräste zu klein ;-)
    • Platine muss unbedingt plan sein, nicht verbogen. Rutscht gerne seitlich weg! Im Programm einen kleineren vorschub einstellen. 30 ist zu kräftig.
    • Tool-Durchmesser 0,5mm oder weniger. Sollte man als Mindestabstand auch in Kicad überall einstellen.
    • zum bohren müssten wir werkzeug wechseln.
  • LineGrinder läuft mit mono
    • …auf MacOS nicht richtig. Viele Darstellungsfehler, störrisches Verhalten usw.
    • läuft ordentlich unter Ubuntu, wenn man mono-full installiert hat.
    • Kommt auch mit den Masseflächen nicht klar, keine Möglichkeit zur Nachbearbeitung, kein Hatching um Flächen vom Kupfer zu befreien.
  • Recherchen zum Thema einkaufen:

was vorher geschah

  • die Maschine hat zwei Befehlssätze, wovon „mode 2“ dieses HPGL ist. Wenn man beim Starten den falschen Auswählt bringt die Maschine Fehlermeldungen und malt Mist.
  • cam.py schafft es tatsächlich, die Konturen zu zeichnen, aber die Größe stimmt nicht. Bestimmt gibt es ein Missverständnis zwischen mm und inch. wichtig ist die gerber dateien vorher in .cmp umzubennenen, damit das programm es kapiert.
  • alle coolen programme zur CNC optimierung generieren g-code dateien. es scheint keine konverter zu geben. werden wir wohl selber schreiben müssen.
  • ubuntu pakete installiert: pcb2gcode, visolate
  • visolate schafft es nicht, die gerber dateien von kicad zu laden.
pcb2gcode --back relaismodul-Rückseite.gbl --zsafe 2 --zchange 2 --zwork -1 --offset 0.02 --cutter-diameter 0.01 --mill-feed 5 --mill-speed 5
  • haben converter für gcode zu hpgl geschrieben. ist ein PHP script mit vielen Regulären Ausdrücken ;-)
  • Die Fräse hat probleme mit den vielen ungeraden Kantenzügen die pcb2gcode erzeugt („voroni-style“). Dadurch werden die Fräsbewegungen sehr langsam.
  • wir sollten uns als nächstes http://pcbgcode.org anschauen, das macht richtige schutzabstänge zwischen den leiterbahnen, wenn man platz dafür gelassen hat. für visolate muss mal nen richtiges java installiert werden.

Software

Verwendete Literatur und Informationsquellen

Planfräsen

<?php
 
function main() {
  // Maße der Arbeitsfläche in mm von Kommandozeile
  // gleich umrechnen in Geräteeinheiten: 100 = 1mm
  $breite = 100*$_SERVER["argv"][1];
  $hoehe = 100*$_SERVER["argv"][2];
  $durchmesser = 300; // 3mm
  $versatz = 100; // 1mm, dauert länger, ist aber glatter
 
  // NICHT initialisieren!!! 
  // sonst wird Z Tiefe immer wieder 
  // neu ausgemessen und man gräbt 
  // sich weiter ins Material
  //print("IN;"); // initialisieren  
 
  // einmal Werkzeugdurchmesser abziehen zur Korrektur
  $breite = $breite-$durchmesser;
  $hoehe = $hoehe-$durchmesser;
 
  flaeche_y_richtung(0, 0, $breite, $hoehe, $versatz);
  //flaeche_x_richtung(0, 0, $breite, $hoehe, $versatz);
}
 
function flaeche_y_richtung($xmin, $ymin, $xmax, $ymax, $durchmesser)
{
  // aktuelle Position
  $x = $xmin;
  $y = $ymin;
  zum_startpunkt($x,$y);
  print("PD;"); // stift runter
  while ($x < $xmax) {
    $xreal = min($x, $xmax); // nicht weiter als $xmax
    print("PD $xreal $ymax;"); // nach oben laufen
    $x += $durchmesser;
    $xreal = min($x, $xmax);
    print("PD $xreal $ymax;"); // kleines Stück nach rechts
    print("PD $xreal $ymin;"); // zurück nach unten laufen
    $x += $durchmesser;
    $xreal = min($x, $xmax);
    print("PD $xreal $ymin;"); // kleines Stück nach rechts
  }
  print("PU;");
}
 
function flaeche_x_richtung($xmin, $ymin, $xmax, $ymax, $durchmesser)
{
  // aktuelle Position
  $x = $xmin;
  $y = $ymin;
  zum_startpunkt($x,$y);
  print("PD;"); // stift runter
  while ($y < $ymax) {
    $yreal = min($y, $ymax); // nicht weiter als $ymax
    print("PD $xmax $yreal;"); // nach rechts laufen
    $y += $durchmesser;
    $yreal = min($y, $ymax);
    print("PD $xmax $yreal;"); // kleines Stück nach oben
    print("PD $xmin $yreal;"); // zurück nach links laufen
    $y += $durchmesser;
    $yreal = min($y, $ymax);
    print("PD $xmin $yreal;"); // kleines Stück nach oben
  }
  print("PU;");
}
 
function zum_startpunkt($x, $y, $tempo=5) {
  print("PU;"); // stift hoch
  print("VS 30;"); // schneller Vorschub
  print("PA $x $y;"); // zu Startposition fahren
  print("VS $tempo;"); // langsamer xy Vorschub in mm/sec
}
 
main();
exit(0);