CNC-Fräse/Leiterplatten fräsen: Unterschied zwischen den Versionen

aus dem Wiki des Entropia e.V., CCC Karlsruhe
(Automate ALL THE STEPS)
Zeile 3: Zeile 3:
= Software installieren =
= Software installieren =


Arch-Linux-User dürfen sich über <tt>pcb2gcode-git</tt> im AUR freuen, das zumindest momentan korrekt baut (das Paket ohne <tt>-git</tt> tut nicht). Alle anderen müssen das Zeug von Hand installieren:
Arch-Linux-User dürfen sich über <tt>pcb2gcode-git</tt> im AUR freuen, das zumindest momentan korrekt baut. Alle anderen müssen das Zeug von Hand installieren:


* [http://git.geda-project.org/gerbv/ gerbv] installieren
* [http://git.geda-project.org/gerbv/ gerbv] installieren
Zeile 15: Zeile 15:
* Die minimale Leiterbahnbreite, die wir mit der Fräse erreichen können, ist 18 mil. Für sorgenfreies Fräsen werden wo möglich 24 mil empfohlen. Entsprechendes gilt für die Groundplane. Lange diagonale Leiterbahnen sollten vermieden oder etwas breiter (20-24 mil) angelegt werden.
* Die minimale Leiterbahnbreite, die wir mit der Fräse erreichen können, ist 18 mil. Für sorgenfreies Fräsen werden wo möglich 24 mil empfohlen. Entsprechendes gilt für die Groundplane. Lange diagonale Leiterbahnen sollten vermieden oder etwas breiter (20-24 mil) angelegt werden.
** SMD-Widerstände, -Kondensatoren, etc. lieber in 0805
** SMD-Widerstände, -Kondensatoren, etc. lieber in 0805
** Leitungen zwischen deren Pads durchführen geht nicht (kein Lötstopplack)
*** Leitungen zwischen deren Pads durchführen geht nicht (kein Lötstopplack)
** Die kleinste verwendbare Packageart ist SOIC.
** Die kleinste verwendbare Packageart ist SOIC.
* Alle Löcher werden mindestens 0,6 mm groß, kleinere Bohrer haben wir nicht.
* Mangels Toolchanger benutzen wir für alle Löcher das Multitool mit 0,6 mm Durchmesser. Bei Bedarf muss aufgebohrt werden.
* Bei einlagigen Platinen müssen Through-Hole-Bauteile auf die nicht verkupferte Seite gebaut werden, damit sie auf der verkupferten Seite festgelötet werden können. In Eagle heißt das, dass alle diese Bauteile auf die ''Rückseite'' gehören.
* Bei einlagigen Platinen müssen Through-Hole-Bauteile auf die nicht verkupferte Seite gebaut werden, damit sie auf der verkupferten Seite festgelötet werden können. In Eagle heißt das, dass alle diese Bauteile auf die ''Rückseite'' gehören.


* Bei zweilagigen Platinen müssen Vias und die Pads von Through-Hole-Bauteilen größere "Restrings" bekommen. Dazu im Design Rule Check im Tab "Restring" Alle Minimumwerte auf 0.4 mm setzen (für Mutige 0.35 mm oder sogar 0.3 mm).
* Bei zweilagigen Platinen müssen Vias und die Pads von Through-Hole-Bauteilen größere "Restrings" bekommen. Dazu im Design Rule Check im Tab "Restring" Alle Minimumwerte auf 0.4 mm setzen (für Mutige 0.35 mm oder sogar 0.3 mm).


= Export aus Eagle =
= G-Code generieren =


* [[Medium:Pcb2gcode-config.tar.gz|Konfigurations-Tarball]] im Projektordner entpacken. Es wird ein Unterordner "gcode/" erzeugt.
* [[Medium:Pcb2gcode-config.tar.gz|Konfigurations-Tarball]] im Projektordner entpacken. Es wird ein Unterordner "gcode/" erzeugt.
* Im Eagle-Menü "File" → "CAM Processor...", dort "File" → "Open" → "Job...", dann "pcb2gcode.cam" aus gcode/ auswählen.
* Falls die Platinen einseitig sind, in gcode/millproject entsprechend des Kommentares dort eine Zeile einkommentieren.
* Mit "Process Job" werden die Ausgabedateien erzeugt.
* In diesem Ordner ./make_gcode.sh ausführen. Es werden für jede .brd-Datei im Projekt die nötigen G-Code-Dateien erzeugt.
 
* Vor dem Fräsen die erzeugten Dateien kurz in linuxcnc auf Plausibilität prüfen.
= G-Code generieren =
 
In gcode/ die Datei make_gcode.sh ausführen. Es sollten die Dateien front.ngc, back.ngc, outline.ngc und drill.ngc entstehen. Vor dem Fräsen noch einmal kurz in linuxcnc drüberschauen, ob der G-Code plausibel ist.


= Fräsen =
= Fräsen =
Zeile 38: Zeile 35:
Im Zweifelsfalle: '''F1 ist die Notbremse''' (in Linuxcnc). Dann ist vielleicht ein Fräser, aber nicht mehr kaputt.
Im Zweifelsfalle: '''F1 ist die Notbremse''' (in Linuxcnc). Dann ist vielleicht ein Fräser, aber nicht mehr kaputt.


Für einfache einlagige Platinen kann die Outline auch gut per Hand gefahren werden. Dann ist es nicht nötig, die Platine zu wenden.
Für einfache einlagige Platinen kann die Outline auch gut per Hand gefahren werden.
 
pcb2gcode erzeugt leider immer G-Code in Inches. Linuxcnc muss nach jedem Durchlauf auf metrisch zurückgestellt werden.


== Vorbereitung ==
== Vorbereitung ==
Zeile 53: Zeile 48:
* Fräse an (20000 U/min), Gebläse an
* Fräse an (20000 U/min), Gebläse an
* Neben der Leiterplatte Fräse so weit herunterfahren, dass das Multitool die Pappe gerade so anbohrt. Dort z = -3 setzen.
* Neben der Leiterplatte Fräse so weit herunterfahren, dass das Multitool die Pappe gerade so anbohrt. Dort z = -3 setzen.
* Ursprung für die Platine aussuchen. Fräse dort hinfahren und x = 0, y = 0 setzen. Beachten dass alles draufpasst und der Schlitten in allen Lagen komplett auf die Platine passt. Dabei muss etwas Platinenrand verschwendet werden.
* Ursprung für die Platine aussuchen. Fräse dort hinfahren und x = 0, y = 0 setzen. Beachten dass alles draufpasst und der Schlitten (ca. 35×35 mm groß) in allen Lagen komplett auf die Platine passt ''und nicht an die Haltestifte stößt''. Dabei muss etwas Platinenrand verschwendet werden.
* Falls die Platine gewendet werden muss (Platine ist zweilagig oder Outline soll gefräst werden), bei x = 0, y = 0 ein Loch durch die Platine bohren.
* Falls die Platine gewendet werden muss (Platine ist zweilagig), bei x = 0, y = 0 ein Loch durch die Platine bohren.
* drill.ngc ausführen
* drill.ngc ausführen


Zeile 63: Zeile 58:
* Neben der zu fräsenden Schaltung den Schlitten aufsetzen. Der Schlitten soll die Platine fest auf den Untergrund drücken und die Federplatte ''etwas'' eindrücken. In dieser Position z = 0 setzen.
* Neben der zu fräsenden Schaltung den Schlitten aufsetzen. Der Schlitten soll die Platine fest auf den Untergrund drücken und die Federplatte ''etwas'' eindrücken. In dieser Position z = 0 setzen.
* Prüfen, dass der Fräser eine möglichst schmale, aber deutliche Spur hinterlässt (das Kupfer muss definitiv getrennt sein). Falls nötig mit der Mikrometerschraube nachregeln: größere Zahlen = größere Frästiefe. Falls schmale Leiterbahnen oder SOIC-Chips beteiligt sind, kommt es hier auf jeden Mikrometer an, den der Fräser weiter hochgedreht werden kann.
* Prüfen, dass der Fräser eine möglichst schmale, aber deutliche Spur hinterlässt (das Kupfer muss definitiv getrennt sein). Falls nötig mit der Mikrometerschraube nachregeln: größere Zahlen = größere Frästiefe. Falls schmale Leiterbahnen oder SOIC-Chips beteiligt sind, kommt es hier auf jeden Mikrometer an, den der Fräser weiter hochgedreht werden kann.
** Prüfen, dass der Schlitten die 35x35mm Platz hat auf '''allen''' Pfaden! zB bei den Platinehaltestifte
* front.ngc ausführen
* front.ngc ausführen


Zeile 79: Zeile 73:
* Fräse an (20000 U/min), Gebläse an
* Fräse an (20000 U/min), Gebläse an
* Neben der Leiterplatte Fräse so weit herunterfahren, dass der Fräser die Pappe gerade so anbohrt. Dort z = -3 setzen.
* Neben der Leiterplatte Fräse so weit herunterfahren, dass der Fräser die Pappe gerade so anbohrt. Dort z = -3 setzen.
* Prüfen, dass in outline.ngc die Koordinaten korrekt sind. Sind sie es nicht, wurde die Option cut-front in pcb2gcode wahrscheinlich falsch gesetzt.
* outline.ngc ausführen oder von Hand Outline abfahren (Jog-Speed verringern).
* outline.ngc ausführen oder von Hand Outline abfahren (Jog-Speed verringern).
* Leider kann pcb2gcode keine Haltestege erzeugen, ohne diese würde die fertige Platine aber durch die Gegend fliegen, wenn sie lose wird, und kaputt gehen. Bekannte Workarounds:
** G-Code patchen, damit der Fräser an einigen Punkten etwas höher fräst (Erinnerung: pcb2gcode erzeugt ''immer'' G-Code in Inches).
** Kurz vor Schluss abbrechen
** Mit einem Werkzeug die Platine festhalten (nein, nicht mit dem Finger!). Nicht fest aufdrücken, da sonst der Federtisch nachgibt und der Fräser nicht mehr die die ganze Platine fräst


Nach dem Fräsen bitte Fräse absaugen.
Nach dem Fräsen bitte Fräse absaugen.

Version vom 7. Januar 2015, 20:37 Uhr

Vorher G-Code-Referenz lesen: http://www.linuxcnc.org/docs/html/gcode.html

Software installieren

Arch-Linux-User dürfen sich über pcb2gcode-git im AUR freuen, das zumindest momentan korrekt baut. Alle anderen müssen das Zeug von Hand installieren:

  • gerbv installieren
  • pcb2gcode installieren, braucht die gerade installierte libgerbv

Außerdem brauchen alle die Konfigurationsdateien.

Platinendesign

  • Die Platine sollte nahe des Eagle-Nullpunkts designt werden, der Nullpunkt selbst muss aber frei bleiben (Ecke auf dem Nullpunkt ist OK).
  • Die minimale Leiterbahnbreite, die wir mit der Fräse erreichen können, ist 18 mil. Für sorgenfreies Fräsen werden wo möglich 24 mil empfohlen. Entsprechendes gilt für die Groundplane. Lange diagonale Leiterbahnen sollten vermieden oder etwas breiter (20-24 mil) angelegt werden.
    • SMD-Widerstände, -Kondensatoren, etc. lieber in 0805
      • Leitungen zwischen deren Pads durchführen geht nicht (kein Lötstopplack)
    • Die kleinste verwendbare Packageart ist SOIC.
  • Mangels Toolchanger benutzen wir für alle Löcher das Multitool mit 0,6 mm Durchmesser. Bei Bedarf muss aufgebohrt werden.
  • Bei einlagigen Platinen müssen Through-Hole-Bauteile auf die nicht verkupferte Seite gebaut werden, damit sie auf der verkupferten Seite festgelötet werden können. In Eagle heißt das, dass alle diese Bauteile auf die Rückseite gehören.
  • Bei zweilagigen Platinen müssen Vias und die Pads von Through-Hole-Bauteilen größere "Restrings" bekommen. Dazu im Design Rule Check im Tab "Restring" Alle Minimumwerte auf 0.4 mm setzen (für Mutige 0.35 mm oder sogar 0.3 mm).

G-Code generieren

  • Konfigurations-Tarball im Projektordner entpacken. Es wird ein Unterordner "gcode/" erzeugt.
  • Falls die Platinen einseitig sind, in gcode/millproject entsprechend des Kommentares dort eine Zeile einkommentieren.
  • In diesem Ordner ./make_gcode.sh ausführen. Es werden für jede .brd-Datei im Projekt die nötigen G-Code-Dateien erzeugt.
  • Vor dem Fräsen die erzeugten Dateien kurz in linuxcnc auf Plausibilität prüfen.

Fräsen

Achtung: Die Fräse ist teuer, durchaus gefährlich und absolut unbarmherzig. Lass dir (z.B. im Rahmen deiner ersten Platine) eine Einführung geben und unbedingt helfen, wenn du unsicher bist.

Im Zweifelsfalle: F1 ist die Notbremse (in Linuxcnc). Dann ist vielleicht ein Fräser, aber nicht mehr kaputt.

Für einfache einlagige Platinen kann die Outline auch gut per Hand gefahren werden.

Vorbereitung

  • Löcher für die Werkstückeinspannung manuell in die rechte untere und rechte obere Ecke der Leiterplatte bohren
  • Pappe auf den Federtisch kleben (sollte schon dort sein)
  • Leiterplatte einspannen, die Befestigungsbolzen sollten etwas Spannung ausüben. Gegenüberliegende Seite mit Gaffa festkleben

Löcher

  • Multitool einspannen, Schlitten hochklappen
  • Fräse an (20000 U/min), Gebläse an
  • Neben der Leiterplatte Fräse so weit herunterfahren, dass das Multitool die Pappe gerade so anbohrt. Dort z = -3 setzen.
  • Ursprung für die Platine aussuchen. Fräse dort hinfahren und x = 0, y = 0 setzen. Beachten dass alles draufpasst und der Schlitten (ca. 35×35 mm groß) in allen Lagen komplett auf die Platine passt und nicht an die Haltestifte stößt. Dabei muss etwas Platinenrand verschwendet werden.
  • Falls die Platine gewendet werden muss (Platine ist zweilagig), bei x = 0, y = 0 ein Loch durch die Platine bohren.
  • drill.ngc ausführen

Traces auf der Vorderseite

  • Schlitten runterklappen
  • Fräse an (20000 U/min), Gebläse an
  • Neben der zu fräsenden Schaltung den Schlitten aufsetzen. Der Schlitten soll die Platine fest auf den Untergrund drücken und die Federplatte etwas eindrücken. In dieser Position z = 0 setzen.
  • Prüfen, dass der Fräser eine möglichst schmale, aber deutliche Spur hinterlässt (das Kupfer muss definitiv getrennt sein). Falls nötig mit der Mikrometerschraube nachregeln: größere Zahlen = größere Frästiefe. Falls schmale Leiterbahnen oder SOIC-Chips beteiligt sind, kommt es hier auf jeden Mikrometer an, den der Fräser weiter hochgedreht werden kann.
  • front.ngc ausführen

Traces auf der Rückseite

  • Platine wenden (Nein! Doch! Ohhh!)
  • Fräse an (20000 U/min), Gebläse an
  • Das Loch im Nullpunkt suchen, Fräse dort hinfahren und x = 0, y = 0 setzen. Das muss leidlich genau sein (insbesondere, wenn die Restrings kleiner gewählt wurden).
  • Prüfen, dass die Fräserspur noch OK ist
  • back.ngc ausführen

Outline

  • 1.6mm-Fräser einspannen, Schlitten hochklappen
  • Fräse an (20000 U/min), Gebläse an
  • Neben der Leiterplatte Fräse so weit herunterfahren, dass der Fräser die Pappe gerade so anbohrt. Dort z = -3 setzen.
  • Prüfen, dass in outline.ngc die Koordinaten korrekt sind. Sind sie es nicht, wurde die Option cut-front in pcb2gcode wahrscheinlich falsch gesetzt.
  • outline.ngc ausführen oder von Hand Outline abfahren (Jog-Speed verringern).

Nach dem Fräsen bitte Fräse absaugen.

Löten

  • Vias und Through-Hole-Bauteile, die auf beiden Seiten Kontakt haben müssen, müssen manuell durchkontaktiert werden (auf beiden Seiten Lötzinn auftragen), bei Vias eventuell mit einem Stück Draht nachhelfen.