Shapeoko 2: Unterschied zwischen den Versionen

Aus RaumZeitLabor Wiki
Keine Bearbeitungszusammenfassung
 
(86 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{ProjektInfoBox
{{GeraetInfoBox
|name       = Shapeoko 2
|name         = Shapeoko 2
|status     = experimental
|status       = beta
|image       =  
|image         =  
|description = CNC-Fräse
|manufacturer  = Inventables
|author      =  
|model        = Shapeoko 2
|maintainer  = Alle die es Nutzen
|description  = CNC-Fräse
|hostname    =  
|documentation =  
|version    =  
|owner        =  
|update     =  
|username     =  
|platform    =
|financing     =  
|license     =  
|location      =  
|download    =
|bausatz    =
|preis      =  
}}
}}
Nach Abstimmung im Septemberplenum 2014 hat das RaumzeitLabor eine CNC Fräse vom Typ "Shapeoko 2" von [http://inventables.com Inventables] gekauft.


== Toolchains ==
== Doku & Links ==


=== SVG und MakerCAM ===
<s>* http://docs.shapeoko.com/ -- Manual und viel Info des Herstellers
** http://www.shapeoko.com/wiki/index.php/Endmills -- Gute Wiki-Seite, die die Unterschiede zwischen verschiedenen Fräser-Typen und Materialien erläutert.</s>
Hinweis: Das Wiki ist nicht mehr erreichbar. Es gibt ein paar gespiegelte Infos hier: https://www.reddit.com/r/shapeoko/wiki/g-code/


* [http://www.shapeoko.com/wiki/index.php/MakerCAM#MakerCAM_outputs_too_many_decimals NICHT empfohlen], da MakerCAM mit Inches arbeitet und bei der Konvertierung in metrische Einheiten unheimlich lange Zahlen generiert, die den GCODE kaputtspielen. (Stand 12.09.2014)
* http://www.cnccookbook.com/ -- Be a better CNC'er
* https://github.com/synthetos/ -- Github-Repo der Controller-Hardware. Relevante Repos bzw. deren Wikis sind:
** https://github.com/synthetos/tinyg/wiki
** https://github.com/synthetos/g2/wiki
** https://github.com/synthetos/grblShield/wiki
* https://github.com/grbl/grbl/wiki -- Grbl Wiki und Firmware
** https://github.com/grbl/grbl/wiki -- Development-Version grbl
 
== Workflow ==
 
Leider ist zerspanendes Arbeiten nicht so gutmütig und Einsteiger-freundlich wie 3d-Drucken. Wir wirken ja mit zerstörerischer Kraft auf das Werkstück ein und bei Fehlern geht also schnell mal was kaputt - bestenfalls das Werkstück, schlimmstenfalls Körperteile. Es lohnt sich also zunächst einige Zeit in Planung ('''zweimal Messen, einmal Schneiden!''') und Anlesen von Basiswissen zu investieren. <s>Ein guter Einstiegspunkt ist [http://www.shapeoko.com/wiki/index.php/Main_Page#Overview diese Wikiseite im Shapeoko-Wiki].</s>
 
=== 2.5D vs. 3D ===
 
Man spricht bei einer CNC Fräse von 2.5D, wenn man eine 2D Vektordatei fräst und sich der dreidimensionale Teil auf die Tiefe beschränkt. D.h. Die 2D Vektorlinien werden "extrudiert" zu einem 3D Modell ==> 2.5D, In diesem Fall muss der Fräser nur die Vektoren abfahren und sich auf der Z-Achse nur schrittweise nach unten bewegen, um nach und nach Material ab zutragen. Bei einem echten 3D Job dagegen wird das Werkstück in verschiedenen Richtungen überfahren und der Fräskopf muss dabei die Konturen auf der Z-Achse Nachfahren. D.h. er hebt und senkt sich (je nach Modell) während er eine Fläche ab trägt.
 
Für 2.5D benötigt man kein 3D Modell und kein Tool zum bearbeiten von 3D Modellen (3D-CAD oder andere modeling tools wie bspw. "blender"). Es genügt ein 2D Vektorgrafik-Programm wie Illustrator, Inkscape <s>oder MakerCAM</s>. Bei den reinen Vektor-Grafik-Editoren sind dabei meist Plugins zur Beschreibung der Tiefe und zum Exportieren von gCode notwendig.
 
=== CAD -> CAM -> (Post-Prozessor) -> Gcode -> (Simulator) -> G-Code-Sender -> Controller -> Aktoren ===
 
Ähnlich wie beim 3D Druck ist der Weg zum Fräsen in folgende Schritte eingeteilt:
* Modell erstellen
* Modell in Schichten zerlegen (G-Code)
* G-Code an Controller senden
* Controller steuert Fräse bzw. 3D Drucker nach G-Code-Instruktionen
 
<s>Einen guten Überblick über Toolchains und den gesamten Workflow gibt [http://www.shapeoko.com/wiki/index.php/Workflow diese Wikiseite auf shapeoko.com].</s>
 
=== Toolchains ===
 
Es gibt Toolchains wie Sand am Meer sowohl Freeware und/oder OpenSource als auch im hochpreisigen Bezahlsegment.
Wie immer bei Software leider auch ein sehr inkonstantes Feld.
<s>[http://www.shapeoko.com/wiki/index.php/Software Hier] ist ein guter Einstiegspunkt um sich für die Plattform der Wahl einen Überblick zu verschaffen. Letzten Endes hilft eigentlich nur ausprobieren womit man gut zurecht kommt.</s>
 
==== Connect to Fräse ====
 
Um eineige Probleme mit dem "tinyG + chilipeppr.com/tinyg Setup" anzugehen bietet es sich an die Fräse nicht über rzl-hardcore anzusprechen ;-).
Statdessen hat die Fräse ihr eigenes wifi (rzl-fraese) mit identischem Passwort wie rzl-hardcore. Im Unterbau der Fräse steht hierzu ein AP. Auf dem Laptop neben der Fräse läuft der serial-port-json-server.
Wer jetzt nur noch Bahnhof versteht, sei auf das TinyG-Kapitel dieses Artikels verwiesen.
 
==== User-Toolchains ====
 
In diesem Kapitel sind alle Anwender aufgerufen ihre (aktuelle) Toolchain zu dokumentieren. Was funktioniert, was nicht? Welche Versionen werden eingesetzt? Bitte Datum nicht vergessen! Ggf. muss auch das Controller-target angegeben werden!
 
* 09/2017 2D Kontur, Aluminium
** Usecase: 3mm Alu-Fräsen für MendelMax2
** CAD: Autodesk Fusion 360 (derzeit auf Mindstorms Laptop 3 installiert)
** CAM: Autodes Fusion 360
** Machining: CNCjs (derzeit auf Mindstorms Laptop 3 installiert)
** Status: funktioniert
 
* 06/2016 3D [silvester]
** Usecase: 3D-Fräsen aus Vollmaterial (Dachlatte und Acryl)
** Controller-target: TinyG v0.95
** CAD: OpenSCAD 2015.03
** CAM: CamBam v.0.9.8p
** Simulation: CamBam + Chilipeppr
** Machining: [http://chilipeppr.com/tinyg Chilipeppr.com/tinyg] + Serial-Port-JSON-Server.
** Status: funktioniert.
** Probleme: Siehe generelle Probleme mit TinyG
 
* 02/2017 2D-PCB [silvester]
** Usecase: PCB-Fräsen (isolation routing. Garavieren, Bohren, Ausschneiden)
** Controller-target: TinyG v0.95
** CAD: KiCAD v4.0.4 (Layout wird als Gerber-File exportiert)
** CAM: pcb2gcode.py
** Simulation: Fuck no! We're doin' it live!
** Machining: http://chilipeppr.com/tinyg
** Status: funktioniert.
** Probleme: eigentlich keine. pcb2gcode funktioniert erstaunlich gut. [https://github.com/s1lvester/mydotfiles/blob/master/millproject HIER] gibts das verwendete profile für pcb2gcode
 
* 10/2016 2D-PCB [silvester]
** Usecase: PCB-Fräsen (isolation routing. Garavieren, Bohren, Ausschneiden)
** Controller-target: TinyG v0.95
** CAD: KiCAD v4.0.4 (Layout wird als Gerber-File exportiert)
** CAM: Flatcam v8.5 (3 aufeinanderfolgende Jobs: 1. Gravieren, 2. Bohren, 3. Outlines fräsen), Export zu Gcode
** Simulation: Fuck no! We're doin' it live!
** Machining:
*** 1. [http://chilipeppr.com/tinyg Chilipeppr.com/tinyg] + Serial-Port-JSON-Server. Damit dann zunächst auto-leveling, dann Übernahme des Höhenprofils in den Gcode.
** Status: funktioniert.
** Probleme: Aufwändig. Much hassle. Siehe auch: generelle Probleme mit TinyG


== Fräsbare Materialien ==
== Fräsbare Materialien ==
Zeile 28: Zeile 108:
Polyethylen High-Density, siehe [https://www.youtube.com/watch?v=T1pkyLY8Qvs Verarbeitungsbeispiel]. [http://www.s-polytec.de/pe-platten-schwarz_pe-platte-schwarz-20mm-auf-mass.html Bezugsquelle]
Polyethylen High-Density, siehe [https://www.youtube.com/watch?v=T1pkyLY8Qvs Verarbeitungsbeispiel]. [http://www.s-polytec.de/pe-platten-schwarz_pe-platte-schwarz-20mm-auf-mass.html Bezugsquelle]


== Mögliche Modifikationen ==
=== Sperrholz (Modell: "Dachlatte") ===
 
Einfach zu verarbeiten. Die Fräse schafft hier locker 1mm Zustellung beim Schruppen. X/Y-Vorschub bis 600mm/min. Z-Vorschub maximal 300mm/min. (Das ganze mit einer "3mm 2-Flute Endmill")
 
=== Aluminium ===
 
Auf unserer Maschine der absolute Endgegner. Bisher getestet:
 
Aluminiumblech 3mm aus dem Bauhaus sowie AlMg4,5Mn. 3mm Fräser, Vorschub 100mm/min, mehrere Passes mit jeweils 0,25mm Tiefe, Eintauchgeschwindigkeit 10mm/min. Dauert ewig, aber geht. Problem ist die mangelnde Steifigkeit unserer Shapeoko. Entsprechende Fräser hat Feli, einfach fragen.
 
=== Delrin ===
 
Absolutes Traummaterial, super einfach zu fräsen.
 
== Aktuell verbauter Controller: TinyG ==
 
Der TinyG Controller stellt ein serielles Interface zur Verfügung. Prinzipiell ist das Protokoll frei wählbar. Per default laufen 115200 Baud 8N1 mit Hardware-Flow-Control. Verbindet man sich auf dieses Interface z.B. mit '''minicom -d /dev/ttyUSB0 -c on''' erhält man mit '''$h''' das help menue. Grundsätzlich spricht der TinyG entweder ascii oder json. Der Parser kann explizit oder implizit (Command beginnt mit geschweifter Klammer) zwischen den Modi hin und her switchen.
 
=== Firmware & Config ===
 
Unter https://synthetos.github.io/ gibt es aktuelle Firmware und eine flash-Anleitung für den TinyG. Am 05.12.2015 wurde die Version 440.20 aus dem master-branch installiert. Die Firmware selbst wird ist zunächst über eine Reihe von Variablen konfiguriert. Auf der seriellen Konsole erhält man mittels '''$$''' alle definierten Variablen.
 
Auf der Unterseite [[Shapeoko_2/tinyg_settings]] ist eine aktuelle Config inklusive der konfigurierten Endstops dokumentiert.
 
==== Z-Achse ====
 
Weil unsere Maschine bereits das ACME-Z-Achsen-Upgrade eingebaut hat passt die standard-config von tinyG nicht. Auf dieser Seite [http://www.shapeoko.com/wiki/index.php/Zaxis_ACME#Updating_Software im shapeoko-wiki] wird gezeigt wie die Steppings berechnet werden.
 
Aktuell (05.12.2015) ist ein normales x/y/z-Koordinatensystem konfiguriert, d. h. 0/0/0 ist links unten und die Spindel ist komplett am Anschlag ausgefahren. Von hier aus kann nun in positiver x/y-Richtung und negativer z-Richtung gearbeitet werden. Das sollte auch so bleiben, weil Standard, weil isso. [https://github.com/grbl/grbl/wiki/Frequently-Asked-Questions#why-is-grbl-in-all-negative-coordinates-after-homing-or-it-so-annoying-and-not-what-im-used-to Erklärung hier.]
 
=== I/O-Belegung ===
<gallery>
File:tinyg_status_1.JPG|pre
</gallery>
 
=== Probleme & TODO: TinyG gegen ARM + gShield tauschen --> Upgrade auf g2core (=tinyg2) ===
Der TinyG war zwar 2014 mal eine geile Idee aber stand 2016 ist der Controller einfach nur hinderlich. Synthetos hatte ein eigenes JSON-Protokoll spezifiziert und den offiziellen Softwaresupport auf Chillipeppr umgestellt (Online only, siehe: [http://chillipeppr.com/tinyg]). Damit wurde der TinyG zur Insellösung, der Rest der Welt macht grbl. Das hat Stand 10/2016 auch Synthetos eingesehen und den TinyG als feature-complete bzw. EOL definiert. Alle neuen features werden in dem Projekt [https://github.com/synthetos/g2/wiki/ "g2Core"] als "Next Generation Grbl-Controller" von Synthetos entwickelt. Der Controller basiert auf ARM-Prozessoren und soll ermöglicht features die mit den 8-bit Prozessoren des Arduino UNO und des TinyG nicht möglich sind. Im wesentlichen also ein ARM (bspw. Arduino DUE) und eln bisschen Logik an den Pinouts. Für unseren Einsatzzweck ist das bereits vorhandene gShield-v5b ausreichend. Hierfür ist allerdings komplettes Neu-Verkabeln der Controllerbox notwendig. Unklar bleibt leider weiterhin ob die GUI-Developer außerhalb von Chilipeppr die Neuentwicklung annehmen, denn so wie es Momentan aussieht wird das JSON-Protokoll übernommen. --[[Benutzer:S1lvester|S1lvester]] ([[Benutzer Diskussion:S1lvester|Diskussion]]) 10:09, 25. Okt. 2016 (CEST)
 
=== grbl ===
[https://github.com/grbl/grbl grbl] ist eine relativ einfache C-Firmware für ATMEL-Arduinos, die seriell gestreamten G-Code annimt und in digitalen + analogen Output umsetzt um (über entsprechende stepper-driver) Schrittmotoren zu steuern, voltage-ramps zu generieren, Input von Switches anzunehmen. De-facto laufen Stand 10/2016 alle DIY CNC-Router, 3d-Drucker, Lasercutter, Laser-Solder, Plotter, usw. mit grbl oder Abwandlungen davon. So gut wie alle Hersteller und Distributoren im DIY-Bereich fördern die Entwicklung.
 
Aktuelle und aktive Development-Branches liegen Stand 10/2016 hier: https://github.com/gnea/grbl
 
== WTF?! grbl, tinyg, tinyg2, g2, g2core, gShield, grblShield, Chilipeppr, Serial-Port-JSON-Server, Synthetos ==
 
Im Folgenden mal ein paar Begriffs-Definitionen die Dir zwangsläufig über den weg laufen werden sobald Du dich mit dem Thema CNC oder Lasercutting und DIY beschäftigst.
 
Der ganze Zoo lässt sich so zusammenfassen: http://imgs.xkcd.com/comics/standards.png
 
* grbl: s. oben.
* tinyg: Controller-Board von Synthetos. Status: EOL. Gleichzeitig auch immer wieder synonym für das von Syntheos spezifizierte JSON-Protokoll gebraucht
* tinyg2: == g2
* g2: == g2core
* g2core: ARM-Port der tinyg-firmware von Synthetos. Aktiver development-branch unter https://github.com/synthetos/g2 Stand 10/2016 viel Aktivität. Platform-target ist aktuell der Arduino DUE + gShield. Gab auch ein paar Ankündigungen, dass Synthetos neue Hardware (wahrscheinlich integriert) produzieren will.
* grblShield: == gShield
* gShield: Connector-Board mit stepper-drivern von Synthetos. Ausgeführt wie der Name vermuten lässt als Arduino-Shield. Hardware-Revisionsnummern Beachten! [https://github.com/synthetos/grblShield/wiki/gShield-v5-Notes]
* Chilipeppr: Online-Workspace für G-Code Simulation, Manipulation und Streaming sowie machine-control. Erweiterbar durch Plugins ("Widgets"). Javascript + Node + WebGL. Works best in Chrome. Wohnt auf http://chilipeppr.com . Stand 10/2016 die einzig brauchbare Lösung um voll-umfänglich mit dem tinyg zu arbeiten. Wird zwar nicht von Synthetos entwickelt aber gefördert.
* Serial-Port-JSON-Server: Kleines Binary, dass auf dem Rechner einen TCP-Socket aufmacht und dort eingehenden JSON-Code an den Serial-Port streamt.
* Synthetos: "Firma" hinter gShield, tinyg, g2core. Stand 10/2016 die einzige Möglichkeit stepper-driver-Boards als Addon-Board oder im Fall tinyg auch mit CPU zu kaufen. Qualität der Hardware ist exzellent und ein Selsbtbau eines stepper-drivers ergibt eigentlich keinen Sinn.
 
== Informationen zur Hardware ==
 
Bearbeitbare Fläche: 260x275x70mm
 
=== Ausstattung ===
 
Wir haben:
* den Bausatz für eine Shapeoko2 Standard
* Ein [https://www.inventables.com/technologies/waste-board-with-threaded-inserts Wasteboard mit Schraubeinsätzen zum Befestigen von Werkstücken]
* Einen [https://www.inventables.com/technologies/clamp-set Satz Klemmen zur Befestigung] (mehr können dann gefräst werden)
* Einen [https://www.inventables.com/technologies/knob-with-crank Drehknopf zur manuelles Bewegen der Z-Achse]
* Eine [https://www.inventables.com/technologies/quiet-cut-spindle 300Watt Quiet Cut Spindle] als Ersatz für den China-Dremel mit allem benötigten Zubehör
* Zwei [https://www.inventables.com/technologies/drag-chain Drag Chains] fürs Kabelmanagement
* Einen [https://www.inventables.com/technologies/e-stop-button NOT-AUS Taster] (könnten noch mehr werden)
* Eine [https://www.inventables.com/technologies/er11-a-collets-nuts-and-wrenches zusätzliche Halterung] für andere Fräser Durchmesser
* Ein [https://www.inventables.com/technologies/solid-carbide-1f-engraving V-Bit Fräser] für sehr feine Arbeiten (hint: Platinen)
* 8 [https://www.inventables.com/technologies/microswitch Mikrotaster] als Homing und Endstopps, damit die Maschine weiß, wo sie endet
* einen [https://www.inventables.com/technologies/tinyg-cnc-controller TinyG CNC Controller] der Endstopps kann und deutlich mehr kann als ein g-shield ([https://www.synthetos.com/project/tinyg/ noch mehr info])
* Das [http://shop.shapeoko.com/collections/frontpage/products/shapeoko-2-acme-upgrade-1 ACME Z-Achsen upgrade]
* Die [http://shop.shapeoko.com/collections/frontpage/products/shapeoko-side-shields Side shields zum Schutz der Achsen vor Dreck]
* Zwei Spannzangen zur Aufnahme von Fräsern mit 3 und 6mm Schaftdurchmesser.
 
Durch den TinyG Controller können wir die 300W Spindel im G-Code Speed controllen und an/ab-schalten!
 
=== [[Diskussion:Shapeoko_2|"build-log"]] ===
 
Alle an der Maschine vorgenommenen Änderungen sollen bitte im [[Diskussion:Shapeoko_2|"build-log"]] protokolliert werden, damit sie für die anderen Maker nachvollziehbar bleiben.
 
=== Verkabelungsinformationen ===
 
Die Schleppkettenkabel vom Typ ÖLFLEX® CHAIN 808 CP 5 G 0.75 mm² sind für die Schrittmotoren folgendermaßen verkabelt (Adernnummern sind auf die einzelnen Litzen aufgedruckt):
 
{|class=wikitable
|-
| 1 || Rot || B1 / B+
|-
| 2 || Blau || B2 / B-
|-
| 3 || Grün || A1 / A-
|-
| 4 || Schwarz || A2 / A+
|}
 
Ausnahme: Der X-Stepper ist folgendermaßen belegt (Verpeilung?)
 
{|class=wikitable
|-
| 1 || Grün || A1
|-
| 2 || Rot || B1
|-
| 3 || Schwarz || A2
|-
| 4 || Blau || B2
|}
 
Achtung: Bei dem linken Stepper der Y-Achse ist Grün und Schwarz vertauscht, siehe [http://docs.shapeoko.com/electronics.html die Shapeoko2-Dokumentation].
 
Der Sensorstecker ist wie folgt belegt:
 
{|class=wikitable
! Nummer auf Stecker || Signal || Kabelfarbe || Bild
|-
| 1 || GND || braun || rowspan=8|[[Datei:Cnc-lumberg-stecker.png]] Buchse Rückansicht
|-
| 2 || X Endstop Min || weiß
|-
| 3 || X Endstop Max || grau
|-
| 4 || Y Endstop Min || gelb
|-
| 5 || Y Endstop Max || grün
|-
| 6 || Z Endstop Max || rosa
|-
| 7 || Z Min (Probe) || violett
|-
| 8 || frei || blau
 
|}
 
===TODO und Planung===
 
* NOTAUS-Taster an der Maschine!
 
* Fräsen einer stabilen Aufnahme für die Fräs-Spinel um die Steifigkeit der Maschine zu erhöhen.
 
* Absaugung
** Selbstbau-direkt-Absaugung http://www.emagu.de/absaugung.htm
** [https://www.youtube.com/watch?v=4zrKHVaICbE Dust Boot] aus PEHD für die Makita Fräse
 
* Hardware-Controls (Taster für Feed-Hold, Resume-Cycle und Jogging)
 
* Z-Probing für nicht elektrisch-leitende Werkstücke
 
* 3d-Probing (3-axis-edge-finding)
 
* Gehäuse bauen
** Rundecken wie bei Flightcases
** Beleuchtung mit Wasserdichtem LED Band
** Gummifüße für das Gehäuse zur Entkoppelung
** integrierte Absaugung
** Schallisolierung
 
* Mögliche weitere Modifikationen:
** NEMA-23 Motoren für alle Achsen [http://shop.shapeoko.com/products/shapeoko-2-nema-23-z-axis-motor-mount Z-Achse] [https://www.inventables.com/projects/nema-23-shapeoko-2-upgrade-parts-list X/Y-Achse]
** [https://www.inventables.com/projects/1000mm-x-1000mm-shapeoko-upgrade-kit Vergrößerung auf 1000*1000mm]
** [http://www.amazon.de/Makita-RT0700CX2J-Oberfr%C3%A4se-und-Trimmer/dp/B00CKYCG8S/ref=sr_1_1?ie=UTF8&qid=1410477948&sr=8-1&keywords=makita+fr%C3%A4se Makita Frässpindel] (ca. 200€) mit [https://www.youtube.com/watch?v=T1pkyLY8Qvs Halterung]


* [http://www.amazon.de/Makita-RT0700CX2J-Oberfr%C3%A4se-und-Trimmer/dp/B00CKYCG8S/ref=sr_1_1?ie=UTF8&qid=1410477948&sr=8-1&keywords=makita+fr%C3%A4se Makita Frässpindel] (ca. 200€) mit [https://www.youtube.com/watch?v=T1pkyLY8Qvs Halterung]
* [https://www.youtube.com/watch?v=4zrKHVaICbE Dust Boot] aus PEHD für die Makita Fräse
* Notaus-Taster
* [https://www.youtube.com/watch?v=PDE5sTNcERU Gehäuse für die Elektronik mit Lüfter]
* [https://www.youtube.com/watch?v=kcdAnUnX59s Bessere Baseplate]
* Geschwindigkeit der Spindel regeln?


[[Kategorie:Projekt]]
[[Kategorie:Werkstatt]]
[[Category:Hardware]]
[[Kategorie:Gerät]]
[[Kategorie:Gerät]]
[[Kategorie:Fräse]]

Aktuelle Version vom 16. August 2024, 10:34 Uhr

   
Shapeoko 2

Status: beta [box doku]

Hersteller  Inventables
Typ  Shapeoko 2
Beschreibung CNC-Fräse

Nach Abstimmung im Septemberplenum 2014 hat das RaumzeitLabor eine CNC Fräse vom Typ "Shapeoko 2" von Inventables gekauft.

Doku & Links

* http://docs.shapeoko.com/ -- Manual und viel Info des Herstellers

Hinweis: Das Wiki ist nicht mehr erreichbar. Es gibt ein paar gespiegelte Infos hier: https://www.reddit.com/r/shapeoko/wiki/g-code/

Workflow

Leider ist zerspanendes Arbeiten nicht so gutmütig und Einsteiger-freundlich wie 3d-Drucken. Wir wirken ja mit zerstörerischer Kraft auf das Werkstück ein und bei Fehlern geht also schnell mal was kaputt - bestenfalls das Werkstück, schlimmstenfalls Körperteile. Es lohnt sich also zunächst einige Zeit in Planung (zweimal Messen, einmal Schneiden!) und Anlesen von Basiswissen zu investieren. Ein guter Einstiegspunkt ist diese Wikiseite im Shapeoko-Wiki.

2.5D vs. 3D

Man spricht bei einer CNC Fräse von 2.5D, wenn man eine 2D Vektordatei fräst und sich der dreidimensionale Teil auf die Tiefe beschränkt. D.h. Die 2D Vektorlinien werden "extrudiert" zu einem 3D Modell ==> 2.5D, In diesem Fall muss der Fräser nur die Vektoren abfahren und sich auf der Z-Achse nur schrittweise nach unten bewegen, um nach und nach Material ab zutragen. Bei einem echten 3D Job dagegen wird das Werkstück in verschiedenen Richtungen überfahren und der Fräskopf muss dabei die Konturen auf der Z-Achse Nachfahren. D.h. er hebt und senkt sich (je nach Modell) während er eine Fläche ab trägt.

Für 2.5D benötigt man kein 3D Modell und kein Tool zum bearbeiten von 3D Modellen (3D-CAD oder andere modeling tools wie bspw. "blender"). Es genügt ein 2D Vektorgrafik-Programm wie Illustrator, Inkscape oder MakerCAM. Bei den reinen Vektor-Grafik-Editoren sind dabei meist Plugins zur Beschreibung der Tiefe und zum Exportieren von gCode notwendig.

CAD -> CAM -> (Post-Prozessor) -> Gcode -> (Simulator) -> G-Code-Sender -> Controller -> Aktoren

Ähnlich wie beim 3D Druck ist der Weg zum Fräsen in folgende Schritte eingeteilt:

  • Modell erstellen
  • Modell in Schichten zerlegen (G-Code)
  • G-Code an Controller senden
  • Controller steuert Fräse bzw. 3D Drucker nach G-Code-Instruktionen

Einen guten Überblick über Toolchains und den gesamten Workflow gibt diese Wikiseite auf shapeoko.com.

Toolchains

Es gibt Toolchains wie Sand am Meer sowohl Freeware und/oder OpenSource als auch im hochpreisigen Bezahlsegment. Wie immer bei Software leider auch ein sehr inkonstantes Feld. Hier ist ein guter Einstiegspunkt um sich für die Plattform der Wahl einen Überblick zu verschaffen. Letzten Endes hilft eigentlich nur ausprobieren womit man gut zurecht kommt.

Connect to Fräse

Um eineige Probleme mit dem "tinyG + chilipeppr.com/tinyg Setup" anzugehen bietet es sich an die Fräse nicht über rzl-hardcore anzusprechen ;-). Statdessen hat die Fräse ihr eigenes wifi (rzl-fraese) mit identischem Passwort wie rzl-hardcore. Im Unterbau der Fräse steht hierzu ein AP. Auf dem Laptop neben der Fräse läuft der serial-port-json-server. Wer jetzt nur noch Bahnhof versteht, sei auf das TinyG-Kapitel dieses Artikels verwiesen.

User-Toolchains

In diesem Kapitel sind alle Anwender aufgerufen ihre (aktuelle) Toolchain zu dokumentieren. Was funktioniert, was nicht? Welche Versionen werden eingesetzt? Bitte Datum nicht vergessen! Ggf. muss auch das Controller-target angegeben werden!

  • 09/2017 2D Kontur, Aluminium
    • Usecase: 3mm Alu-Fräsen für MendelMax2
    • CAD: Autodesk Fusion 360 (derzeit auf Mindstorms Laptop 3 installiert)
    • CAM: Autodes Fusion 360
    • Machining: CNCjs (derzeit auf Mindstorms Laptop 3 installiert)
    • Status: funktioniert
  • 06/2016 3D [silvester]
    • Usecase: 3D-Fräsen aus Vollmaterial (Dachlatte und Acryl)
    • Controller-target: TinyG v0.95
    • CAD: OpenSCAD 2015.03
    • CAM: CamBam v.0.9.8p
    • Simulation: CamBam + Chilipeppr
    • Machining: Chilipeppr.com/tinyg + Serial-Port-JSON-Server.
    • Status: funktioniert.
    • Probleme: Siehe generelle Probleme mit TinyG
  • 02/2017 2D-PCB [silvester]
    • Usecase: PCB-Fräsen (isolation routing. Garavieren, Bohren, Ausschneiden)
    • Controller-target: TinyG v0.95
    • CAD: KiCAD v4.0.4 (Layout wird als Gerber-File exportiert)
    • CAM: pcb2gcode.py
    • Simulation: Fuck no! We're doin' it live!
    • Machining: http://chilipeppr.com/tinyg
    • Status: funktioniert.
    • Probleme: eigentlich keine. pcb2gcode funktioniert erstaunlich gut. HIER gibts das verwendete profile für pcb2gcode
  • 10/2016 2D-PCB [silvester]
    • Usecase: PCB-Fräsen (isolation routing. Garavieren, Bohren, Ausschneiden)
    • Controller-target: TinyG v0.95
    • CAD: KiCAD v4.0.4 (Layout wird als Gerber-File exportiert)
    • CAM: Flatcam v8.5 (3 aufeinanderfolgende Jobs: 1. Gravieren, 2. Bohren, 3. Outlines fräsen), Export zu Gcode
    • Simulation: Fuck no! We're doin' it live!
    • Machining:
      • 1. Chilipeppr.com/tinyg + Serial-Port-JSON-Server. Damit dann zunächst auto-leveling, dann Übernahme des Höhenprofils in den Gcode.
    • Status: funktioniert.
    • Probleme: Aufwändig. Much hassle. Siehe auch: generelle Probleme mit TinyG

Fräsbare Materialien

PE-HD

Polyethylen High-Density, siehe Verarbeitungsbeispiel. Bezugsquelle

Sperrholz (Modell: "Dachlatte")

Einfach zu verarbeiten. Die Fräse schafft hier locker 1mm Zustellung beim Schruppen. X/Y-Vorschub bis 600mm/min. Z-Vorschub maximal 300mm/min. (Das ganze mit einer "3mm 2-Flute Endmill")

Aluminium

Auf unserer Maschine der absolute Endgegner. Bisher getestet:

Aluminiumblech 3mm aus dem Bauhaus sowie AlMg4,5Mn. 3mm Fräser, Vorschub 100mm/min, mehrere Passes mit jeweils 0,25mm Tiefe, Eintauchgeschwindigkeit 10mm/min. Dauert ewig, aber geht. Problem ist die mangelnde Steifigkeit unserer Shapeoko. Entsprechende Fräser hat Feli, einfach fragen.

Delrin

Absolutes Traummaterial, super einfach zu fräsen.

Aktuell verbauter Controller: TinyG

Der TinyG Controller stellt ein serielles Interface zur Verfügung. Prinzipiell ist das Protokoll frei wählbar. Per default laufen 115200 Baud 8N1 mit Hardware-Flow-Control. Verbindet man sich auf dieses Interface z.B. mit minicom -d /dev/ttyUSB0 -c on erhält man mit $h das help menue. Grundsätzlich spricht der TinyG entweder ascii oder json. Der Parser kann explizit oder implizit (Command beginnt mit geschweifter Klammer) zwischen den Modi hin und her switchen.

Firmware & Config

Unter https://synthetos.github.io/ gibt es aktuelle Firmware und eine flash-Anleitung für den TinyG. Am 05.12.2015 wurde die Version 440.20 aus dem master-branch installiert. Die Firmware selbst wird ist zunächst über eine Reihe von Variablen konfiguriert. Auf der seriellen Konsole erhält man mittels $$ alle definierten Variablen.

Auf der Unterseite Shapeoko_2/tinyg_settings ist eine aktuelle Config inklusive der konfigurierten Endstops dokumentiert.

Z-Achse

Weil unsere Maschine bereits das ACME-Z-Achsen-Upgrade eingebaut hat passt die standard-config von tinyG nicht. Auf dieser Seite im shapeoko-wiki wird gezeigt wie die Steppings berechnet werden.

Aktuell (05.12.2015) ist ein normales x/y/z-Koordinatensystem konfiguriert, d. h. 0/0/0 ist links unten und die Spindel ist komplett am Anschlag ausgefahren. Von hier aus kann nun in positiver x/y-Richtung und negativer z-Richtung gearbeitet werden. Das sollte auch so bleiben, weil Standard, weil isso. Erklärung hier.

I/O-Belegung

Probleme & TODO: TinyG gegen ARM + gShield tauschen --> Upgrade auf g2core (=tinyg2)

Der TinyG war zwar 2014 mal eine geile Idee aber stand 2016 ist der Controller einfach nur hinderlich. Synthetos hatte ein eigenes JSON-Protokoll spezifiziert und den offiziellen Softwaresupport auf Chillipeppr umgestellt (Online only, siehe: [1]). Damit wurde der TinyG zur Insellösung, der Rest der Welt macht grbl. Das hat Stand 10/2016 auch Synthetos eingesehen und den TinyG als feature-complete bzw. EOL definiert. Alle neuen features werden in dem Projekt "g2Core" als "Next Generation Grbl-Controller" von Synthetos entwickelt. Der Controller basiert auf ARM-Prozessoren und soll ermöglicht features die mit den 8-bit Prozessoren des Arduino UNO und des TinyG nicht möglich sind. Im wesentlichen also ein ARM (bspw. Arduino DUE) und eln bisschen Logik an den Pinouts. Für unseren Einsatzzweck ist das bereits vorhandene gShield-v5b ausreichend. Hierfür ist allerdings komplettes Neu-Verkabeln der Controllerbox notwendig. Unklar bleibt leider weiterhin ob die GUI-Developer außerhalb von Chilipeppr die Neuentwicklung annehmen, denn so wie es Momentan aussieht wird das JSON-Protokoll übernommen. --S1lvester (Diskussion) 10:09, 25. Okt. 2016 (CEST)

grbl

grbl ist eine relativ einfache C-Firmware für ATMEL-Arduinos, die seriell gestreamten G-Code annimt und in digitalen + analogen Output umsetzt um (über entsprechende stepper-driver) Schrittmotoren zu steuern, voltage-ramps zu generieren, Input von Switches anzunehmen. De-facto laufen Stand 10/2016 alle DIY CNC-Router, 3d-Drucker, Lasercutter, Laser-Solder, Plotter, usw. mit grbl oder Abwandlungen davon. So gut wie alle Hersteller und Distributoren im DIY-Bereich fördern die Entwicklung.

Aktuelle und aktive Development-Branches liegen Stand 10/2016 hier: https://github.com/gnea/grbl

WTF?! grbl, tinyg, tinyg2, g2, g2core, gShield, grblShield, Chilipeppr, Serial-Port-JSON-Server, Synthetos

Im Folgenden mal ein paar Begriffs-Definitionen die Dir zwangsläufig über den weg laufen werden sobald Du dich mit dem Thema CNC oder Lasercutting und DIY beschäftigst.

Der ganze Zoo lässt sich so zusammenfassen: http://imgs.xkcd.com/comics/standards.png

  • grbl: s. oben.
  • tinyg: Controller-Board von Synthetos. Status: EOL. Gleichzeitig auch immer wieder synonym für das von Syntheos spezifizierte JSON-Protokoll gebraucht
  • tinyg2: == g2
  • g2: == g2core
  • g2core: ARM-Port der tinyg-firmware von Synthetos. Aktiver development-branch unter https://github.com/synthetos/g2 Stand 10/2016 viel Aktivität. Platform-target ist aktuell der Arduino DUE + gShield. Gab auch ein paar Ankündigungen, dass Synthetos neue Hardware (wahrscheinlich integriert) produzieren will.
  • grblShield: == gShield
  • gShield: Connector-Board mit stepper-drivern von Synthetos. Ausgeführt wie der Name vermuten lässt als Arduino-Shield. Hardware-Revisionsnummern Beachten! [2]
  • Chilipeppr: Online-Workspace für G-Code Simulation, Manipulation und Streaming sowie machine-control. Erweiterbar durch Plugins ("Widgets"). Javascript + Node + WebGL. Works best in Chrome. Wohnt auf http://chilipeppr.com . Stand 10/2016 die einzig brauchbare Lösung um voll-umfänglich mit dem tinyg zu arbeiten. Wird zwar nicht von Synthetos entwickelt aber gefördert.
  • Serial-Port-JSON-Server: Kleines Binary, dass auf dem Rechner einen TCP-Socket aufmacht und dort eingehenden JSON-Code an den Serial-Port streamt.
  • Synthetos: "Firma" hinter gShield, tinyg, g2core. Stand 10/2016 die einzige Möglichkeit stepper-driver-Boards als Addon-Board oder im Fall tinyg auch mit CPU zu kaufen. Qualität der Hardware ist exzellent und ein Selsbtbau eines stepper-drivers ergibt eigentlich keinen Sinn.

Informationen zur Hardware

Bearbeitbare Fläche: 260x275x70mm

Ausstattung

Wir haben:

Durch den TinyG Controller können wir die 300W Spindel im G-Code Speed controllen und an/ab-schalten!

"build-log"

Alle an der Maschine vorgenommenen Änderungen sollen bitte im "build-log" protokolliert werden, damit sie für die anderen Maker nachvollziehbar bleiben.

Verkabelungsinformationen

Die Schleppkettenkabel vom Typ ÖLFLEX® CHAIN 808 CP 5 G 0.75 mm² sind für die Schrittmotoren folgendermaßen verkabelt (Adernnummern sind auf die einzelnen Litzen aufgedruckt):

1 Rot B1 / B+
2 Blau B2 / B-
3 Grün A1 / A-
4 Schwarz A2 / A+

Ausnahme: Der X-Stepper ist folgendermaßen belegt (Verpeilung?)

1 Grün A1
2 Rot B1
3 Schwarz A2
4 Blau B2

Achtung: Bei dem linken Stepper der Y-Achse ist Grün und Schwarz vertauscht, siehe die Shapeoko2-Dokumentation.

Der Sensorstecker ist wie folgt belegt:

Nummer auf Stecker Signal Kabelfarbe Bild
1 GND braun Buchse Rückansicht
2 X Endstop Min weiß
3 X Endstop Max grau
4 Y Endstop Min gelb
5 Y Endstop Max grün
6 Z Endstop Max rosa
7 Z Min (Probe) violett
8 frei blau

TODO und Planung

  • NOTAUS-Taster an der Maschine!
  • Fräsen einer stabilen Aufnahme für die Fräs-Spinel um die Steifigkeit der Maschine zu erhöhen.
  • Hardware-Controls (Taster für Feed-Hold, Resume-Cycle und Jogging)
  • Z-Probing für nicht elektrisch-leitende Werkstücke
  • 3d-Probing (3-axis-edge-finding)
  • Gehäuse bauen
    • Rundecken wie bei Flightcases
    • Beleuchtung mit Wasserdichtem LED Band
    • Gummifüße für das Gehäuse zur Entkoppelung
    • integrierte Absaugung
    • Schallisolierung