Dienstag, 21. Oktober 2014

Der billigste 3D Drucker der Welt im Eigenbau - ein Erfahrungsbericht Teil 1

Der QU BD OneUP gilt als der derzeit billigste 3 D Drucker der Welt. Im Rahmen einer Kickstarter Kampagne wurde er Ende 2013 vorgestellt.
Ich wollte zwar einen haben, kam aber zur Kampagne zu spät und hatte noch etliche andere Perks laufen, so dass der OneUp sich erst mal hinten anstellen musste.
Hier der damalige Trailer:


 Hier die technischen Daten:




Glücklicherweise hatte mein Freund Lorenz sich hinreißen lassen, aber wie erwartet keine Zeit den Bausatz auch zum Laufen zu bringen. So erreichte mich das Paket mit dem Brocken erst im Oktober 2014. Gleich am nächsten Tag machte ich mich an die Arbeit.
Der OneUp ist ein kartesischer REPRAP Klon in Kleinformat. Wie bei vielen US 3D Druckern besteht das Chassis aus gelaserten MDF Platten. Das mag ich eigentlich nicht, da es bei Kontakt mit Wasser gerne quillt und sich auch mäßig bohren lässt, aber so war nun mal der Deal.
Der OneUp wird aktuell als Kit immer noch für 199 US $ ohne Fracht, Zoll und Einfuhrumsatzsteuer angeboten.
Der Anbieter QU gilt bei vielen Foristen als nicht besonders zuverlässig, was Liefertermine und Service angeht. Die kleine Firma aus Little Rock in Arkansas ist aufgrund ihrer Low Cost Politik, zu schnell gewachsen und kommt mit der Organisation nicht so recht hinter her. Wer also auf Service hofft, der sollte sich besser nicht auf den Hersteller verlassen, sondern googeln und in den entsprechenden Foren herum suchen. Das Gerät ist mittlerweile einige Zeit auf dem Markt und etliche bekannte Probleme werden im Internet behandelt. Gut hingegen ist die Open Source Politik des Anbieters. Alle gelaserten Bauteile sind als DXF frei herunterladbar. Mods aus dem 3D Drucker gibt es mittlerweile zuhauf.

Lieferumfang:
Billigster 3D Drucker der Welt im Eigenbau -Tag 5
Im Kit ist alles was man für einen 3D Drucker braucht, also Chassis, Mechanik/Vitamine somit alle Wellen, Gewindestange, Lager, Schrauben und weitere Kleinteile. Weiterhin sind die Schrittmotoren inbegriffen sowie ein sogenanntes Anubis Hotend. Brandaktuell zum damaligen Zeitpunkt ist der Arduino basierende Controller mit dem gewohnt unaussprechlichen Namen „Teensyduino“. Dieser verfügt über alle notwendigen Ein und Ausgänge für Thermistoren, Hotend, Heated Bed und integrierte Pololus zur Schrittmotorsteuerung.
Das kleine Netzteil des 3D Druckers liefert 100 Watt
Auch ein 100W Netzteil liegt dem Paket bei. Es verfügt über eine Art Autosense (oder hat einen entsprechend großen Eingangsbereich), so das automatisch 110V oder 230V erkannt wird, leider passt das beigelegte Netzkabel aber nicht in deutsche Steckdosen. Leider ist auch hier keinerlei vorschriftsmäßiger Betrieb möglich, da weder eine galvanische Trennung USB Port und Netzteil von einander abschirmt, noch ein Ein/Ausschalter vorhanden ist, geschweige denn eine EMV gerechte Abschirmung. Daher sind aber solche Bausätze eben immer nur als Kit erwerbbar und werden auf eigenes Risiko des Betreiber benutzt.
Netzteil und Controllerboard werden auf einem eigens gelaserten Brett befestigt. Das klappt ganz gut und sorgt dafür, dass der Kabeldickicht überschaubar bleibt. Allerdings nimmt das lange Brett recht viel Platz weg und man gerät ins Grübeln wie man dies kompakter gestalten könnte. Einige User sind auf die Idee gekommen, den Controller oben auf dem Netzteil zu befestigen, Dadurch erhält man eine kompakte Box mit der ganzen Elektronik. Zunächst einmal wird es aber so aufgebaut wie es vorgesehen ist, denn derzeit muss ständig am Controller etwas eingestellt und gesteckt werden.

Aufbau und notwendige Nacharbeiten

Den Aufbauprozess erspare ich dem Leser an dieser Stelle. Es gibt ein ordentliches Aufbau Manual auf der Herstellerseite, das so umfangreich und mittlerweile häufig überarbeitet ist, dass der Zusammenbau für einen erprobten Bastler problemlos ist.

Bodenplatte (weiß) aus dem 3D Drucker
für den 3D Drucker
Probleme bereitet jedoch die etwas chaotische Firma die dem OneUp herstellt. Im Paket fehlten Teile und ein MDF Teil war nicht vollständig gelasert, musste also per Hand nachgebohrt, gefeilt und gesägt werden. Das fehlende Bauteil wurde mit Hilfe von Thomas 3D Ducker im Hackerspace Frankfurt tief in der Nacht ausgedruckt. Hierzu nahm man die vorhandene DFX Datei und extrudierte sie auf 5 mm Höhe in SCAD. Das Ergebnis – eine Bodenplatte für dem Extruder – in ABS war perfekt und maßhaltig, so dass es nun endlich zum finalen Aufbau weiter gehen konnte. Hierfür nochmals recht herzlichen Dank an die kompetente und hilfsbereite Mannschaft vom Frankfurter Hackerspace und hier insbesondere Thomas von Datensucht.de der bis 3 Uhr nachts an den Teilen mit mir saß!
Gedruckte Distanzhalter
Die Außenseite des Linearlagers wurde von mir mit blauem Tape beklebt und dann mit Sekundenkleber an den Distanzstücken befestigt. Da der OneUp nur an einer Seite mit einer Spindel arbeitet, hängt ein Großteil des Gewichts an der gegenüberliegenden Seite des X Schlittens. Sind die Lager nicht bombenfest am Rahmen befestigt, führt die zu zusätzlichem Spiel. Das Problem ist bekannt und es gibt einige weitere Kniffe und Mods wie man diesen Umstand billig und mit wenig Aufwand beheben kann. Von Haus aus, ist dieses Problem jedoch nicht gelöst!
  Eigentlich halte ich von diesen Kabelbinder Befestigungen rein gar nichts! Deren Zweck ist es - der Name sagt es ja bereits, KABEL zu befestigen. Ein Linearlager oder eine Welle, die präzise reproduzierbare Ergebniss liefern sollen, kann man doch nicht ernsthaft mit einer Plastikschlaufe fixieren!
....doch man kann...
Bei einem Preis von 199 US $ sollte man wirklich keine Wunder erwarten. Allerdings sind auch die mitgelieferten Kabelbinder an sich chinesischer Billigschrott. Daher investiere man wenigstens in ein paar ordentliche Nylon Kabelbinder aus deutschen Landen.
Billiger 3D Drucker- Kabelbinder wohin das Auge blickt...
  Gespart wurde beim OneUp an allen Ecken und Enden. So findet sich nicht einmal eine klitzekleine Kupplung zur Verbindung von Welle und Schrittmotorspindel. Stattdessen empfiehlt der Anbieter, die Welle auf die zuvor entfettete und mit Loctite Blue bestrichene Schrittmotorwelle aufzuschieben. Die Antriebswelle der Z-Achse ist nämlich innen hohlgebohrt und das Ganze arbeitet wie eine Art Passung. Da man seinen Drucker gerade am Anfang immer mal wieder auseinander nehmen muss, schreckte ich hiervor zurück. Auf Empfehlung von Michael aka Hardwarekiller vom Hackerspace FFM verwendete ich statt Loctite Blue Sekundenkleber, denn der löst sich angeblich bei 100 °C wieder auf - Schaun mer mal ;-)
Spindel direkt auf Stepper aufgeschoben
  Hier ein Blick auf die nachträglich angebrachten optischen Endschalter. leider konnten Sie nicht zum Einsatz kommen, da zunächst die Firmware nicht zu flashen war und die entsprechenden Voreinstellungen zur Logik invers waren.


 Hierbei stellte sich ein Designfehler heraus, der die Führungswellen der Z-Achse positionierte. Mithilfe von ausgedruckten Distanzhülsen ließ sich der Fehler beheben. Das Problem ist bekannt und wurde wohl in späteren Revisionen behoben. Ich hatte wie gesagt eines der ersten Kits vorliegen, bei dem dies noch nicht so war.
Auch der Druckbereich der Y-Achse entspricht nicht den angegebenen 100 mm. Bei 80 mm ist Schluss. Wer mehr will muss einen Teil des Druckbetthalters absägen oder abfeilen. Aber auch dieser Konstruktionsfehler soll mittlerweile behoben sein.

Der billigste 3D Drucker der Welt nach 10 Tagen Bastellei
Ist der Zusammenbau erfolgt, erstrahlt der kleine 3D Drucker in einem Art Cyber Punk Design und die schwarzen MDF Platten wirken auf einmal gar nicht mehr so sehr nach Roller Billigmöbel. Das hohe Eigengewicht des Druckers verleiht ihm zusammen mit der Kompaktheit eine ungeahnte Stabilität. Lediglich die unverklebten Gehäuseteile erwecken nicht das Vertrauen beim belasten, da sie durchaus Spiel haben und nach erfolgreicher Inbetriebnahme wohl doch lieber feste zusammengefügt werden sollten – vielleicht auch mit wieder lösbaren Schrauben.

Nachdem der Zusammenbau der Mechanik und der Elektronik erfolgt ist, wenden wir uns der Firmware des kleinen Arduino Boards zu (Hier geht es zum Download Link der aktuellen Firmware). Diese könnte veraltet sein und sollte daher aktualisiert werden. Aber auch um spätere Anpassungen durchführen zu können, wird es notwendig sein, die Änderungen und Libraries in die Arduino IDE einzubinden, da man ansonsten keine Zugriff darauf erhält. Weiterhin brauchen wir unbedingte einen Treiber für Windows, da der Controller sonst nicht erkannt wird. Leider ist dies alles fummelig und Handarbeit. Am besten bekommt man das in diesem (englischen) Video erklärt.

Der Controller
Bei dem mitgelieferten Board handelt es sich um eine Printrboard Variation. Diese ist schön kompakt und enthält alles was der 3D Drucker an Ein und Ausgängen braucht. So ist zum Beispiel ein SD Karten Lesegerät vorgesehen. Schrittmotorendstufen sind integriert und laufen ohne Kühlkörper ohne warm zu werden. Weiterhin ist native USB Unterstützung integriert. Es wird also nicht die serielle Schnittstelle mithilfe eines Hilfschips zur USB umgewandelt, was zu vielen Problemen beim Erkennen des Geräts insbesondere unter Windows führt.
Auf dem Controller befinden sich ebenfalls die Anschlüsse für Endschalter, die jedoch beim OneUp nicht vorhanden, in der Firmware jedoch bereits aktiviert sind. Ebenfalls an Board sind Ausgänge für ein Heated Bed, einen Lüfter, sowie die Eingänge für die Themistoren von Hot End und Heated Bed.
Für den Betrieb des Heated Beds reicht die Leistung des mitgelieferten 100W Netzteils nicht aus, so dass man hier später aufrüsten müsste.
Als CPU kommt übrigens auf dem „Teensylu“ genannten Printrboard Derivat die ATMEL 90USB1286 zum Einsatz.
Blick auf das Board des billigsten 3D Druckers
Das Board hat also alle notwendigen Komponenten hoch integriert bereits dabei. Das Ganze ist recht ausgewogen, nichts wird heiß und auch gegen Fehlbedienungen ist es recht robust. Der Bootloader kann direkt über die USB Schnittstelle überspielt werden, sofern das Board noch erkannt wird. Hier braucht man also nur in Extremfällen eine zusätzliche Hardware zum Überspielen des Bootloaders.

Modifizierte Config Dateien einbinden

Damit die Arduino IDE den Teensyduino überhaupt erkennt, müssen drei Dateien (Hier der Download Link)  in das Arduino Verzeichnis eingefügt werden. BEVOR man das tut, muss allerdings eine Datei auch noch mit einem Texteditor wie Notepad++ bearbeitet und eine Zeile editiert werden. Ganz schön umständlich!
Hat man also die obigen modifizierten Config Dateien heruntergeladen und entpackt (nicht bereits in das Arduino Verzeichnis!!), öffnet man die Datei Boards.txt . Dort sucht man nach dem String:

cdcteensylu.build.core=at90usb1286

Dieser findet sich bei der vorliegenden Version in Zeile 176. Als nächstes entfernt man den Teil hinter dem Gleichheitszeichen und ersetzt ihn mit "teensy", so dass die Zeile 174 dann so aussehen müsste:

cdcteensylu.build.core=teensy

und speichert das Ganze ab. (Zur Sicherheit "teensy" klein schreiben!)
Dann markiert man die drei Dateien aus dem Verzeichnis und kopiert sie in das Arduino Verzeichnis. Hierbei wird man auf Warnungen stoßen, da diese Dateien bereits vorhanden sind. Diese Warnungen ignoriert man und überschreibt die vorhandenen Dateien mit den drei neuen Dateien. Das Arduino IDE Verzeichnis befindet sich zumindest bei mir unter

 (...)\Programme(x86)\Arduino\hardware\teensy

Hier hinein gehören die drei modifizierten Dateien.

Als nächstes folgt das eigentliche Update der Firmware. Die aktuelle Version der Firmware für dem OneUP findet sich unter:


Entpacke die Files in ein beliebiges Verzeichnis und gehen dann in das entpackte Unterverzeichnis in dem die Datei Marlin.ino zu finde ist und rufe diese Datei auf. Sollte sie nicht automatisch mit der Arduino IDE aufgerufen werden, sondern mit Word etc. benutze rechte Maustaste und die Funktion „Öffnen mit“. Verwende zum Öffnen Arduino.exe.

Das sogenannte Sketch wird jetzt mit allen verbundenen Dateien in die Arduino IDE geladen. Im Fall des QB OneUp gibt es zunächst nur eine Einstellung die eventuell geändert werden muss und zwar die Unterscheidung zwischen dem OneUp Model 1 und dem OneUp Model 2.
Zunächst wählt man das Tab mit dem Namen „Configuration.h“. Dies ist die Datei die man am häufigsten mal ändern muss. Die anderen Dateien sind zunächst nicht wichtig.
Der Eintrag findet sich ganz zu Anfang in der Zeile

#define QUBD_MODEL 1 // for One-Up printers
//#define QUBD_MODEL 2 // for Two-Up printers

Der OneUp ist in jedem Fall schreibtischtauglich!
Je nachdem welches Modell man hat, muss man das andere Modell auskommentieren. Dies erfolgt über die beiden vorangestellten Schrägstriche. Will man also, das Modell 1 wählen (das ist der kleinere OneUp mit 100 x 100 mm Druckfläche) stellt man vor den Ausdruck #define etc.  zwei Schrägstriche. Die Zeile ist somit deaktiviert. Umgekehrt muss man eine deaktivierte Zeile durch das Löschend er Schrägstriche wieder aktivieren. Voreingestellt ist übrigens das größere Model 2. Wer das hat braucht also nichts zu ändern!

Nachdem die aktuellste Firmware auf das Printrboard hochgeladen wurde, erhält man am Ende eine Fehlermeldung oder besser eine Warnung:

avrdude: error: buffered memory access not supported. Maybe it isn't
a butterfly/AVR109 but a AVR910 device?

Diese Meldung weist auf ein erhebliches Problem hin, denn die Firmware wurde nicht aktualisiert.
Nach einigen Herumprobieren entdeckte ich, dass die Meldung verschwindet, wenn man den Jumper auf dem Board der mit "Boot" bezeichnet ist brückt, statt ihn wie anderswo im Internet gelesen, offen lässt. Der Upload läuft dann zwar ohne Meldungen ab, aber die Firmware wird scheinbar trotzdem nicht aktualisiert. Zudem wechselte der COM Port bei diesem Vorgehen zwischen COM11 und COM13 hin und her. Eine Lösung war das also nicht.

Da ich mich mit Endstops bei einem solchen Billig 3D Drucker einfach sicherer fühle, habe ich ein paar aus der Bastelkiste genommen und sie verbaut. Es handelte sich um Gabellichtschranken, die ich über Ebay in China mal gekauft hatte. Nun galt es aber der Firmware dies beizubringen. Obwohl der OneUp nicht über Endstops verfügt sind sie jedoch in der Firmware aktiviert. Die sist möglich, da die mechanischen Endstops ausgewählt wurden, die ohnehin immer offen sind und nur bei Kontakt schließen. Nicht vorhandene Endstops werden somit so behandelt als seien sie einfach noch nicht gedrückt und somit der Schaltkreis geschlossen worden, der Drucker kann also munter in jeder Richtung bis zum Sank Nimmerleinstag laufen. Letztlich stößt dann die Achse jedoch irgendwo dagegen und der Schrittmotor drückt den Aufbau kaputt. Da ich es auch schon erlebt habe, dass 3D Drucker abgeschmiert sind und falsche Skalierungen übernommen haben, ist es mir lieber, wenn es wenigstens eine Chance gibt, dass der Drucker in einem unbeaufsichtigten Augenblick nicht den Aufbau zerstört. Zumal der OneUp aus Pressholz und Kabelbindern besteht und nicht wirklich so robust ist wie ein echter Metallaufbau. Meine Empfehlung: Die Endschalter sollte man dem OneUp spendieren!

Ein Schwachpunkt des Kits sind die üblen Schrittmotoren. Die namenlosen Stepper sind schwer, klobig, laufen laut, sehr rau mit einem mahlenden Geräusch und scheinen zudem einen großen Stromhunger zu haben. Der sehr ruppig laufende Motor der X-Achse wurde jedenfalls durch ein aus einem anderen Projekt übrig gebliebenen Wantai Schrittmotor ersetzt. Dies war ein Unterschied von Tag und Nacht. Auf einmal surrte die X-Achse statt wie zuvor sprunghaft und unter lautem Scheppern den Gurt in Bewegung zu setzen.

Schrittmotoren taugen nichts

Wer kann, sollte alle Schrittmotoren gegen halbwegs vernünftige tauschen. Die mitgelieferten sind – ohne Messwerte erhoben zu haben – minderwertige Modelle.
Rechts mitgelieferter Stepper, links Wantai im Vergleich
Apropos X-Achse und Gurt: Die Befestigung des Antriebsriemenss soll recht abenteuerlich durch doppelseitiges Klebeband oder Sekundenkleber erfolgen, wobei die Rückseite des Gurts mit dem Extruder verbunden werden soll. Das das nicht vernünftig halten kann, sollte eigentlich klar sein. Noch dazu wenn das Gerät keine Endschalter hat und hin und wieder mal der X Schlitten gegen das Chassis drückt. Eine bessere Lösung ist da wohl die Verwendung eines komplett neuen Extruders mit entsprechender Befestigungsmöglichkeit für den Riemen.

Leider liefen die Achsen scheinbar alle in die verkehrt Richtung. Warum das bei einem abgestimmten Kit so sein muss, ist mir schleierhaft. Jedenfalls führte das zu Fummeleien in der Firmware, die dutzende Male raufgeladen, geprüft und korrigiert werden musst. Eine ärgerliche, unnötige Zeitverschwendung.
Einstellen kann man die Achsen üblicherweise in configuration.h:

#define INVERT_X_DIR false    // for Mendel set to false, for Orca set to true
#define INVERT_Y_DIR false    // for Mendel set to true, for Orca set to false
#define INVERT_Z_DIR false    // for Mendel set to false, for Orca set to true

Dort ändert man entsprechend den Wert von False auf True und umgekehrt, je nachdem was man dort vorfindet. Bei der Y-Achse kam hinzu, dass die Endstop LED permanent leuchtete und auch kein Signal ausgelöst wurde, wenn die Schranke durchfahren wurde. Durch Vertauschen mit den anderen Endschaltern konnte festgestellt werden, dass das Problem beim Controller liegt. Sei es hardwaremäßig oder ein Eintrag in der Firmware. Aber da das für das Drucken an sich nicht bedeutend war, wurde der Ursache nicht weiter auf den Grund gegangen um weiter zu kommen.

Ein neues Problem gesellte sich plötzlich beim Verdrahten und Einrichten der optischen Endstops hinzu: Zunächst wurde der Firmware Upload immer langsamer, bis zu 5 Minuten dauerte die Prozedur. Dann bliebt die Arduino IDE beim Upload einer geänderten Firmware einfach stehen.
Da blieb nichts anders übrig, als das Programm abzubrechen. Hiernach ging dann nichts mehr. Windows erkannte zwar das eingesteckte Device ordnungsgemäß auf COM 11 und meldete dass das Gerät einwandfrei funktioniere, aber weder Repetier Host noch die Arduino IDE konnten darauf zugreifen. Der integrierte Seriell zu USB Wandler funktionierte scheinbar noch, aber die Firmware und / oder der Bootloader taten es nicht mehr. Also Rechner ausschalten neu hochfahren, andere Kabel verwenden, die Endstops abziehen etc.,. Nachdem der Rechner heruntergefahren wurde, meldete er, dass 11 Windows Updates anstünden. Nach dem erneuten Hochfahren und installieren der Updates konnten dann auch Repetier und die Arduino IDE auf das Board wieder zugreifen!
Die USB Schnittstelle des Arduino ist und bleibt ein unzuverlässiger Zugang , zumindest unter Windows.

Nachtrag:
Kritischer Punkt beim Flashen der Firmware ist und bleibt die COM Schnittstelle.
Die einzelnen Teensy Boards unterscheiden sich je nach Version erheblich. In diesem Bericht lag das (alte) schwarze Board vor in einer Revision D.
Auf diesem Board befindet sich eine Steckbrücke mit der Bezeichnung "Boot", sowie ein kleiner Reset Taster.

WICHTIG: Um die Firmware uploaden zu können ist folgender Ablauf erforderlich:
Bootjumper setzen-> Reset auf Board->Firmware uploaden->Bootjumper entfernen->Reset-> Fertig!

Aktueller Stand:
Der mechanische Aufbau ist praktisch abgeschlossen. Die elektrischen Verdrahtungen sind gelegt.
Probleme macht jetzt der Controller, der sich nicht flashen lässt. Hierdurch können falsche Einstellungen wie die Umkehrung der Drehrichtung der Schrittmotoren, die optischen Endschalter usw. nicht korrigiert werden. Ich benötige jetzt Hilfe um den Controller wieder fit zu bekommen, oder muss einen neuen beschaffen.
Erledigt, siehe oben!


Fortsetzung folgt!

Links:

Controllerboard (Printrboard basierend auf Teensylu):

Installation Firmware:

Download Teensyduino ( Teensy USB Treiber - unbedingt installieren!)

Teensyduino Modified Config Files (Werden zum Flashen benötigt! )

One/Two-Up Updated Firmware
https://github.com/QU-BD/Up-Marlin/archive/Marlin_v1.zip

Supportforen:

OneUP Support Forum:
http://www.fabric8r.com/forums

Printrbot Forum (Sehr interessant da der OneUp ein selteneres Derivat ist)
http://www.printrbottalk.com/forum

Keine Kommentare:

Kommentar veröffentlichen

Vielen Dank für deinen Beitrag auf meinem 3D Drucker Blog.
Ich kümmere mich um die Freischaltung. Bitte habe Verständnis, wenn es mal ein wenig dauert, da ich dies in meiner Freizeit mache!

Marcel