Wo bekommt man den Z-Offset her und wie stellt ich den Offset ein ?
Der Abstand zwischen der Düse und dem Bett bei genullter Z-Achse ist der Z-Offset.
Vorbereitung
Drucker in Homeposition fahren. Mit dem Button „Home XYZ“ können alle drei Achsen gleichzeitig genullt werden. Um den Z-Offset herauszufinden reicht jedoch die Z-Achse.
Der Drucker wird nach dem „homeing“ selbstständig in eine definierte Position (in Marlin definiert) gefahren. Auch hier ist nur die Z-Achse von Bedeutung.
Achse zum Z-Offset fahren
Die Z-Achse so lange in Richtung Düse fahren bis gerade noch ein Stück Papier dazwischen passt / ganz leicht reibt. Gefahren wird über das Display im Menu „bewegen“.
Wurde die optimale Position gefunden, wird im Display oben rechts der Offset angezeigt. Im Bild Z:-1.48.
Achtung: Z+ vergrößert den Abstand zwischen der Düse und dem Bett !!!
Hier werde ich beschreiben wie ich mit dem Hypercube drucke.
Druckdatei vorbereiten
Dateien zum Drucken werden entweder mit OpenSCAD erstellt oder von z.B. www.thingiverse.com oder einer anderen Quelle geladen. Die Datei sollte im Format .stl sein.
Die Datei wird dann im Programm Repetier-Host geladen und weiter bearbeitet. Repetier-Host -> Datei -> öffnen -> .stl-Datei auswählen
Die geladene Datei wird mit der CuraEngine geslicet, also in ein für den Drucker nutzbare Format übersetzt. Was an der CuraEngine alles eingestellt werden kann und wie diese funktioniert habe ich im Beitrag „3D-Drucker – CuraEngine“ beschrieben. Die mit dem Slicer erzeugte Datei wird nun auf einen USB-Stick gespeichert.
Drucker starten / einschalten
Der Drucker wird am verbauten (umgebauten) PC-Netzteil eingeschaltet. Als sobald das Startmenu erscheint, ist der Drucker startklar.
AutoBedLeveling – ABL
Das Menu zum Bedleveling ist vom Hauptmenu aus über den Button „Leveling“ oder „ABL“ erreichbar.
[Start] Startet das Leveling
[Z Offset] Offset von Düsenspitze zum BL-Touch in der Z-Achse einstellen
[BLTouch] BL-Tocuh bedienen
[Z Fade]
Der Offset zwischen Düse (Nozzle) und dem BL-Touch (Sensor) ist in der Marlin Firmware 2.0.x in der Configuration.h fest hinterlegt. Zum jetzigen Zeitpunkt war der Offset 1.95mm. Der Offset kann sich durch abreiten am Drucker verändern und sollte ab und zu überprüft und entsprechend angepasst werden.
* Nozzle-to-Probe offsets { X, Y, Z }
...
#define NOZZLE_TO_PROBE_OFFSET { 28, 12, -1.95 }
Ich habe hier noch einen Raspberry Pi 2 auf den ich OctoPi draufspielen will. Hierzu sind folgende Schritte erforderlich:
1.) OctoPi 0.17.0 von octoPrint.com runtergeladen 2.) SD-Karte mit 8GB mit SDFormatter formatiert 3.) Image von OctoPI mit Win32DiskImager auf SD-Karte übertragen 4.) Über die Frtitbox die IP vom PI herausgefunden: 192.168.1.127 5.) Mit Putty über SSH in den Raspberry Pi eingelogt Benutzer: pi Passwort: raspberry 6.) am Pi sudo raspi-config aufrufen. Hier können Änderungen am Raspi vorgenommen werden. 7.) aktuelle Paketlisten holen mit sudo apt-get update 8.) Pakete mit sudo apt-get upgrade upgraden 9.) den Pi mit sudo reboot -f neu starten 9.) OctoPi mit der IP oder mit http://octopi.local starten
OctoPi meldet sich mit dem SetupWizard. Erste Drucke konnten gut überwacht werden.
Hab mir nen Raspberry Pi 4 mit folgenden Komponenten bestellt. 1 x Raspberry Pi 4 Modell B mit 4GB RAM 1 x Raspberry Pi USB-C Netzteil 5,1V / 3,0A, EU, weiß mit einem USB Type C Stecker 1 x Raspberry Pi 4 Micro HDMI Kabel, weiss, 1,0m 1 x Schutzgehäuse für den Raspberry Pi 4 1 x 4 teiliges Kühlkörper Set für Raspberry Pi 4
Als Mainboard für den HyperCube 3D wird das SKR 1.4 Turbo von BigTreeTech mit dem Display TFT24 eingesetzt. Hier werde ich meine Belegung sowie die Konfiguration dokumentieren.
Mainboard
Als Mainboard wird ein SKR1.4Turbo von BigTreeTech eingesetzt. Firmware : Marlin 2.0.6.1
Spannungsversorgung Die Spannungsversorgung mit 12V erfolgt über ein bereinigtes ATX-Netzteil. Der Anschluss Der Versorgungsspannung (12V und GND) erfolgt an den beiden Schraubklemmen DCIN. Der Jumper für die Auswahl der Versorgungsspannung (USB oder 12V) wird auf VCD (12V) zum mittleren PIN gesteckt. Somit wird das Board vom ATX-Netzteil versorgt. Für die ersten Einstellungen ist es jedoch ausreichend den Jumper auf USB zu stecken.
Schrittmotoren Die Schrittmotore werden wie folgt gesteckt: XM = X-Achse YM = Y-Achse ZAM = Z-Achse E0M = Extruder
Endschalter X-STOP = MIN X-Achse Y-STOP = MIN Y-Achse
BL–Touch BLTOUCH = BL-Touch Sensor
Temperaturfühler TB = Heizbett TH0 = Extruder
Display
Als Display wird ein TFT24 V1.1 von BigTreeTech eingesetzt. Zum Testen oder dauerhaft kann aber auch nur ein LCD12864 angeschlossen werden.
12864 LCD Modus Die beiden Flachbandleitungen werden am Mainboard an den beiden Steckleisten LCD EXP1 und EXP2 aufgesteckt. Am Display gehen diese dann auf EXP1 und EXP2.
TouchScreenModus Das TFT24 wird über eine Falchbandleitung mit der Steckleiste TFT verbunden. Am TFT24 kann das LCD12864 simuliert werden.
Schrittmotortreiber
Als Schrittmotortreiber werden die TMC2208UART V3.0 eingesetzt. Diese haben grundsätzlich zwei Betriebsmodi – „step / dir – Mode“ und „UART – Mode“. Hier wird der UART-Mode beschrieben. Die Module selbst werden an anderer Stelle detailliert beschrieben.
Marlin Firmware
Die Beschreibung bezieht sich auf die Marlinversion 2.0.6.1.
Grundeinstellungen Die Grundeinstellungen müssen für das Mainboard SKR 1.4 und SKR1.4 turbo immer gemacht werden.
Beim SKR 1.4 – Board muss in der platformio.ini nach default_envs „mega2560“ gegen „LPC1768“ ersetzt werden. Dies gibt den Prozessortyp des verwendeten Boards an. default_envs = mega2560 LPC1768
Beim SKR 1.4 turbo wird hier „LPC1769“ eingetragen. default_envs = mega2560 LPC1769
In der Datei Marlin/Configuration.h werden in Zeile 107 mit define SERIAL_PORT 0 -1 und in Zeile 113 //#define SERIAL_PORT_2 -1 0 die Kommunikationsschnittstellen eingestellt.
In Zeile 124 wird mit #define BAUDRATE 250000 115200 die Kommunikationsgeschwindigkeit von 250000BAUD auf 115200Baud umgestellt.
Mit der Zeile 131 wird das verwendete Motherboard angegeben. Beim SKR1.4 #define MOTHERBOARD BOARD_RAMPS_14_EFB BOARD_BTT_SKR_V1_4 und beim SKR1.4Turbo #define MOTHERBOARD BOARD_RAMPS_14_EFB BOARD_BTT_SKR_V1_4_TURBO Die Informationen zu den verschiedenen Motherbords findet man in /src/core/boards.h.
Mit diesen Grundeinstellungen ist das Board grundsätzlich funktionsfähig. Um etwas zu sehen sollte jedoch ein Display angeschlossen und in Betrieb gesetzt werden.
Druckername und Display Dem Drucker kann in Zeile 135 ein individueller Name gegeben werden. //#define CUSTOM_MACHINE_NAME "3D Printer" "HyperCube"
Spracheinstellungen werden in Zeile 1696 vorgenommen. Voreingestellt ist „en“. Mit #define LCD_LANGUAGE en de wird auf deutsch umgestellt.
In Zeile 1989 wird durch //#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER der „Full Graphic Smart Controller“ LCD 12864 aktiviert.
Der TouchScreen TFT 24 verlangt in seiner „config.ini“ an der „Configuration_adv.h“ folgende weitere Einstellungen:
In Zeile 3077 soll //#define M115_GEOMETRY_REPORT aktiviert werden.
in Zeile 3129 soll //#define REPORT_FAN_CHANGE aktiviert werden.
In Zeile 1911 soll //#define EMERGENCY_PARSER aktiviert werden.
In der config.ini des Displays können weitere interessante Einstellungen zum Display gemacht werden. Diese Einstellungen können mit einem Firmwareupdate vorgenommen werden. Hier können auch andere Icon-Sätze eingespielt werden. Die aktuelle FW gibt es bei github.com.
Erster Test Ob das bisherige so weit funktioniert, soll nun getestet werden. 1. Display anschießen 2. Board auf USB-Spannungsversorgung umjumpern 3. Firmware mit VisualStudioCode erstellen 4. Die Datei .pio/build/LPC1768/firmware.bin wird auf die SD-Karte kopiert. 5. SD-Karte in das Board stecken 6. Board mit USB verbinden
Nun sollte kurz der Marlin-Startbildschirm kommen und danach „HyperCube bereit“
Temperaturfühler Die Einstellungen für die Temperaturfühler werden ab Zeile 352 „Thermal Settings“ vorgenommen.
In Zeile 419 ist mit #define TEMP_SENSOR_0 1 voreingestellt, dass am Board an der Steckleiste TH0 für den Extruder ein 100k Thermistor angeschlossen ist.
In Zeile 427 wird mit #define TEMP_SENSOR_BED 0 1 eingestellt, dass am Board an der Steckleiste TB0 für das Heizbett ein 100k Thermistor angeschlossen ist.
Die Grenzbereiche der Temperaturen können ab Zeile 450 eingestellt werden. Diese Einstellungen bleiben vorerst so, werden aber bei den PID-Einstellungen noch mal behandelt.
Die Temperaturen werden nun, wenn eine neue Firmware erstellt wurde, im Display angezeigt. Mit einem entsprechenden Terminalprogramm z.B. Pronterface können mit M105 die aktuellen Temperaturen abgefragt werden. Auch sollte das Terminal die Temperaturen automatisch anzeigen.
Endschalter / Endstop Hier werden die Endschalter für die X- und Y-Achse konfiguriert. Für die Z-Achse wird später ein BL-Touch verwendet. Die Einstellungen hierzu werden ab Zeile 620 „Endstop Settings“ vorgenommen.
Mit M119 kann der Status der Endschalter im Terminal abgefragt werden.
An den Endschaltern musste ich auf der Schalterseite +5V(rot) und GND (schwarz) tauschen. Offensichtlich sind die Schalter falsch eingelötet.
3D- / BL Touch Die Einstellungen für die Z-Probe werden hauptsächlich ab Zeile 836 „Z Probe Options“ eingestellt.
Durch aktivieren der Zeile 909 wird mitgeteilt das ein Sensor vorhanden ist. Marlin ist es egal ob ein 3D-, BL_Touch oder sonst ein Clone angeschlossen ist. //#define BLTOUCH
In Zeile 996 muss der Offset des Sensors zur Düse (Nozzle) angegeben werden. Da der Sensor bei mir rechts von der Düse montiert ist, ist der Offset positiv #define NOZZLE_TO_PROBE_OFFSET { 10 28, 10 12, 0 }
Weitere Werte werden in den folgenden Zeilen geändert: Zeile 1159//#define MIN_SOFTWARE_ENDSTOP_Z Zeile 669 #define Z_MIN_PROBE_ENDSTOP_INVERTING false true Zeile 852 //#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN Zeile 855 #define USE_PROBE_FOR_Z_HOMING Zeile 1120 #define Z_HOMING_HEIGHT 4 Zeile 1123 #define Z_AFTER_HOMING 10
Ab Zeile 1204 „Bed Leveling“ werden die eigentlichen Einstellungen zum ABL gemacht.
Durch aktivieren der Zeile 1244 wird die Levelingmethode „BILINEAR“ ausgewählt. //#define AUTO_BED_LEVELING_BILINEAR
Damit die ABL-Daten nach einem Homing automatisch wieder hergestellt werden, kann die Zeile 1252 aktiviert werden. //#define RESTORE_LEVELING_AFTER_G28
Die Anzahl der Levelingpunkte wird hier mit 3 x 3 Punkten #define GRID_MAX_POINTS_X 3 #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X festgelegt.
In Zeile 1395 wird noch das Z-Safe-homing aktiviert //#define Z_SAFE_HOMING
Der Sensor kann mit folgenden Befehlen im Terminal getestet werden: M280 P0 S10 = Pin ausfahren M280 P0 S90 = Pin einfahren M280 P0 S120 = Selbsttest starten M280 P0 S160 = Alarm zurücksetzen (wenn er blinkt)
G28 = homing starten G29 = autoleveling (ABL) starten M851 Z… = Offset speichern M850 = Werte im EEProm speichern
Netzteil anklemmen Wichtig: Da ab jetzt größere Verbraucher dazu kommen muss ab jetzt auf die Versorgung vom Netzteil umgestellt werden.
Der Jumper für die Auswahl der Versorgungsspannung (USB oder 12V) wird auf VCD (12V) zum mittleren PIN gesteckt. Somit wird das Board vom ATX-Netzteil versorgt.
Lüfter Der Extruderlüfter wird an HE1 angeklemmt. Damit der Lüfter automatisch ab einer Temperatur von 50 Grad am Hotend einschaltet, wird in der Configuration.adv in Zeile 451 der entsprechende Anschluss bekannt gemacht. #define E0_AUTO_FAN_PIN -1 FAN1_ PIN Die Geschwindigkeit mit der der Lüfter laufen soll wird in Zeile 464 eingestellt. #define EXTRUDER_AUTO_FAN_SPEED 255 150 // 255 == full speed
Der Lüfter für die Bauteilkühlung wird an +FAN0 aufgesteckt. Weitere Einstellungen sind nicht nötig.
Heizbett und Extruder Bettgröße Temperaturen Siehe hierzu auch bei den Temperaturfühlern. Die minimale und maximale Extrusionstemeratur kann ab Zeile 574 eingestellt werden. M302 = … M104 = Setze Hotendtemperatur M104 [B<temp>] [F<flag>] [I<index>] [S<Temperatur>] [T<index>]
Antriebe / Schrittmotore Um was für eine Art / Verfahren sich bei dem Drucker handelt wird ab Zeile 605 bekannt gemacht. Der CoreXY wird in Zeile 613 aktiviert. //#define COREXY
An den Schrittmotortreibern TMC2208 V3 UART muss nichts mehr umgelötet werden. Die Treiber für den „Extruder“ und die Achsen „X“, „Y“ und „Z“ werden ab Zeile 687 bekannt gemacht. //#define X_DRIVER_TYPE A4988 TMC2208 //#define Y_DRIVER_TYPE A4988 TMC2208 //#define Z_DRIVER_TYPE A4988 TMC2208 ... //#define E0_DRIVER_TYPE A4988 TMC2208
Weitere Einstellungen werden in der PDF zum TMC2208 beschrieben …
Configuration.h 750 #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 4000 400, 500 100} 757 #define DEFAULT_MAX_FEEDRATE { 300, 300, 5 15, 25 } 770 #define DEFAULT_MAX_ACCELERATION { 3000 1000, 3000 1000, 100 1000, 10000 5000 } Hier gibt es auch weitere Werte zum einstellen
Die Bettgröße / Bauraumgröße kann ab Zeile 1133 angegeben werden.
Die Drehrichtungen der Schrittmotoren kann ab Zeile 1098 angepasst werden. #define INVERT_X_DIR true #define INVERT_Y_DIR true #define INVERT_Z_DIR true
Ab Zeile 1105 kann die Förderrichtung der Extruder bestimmt werden #define INVERT_E0_DIR false true
Configuration_adv.h Ab Zeile 2208 können die über UART mit den Schrittmotortreibern vorgegebenen Werte eingestellt werden. Insbesondere für jede Achse Motorstrom in mA Motorstrom beim sensorlosen Homing in mA Microsteps 0…256 RSENSE ??? CHAI_POS ???
2455 //#define MONITOR_DRIVER_STATUS aktiviert M906 – Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given. M911 – Report stepper driver overtemperature pre-warn condition. M912 – Clear stepper driver overtemperature pre-warn condition flag. M122 – Report driver parameters (Requires TMC_DEBUG)
Configuration_adv.h 2550 //#define TMC_DEBUG aktiviert Muss laut github-Diskusion seit Marlin 2.0.6. nicht mehr zwingend umgestellt werden. Wenn umgestellt ist gibt der G-Code M122 jedoch mehr Infos aus.
Der Skirt dient dazu, den Filamentfluss vor dem eigentlichen Druck etwas in Fahrt zu bringen. Manche Drucker benötigen direkt nach dem Start erst mal ne kurze Zeit um ausrechend Filament zu fördern.
Anzahl der Skirt-Linien die um das Druckobjekt gezogen werden Skirt-Distanz in [mm] der Skirt-Linien zum Druckobjekt Minimale Skirt-Länge in [mm]
Damit eine Umrandung überhaupt geslicet wird, muss in den Qualitätseinstellungen die Höhe des ersten Layers (z.B. 0.0101mm) größer wie die Hälfte der Layerhöhe (z.B. 0.2mm) sein.
Brim = Rand
Es wird einfach ein Rand mit einer wählbaren Anzahl zusätzlicher Linien um das Druckobjekt herum gelegt.
In meinem bisherigen Aufbau sind noch die 8mm Linearwellen für die Z-Achse verbaut. Tech2C hat hier aus Gründen der besseren Stabilität mittlerweile 12mm Wellen verbaut.
Erforderliches Material
Kaufteile 2 Stk. Linearwelle 12mm 2 Stk. Linearlager LM12LUU xx Stk. Schraube M3x20mm xx Stk. Mutter M3 xx Stk. Schraube (Befestigung an Aluprofil) xx Stk. Hammermutter M …