iModela: Platinen fräsen mit Eagle Teil 1/2


Die iModela Kofferfräse, mein Gewinn vom c’t Wettbewerb „Mach flott den Schrott“, ist vor einigen Wochen eingetroffen. Seitdem versuche ich für mein 3D-Drucker Projekt die Steuerungsplatinen mit Hilfe der Fräse herzustellen. Da es noch sehr wenige Erfahrungsberichte zum Thema „Platinen fräsen mit der Roland DG iModela Fräse“ gibt, will ich hier in einer zweiteiligen Artikelserie eine mögliche Vorgehensweise beschreiben.

Vorwort
Bisher habe ich nur einen Erfahrungsbericht bzw. eine Anleitung zum Thema gefunden. Im Arduino Blog fand ich einen Beitrag in welchem Enrico Bassi (Fablab Torino) beschreibt wie man mit Hilfe von Fritzing und Inkscape Platinen-Layout’s zum Fräsen mit der iModela vorbereitet. Es werden dabei die erstellten Grafiken in die Roland DG Software geladen und von dort aus anschließend gefräst. Der Beitrag beschreibt das Verfahren Schritt für Schritt und ist auch mit vielen detailreichen Bildern versehen. Da die iModela auch mit G-Code umgehen kann, habe ich nach einer Möglichkeit gesucht um direkt den G-Code mit Eagle zu generieren.

Bei meiner Recherche bin ich auf die Internetseite https://www.einfach-cnc.de/ von Christoph Selig gestoßen. Die Seite von Christoph Selig ist sehr informativ und bietet allerhand Interessantes rund um das Thema CNC Fräsen. Besonders ist mir aber der Bericht zum Thema „Platinen fräsen“ aufgefallen. Mit dem Artikel von Christoph Selig konnte ich viele nützliche Informationen zum Thema „Platinen fräsen mit Eagle“ in Erfahrung bringen. In diesem Teil werde ich im wesentlichen beschreiben wie man mit Eagle die Fräsdaten für die iModela aus einem Schaltplan generiert. Ich werde dabei nicht auf alle Details eingehen. Wer allgemeinere Informationen zum Thema Platinen fräsen haben möchte, dem empfehle ich die oben erwähnte Internetseite.

Eagle vorbereiten
In der folgenden Beschreibung setze ich eine korrekt installierte Eagle Light Edition Version 6.2.0 (kostenlos erhältlich bei CadSoft) voraus. Als erstes wird eine Erweiterung, ein sogenanntes „ULP“ (User Language Programm) zur Erzeugung des G-Codes benötigt. Ein geeignetes ULP für meinen Fall heist pcb-gcode. Es kann kostenlos zum Beispiel unter folgendem Link heruntergeladen werden: https://pcbgcode.org/ Die heruntergeladene Datei muss anschließend in das Verzeichnis C:\Program Files\EAGLE\ulp entpackt werden. Beschreibungen zur Installation auf anderen Systemen findet man in der Datei docs/readme.html
Ich habe für die iModela ein passendes Profil für pcb-gcode erstellt. Dieses kann im Download Bereich des Blogs heruntergeladen werden. Die Datei mit dem Namen imodela.pp muss dann in das Verzeichnis C:\Program Files\EAGLE\ulp\profiles\ kopiert werden.

Da ich diesen Artikel dazu nutzen möchte, Stepper Treiber für mein 3D Durcker Projekt zu fräsen, habe ich im Netz nach einem passenden Board, welches mittels der iModela gefertigt werden kann, gesucht. Ich bin schließlich auf der Seite https://letsmakerobots.com/ fündig geworden. Dort gibt es einen Github Link zu Tinhead’s Motor Treibern. In dem Archiv liegen verschiedene Versionen, ich habe mich für die Version 4 entschieden. Das Layout musste ich jedoch geringfügig abändern, so dass es für die Maße der iModela passend ist. Technische Details zu den verschiedenen Treiber Versionen erläutere ich in Teil 3 der Artikelserie 3D Drucker aus Computerschrott.

Design Rules anpassen
Nachdem alle Vorbereitungen getroffen sind kann es losgehen. Dazu öffnet man zunächst das zu fräsende Board. Um ein gutes Ergebnis zu erhalten müssen die „Design Rules“ entsprechend angepasst werden. Hierzu öffnet man den Design Rules Dialog mit dem folgenden Befehl:
drc

Design Rules Dialog: Clearance


Dort wählt man zuerst den Reiter „Clearance“ um die Abstände auf 12mil (0,30 mm) einzustellen. Hier kann mit den Werten rumprobiert werden um ein gutes/besseres Ergebnis zu erhalten.

Design Rules Dialog: Size


Als nächstes wählt man den Reiter „Sizes“. Dort wird die minimale Breite der Leiterbahnen eingestellt. Auch hier habe ich zunächst einen Wert von 12mil (0.30mm) gewählt.

Design Rules Dialog: Restring


Als letzte Einstellung wählt man den Reiter „Restring“. Dort habe ich für die Pads auch 12mil eingegeben. Im Anschluss kann man den Dialog mit einem Klick auf Prüfen wieder schließen. Mit großer Wahrscheinlichkeit erscheint eine Fehlerliste in der zu geringe Abstände bemängelt werden. Hier sollte man ggf. die Leiterbahn Abstände nachbessern.

G-Code generieren
Nun kann man mit dem folgenden Befehl den Einstellungsdialog von pcb-gcode aufrufen.
run pcb-gcode-setup

Eagle ULC pcb-gcode Dialog : General Options

General Options Tab

Im erschienen Dialog kann man Einstellungen bezüglich der Maschine vornehmen. Die Werte die ich verwendet habe, können den Grafiken entnommen werden. Im folgenden werde ich in wenigen Sätzen die Bedeutung der von mir geänderten Parameter erläutern.

  • Generate Bottom:Stellt sicher das die Fräsdaten für die Unterseite der Platine generiert werden.
  • Generate Bottom Drills: Stellt sicher dass die Daten für die Bohrlöcher generiert werden.
  • Show preview: Mit dieser Einstellung wird nach dem Generieren der Daten eine Fräsvorschau angezeigt. (Kann später sehr nützlich sein)
  • Isolation default:Hier sollte ein kleiner Wert gewählt werden.
  • Isolation Maximum:Der Wert gibt die maximale Breite der Isolation an.
  • Isolation Step size:Der Wert gibt an, um wieviel die Isolation bei jedem Durchgang verbreitert wird.
  • Etching tool size:Dieser Wert hängt von der Art des geählten Werkzeugs ab.

Um den richtigen Wert für die „Etching tool size“ zu finden muss man zunächst den Winkel des gewählten Gravierstichels wissen. In meinem Fall beträgt der Winkel 60°. Im nächsten Teil dieser Artikelreihe werde ich erläutern warum ich mich für einen Gravierstichel dieser Art entschieden habe. Die Breite des Werkzeugs kann nun mit der folgenden Formel berechnet werden:
Fräsbreite = Tangens(Winkel/2) * Frästiefe * 2 Für den von mir gewählten Stichel ergibt sich bei einer Frästiefe von 0.19 mm ( hier gilt es etwas zu experimentieren ) eine Werkzeugbreite von 0.2 mm.

Eagle ULP pcb-gcode Dialog: Machine

Machine Tab

Als nächstes klickt man auf den Reiter für die Maschinen Einstellungen.

  • Units: Hier kann die Maßeinheit eingestellt werden. Achtung, diese Einstellung rechnet die Maßeinheit um. Es kann also sein das vorher eingegebene Werte ebenfalls umgerechnet werden.
  • Spin up time:Der Wert gibt an wie lange gewartet werden soll, nachdem die Spindel eingeschaltet wurde.
  • Feed rate XY:Der Wert gibt die Geschwindigkeit des Vorschubs für die X und Y Achse an, auch hier kann experimentiert werden.
  • Feed rate Z:Der Wert gibt die Geschwindigkeit des Vorschubs für die Z Achse an.
  • Z High: Der Wert gibt eine Höhe an, welche Kollisionen mit Spannmitteln vermeidet. Da die Einspannung bei der iModela entfällt weil das Werkstück mit Klebeband am Tisch fixiert wird, kann man hier einen beliebigen Wert wählen.
  • Z Up:Der Wert gibt an wie hoch das Werkzeug zwischen jedem Arbeitsschritt angehoben wird. Der Wert sollte eher klein gehalten werden um Zeit zu sparen.
  • Z Down:Dieser Wert gibt an wie tief die Isolation sein soll. Auch hier kann mit den Werten experimentiert werden. Mein bisher bestes Ergebnis habe ich mit dem angegebenen Wert erzielt.
  • Drill Depth: Dieser Wert gibt an wie tief die Löcher gebohrt werden sollen. Er ist abhängig von der Dicke der Leiterplatte.
  • Drill Dwell: Gibt die Verweildauer des Bohrers in der Bohrung an.
  • Tool Change hier kann eine Position angegeben werden die zum Wechseln des Werkzeugs angefahren wird. Da bei der iModela höchstens bei jedem Bohr Durchhang der Bohrer getauscht wird, kann dieser Wert beliebig gewählt werden. Es ist von Vorteil hier den Null Punkt zu wählen.

Eagle ULP pcb-gcode Dialog: GCode Style

GCode Style Tab


Im Einstellungsdialog für den G-Code Style wählt man das von mir erzeugte Profil für die iModela Fräse aus. Nachdem alle Einstellungen vorgenommen sind, kann man die Einstellungen übernehmen indem man auf „Accept and make my board“ klickt. Es folgt ein Dialog indem man gefragt wird ob man die Einstellungen speichern möchte. Diesen Dialog kann man mit „Yes“ bestätigen.

Nun wird der G-Code erzeugt und anschließend die Vorschau geöffnet. Die Dateien mit dem G-Code befinden sich im Eagle Projekt Verzeichnis wo auch Schaltplan und Board Datei liegen. Für das Fräsen mit der iModela sind im wesentlichen die beiden Dateien mit den folgenden Namen interessant.
projekt_name.bot.drill (Bohrdaten Bottom Layer)
projekt_name.bot.etch (Fräsdaten Bottom Layer)

Eagle ULP pcb-gcode Preview

pcb-gcode Fräs Vorschau


Im Vorschau Fenster kann man sehen ob die Fräsdaten soweit in Ordnung sind. Die weißen Linien stellen die Fräsbahnen dar. Falls alles in Ordnung ist, kann man mit dem Aufbereiten der Bohrdaten fortfahren. Sollte man mit dem Ergebnis noch nicht zufrieden sein, so kann man an den obigen Parametern schrauben bis man ein zufriedenstellendes Ergebnis erhält.

Bohrdaten anpassen
Die Bohrdaten werden für alle Bohrer in einer Datei angelegt. Um den Wekzeugwechsel einfacher vollziehen zu können habe ich für jeden Bohrer eine eigene Datei angelegt. Um nicht ständig die Bohrer wechseln zu müssen ist es ausreichend diverse Bohrergrößen zusammenzufassen. Insgesamt habe ich drei Dateien für jeweils 0.5mm, 0.8mm und 1.0mm angelegt. Hierzu habe ich mir ein Template mit folgendem Inhalt erzeugt.

(Copyright 2005 - 2009 by John Johnson)
(See readme.txt for licensing terms.)
(This file generated from the board:)
(.../driver_schematic/TinHead/v4/V_driver_4.brd)
(Current profile is .../EAGLE-6.2/ulp/profiles/generic.pp )
(This file generated 17.07.2012 00:27:25)
( Tool| Size | Min Sub | Max Sub | Count )
( T01 0.610mm 0.0240in 0.0000in 0.0000in )
( T02 0.813mm 0.0320in 0.0000in 0.0000in )
( T03 0.900mm 0.0354in 0.0000in 0.0000in )
( T04 1.000mm 0.0394in 0.0000in 0.0000in )
( T05 1.016mm 0.0400in 0.0000in 0.0000in )
( T06 1.321mm 0.0520in 0.0000in 0.0000in )
( T07 2.200mm 0.0866in 0.0000in 0.0000in )
G21
(Absolute Coordinates)
G90
.... Bohrdaten hier einfügen ....
T01
G00 Z10.0000
M05
M02

Einen Bohrerwechsel erkennt man in der Datei projekt_name.bot.drill beispielsweise an folgenden Zeilen:

M05
G00 Z10.0000
G00 X0.0000 Y0.0000
M06 T01 ; 0.6096

An einer solchen Stelle folgt ein Block mit den Koordinaten, bis zum nächsten Bohrerwechsel. Einen solchen Block inklusive der oben stehenden Zeilen kopiert man in das Template. Die Datei speichert man anschließend unter einem sinnvollen Namen wie zum Beispiel 5_mm_drill.nc. Der Vorgang wird für alle gewünschten Boherergrößen wiederholt.

Der G-Code ist nun für die iModela vorbereitet. Im nächsten Teil werde ich beschreiben wie man mit diesen Dateien die Platine mit Hilfe der iModela Kofferfräse herstellt.

4 Gedanken zu “iModela: Platinen fräsen mit Eagle Teil 1/2

  1. […] letzten Teil habe ich beschrieben wie man die Fräsdaten für die iModela mit Eagle generiert und für den […]

  2. […] board milling on a Roland iModela is relatively straightforward (mainly thanks to tutorials such as Mario Lukas’ (in German, but Google Translate does a good enough job)). After a few tentative experiments I was […]

  3. Frank Schulz

    Hallo unbekannterweise, ich habe siet ca. 2 Tagen kontakt zu pcb-gcode gemacht. Das Plugin gefällt mir sehr gut- Ich habe bereits eineige Tests mit einem Plotterstift auf meiner Fräse gefahren. Was mir dabei negativ auffiel. Das gespiegelte Board bei Platinen mir 2 Seiten, wird im G-Code so geschrieben, daß die Werte in der X Achse im Negativbereich liegen. Bzw. in den Negativbereich X hineinfahren. Da ich aber X und Y nur positiv fahre ist das ganz doof. Wie bekomme ich beide Seiten genau übereinander?

    m.f.g.

    F. Schulz

    • Hallo,

      ganz genau weis ich das nicht mehr. Allerdings habe ich beim Platinen Design immer zwei Bohrungen angelegt, diagonal gegenüber liegend. Diese habe ich dann als Referenz Punkt genommen. Die Platine umgedreht und eine der Bohrungen als Maschinen Nullpunkt gewählt. Die zweite Bohrung halb beim Ausrichten. Ist aber alles schone eine Weile her. Zur Zeit ätze ich wieder.

      Gruss
      Mario
      Mario

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Kommentare werden moderiert. Es kann etwas dauern, bis dein Kommentar angezeigt wird.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.