Shapeoko 2

Aus RaumZeitLabor Wiki
 
Shapeoko 2

Release status: beta [box doku]

Beschreibung CNC-Fräse
Verantwortliche(r)  all makers

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

Doku & Links

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. Ein noch zu haltender und hier zu verlinkender Vortrag im RZL soll einen Überblick geben. (--TabascoEye ( 1Diskussion)2:01, 16. Sep. 2014 (CEST))

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.

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!

  • 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
  • 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
      • 2. Fräsen mit Dieser Software. Reason: Die Kombi Serial-Port-JSON-Server + Chilipeppr ist zu flaky.
    • Status: funktioniert.
    • Probleme: Aufwändig. Much hassle. No funs. 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.

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.

Probleme & TODO: TinyG gegen ARM + gShield tauschen

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.
Kleiner Rant: Synthetos besteht aus einem Haufen von bike-shedding Windows Hardware-devs die mal besser die Finger von Software lassen sollten um einfach weiter ihre Boards zu bauen. Gepaart mit dem IP-bullshit den die Abziehen drängen sich parallelen mit den Erfahrungen des RZL beim Thema "ich mach da ein business draus und dann $$$" auf. Schon mal versucht deren firmwares zu kompilieren? Geht nicht. Das ganze verf*ckte Makefile und die libs sind mit hardcoded paths durchzogen. Der main-dev meint dazu man solle doch einfach seine sch... IDE unter Win in genau den selben Pfad installieren! Und als sie dann gemerkt haben, dass sie keinen Plan, keine Idee und kein Talent für ein Frontend haben, haben sie ihr offizielles (tgFX) einfach eingestampft und meinen man soll halt chilipeppr verwenden. Weil G-Code-Streaming von einer online-only Webanwendung mit f*ing helper-binary über nen TCP-Socket und den Bus ja für Echtzeit-machining so ne geile Idee ist. Geht's noch?! Jeder Jog-Command hat eine Sekunde Latenz!!! Hauptsache WebGL und WebHipster-JS-Scheisz am Start. Und statt das Problem "Die grbl-Community hat auf nem kack Arduino UNO mehr Gcodes implementiert als wir auf unserem Atmega-Board obwohl die auch nur 8-bit haben" vernünftig anzugehen, die grbl-Ideen zu übernehmen und ihre krepel-Firmware mit grbl Kompatibel zu machen ist deren Lösung nen größeren Buffer zu implementieren. Ist ja auch logisch, damit bei ihrer flaky JSON-Streaming-Geschichte nicht bei jedem gedroptem TCP-Paket, weil das WebGL gerade irgend ne Kack-Animation rendern muss, die Maschine stehen bleibt. Bleibt nur zu hoffen, dass Sie mit ihrem ARM-Port wieder einen Schritt Richtung grbl-Community machen. Śonst muss das RZL halt ein grbl-kompatibles board mit 6 stepper-drivern und IO entwickeln. Der Absatzumarkt darfür wäre groß genug. Mich fickt es echt an wie viel Lebenszeit ich schon darauf verschwendet habe zu versuchen den Synthetos-Scheiß zu verstehen. I give up. You can't fix stupid. --S1lvester (Diskussion) 10:24, 25. Okt. 2016 (CEST)

Informationen zur Hardware

Ausstattung

Wir haben:

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

Der Arbeitsbereich beträgt ungefähr 30*30*6cm.

"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 schwarz
4 Y Endstop Min gelb
5 Y Endstop Max grün
6 Z Endstop Max rosa
7 Z Min (Probe) lila
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