Selbstbau-CNC

PaulVeröffentlicht von

Motivation

Hier dokumentiere ich den Bau meiner CNC-Plattform, mit der sich unter anderem Platinen und Gehäusefronten fräsen lassen. Auch Holz lässt sich damit wunderbar gravieren.

Teileliste

Um zu schnell zu einem Ergebnis zu kommen, entschied ich mich, auf die zahlreichen im Netz verfügbaren Sets zum Thema CNC und 3D-Druck zurückzugreifen. Dabei legte ich jedoch Wert darauf, keinen kompletten CNC-Bausatz zu kaufen, sondern die Dimensionierung und den generellen Aufbau der Maschine selbst zu bestimmen.

Hinweis Bei allen nachfolgenden Produktlinks handelt es sich ausdrücklich nicht um Affilitate-Links.

Elektronik

Die verwendeten Motoren haben ein Haltemoment von ca. 0,8 Nm.

Auf dem Arduino läuft der G-Code-Interpreter GRBL (Pinout, Hex-File, Flashen mit XLoader), welcher vom Universal G-Code Sender bespaßt wird.

3x Bipolarer Schrittmotor „Nanotec 4T5618S2404-A“ (Pollin, 30 €)
3x Schrittmotor-Montagehalterung Typ „Nema 23“ (Amazon, 13 €)
3x Schrittmotorsteuerung „TB6600“ (Ebay, 21 €)
1x Arduino UNO (Keyestudio Upgrade) (Amazon, 10 €)
6x Endschalter „XSS-5GL13“ (Amazon, 11 €)
1x Schaltnetzteil 36V/10A (Ebay, 24 €)

Insgesamt habe ich für die Elektronik also 109 € ausgegeben.


Die Schrittmotorsteuerung hat drei opto-isolierte Eingänge, deren Massen ich direkt auf der Platine durchverbunden habe.

Achsen und Mechanik

Die Mechanik wurde in allen drei Achsen mit Gewindespindeln realisiert. Die X-Achsen-Linearführung wurde aufgrund ungenügender Stabilität im Nachhinein noch einmal überarbeitet. Auch wurden die Gewindespindel-Montageblöcke nachträglich noch einmal gegen Exemplare mit besserem Gewinde ausgetauscht. Zusätzlich wurden die bei den Sets beiliegenden Spindelmuttern nachträglich gegen solche mit einer Federverspannung ausgetauscht — hierdurch konnten lästige Vibrationsgeräusche beim Verfahren fast vollständig eliminiert werden.

1x Set Linearführung 500mm (Ebay, 28 €) Y-Achse (1)
1x Set Gewindespindel 500mm mit Lagern und Kupplung (Ebay, 13 €) Y-Achse (2)
1x Set Gewindespindel 400mm mit Lagern, Kupplung und Linearführung (Ebay, 29 €) X-Achse alt
1x Set Linearführung 400mm (Ebay, 27,80 €) X-Achse neu
1x Set Gewindespindel 200mm mit Lagern, Kupplung und Linearführung (Ebay, 24 €) Z-Achse
3x Montageblock für T8-Mutter (Ebay, 25 €) Schlechtes Gewinde
3x Montageblock für T8-Mutter (Amazon, 16 €) Bessere Qualität
4x T8-Spindelmutter mit Federverspannung (Ebay, 16 €)

Insgesamt habe ich für die Achsen und Mechanik also ca. 178 € ausgegeben. (Die alte und daher nun ungenutzte X-Achsen-Linearführung sowie die schrottigen Montageblöcke und die überflüssigen, nicht verspannten Spindelmuttern mit inbegriffen.)


Abgesehen von der guten Verpackung fällt auf, dass die 500er-Schienen vorher bereits einmal montiert waren. Die Auflageschiene ist jedoch unversehrt. Die Gleitlager wirken billig (was sie auch sind), sind jedoch spielfrei und lassen sich mit annehmbarer Reibung bewegen.


An der Verpackung des 400er-Gewindespindel-/-Linearführungs-Sets sowie des 500er-Gewindespindel-Sets ist soweit nichts auszusetzen.


Alle Sets zusammen. Auch die Reibung der restlichen Lager ist annehmbar. Lediglich die Gewindemuttern weisen ein geringfügiges Spiel auf, was praktisch jedoch nicht ins Gewicht fallen sollte.


Ob es nun an den Gewindemuttern oder den Montageblöcken liegt, habe ich nicht gemessen; jedenfalls sind die Toleranzen untereinander derart katastrophal, dass ein wenig Überzeugungsarbeit notwendig wurde, um beide zu vereinen.


Die Federverspannten T8-Spindelmuttern zur Vermeidung von Vibrationsgeräuschen.


Die Kugellager sind ausnahmslos leicht schräg in die Stehlagergehäuse gepresst, sodass ich diese mit einer Schlitzschraubendreherspitze erst vorsichtig in Position hämmern musste.


Die Wellenkupplungen hat mir ein netter Kollege in die Drehbank eingespannt und auf 6 mm aufgebohrt, sodass sie auf die Motorwelle passen. Außerdem konnte ich ein paar Schalter für Not-Aus und Start/Stop aus der Schrottkiste ziehen.

Holz- und Alu-Konstruktion

Bei den Platten handelt es sich um Siebdrucksperrholz mit 15mm bzw. 21mm Stärke. Um die Achsen in etwa auf Höhe der Motorwelle anzuheben, verwende ich die zusätzlichen, dickeren Platten; die Feinjustierung erfolgt über Unterlegscheiben.

1x Platte 60cm x 50cm, Stärke 15mm (Baumarkt, 10,87 €) Grundplatte (Y-Achse)
1x Platte 50cm x 30cm, Stärke 21mm (Baumarkt, 7,42 €) Grundplatte (Y-Achse) Anhebung
1x Platte 50cm x 14cm, Stärke 15mm (Baumarkt, 2,54 €) Portal (X-Platte)
1x Platte 40cm x 14cm, Stärke 21mm (Baumarkt, 2,77 €) Portal (X-Platte) Anhebung
1x Platte 30cm x 11cm, Stärke 15mm (Baumarkt, 1,20 €) Portal (Z-Platte)
1x Platte 20cm x 11cm, Stärke 21mm (Baumarkt, 1,09 €) Portal (Z-Platte) Anhebung
1x Platte 20cm x 11cm, Stärke 15mm (Baumarkt, 0,80 €) Portal (Werkzeugplatte)
1x Platte 30cm x 24cm, Stärke 15mm (Baumarkt, 2,61 €) Werkstückplatte (unten)
2x Nutplatten 15mm x 120mm x 300mm Nut 8 (Aluprofile24, 9 €) Werkstückplatte (oben)
2x Strebenprofil 40mm x 80mm x 400mm Nut 10 (Aluprofile24, 13 €) Portal (Säulen)
4x Montagewinkel 40mm x 40mm Nut 10 mit Nutführung (Aluprofile24, 4 €) Portal (Säulen)
2x Set Gehäusefüße (Ebay, 7 €)

Ohne Berücksichtigung von Zusatz-/Versandkosten und Kleinteilen wie Winkel, Schrauben, Kabel oder sonstigem Montagematerial beläuft sich der Gesamtpreis der Holz-/Alu-Konstruktion somit auf rund 62 €. (Für einen Vorrat an verschiedenen Schrauben habe ich noch einmal rund 30 € ausgegeben.)


Lieferung der Nutplatten und Strebenprofile. Die Nutführungen (Alu-Druckguss-Nippel) der Montagewinkel habe ich einseitig mit einer Rohrzange angeknipst, damit die Winkel auf der Grundplatte stehen können.

Frässpindel und Fräser

Meine ersten Versuche mit einem günstigen „Dremel“-Fake waren recht ernüchternd; der Rundlauf ist katastrophal, die Lautstärke fatal (Bürstenmotor). Daher habe ich erneut Geld in die Hand genommen und eine Brushless-Spindel mitsamt Netzteil und Controller aus chinesischer Produktion besorgt; die Lautstärke ist nun durchaus annehmbar und der Rundlauf ist verglichen mit dem „Dremel“ optimal. Für Interessierte gibt es auch ein ausführlicheres Review im mosfetkiller-Forum.

1x FERM-Kombiwerkzeug 160W, max. 35000 U/min (Amazon, 27 €) alt
1x China-Frässpindelset 400W, max. 12000 U/min (Ebay, 105 €) neu
1x Gravierstichel 0,1mm / 60° (Ebay, 3,75 €)

Insgesamt hat mich das nun verwendete, neue China-Frässpindelset inklusive meines Vorversuchs mit dem FERM-„Dremel“ und zuzüglich der Fräser (Gravierstichel) also ca. 135 € gekostet.

Bilder vom Bau

Y-Achse

Beim Aufbau der CNC-Fräse habe ich mit der Grundplatte und der sich direkt darauf befindlichen Y-Achse begonnen. Die Y-Achse ist als Schlitten konzipiert, welcher sich unter dem Portal vor- und zurück bewegt. Der Schlitten besteht aus einer Holzplatte, auf welcher wiederum die Nutplatten montiert sind. Zur Überbrückung des Abstands zwischen Gewindespindel-Montageblock und Schlitten wurden diverse Kunststoffdichtungen übereinandergeklebt.

X-Achse

Die X-Achse wird auf dem feststehenden Portal montiert. Die hier gezeigte alte X-Achse wurde noch mit freistehenden Linearführungen aufgebaut — diese Konstruktion war allerdings eher freischwingend und alles andere als starr. Daher wurde die X-Achse noch einmal mit starren Schienen neu aufgebaut. Die Fotos dazu folgen in Verlauf dieses Artikels.

Z-Achse

Der Aufbau der Z-Achse gestaltete sich etwas fummelig; als Abstandshalter mussten Muttern aufgeklebt werden, um die Höhe der Linarführungswellenhalter zu überbrücken. Für die ersten Tests wurde behelfsmäßig ein günstiger „Dremel“ auf der Z-Achse montiert.

Für die nachträgliche Montage der China-Frässpindel musste ich die Z-Platte noch um ein paar cm kürzen, um den gewünschten Verfahrweg zu erreichen.

Plattform

Der mechanische Aufbau der Plattform (mit der alten X-Achse), hier noch ohne Elektronik und Verkabelung.

Elektronik und Verkabelung

Die Elektronik besteht im Wesentlichen aus dem Schaltnetzteil, den Schrittmotor-Treibern, dem Arduino (erstes Gehäuse) und einer Schalt-/Verteilerkiste für Netzspannung (zweites Gehäuse). Die Netzspannungskiste enthält (in der ersten Version) nebst einem Solid-State-Relais zum Schalten der Frässpindel ein kleines Hi-Link-Netzteil, welches den Arduino mit 5V versorgt; somit sind die Schaltausgänge des Arduino auch ohne angestecktem USB-Kabel stets in einem wohldefinierten Zustand.

Die Arduino-Kiste beherbergt außerdem eine Hohlsteckerbuchse zum Anschluss der Probe-Klemmen, Stichwort Z-Leveling zum automatisierten Abtasten einer Leiterplatte zwecks Erstellung eines Höhenprofils für akkurate Leiterbahntiefen. Auch Taster für Pause/Continue und Not-Aus sowie eine Power-LED sind vorhanden.

Die Schrittmotor-Treiber und der Arduino sind über ein altes VGA-Kabel (mit schön vielen, bunten Adern) verbunden; ein Stück Lochblech dient als Abdeckung, damit diese Verkabelung nicht versehentlich beschädigt werden kann.

Mit dem nachträglichen Einbau des China-Frässpindelsets ist noch ein Schaltnetzteil sowie der Spindel-Controller (mitsamt Drehzahlpoti und -anzeige) hinzugekommen. Das Solid-State-Relais ist wieder aus dem Netzspannungsgehäuse rausgeflogen, da nun nicht mehr direkt die Netzspannung der Spindel geschaltet werden muss. Stattdessen geht das Spindel-Enable-Signal — über einen Transistor invertiert — an den Spindel-Controller.

Die Schrittmotoren der X- und Y-Achse werden mit 4 Mikroschritten betrieben, die Z-Achse mit 8 Mikroschritten. Hiermit habe ich in meinen ersten schnellen Tests gute Resultate erzielt; es ist möglich, dass ich hier noch weiter optimiere, um den bestmöglichen Trade-Off zwischen Drehmoment und Präzision zu erreichen.

Fertiggestelltes Gerät


Version 2, mit stabiler X-Achse, aber immer noch ungeeigneter Frässpindel. In der Draufsicht zeigen sich die Endschalter der X-Achse, welche von einem an die Z-Platte montierten Metallwinkel betätigt werden.


Version 2, mit verbesserter X-Achse und neuer Frässpindel.

Verkabelung und Ansteuerung

Anbindung Arduino/Schrittmotortreiber

Das folgende Schema zeigt die Anbindung eines Schrittmotor-Controllers an den Arduino.

Anbindung Arduino-TB6600

Universal G-Code Sender

Vom Universal G-Code Sender gibt es zwei verschiedene Versionen, ich verwende die neuere Platform-Version. Die CNC-Fräse wird via USB mit einem Rechner verbunden, auf dem UGS Platform gestartet wurde. Dann wird die richtige serielle Schnittstelle selektiert und auf Connect geklickt.

UGS bzw. GRBL kennen zwei Arten von Koordinaten:

  • Die absolute Machine Position, relativ zu den Home-Schaltern und im Controller State in kleinen Digits angezeigt.
  • Die Work Position, relativ zum frei wählbaren Arbeitsnullpunkt, im Controller State in großen Digits angezeigt.

Bevor ein G-Code-File geladen und gestartet werden kann, sollten die folgenden Aktionen verstanden werden:

Home MachineEndschalter suchen, absolute (Maschinen-)Nullposition suchen.
Reset ZeroArbeitsnullpunkt setzen, also Work-Position auf Null setzen.
Return to ZeroMaschine zum Arbeitsnullpunkt fahren.
UnlockBei gewissen Interventionen (z.B. Not-Aus) sichert sich GRBL aus Sicherheitsgründen gegen weitere Kommandos ab und muss wieder entsperrt werden.
Soft ResetWenn GRBL aufgrund eines Fehlers oder einer Intervention beleidigt ist, hilft ein Soft Reset.

Die folgenden Bewegungsparameter legen die Schrittweite und -geschwindigkeit für den manuellen Betrieb (Jog-Controller) fest:

  • Step Size XY: Hier können beliebige Werte eingetragen werden; wenn die Bewegung um die eingestellte Schrittweite den Arbeitsbereich überschreitet, verhindert GRBL diese Aktion mit einer Fehlermeldung.
  • Step Size Z: Hier sollten kleinere Werte eingetragen werden, um bei unbedachtem Verfahren der Z-Achse den Fräser nicht ins Werkstück zu rammen.
  • Feed Rate: Die Verfahrgeschwindigkeit für alle Achsen. Ist dieser Wert größer als das in den Firmware-Einstellungen konfigurierte Maximum für die jeweilige Achse, so wird die Geschwindigkeit auf eben diesen Wert gedrosselt.

GRBL

Die Firmware-Einstellungen von GRBL können vom Universal G-Code Sender (Menü Machine / Firmware Settings) aus komfortabel editiert werden. Hier können Achsenbeschleunigungen, Maximalgeschwindigkeiten und vorallem die Mikroschritt-Konfigurationen dauerhaft eingetragen werden.

Meine Firmware-Einstellungen finden sich der Vollständigkeit halber und zwecks Orientierung für andere Interessierte hier zum Download:

Download “CNC-Firmware-Settings” firmware_2019-05-27.zip – 17-mal heruntergeladen – 2 KB

Wichtige G-Codes

Auch wenn der Universal-G-Code Sender die komplette Ansteuerung der Schrittmotoren übernimmt, kann die Kenntnis einiger wichtiger G-Codes nicht schaden. Kommentare innerhalb eines G-Code-Files sind übrigens erlaubt, solange sie in runden Klammern stehen.

(Maximale Verfahrgeschwindigkeit)
G94 F500
(Homing)
$H G10 P0 L20 X0 Y0 Z0
(Maximale Spindelgeschwindigkeit, kann nach jedem Reset automatisch vom "Start-up Block" mit dem folgenden Befehl gesetzt werden: $S0=S1000)
S1000
(Frässpindel einschalten)
M3
(Frässpindel ausschalten)
M5

G-Code-Export aus Inkscape

Für meine ersten Tests habe ich in Inkscape eine Vektorgrafik erstellt und mithilfe von gcodetools als G-Code exportiert. Die Installation von gcodetools besteht darin, einfach alle Dateien aus dem GitHub-Repository nach share\extensions relativ zum Inkscape-Installationsverzeichnis zu kopieren.

Hinweis gcodetools 1.7 (aktuelle Version, länger nicht mehr gepflegt) funktioniert nur mit Inkscape 0.92.3!

Eine gute Beschreibung zum Vorgehen beim Exportvorgang und der Parametrisierung findet sich hier: Fräsdaten mit Inkscape.

Hinweis Aufgrund eines Bugs in den gcodetools muss vor dem abschließenden Klick auf „Anwenden“ wieder auf den Tab „Pfad zu GCode“ gewechselt werden, sonst passiert nichts. Nicht vergessen, sämtliche Textobjekte vor dem Export in Pfade umzuwandeln.

Insgesamt ist dieser Workflow nicht sonderlich komfortabel, funktioniert nach ein wenig Experimentieren aber recht gut.

G-Code-Export aus EAGLE

Das Exportieren von Leiterplattendaten (Leiterbahnen, Bohrungen) geschieht über das ULP pcb-gcode.

Einen ersten Test zum Platinenfräsen habe ich bereits durchgeführt, jedoch noch mit Version 1 der CNC-Fräse. Die Resultate waren aufgrund der schwingenden X-Achse sowie der inakkuraten Frässpindel jedoch inakzeptabel. Außerdem scheint die Z-Leveling-Funktion von UGS Platform verbuggt zu sein, sodass ich mir für einen späteren Test eine andere Ansteuerungssoftware suchen werde.

Ergebnisse und Fazit

Die überwiegend chinesischen Mechanik-Produkte locken mit günstigen Anschaffungspreisen; da hierbei jedoch keine besondere Qualitätskontrolle zu erwarten ist, sollte man sich der teilweise erforderlichen Nachbearbeitung bewusst sein.

Auch das Anzeichnen, Bohren und Nachkorrigieren der Löcher zur Montage von Gleitlagern und Siebdruckplatten eine mühselige Arbeit. Aber da das Henne-Ei Problem mit der Fertigstellung dieser CNC-Fräse nun endlich gelöst ist, können alle weiteren Projekte dieser Art wenigstens computergesteuert realisiert werden! 🙂

Insgesamt habe ich ca. ein halbes Jahr (mit viel Unterbrechung und an nur wenigen Abenden in der Woche) an der CNC gebastelt und habe dafür knapp 500 € gelöhnt. Mit einer Grundfläche von 50 cm x 60 cm (Tiefe meines Basteltisches) und einem Arbeitsbereich von ca. einer DIN-A4-Seite bietet die Fräse für meine Zwecke einen guten Kompromiss aus Stellplatz und maximaler Größe des zu bearbeitenden Werkstückes (Holz, Alu, Platinen).

Die Steifigkeit des Aufbaus ist meines Erachtens sehr gut — das schlägt sich natürlich auch im Gewicht der Maschine wieder. Das hohe Gewicht hat aber auch den Vorteil einer besseren Vibrationsdämpfung. Die Lautstärke der Maschine hält sich tatsächlich in Grenzen, zumindest seitdem ich die China-Frässpindel und die federverspannten Spindelmuttern montiert habe.

Alles in allem bin ich mit dem Projekt äußerst zufrieden und freue mich auf die nachfolgenden Basteleien, welche mithilfe dieser CNC realisiert werden. Updates poste ich natürlich hier!

Kommentar hinterlassen

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