You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Björn Kalkbrenner 6ef5cb70c3 „README.md“ ändern 4 years ago
README.md „README.md“ ändern 4 years ago

README.md

Creality3D CR-10S Pro Infosammlung - V1.0 (20190710)

Einleitung/Vorwort

Ich bin selbst noch kompletter 3D Drucker Neuling. Nichts, was hier in diesem Dokument steht, muss korrekt sein oder ist vollständig, es spiegelt nur meine Einsteiger-Erfahrungen mit dem Creality CR-10S pro und meinen ersten 3D Drucker versuchen wieder. Falls jemand Ergänzungen oder Korrekturen anmerken möchte, schreibt gern eine Mail an mich.

Ein großer Dank geht an die Facebook Gruppe „Creality3D CR10 / S / Pro DEUTSCH/GERMAN“. Ich hatte dort wegen einiger kleinerer Probleme nachgefragt und wirklich schnell Tipps und Hilfe erhalten. Die Liste arbeite ich immernoch ab ;)

Aktuelles Software-Setup

Ich nutze mittlerweile Octoprint mit einer Logitech Webcam auf einem Raspberry PI sowie Cura 4.0 bzw. seit Release Cura 4.1 - obwohl 4.1 noch mit einigen Bugs behaftet sein soll. Ich hatte mit der 4.1 noch keine Probleme, daher nutze ich die Version weiter. Octoprint mit dem OctoClient Smartphone/Tablet Client hat mir schon einige KM laufen und Treppensteigen erspart.

CAD Software

Für eigene 3D Modelle wurden mir Autodesk Fusion 360, Tinkercad oder FreeCAD empfohlen, ich hatte vor einiger Zeit mal Sketchup genutzt (als es noch zu Google gehörte).

  • Sketchup => gibt es jetzt nur noch als seltsame Web-Version, die nichts mehr mit der Version zu tun hat, die ich noch intuitiv bedienen konnte
  • Tinkercad ist der kleine Bruder (oder die kleine Schwester) von Fusion 360, da es von Fusion 360 eine Maker-Lizenz gibt, könnte man auch gleich Fusion 360 nutzen
  • Fusion 360 hat bei mir ein wenig bei der Installation gesponnen, die accountgebundene Web-Installation hat mich genervt. Also ging es zu
  • FreeCAD (0.18). Klasse. Lässt sich installieren, kann STL importieren, es gibt massenweise Tutorials, Dokumentation, Videos dafür. Ja, es stürzt gern ab (paranoides Speichern ist da hilfreich). Ja, es ist vielleicht untypisch für CAD-Nutzer zu bedienen (betrifft mich nicht, ich bin vorher kein CAD-Nutzer gewesen, daher ist für mich der Unterschied unwichtig). Ja, manchmal ist die Bedienung... irreführend. Aber - Es funktioniert für mich und ich habe relativ schnell geschafft, damit ein 3D Modell selbst zu erstellen, es als STL zu exportieren und in Cura zu slicen => Ziel erreicht. Da bleibe ich.

Modelle?

  • Thingiverse.

Beängstigend, aber ich treibe mich eigentlich nur auf dieser Seite rum oder modelle mir selbst mit FreeCAD etwas. Gibt es da noch eine Alternative???

CR-10S pro Einrichtung/Kickstart

Genug der Einleitung. Geht los...

Mein Start war

  • Auspacken
  • Beiliegendes Material lesen
  • Zusammenschrauben (ist ja bei dem CR-10S pro wirklich nicht viel Arbeit)
  • alle Schrauben kontrollieren und nachziehen (z.B. beim Bett die Rollen), alle Stecker prüfen
  • Z-Achse mit dem beiliegenden Plastik-Shim leveln (! Ja ! Machen ! Oft !)
  • mit dem AUX leveling beschäftigen und erstmal das manuell Bett leveln (ich nutze ein Blatt Papier anstatt das 0,2mm Metallblech-Ding)
  • Beispielhund von der SD-Karte drucken
  • Happy sein, weil Alles funktioniert hat

Zweiter Blick

Infos über Sensorkalibrierung gelesen... In einigen Beiträgen wird erwähnt, den Sensor näher ans Bett zu setzen bzw. ihn allgemein mit dem Plastik-Shim zu kalibrieren. Bei mir war die Kalibrierungsschraube ab Werk zugeklebt, das bedeutete für mich: hat sich jemand angeschaut, kalibriert, verklebt, sollte erstmal reichen.

  • Kram von Thingiverse geladen
  • in 0,2mm und 0,1mm Layer-Höhe Testdrucke erstellt
  • SD-Kartendruck
  • Pause + Resume nach 3h ohne Strom getestet (ja, funktionierte verdammt gut, fehlt mir mit Octoprint tatsächlich)

TODO/Anmerkung für mich - AUX leveling verstehen

Das AUX-Leveling mit Z-Home ergibt für mich immernoch nicht wirklich einen Sinn, die Anleitungen finde ich teilweise irreführend. Ich hatte des Öfteren schon die Situation, dass ich manuell leveln wollte, das automatische Leveln gut gestoppt hat (der Sensor ist also korrekt kalibriert), beim Start von „AUX leveling“ aber die Düse ins Bett gedrückt hat und tiefer runter wollte. Warum?!?

Es hängen also noch einige Fragen bei dem Thema für mich in der Luft

  • Wo kann man Z = 0 einstellen, der beim AUX leveling angefahren wird?
  • Wie stark muss die Spannung der Bettfedern sein? Eher ganz hart angezogen (biegt sich da nicht das Bett?) oder eher weich (wird es dann nicht zu wackelig?) => Ich habe es jetzt die Federn auf ca. 2/3tel).

Tipp dazu: bei solchen Tests immer den Finger am Hauptschalter. Wenn die Servos keinen Strom mehr bekommen ist der Druck vom Bett weg, selbst wenn es mal zu tief geht :/

Bekannte Firmware-Bugs

  • Auto-Leveling Daten werden nicht im ROM gespeichert und sind weg, wenn der Strom aus ist => sollte mit den aktuellen Versionen größer 1.69.3 (?) oder 1.69.7 (?) behoben sein
  • keine thermal runaway protection
  • falsches Ausgabeformat der Temperaturdaten über die USB-Schnittstelle => inkompatibel zu OctoPrint

OctoPrint

Die originale Creality3D Firmware funktioniert nicht mit OctoPrint, die Temperaturdaten werden nicht korrekt übermittelt. Creality hat das Ausgabeformat der Temperaturdaten in der Firmware verändert, sodaß OctoPrint die Daten nicht mehr erkennen kann.

Es gibt 2 Lösungsmöglichkeiten

  • TinyMachines 3D B6/B7 Firmware installieren (da ist das Problem auf Firmwareseite behoben)
  • OctoPrint Plugin erstellen, dass das Format korrekt umwandelt (oder bei mir melden, ich habe mir das Ding gebaut und auf meinem Raspberry PI umbenannt noch rumliegen, sind aber nur ein paar Zeilen).

Empfehlung: TinyMachines 3D Firmware!!!

Optimierung - GCode + Umstieg auf OctoPrint

Als ich am Anfang die Modelle über die SD-Karte gedruckt habe, hatte es ausgereicht, den GCode Start/End nur bei Cura einzufügen. Nachdem ich mir aber beim ersten Test mit Octoprint die Düse schön erhitzt ins Bett gefahren und die Matte einen Strich lang geschmolzen (zerstört) habe, setze ich jetzt 2 seperate Startcodes ein.

  • Startcode/Endcode in Octoprint, der den Drucker immer in einen definierten Startzustand bringen soll (egal was im Objekt-Code steht)
  • Startcode/Endcode für Cura, der dann nochmal speziell auf Eigenheiten eingehen kann, die ich dann auch kurzfristig über Cura anpassen kann.

Der Code ist zusammengesetzt aus

  • dem CR-10s pro PDF
  • dem Testdog von der mitgelieferten SD-Karte
  • einem chinagadgets.de Beitrag über den CR-10s pro
  • mehreren Beiträgen bei Reddit
  • Reprap Wiki

Ich habe versucht, den Code einigermaßen zeilengenau zu dokumentieren, daher sollte das Ganze selbsterklärend sein. Man kann sich darüber streiten, ob es sinnvoll ist, jedesmal Auto-Leveling zu betreiben und ob die lange Startup-Phase Sinn ergibt, für mich hat sich dadurch aber eine Art Testprogramm ergeben. Wenn das Ganze sauber durchfährt, die Düse nicht beim Auto-Leveling sifft, nichts am Bett kleben bleibt etc kann ich davon ausgehen, dass der Druck funktionieren wird.

Wie schon geschrieben: ich bin für Verbesserungen oder Tipps offen ;)

WICHTIG bei OctoPrint: Wenn der Start/Endcode eingetragen wird, speichern, Einstellungsfenster zu, sofort wieder rein und prüfen, ob es gespeichert wurde! OctoPrint gibt keine Fehlermeldung wenn etwas falsch formatiert ist (UTF8 Sonderzeichen?) und speichert die Änderungen einfach nicht! Also auf jeden Fall überprüfen!!!!

GCode Start (für OctoPrint)

Oder, falls nur Cura genutzt wird, ganz an den Anfang des Cura-End-Gcodes.

;startup code, move up to not go against the bed
;initializing defaults
M117 Initializing defaults...
G21                 ;set metric
M107                ;stop extruder fan
M82                 ;set extruder to absolute position

;move up extruder at beginning
M117 Move extruder up to save position...
G91                 ;set relative positioning
G1 Z15.0 F6000      ;move extruder up 15mm
G90                 ;set absolute positioning

;heat up bed
M117 Heat up the bed to 50 degrees...
M140 S50            ;head up bed
M190 S50            ;wait for bed temp => 50

;leveling
M117 Home / auto leveling...
G28 X0 Y0           ;Home X0/Y0 - endstops
G28 Z0              ;Home Z0 - Z probe (works only if G28 X0 Y0 was sent before)
G29                 ;auto leveling

;move up extruder again
M117 Move extruder to save position...
G1 Z30.0 F6000      ;move platform to Z15mm
G1 F3000            ;set default speed to 50mm/s

;heat up extruder
M117 Heat up the extruder to 200 degrees...
M104 S200           ;heat up extruder
M109 S200           ;wait for extruder temp => 200

;retract a bit to stop stringify
M117 Retract filament...
G91             ;set relative position
G1 E-2 F3000    ;retract filament a bit before lifting
G92 E0          ;reset extrusion position
G90             ;absolute positioning

;message on screen
M117 Printing...

GCode End (für Octoprint)

Oder, falls nur Cura genutzt wird, ganz an den Anfang des Cura-End-Gcodes.

M117 Print finished, retracting...
G91             ;set relative position
G1 E-1 F3000    ;retract filament a bit before lifting
G1 Z+0.5 E-5 X-20 Y-20 F3000 ; move Z up a bit and retract filament
G1 F3000 Z10    ;Z up 10mm
G90             ;absolute positioning

M117 Home position...
G28 X0 Y0       ;home position

M117 Turning off devices...
M106 S0         ;turn off cooling fan
M104 S0         ;turn off extruder
M140 S0         ;turn off bed
M84             ;disable motors
M81             ;atx power off

GCode Cura Start

;—cura model start code
M117 Starting CURA print code...
G28 X0 Y0       ;first, home X+Y or Z will not work
G28 Z0          ;level Z0
M420 S Z5       ;load autoleveling profile

;wipe nozzle
M117 Nozzle wipe...
G1 X20 Y25 F1500 ; clips umfahren
G1 Z0.4 F3000 ; Prime vorbereiten
G92 E0 ;Extrusion Reset
G1 Y120 E10 F600 ; Prime Nozzle
G1 Y150 F5000 ; Filamentreste drucken

;Start position
M117 Start position 20/25/5
G1 Z5.0 F3000      ; move z up a bit
G1 X20 Y25 F1500   ; avoid binder clips

GCode Cura End

;—cura model end code
G91 ; Relative Koordinaten nutzen
G1 Z2 F5000 ; Z-Achse 2mm hoch
G90 ; Absolute Koordinaten nutzen
G1 X5 Y250 F3000.0 ; Bett bewegen
G1 E-5 ; retract Filament
G92 E0 ; reset extruder
M104 S0 ; turn off extruder
M140 S0 ; turn off bed
M107 ; Lüfter aus
M84 ; disable motors

Verschiedene Gcode Schnipsel Beispiele für nozzle wipes

Silentninja (reddit) gcode: wipe 0,2mm

;wipe - silentninja (reddit) - 0.2mm layer
M117 Nozzle wipe...
G1 X20 Y25 F1500   ; avoid binder clips
G1 Z0.2 F3000      ; get ready to prime
G92 E0             ; reset extrusion distance
G1 Y120 E10 F600   ; prime nozzle
G1 Y150 F5000      ; quick wipe
G92 E0             ;reset extruder
G1 Z5.0 F3000      ; move z up a bit
G1 X20 Y25 F1500   ; avoid binder clips

Wipe code - 0.3mm layer X1/Y0 => X1/Y290

;wipe - 0.3mm layer from X1/Y0 -> X1/Y290
G0 X10 Y10 Z0.3 F9000 ; Move in 10mm from edge and up [z] 0.3mm
G92 E0              ; Set extruder to [0] zero
G1 Y290 E100 F500   ; Extrude 100mm filiment along Y axis 290mm 
                    ;long to prime and clean the nozzle
G92 E0              ; Reset extruder to [0] zero end of cleaning run
G1 E-4 F500         ; Retract filiment by 4 mm to reduce string effect
G1 X3 Y290 Z15 F9000 ; Move over and rise to safe Z height
G1 X3 Y0 Z15 F9000  ; Move back to front of bed at safe Z height to shear strings

Wipe code - double line - 0.3mm layer

;wipe - double line - 0.3mm layer
M117 Purge extruder
G92 E0 ; reset extruder
G1 Z1.0 F3000 ; move z up little
G1 X0.1 Y20 Z0.3 F5000.0 ; move to start-line position
G1 X0.1 Y100.0 Z0.3 F1000.0 E15 ; draw 1st line
G1 X0.4 Y100.0 Z0.3 F5000.0 ; move to side a little
G1 X0.4 Y20 Z0.3 F1000.0 E30 ; draw 2nd line
G92 E0 ; reset extruder
G1 Z1.0 F3000 ; move z up little

Just another wipe code

M117 Purging extruder...    ; print msg
G0 X0.6 Y0.0 Z0.2 F4200     ; move the nozzle to the front left corner 
                            ; at 0.2mm from the bed
G92 E0                      ; reset Extruder
G1 X0.6 Y20 Z0.2 F6000.0        ; wipe nozzle
G1 X0.6 Y120.0 Z0.2 F1000.0 E15 ; print 1st line on the left side edge 
                                ; moving towards the back
G1 X0.8 Y120.0 Z0.2 F6000.0     ; move a little to the side
G1 X0.8 Y20 Z0.2 F1000.0 E30    ; print 2nd line on the left side edge 
                                ; moving back to the front corner
G92 E0                      ; reset Extruder

Beispiel prime code

;feed the extruder, get filament out
M117 Extruder clearing...
G92 E0                  ;zero the extruded length
G1 F200 E3              ; prime the extruder, extrude 3mm
G92 E0                  ;zero the extruded length again

Erfahrungen

  • das Auto-Leveling funktioniert perfekt, wenn man sich am Anfang Zeit nimmt, manuell das Bett korrekt zu leveln und das auch wirklich umfangreich und mehrfach hintereinander! Viele schreiben, geht nur mit BL Touch Mod. Wahrscheinlich geht es damit einfacher, der mitgelieferte Sensor macht aber einen ganz guten Job (bei mir).
  • Nicht selbst getestet aber: Austausch auf kapazitiven Sensor ergibt keinen Sinn (es gibt dazu ein paar Howtos und Videos zum CR-10s pro) - der funktioniert nur mit Metall, daher fallen Glas/FR4 Druckplatten komplett weg! => dann eher BL Touch Upgrade.
  • Die PLA-Haftung am Druckbett war bei mir zu stark, trotz abkühlen habe ich das gedruckte Modell nicht lösen können. => Druck jetzt auf 50° Heizbett-Temperatur anstatt 60°
  • ich habe ab und zu eine Treppenbildung auf der Y-Achse (das Modell ist layer für layer um 1 Einheit nach hinten verschoben) => wahrscheinlich Geschwindigkeit des Drucks oder Jerk/Accel Settings in Cura oder Riemen nicht ausreichend gespannt. Ich bin noch am Eingrenzen des Problems, bisher hat es sich aber mit der Geschwindigkeit (langsamer) lösen lassen.
  • Cura 4.1 hat einen Bug mit Z-Max, das sollte auf 5 gestellt werden [Cura 4.1 Bug + Workaround] Printer stalls / pauses on z-hop

Änderungen

Firmware auf TinyMachines B6/B7

Die Creality Firmware hat keine thermal runaway protection (es sei denn, da hat sich was die letzten Wochen geändert). Das bedeutet: Wenn der Drucker sich seltsam verhält und heißer wird als gewünscht (oder auch gar nicht heizt), interessiert das die Creality-Firmware nicht. Ich wollte ohne größere Aktionen (z.B. mir selbst eine Marlin Firmware bauen) einfach eine etwas „stabilere“ Firmware mit thermal runaway protection nutzen, erwähnt wird plug-and-play-fertig für den CR-10s pro immer TinyMachines 3D.

TinyMachines 3D CR-10s pro

Ich habe bei mir noch die B6 laufen, kann aber nicht klagen - und werde demnächst auf die B7 umsteigen. Bitte dran denken: Nicht nur das Board aktualisieren, das Display muss AUCH (mit den DWIN? Dateien) aktualisiert werden, dafür den CR-10S pro unten aufschrauben und die SD-Karte direkt ins Display schieben, nicht außen.

Die thermal runaway protection scheint zu funktionieren - zumindest bin ich da schonmal reingelaufen, als ich über OctoPrint einen Druck gestartet habe, der Drucker aber noch ausgeschaltet war (OctoPrint füttert das Board dummerweise per USB mit Strom).

Erweiterungen/Mods

Ich habe (auch wenn es nicht zwingend notwendig war) ein paar Mods an meinem CR-10s Pro durchgeführt, die Einiges angenehmer gemacht haben.

Z-Height Block (must have)

Z-Height Block

Die Z-Achse verliert beim Ausschalten gern die Synchronisierung zwischen den beiden Z-Achsen, da die Stepper-Motoren das Gewicht nicht mehr gleichmäßig halten. Einer meiner ersten Drucke war der Block (2x), der ist erheblich angenehmer als der mitgelieferte Plastik-Shim von Creality.

Filament feeder (nice to have)

Filament feeder

Schnell gedruckt, passt gut, ist in Ordnung (bis ich dann doch mal etwas mit Kugellagern drucke).

Power switch protector (must have)

Power switch protector A.k.a. Murphy defender.

Hotend Cable Support (nice to have)

Hotend Cable Support

Ich habe das Gefühl, dass die Kabel an der Stelle etwas beansprucht werden, der Druck war nicht wirklich kritisch. Allerdings habe ich beide Einzelteile in FreeCAD zusammengesetzt und als einzelnes Modell gedruckt, weil ich keine passenden Schrauben habe. Bei Interesse kann ich das Modell mal bei Thingiverse hochladen.

Frame Brace (nice to have)

Frame Brace

Der erste Mod mit externen (nicht zu druckenden) Teilen, die es aber fast Alle im nächsten Baumarkt günstig gibt. Bis auf die M3 T-Nut Muttern und die Inbus-Zylinderschrauben... Die sollten übrigens nicht länger als 6mm sein...

Ich fand die Idee sinnvoll und die Kosten sowie Aufwand sind gering. Der Drucker fühlt sich dadurch für mich stabiler an.

Dual Z-Sync mod (luxury must have)

Nach einiger Zeit nervt das Synchronisieren der Z-Achse, das gebe ich zu. Ja, es geht auch komplett ohne diesen Mod, ich will ihn aber nicht mehr missen.

Benötigt werden (gibts gut bei Ebay oder Aliexpress etc):

  • 2x 20T GT2 Pulleys (Width: 6 Bore: 8)
  • 1x 760mm GT2 380T Timing Belt

Ich hatte 2 Ausführungen probiert.

Die erste geht recht einfach: Simple CR-10S Pro Dual Z Sync Mod Auf den ersten Blick klang das auch logisch, ich habe aber den Riemen nicht ausreichend auf Spannung bekommen, das Konstrukt fühlte sich auch wabbelig an. Also nicht unbedingt zu empfehlen.

Die zweite Version ist es dann bei mir geworden: Z Timing Sync

Dremel/Proxxon zum Schleifen in der Innenaufnahme vom Kugellager könnte notwendig sein.

Druckbett

Nachdem meine CR-10S pro Druckplatte zuerst zu gut bei PLA gehaftet hat, ich dann aber durch den OctoPrint Fehler das Bett zerstört hatte und PETG durch Unebenheiten so gar nicht haften wollte, musste ich mir eine Alternative suchen (das gleiche Bett neu oder was Anderes?). In der Facebook Gruppe wurde mir GFK FR4 empfohlen. Auf Youtube konnte ich dann ein paar Beiträge dazu sehen, 2 Videos fand ich zu dem Thema interessant:

(btw, auf Rics_3D gibt es auch ein interessantes Einsteigervideo zu FreeCAD).

Meine Entscheidung ging dann in Richtung FR4 in passendem Maß selbst „bauen“. Ich wollte keine 30x30cm Platte und dann irgendwelche freien Bereiche vom Heizbett (die Maße vom CR-10S pro Druckbett sind 31x32cm).

Die originale CR-10S Pro Druckplatte ist übrigens ca 3,6mm dick.

Also, Beispiel-Einkaufsliste (angelehnt an das Rics_3D Video):

  • 3mm Glasplatte (z.B. per dieglasschmiede, bei der Bestellung Maß 40x40cm auswählen und dem Verkäufer die Maße 31x32cm in 3mm Stärke nennen, wird bereitwillig so geliefert, super Support!
  • 3M 467MP doppelsteigies Klebeband, eckliges Zeug, war bei mir schwer zu verarbeiten weil sich die Außenschicht nicht richtig lösen wollte, hält aber super
  • GFK FR4 1mm 320x310mm Platte, stefftech scheint in der 3D Druckerszene häufiger genannt zu werden, ich hatte hervorragende Erfahrungen gemacht. 32x31cm angefragt, von Herrn Bolek als neuer Artikel bei Ebay eingestellt und prompt nach Bestellung geliefert. Absolut top!

Alles zusammenkleben, die FR4 Platte vor dem ersten Benutzen säubern und dann einmalig aufheizen (mindestens in 15 Minuten auf 110°, gern auch langsamer, also nicht zu schnell aufheizen!).

Wichtig: Bei mir hat der CR-10S Pro bed Leveling Sensor mit der Platte nicht mehr wie gewohnt funktioniert, das ergibt aber durch das andere Material auch irgendwie Sinn. Ich habe meinen Sensor jetzt auf Kreditkartenhöhe zum Bett heruntergesetzt und dann den Sensor über die Kalibrierungsschraube neu eingestellt. Dann musste ich noch das komplette Bed Leveling nochmal neu machen (mit AUX Leveling, was wieder tiefer wollte als es sollte). Nach den Änderungen funktioniert das Leveln wieder sehr sehr gut und genau.

OctoPrint USB Kabel Hack

Wie bereits erwähnt speist der Raspberry PI über USB die CR-10S pro Platine mit Strom. Das ist aber eher nervig, da der Drucker auch abgeschaltet dann noch das Display anzeigt und quasi läuft. Ein trivialer Hack, den man immer wieder liesst: 5V+ aus der USB-Leitung vom USB-Kabel trennen oder den Pin abkleben. TODO. ;)

Fazit

TL;DR: Läuft.