home
erste Version am 25.01.2018
letzte Änderung am 30.01.2018

Aufbau eines 3D-Druckers vom Typ Velleman K8200


Gestern ist der Bausatz geliefert worden, aus dem mein erster 3D-Drucker vom Typ Velleman K8200 entstehen soll.
Der mechanische Aufbau hat 12 Stunden gedauert bzw. mich von 13:30 bis 02:00 Uhr beschäftigt. Zwischendurch musste ich unserem lokalen Bauhaus-Markt noch einen Besuch abstatten, um mir eine sog. Sicherungsringzange zuzulegen. Ohne die ging es nicht. Und idealerweise hätte ich mir auch gleich das nächst kleinere Modell zulegen sollen. Im Bausatz werden nämlich zwei unterschiedlich große Sicherungsringe verwendet und die kleinere Bauform lässt sich mit der verlinkten Zange nur mit Gewürge verarbeiten.
Generell kann man zu dem Bausatz sagen, dass er einen umfangreichen Werkzeug-Fundus voraussetzt. So hat mich beispielsweise die Suche nach einem Innensechskant-Schlüssel (um nicht zu sagen "Inbusschlüssel") mit einer Schlüsselweite von 1,5mm alleine 15 Minuten beschäftigt.... sowas braucht man einfach zu selten. ;-)  Weiterhin war ich sehr froh, eine selbsthaltende Pinzette zu besitzen. Ohne die wäre es manchmal seeehr fummelig geworden - oder ich hätte eine dritte Hand dienstverpflichten müssen.

Bisher steht die gesamte Mechanik (abzüglich des Hot Ends) - jetzt folgt die Verdrahtung.
Allerdings will ich die nicht mit dem dafür vorgesehenen Flachbandkabel machen. Von dem sollen bis zu vier Strippen zusammengelötet werden, damit der benötigte Leitungsquerschnitt (für die Heizelemente) erreicht wird. Stattdessen will ich Kabel verwenden, die von sich aus direkt dick genug sind. Auch soll die Verkabelung modifikations-freundlich ausgelegt sein.

Leider besteht die Anleitung primär aus Fotos. Daher werde ich nun -notgedrungen- damit anfangen müssen, aus den Fotos einen vernünftigen Verkabelungsplan abzuleiten. Und wenn ich das eh machen muss, kann ich auch gleich alles in HTML erfassen und meine Erkenntnisse als Doku für zukünftige Modifikationen online stellen.


Inhaltsverzeichnis

den Verkabelungsplan aus dem Fotobuch herleiten
die Software unter Linux (Leap 42.3)
Verkabelung, HotEnd und Umbauten
finale Justage und Test-Ausdrucke
Fotos von den ersten sechs Drucken
Korrekturen
zweite Seite
Repetier-Host mit CuraEngine unter Linux
Erkenntnisse
Konfiguration der CuraEngine unter Linux
ein Repetier-Server auf einem RasPi
Fix für einen nicht anlaufenden Lüfter
Messuhr zur Ausrichtung des Heizbettes
Z-Achsen-Endschalter und PEI Druckplatte
kugelgelagerte Filament-Rollen-Halterung
Cura v14.12.1
zurück zum Prittstift
Heizbett-Upgrade zwecks Druck von ABS
dritte Seite
Ultimaker Cura 3.4.1
Wackelkontakt am Hotend-NTC
Umrüstung auf ein J-Head Hotend
Eine Regelung für den Hotend-Lüfter
ABS - der zweite Versuch
Noctua Lüfter
beide Drucker beisammen
zweifarbiger Druck


den Verkabelungsplan aus dem Fotobuch herleiten

Die folgenden Komponenten benötigen Kabel:
X-Achse 4xMotor
2xEndschalter
Y-Achse 4xMotor
2xEndschalter
2xHeizplatte
2xNTC
Z-Achse 4xMotor
2xEndschalter
Extruder 4xMotor
2xHeizelement
2xNTC
2xLüfter

Das Controller-Board sieht folgendermaßen aus:
Foto vom Controller-Board des K8200
Bezüglich der Stecker:
oben von links nach rechts X-Motor(2B,2A,1A,1B)   Y-Motor(2B,2A,1A,1B)   Z-Motor(2B,2A,1A,1B)   E-Motor(2B,2A,1A,1B)
links von oben nach unten Heater1(+,+,-,-)   Heater2(+,+,-,-)
rechts von oben nach unten Term1(a, b)   Term2(a, b)
unten von links nach rechts JProg(?, ?)   XStop(-,+,S)   YStop(-,+,S)   ZStop(-,+,S)   Fan(+,-)

Jeder Schrittmotor hat vier Kabel in den Farben blau, rot, grün und schwarz.
Eine Widerstandsmessung hat ergeben, dass blau+rot die eine Spule und grün+schwarz die andere Spule darstellt.

Die K8200-Doku beginnt (auf Seite 394) mit der Verdrahtung bei der Extruder-Einheit. Dazu werden fünf Flachbandkabel-Gruppen gebildet:
Gruppe 1: blau, grün, gelb, orange
Gruppe 2: rot, braun
Gruppe 3: schwarz, weiß
Gruppe 4: grau, violett, blau
Gruppe 5: grün, gelb, orange

Die Kabel-Farben vom Stecker für den Motor lauten: gelb(1B), orange(1A), rot(2A), braun(2B)
Gruppe1 meint offenbar den Motor. Es sind zu verbinden (Seite 413):
Gruppe1 Controller-Stecker Funktion
blau gelb 1B
grün orange 1A
gelb rot 2A
orange braun 2B

Auf der anderen Seite des Kabels (Seite 457):
Gruppe1 Motor Funktion
blau blau 1B
grün rot 1A
gelb grün 2A
orange schwarz 2B
Damit steht die Verdrahtung des Motors:
Pin Controller-Stecker Motor
4 gelb blau
3 orange rot
2 rot grün
1 braun schwarz
Zumindest dann, wenn man den Pin 1 folgendermaßen definiert:
wo ist Pin 1

Gruppe2 ist der Fan. Rot landet auf Pin 2 (+), schwarz auf Pin 1 (-).
Gruppe3 der NTC bzw. Term1. Da brauchts keine Zuordnung.
Gruppe4 (grau, violett, blau) und Gruppe5 (grün, gelb, orange) sind die Stromversorgung der Heizeinheit und werden mit Heater1 verbunden.
Gruppe4 wird zu gelb/orange(4+3) und geht an +, Gruppe 5 wird zu rot/braun(2+1) und geht an -. Aber eigentlich ist die Polung hier egal.

Als nächster Block wird die Z-Achse verdrahtet (Seite 471).
Der Endschalter geht auf die Pins 1 und 3. Polung egal (Seite 492 und 524).
Der Z-Motor wird genau so angeschlossen, wie der Extruder-Motor (Seite 482 und 503).
Kabel Motor Buchse Pin Funktion
blau blau gelb 4 1B
grün rot orange 3 1A
gelb grün rot 2 2A
orange schwarz braun 1 2B

Dann folgt (auf Seite 511) die X-Achse.
Dort wird kein Flachbandkabel benötigt und die Zuordnung erfolgt direkt (Seite 516).
Motor
Buchse
Pin
Funktion
blau
gelb
4
1B
rot
orange
3
1A
grün
rot
2
2A
schwarz
braun
1
2B
Und beim Endschalter ist die Polung wieder egal.

Schließlich gehts (auf Seite 539) zur Y-Achse.
Da gibt es wieder Gruppen:
Gruppe 1: braun, rot
Gruppe 2: orange, gelb, grün, blau
Gruppe 3: violett, grau, weiß, schwarz
Gruppe 4: braun, rot, orange, gelb, grün, blau

Gruppe 1 ist der NTC, Gruppe 2 und 3 sind das Heizbett - Polung in beiden Fällen egal.
Gruppe 4 teilt sich in zwei Teile. Der zweite Teil ist für den Motor. Hier gilt (Seite 553 und 576):
Kabel Motor Buchse Pin Funktion
blau blau gelb 4 1B
grün rot orange 3 1A
gelb grün rot 2 2A
orange schwarz braun 1 2B
Das braune und das rote Kabel gehen zum Endschalter (Seite 567 und 583).
Ab Seite 614 geht es um die Montage des Hot Ends.

Soweit, so schön. Damit kann ich nun schon mal testen, ob die Motoren funktionieren und sich in die richtige Richtung bewegen.


die Software unter Linux (Leap 42.3)

Eine VM mit Leap 42.3 hatte ich mir bereits vor der Bausatz-Bestellung angelegt, darin openSCAD installiert und gleich ein Gehäuse für einen Bewegungsmelder entworfen. Schließlich wollte ich vorab wissen, ob so ein 3D-Drucker für mich überhaupt Sinn macht - also ob man eigene Entwürfe mit vertretbarem Aufwand  produzieren kann.
Auch die Ansteuerungs-Software für den K8200 hatte ich schon installiert. Die nennt sich Repetier-Host und es gibt sie hier. Mangels 3D-Drucker konnte ich damit bisher nix machen. Aber nun habe ich ja einen solchen Drucker.

Daher habe ich das mitgelieferte 15V-Netzteil an das Controller-Board angeschlossen und den X-Motor mit vier Krokodilklemmen über den vierpoligen Stecker ans Board geklemmt. Zuerst habe ich den X-Motortreiber auf 0.425V kalibriert - und zwar gemäß der hier zu findenden Montageanleitung (ab Seite 671). Nach USB-Verbindung vom Board zum Rechner erschien in der VM ein neues Device. Aber das war es auch schon. Die Software hat keine Verbindung zum Controller-Board öffnen wollen.

Also erstmal meinen User zur Gruppe Dialout zufügen. Eine Fehlermeldung weniger, aber insgesamt noch keine Änderung.
Dann habe ich gcc und gcc-c++ installiert, weil eine Fehlermeldung lautete, dass er g++ nicht finden kann. Reichte aber immer noch nicht.
Dann das Paket mono installieren. Reichte auch noch nicht.
Ausführen von
mozroots --import --ask-remove
...weil es irgendwo als Tipp zur Behebung einer speziellen mono-Fehlermeldung stand. Wieder nix.
Aus irgend einer Laune heraus habe ich die VM neu gestartet (immerhin ich hatte mit mono gerade Windows-Geraffel installiert...und bei Windows muss man ja quasi für alles rebooten).
Und siehe da....schon klappe es mit dem Verbindungsaufbau zum Controller-Board.

Nun weigerte sich die Software jedoch, irgendwas zu tun, weil ihr die Temperatur nicht gefiel. Also habe ich je einen 100KΩ Widerstand zwischen die beiden TERM-Anschlüsse geklemmt.
Und endlich wurde der Motor bewegt. Aber falschrum. Wenn ich ihm sage, dass er nach rechts fahren soll, fährt er nach links - und umgedreht.
Nach rechts kann ich ihn immer fahren lassen (also real nach links).
Nach links jedoch nur, wenn ich ihn vorher nach rechts habe fahren lassen.
Der Sinn davon ist klar. Geht nicht anders, wenn man nur einen Endschalter pro Achse hat. Allerdings sitzt der Schalter für die X-Achse rechts!?
Irgendwas kann also mit dem Endschalter nicht stimmen.
Vielleicht arbeitet der als Öffner....und....auf Seite 524 findet sich das Foto zur Verbindung vom Schalter: es sind die beiden äußeren Kontakte zu nutzen.
Das Durchmessen des Schalters ergibt: an den äußeren Kontakten arbeitet das Ding als Öffner. Also so:
Endschalter schematisch
Folglich braucht es auf dem Xstop-Anschluss eine Brücke zwischen Pin 1 und 3, damit der Controller nicht ständig annimmt, die Achse befände sich konstant am rechten Anschlag.
Unter marlinfw.org findet sich eine Referenz der Befehle, die man dem Controller schicken kann. So liefert etwa M119 die Endstop States.
Mit der Brücke zwischen Pin 1 und 3 am Xstop-Anschluss werden nun folgende Meldungen ins Log geschrieben:
11:28:02.755 : Reporting endstop status
11:28:02.755 : x_min: open
11:28:02.756 : y_min: TRIGGERED
11:28:02.756 : z_min: TRIGGERED

Bleibt noch die falsche Richtung..... Und just kam mir die Erleuchtung :-)
Das Panel zur manuellen Kontrolle des Druckers sieht in Repetier-Host V2.0.5 so aus:
Screenshot aus Repetier-Host V2.0.5
Klicke ich nun auf den rechten Pfeil, fährt der Tisch nach links.
Und das ist natürlich vollkommen korrekt!
Schließlich muss man es aus der Perspektive des Extruders betrachten.
Der Extruder bewegt sich nicht auf der X-Achse. Soll der nun einen rechts liegenden Punkt auf dem Tisch erreichen, muss der Tisch dazu nach links gefahren werden.
Somit ist alles korrekt und ich habe diese extrem sperrige Doku völlig unnötigerweise zig mal rauf und runter durchgeflöht.
Nachtrag: hätte ich in der Doku weiter runter geblättert, wäre das da auch zu lesen gewesen.....

Dann kann ich mich jetzt endlich an die Verkabelung sämtlicher Komponenten machen.


Verkabelung, HotEnd und Umbauten

Nun sind die drei Achsen verkabelt. Jetzt ist das HotEnd an der Reihe. Jedoch passt die PDF-Doku nicht zu den gelieferten Teilen.
Aber im mitgelieferten Papier-Handbuch fand sich neben den Sicherheits-Infos als einzige zusätzliche Information noch eine URL zur "Illustrierten Bedienungsanleitung". Und die scheint aktueller zu sein, als die PDF-Doku. Jedenfalls ist dort der Aufbau des HotEnds mit meinen Teilen beschrieben.

Nachdem die letzten Verkabelungsarbeiten abgeschlossen waren, ging es an die Justage des Druckers. Wegen meiner Umbauten musste ich das Druckbett virtuell verkleinern. Erstens habe ich die Leitungen nicht direkt angelötet. Stattdessen sind da jetzt zwei sog. Fahrstuhlklemmen dran. Zweitens habe ich mir bei unserem lokalen Glaser eine 210x210x4mm große Glasplatte zuschneiden lassen und die mit solchen Klemmen am Druckbett befestigt. Neben der Verkleinerung per Software-Settings habe ich die Auslöse-Schrauben für die Endschalter von X- und Y-Achse durch eine M3-Gewindesstange ersetzt. Damit konnte ich die Endanschläge 15mm weiter zur Mitte verlegen - um Headcrashes an den Umbauten zu verhindern.


finale Justage und Test-Ausdrucke

Die Justage von Z-Achse und Druckbett hat zwar mindestens eine -vielleicht sogar zwei- Stunden gedauert ... aber letztendlich hat sich die Mühe offenbar gelohnt.
Als ersten Druck habe ich den glassplate_clip von der Velleman-Downloadseite über den Repetier-Host@Linux-VM gedruckt. Das STL-File hatte ich eh schon runtergeladen und für den Anfang sollte es was kleines sein, um nicht unnötig viel von meinem Filament zu verschwenden.
Das Ergebnis hatte zwar gewisse Ähnlichkeit mit der Vorlage, war aber zu 100% Ausschuss. Auch die Drucke zwei und drei (die Grundplatte meines Bewegungsmelder-Gehäuses) waren nix. Ich hatte es jeweils mit leicht veränderten Settings probiert. Jedoch ohne Erfolg. Das bleibende Problem war, dass die Düse durch die gerade zuvor gedruckte Schicht durchgeschmiert ist. Auch hatte ich irgendwie den Eindruck, dass sich diese dämliche Software nur sporadisch um geänderte Settings schert. Vielleicht hätte ich ja nach jeder Änderung rebooten müssen.... Wie sehr ich Windows-Software hasse....aber noch mehr Windows-Software, die quick-and-dirty nach Linux portiert wurde.

Weil ich nicht wusste, ob es nun am Aufbau bzw. der Justage des Druckers oder an falschen Software-Settings lag, habe ich den Alt-Laptop (mit Windows) hochgefahren, den ich letztes Weihnachten bei meinen Eltern gegen ein neues Modell getauscht hatte. Darauf habe ich dann die vom Hersteller fertig konfigurierte Angepasste Repetier Host-Version für den Velleman 3D-Drucker (K8200) installiert, das Windows zwei/drei mal rebooted und final den Drucker angeschlossen.

Der Ausdruck von der Grundplatte meines Bewegungsmelder-Gehäuses sah sehr gut aus. Daher kam sofort danach das zugehörige Oberteil dran. Das hat schon etwas länger zur Fertigstellung gebraucht - war aber ebenfalls ein voller Erfolg.
Fazit: der Drucker tut, was er soll ... und offensichtlich ist die Software unter Linux falsch eingestellt. Weil ich den Drucker nie dauerhaft auf meinem Schreibtisch stehen haben wollte und es daher ohnehin geplant war, ihn über einen Laptop (wahrscheinlich in der Werkstatt) zu steuern, kann es ebenso gut das alte Lenovo G560 mit Windows bleiben. Daher werde ich mich jetzt [erstmal] nicht weiter darum kümmern, die gammelige Software unter Linux ans Laufen zu bringen.

Nach diesem Druck-Erfolg wollte ich mal was Schwieriges drucken. Also etwas mit Überhängen. Auch sollte das Endprodukt einen gewissen Sinn haben, um nicht meterweise Filament direkt in die Mülltonne zu drucken. Wieder bot sich was an, das ich schon runtergeladen hatte.
Und das war ein Lüfter-Aufsatz zur gezielteren Kühlung - also quasi 3D-Drucker-Zubehör.
Ein paar Fotos von diesem Druck habe ich wegen deren Größe auf eine eigene Seite ausgelagert.


Korrekturen

Heute habe ich den Lüfter-Aufsatz montiert, den ich gestern -mehr oder weniger als Test- gedruckt hatte. Weiterhin habe ich sämtliche Kabelbinder entfernt und erreiche die Kabelführung jetzt mit Spangen, die über die Alu-Profilschienen geclipst werden. Von denen habe ich mir 3x6=18 Stück ausgedruckt.
Leider ist der Lüfter-Aufsatz jedoch zu effektiv. Das äußert sich so, dass das Heizbett bei 100% Lüfter-Drehzahl die 50°C sehr schnell [und sehr deutlich] unterschreitet. Dadurch lösen sich die Druckobjekte bereits von der Glasplatte, bevor der Druck tatsächlich beendet ist. Der erste Workaround für dieses Problem sah so aus, dass ich nach dem slichen den G-Code nach Notepad++ kopiert, dort alle Befehle M106 (Set Fan Speed) per "Suchen und ersetzen" auf maximal 64 geändert und das Ergebnis zurück in den G-Code-Editor kopiert habe. Mittlerweile habe ich die Defaults geändert in:
C:\users\dede\AppData\Roaming\Slic3r\filament\k8200_pla_standard_new.ini
bridge_fn_speed=100 -> 50
max_fan_speed=100 -> 35

Weiterhin habe ich wegen der Abmessungen des Lüfter-Aufsatzes die Fahrstuhlklemmen wieder entfernt. Ebenso wurden die Metall-Klammern, die die Glasplatte am Heizbett fixiert haben, durch (selbst designte und) selbst gedruckte [viel flachere] Klammern ersetzt. Zu guter Letzt haben die zwei Kabelpaare für Heizbett und zugehörigen NTC eine obere und eine untere Kabelführung bekommen - um zu verhindern, dass der Kabelstrang an einer der Kabel-Führungs-Spangen hängen bleiben kann.
Nach ein paar Drucken blieb das Filament nicht mehr zuverlässig an der warmen Glasplatte kleben. Bis dahin hatte es immer gereicht, die Glasplatte vor jedem Druck mit einem Tuch sauber zu wischen. Irgendwo hatte ich gelesen, dass Prittstift diesbezüglich Wunder wirken soll. Jetzt kann ich das bestätigen. Es ist zwar ein fürchterlicher Schweinkram, das wieder von der Glasplatte runter zu bekommen (klappt nur mit der Klinge eines Teppichmessers) - aber hilft ja nix. Außerdem hieß es, dass so ein Einkleistern für mehrere Drucke gut ist. Folglich kann man es einfach drauf lassen. ....Wir werden sehen....

Nun muss ich nur noch das Controller-Board in ein (selbst gedrucktes) Gehäuse stecken und die ganzen Strippen dahin irgendwo verstauen (oder auch passend kürzen). Dann braucht es nur noch einen passenden Tisch, auf dem 3D-Drucker und Laptop gemeinsam Platz finden. Vorzugsweise ein Modell mit Schubladen oder Fächern für das Zubehör. Den Tisch will ich allerdings nicht selbst bauen. Vielleicht irgendwas vom "Dänischen Bettenlager", das ich dann maximal noch auf rollbar pimpen muss. Und eine Rüttel-Dämmung für den Drucker könnte sicher auch nicht schaden - ist wahrscheinlich billiger, als die HDD des Laptops durch eine SSD zu ersetzen.

Gerade habe ich einen Gehäuse-Unterbau für das Controller-Board entworfen. In dem Teil werden die zu langen Strippen landen. Dessen Ausdruck soll 9.7 Meter Filament brauchen und über fünf Stunden dauern. Aber weil das Programm bei den vorigen Drucken immer zu niedrige Zeitdauern prognostiziert hat, wird es wohl erst heute Abend fertig sein.
Start war um 12:25 Uhr. Jetzt hat er gerade mit der dritten Ebene angefangen. 12:53 Uhr. Es sollen 140 Ebenen werden. Natürlich wird es bei den höheren Ebenen schneller gehen, weil ja kein massiver Block gedruckt wird.
Es ist geradezu tiefenentspannend, dem Ding bei der Arbeit zuzusehen :-)    Zumindest dann, wenn alles klappt und keine verdächtigen Geräusche zu hören sind.
13:06 Uhr: bei der vierten Ebene geht es mit dem Waben-Muster los.
13:51 Uhr: die neunte Ebene beginnt und die 2mm starke Bodenplatte ist offenbar fertig. Nun kommen die Aufbauten. Ich mache erstmal einen Mittagsschlaf :-)

17:42 Uhr: der Drucker ist bei Ebene 109 angekommen. Aber dieser Windows-Laptop geht gar nicht. Eben kam ein Popup mit der Meldung "ein Neustart steht unmittelbar bevor". Hätte ich nicht zufällig daneben gesessen, hätte das Windows fünfzehn Minuten später einen Neustart einleiten wollen. Der Druck läuft aber noch etwa eine Stunde! Ich bin schockiert von derartiger Anmaßung. Dieses Windows ist ja geradezu gefährlich und kann offenbar nur unter konstanter Aufsicht betrieben werden. Nebenbei ist der Laptop auch noch unendlich langsam beim Slichen.

Es könnte klappen, den G-Code unter Windows erstellen zu lassen und anschließend aus meiner Linux-VM heraus zu drucken. Als Test habe ich den "angepassten Repetier-Host" eben mal in einer VM mit Win2012R2 installiert und meinen Gehäuse-Unterbau slichen lassen. Auf dem Laptop hatte das gefühlte fünf Minuten gedauert, in der VM macht es husch und ist fertig - hat keine drei Sekunden gedauert.
Allerdings kommt als Ergebnis deutlich was anderes raus. Allein die Dateigrößen von 15.3 MB (Laptop) zu 1.1 MB (VM) reichen schon als K.O.-Kriterium.
Schöner wäre es sowieso, komplett ohne Windows auszukommen. Also die Velleman-Slic3r-Settings auf die CuraEngine zu mappen.

19:00 Uhr: der Druckvorgang ist abgeschlossen. Damit waren das 6.5 Stunden.
Und jetzt ist genau das passiert, was ich irgendwo schon als mögliches Problem mit dem Kleber vom Prittstift gelesen hatte: das Gehäuse lässt sich nicht ohne rohe Gewalt von der Glasplatte lösen....
Mit zwei Uhrmacher-Schraubendrehern und einem Hammer habe es runter bekommen. Die Glasplatte ist dabei sogar heil geblieben. Das Gehäuse hat jedoch mächtig gelitten. Einer der Sockel für das Board hat es nicht geschafft und ist abgebrochen. Mal sehen, ob kleben funktioniert.
Für heute hat mir das die Lust aufs weitere Basteln genommen. Die Fortsetzung folgt morgen auf der zweiten Seite.