Prusa Geeetech IX3 Pro / GT2560 Board mit Autoleveling für unter 5 Euro nachrüsten

Wer einen 3D Drucker hat, lernt schnell, dass der erste Layer entscheidend ist. Die erste Lage Kunststoff muss in passendem, minimalen Abstand auf das Hotbed aufgebracht werden. Deshalb muss man das Hotbed exakt über die Rändelschrauben passend zum Hotend einstellen. Das ist nervig und geht oft schief.

Es gibt eine Alternative: Autoleveling. Dabei misst der Drucker vor dem Start selbstständig die Position des Hotbeds mit einem Abstandssensor aus. Wenn man das einmal gut eingestellt hat, ist das Drucken fast schon plug&play. Und ein etwas schiefes Hotbed wird sogar automatisch kompensiert. Die Marlin Firmware kann schon alles, was dazu nötig ist. Man braucht eigentlich nur einen passenden Sensor. Es gibt verschiedene technische Ansätze für einen Abstandssensor. Induktive Abstandssensoren scheinen sich durchzusetzen, da diese einfach und robust funktionieren und keine weitere Mechanik / Servos benötigen. Diese Abstandssensoren funktionieren, wenn man eine Alu oder Stahlplatte als Druckplatte hat. Der Sensor reagiert auf Änderungen eines von ihm erzeugten magnetischen Wechselfelds durch eine sich nähernde Permeabilität. Die Reproduzierbarkeit ist erstaunlich hoch. Bei wiederholten Messungen sind die Abweichungen bei mir ca. 20 Mikrometer (siehe Ende des Beitrags).

Hier nun die Anleitung. Das Ganze geht von einem Geeetech IX3 Pro aus. Folgendes wird benötigt:

  • Eine angepasste Firmware
  • Einen Adapter zur Montage des Sensors an den Extruderschlitten –> selbst drucken
  • Induktiver Abstandssensor
  • männliche/weibliche Breadboard Kabel für den Anschluss
  • es empfiehlt sich folgende Adapter –> https://blog.thesen.eu/3d-drucker-gt2560-board-stromversorgung-5v-12v-und-serielle-schnittstelle-rx-tx-nachruesten/
    (es geht aber auch ohne den Adapter)

Ich habe folgenden Sensor über Amazon bestellt.
Im Prinzip sind diese induktiven Abstandssensoren alle ähnlich und vermutlich austauschbar. Wichtig ist, dass die nominale Distanz bei dem gewählten Sensor 8mm beträgt. Die nominale Distanz bezieht sich auf die Annäherung an ferromagnetische Materialien. Diese Distanz schrumpft bei einem Aluhotbed auf ca. 1/3 (genauer Wert hängt vom Sensor Design und dessen Wechselfeld ab). Deshalb rate ich nicht zu 4mm Sensoren. Die Detektionsdistanz wird dann zu klein. Der Sensor soll robust auslösen, bevor die Extruderdüse das Hotbed berührt und selbst ausreichend weit von Hotbed und gedrucktem Objekt entfernt bleiben.
Weiterhin ist die nominale Mindestspannung der Sensoren zu beachten. Ich konnte nur Sensoren mit einer Mindestspannung von 6V finden. Der o.g. Sensor arbeitet aber auch mit 5V hervorragend und erspart so eine Pegelwandlung für den Endstop Eingang.

Firmware anpassen:
Man muss einige Anpassungen in der Firmware vornehmen. Eine angepasste Firmware für den IX3 Pro steht hier zum Download bereit:
Marlin_AutoLeveling_IX3Pro

Die Änderungen habe ich Code mit // ST markiert. Wenn ich die Zeit finde, werde ich die Änderungen im Einzelnen nochmal in einem eigenen Beitrag durchgehen.

Neben Autoleveling sind noch folgende Änderungen enthalten:

  • Baudrate geändert auf 115200
  • Maße des IX3 Pro eingetragen (hat Geeetech leider versäumt)
  • Drehknopf Richtung herumgedreht (damit das endlich mal stimmt)
  • Babysteps aktiviert (damit kann man während des Druckbetriebs die Extruderposition per Menü nachsteuern)

Man kann in der Firmware weiterhin das Abtastschema des Hotbeds wählen. Ich habe 9 Abtastpunkte genommen. Im Prinzip würden 3 Punkte langen, um eine Ebene zu erfassen. Für eine symmetrische Abtastung der Hotbed Ränder als auch eine ausreichende Messwiederholung scheinen mit die 9 Punkte die beste Wahl.

Adapter für die Sensor Montage:
Ich empfehle den Adapter in ABS auszudrucken, da er nahe zum Hotend montiert werden muss. Damit es stabil wird empfehle ich 100% Infill. Den Sensor-Halter dann von vorne ankleben, so dass sich ein rundes Montageloch für den Sensor ergibt. Dazu den Adapter mit der Aussparung neben dem Loch auf die freie Nase des Extruderschlittens setzen.
InduSensHalter
Hier die STL Datei dazu: InduSensHalter
Dabei den Halter (Drucker von vorne gesehen) nach rechts an den Anschlag schieben. Es entsteht ein rundes Loch für den Halter. Ich habe Stabilit Express genommen.

Den Sensor dann einschrauben. Der Sensor soll ca. 2.5mm Abstand in z-Richtung zwischen Düse und Sensoroberfläche haben. Das Sensorkabel mit den anderen Kabeln wegführen. Hier sind ein drei Fotos von meinem Drucker:
Autolevel_Sensor1
Autolevel_Sensor2
Autolevel_Sensor3

Anschluss an das GT2560 Board:
Auf dem Sensor steht etwas kryptisch drauf, welche Farbe welche Funktion hat.
Braun = VCC
Blau = GND
Schwarz = Sensorausgang
An die Sensorkabel weibliche Breadboard Stecker anlöten und die Lötstellen isolieren.

z-Stop umbauen:
Bisherigen Z-Stop Stecker vom GT2560 Board abziehen. Die Einstellschraube ganz nach oben drehen, damit sie aus dem Weg ist.
ACHTUNG: Die neue Firmware dreht das z-Stop Verhalten herum! – Das heißt, dass der ursprüngliche z-Stop Schalter nicht mehr richtig funktioniert.
Wenn Ihr das Kabel des alten z-Stops nicht mehr verwenden wollt, dann könnt Ihr auch das als Anschluss an den Sensor anlöten. Ein weiblicher Breadboard Stecker passt auch auf den Z-Stop Anschluss am Board. Den Signalausgang des Sensors mit dem OBEREN Pins des z-Stop Anschlusses verbinden.
GT2560_AutoLevel_zStop

Den Sensor mit 5V Spannung versorgen:
Bei dem oben referenzierten Sensor sind 5V Versorgungsspannung ausreichend. Der Signalpegel ist dann ohne Levelshifter direkt zum GT2560 Board kompatibel. Die Stromversorgungsanschlüsse kann man per Adapter auf einen Schrittmotortreiber-Steckplatz organisieren. Der Adapter is empfehlenswert, weil man darüber einige freie Pins zur Spannungsversorgung von weiteren Erweiterungen bekommt.
Bauanleitung für den Adapter
Es gibt aber auch eine direkte Lösung, wenn wenn der Adapter ansonsten nicht benötigt wird. Dazu Breadboardkabel mit männlichen Steckern an die Spannungsversorgung des Sensors anlöten. Diese steckt man dann in den Sockel für den unbelegten Schrittmotortreiber. Wenn man nach „A4988 pinout“ googlet, bekommst man die Anschlussbelegung. Es sind die beiden Pins unten rechts (VDD = +5v und GND).
GT2560_Schrittmotor_Pinout

Sensor testen & einmessen:
Drucker einschalten. Messer oder Metallspachtel o.ä. unter den Sensor halten. Es muss im Sensor rot leuchten.
Jetzt musst der Sensor eingemessen werden. Dazu löst man ein Autohome manuell per serieller Konsole mit „G28“ aus. Jetzt fährt der Extruder in die Mitte des Hotbeds und senkt sich ab, bis der Sensor auslöst. Jetzt „G92 Z10“ eingeben.
ACHTUNG: Der Drucker glaubt jetzt, dass noch 1cm Platz zum Hotbed besteht. Das ist natürlich NICHT der Fall!
Jetzt senken wir den Extruder in 0.1mm Schritten ab und kontrolliert mit Papier, wann es passt. Wenn das Papier unbeweglich wird, ist die z-Distanz gefunden: Es ist die Differenz von 10mm MINUS der akuellen z-Position Diese z-Distanz kann man in die Firmware eintragen (kein Zwang – s.u.). In der Firmware sind aktuell 2.6mm eingestellt. Dieser Wert ist bei Euch gegebenenfalls nicht richtig. Wenn die Werte nicht passen, fährt die Extruderdüse eventuell in das Hotbed.
Weiterhin kann man auch noch den x/y Offset ausmessen. Diese Werte müssen nicht auf den Millimeter passen. Bei einem IX3 Pro und dem oben angegebenen Adapter, sind diese Werte ausreichend genau:
#define X_PROBE_OFFSET_FROM_EXTRUDER 19
#define Y_PROBE_OFFSET_FROM_EXTRUDER -43
Ggf die richtigen Werte in der configuration.h eintragen.
Die neue Firmware mit der Arduino IDE auf das GT2560 Board übertragen.

Jetzt muss das Startscript in der Slicer Software angepasst werden. Statt nur G28 kommt jetzt:
G28
G29

Falls Ihr einen anderen z-Wert habt (z.B. 2.9mm) und dieser nicht in der Firmware steht, kann man per Startscript nachregeln. Damit erspart Ihr Euch auch, die Firmware immer zu ändern, wenn sich etwas am Extruder/Sensor ändert:
G28
G29
G92 Z2.9

Der Drucker fährt nun nach G28 den Extruder:

  • 5mm nach oben (um den Sensor in jedem Fall aus dem Regelbereich herauszufahren)
  • in die Mitte des Hotbeds
  • senkt den Extruder ab, bis der Sensor auslöst
  • setzt als neue z-Höhe den in der Firmware gesetzten Wert

Nach G29 fährt der Drucker dann in einem Gittermuster 9 Punkte auf dem Hotbed an und misst die Höhe. Diese Werte diesen dazu, eine eventuelle Schräglage des Hotbeds zu korrigieren. Falls im Starterscript per G92 ein anderer Wert gesetzt wird, ist das die neue z-Höhe. Danach beginnt der Druckprozess.

Wenn alles läuft, druckt Ihr jetzt mit Autoleveling.

Reproduzierbarkeit:
Hier habe ich noch aus dem seriellen Log das Ergebnis von zwei hintereinander ausgeführten G29 Kommandos (noch mit originalen und nicht so ganz geraden Stangen & Hotbed Aluplatte). Die Reproduzierbarkeit beträgt 20 Mikrometer. Das ist erstaunlich genau.
Send: G29
Recv: Bed x: 15.00 y: 15.00 z: 1.94
Recv: Bed x: 97.00 y: 15.00 z: 2.45
Recv: Bed x: 179.00 y: 15.00 z: 2.37
Recv: Bed x: 180.00 y: 87.00 z: 2.66
Recv: Bed x: 98.00 y: 87.00 z: 2.62
Recv: Bed x: 16.00 y: 87.00 z: 2.05
Recv: Bed x: 15.00 y: 159.00 z: 2.06
Recv: Bed x: 97.00 y: 159.00 z: 2.46
Recv: Bed x: 179.00 y: 159.00 z: 2.43
Recv: Eqn coefficients: a: 0.00 b: 0.00 d: 2.02
Recv: planeNormal x: -0.00 y: -0.00 z: 1.00
Recv: ok

Send: G29
Recv: Bed x: 15.00 y: 15.00 z: 1.93
Recv: Bed x: 97.00 y: 15.00 z: 2.44
Recv: Bed x: 179.00 y: 15.00 z: 2.38
Recv: Bed x: 180.00 y: 87.00 z: 2.66
Recv: Bed x: 98.00 y: 87.00 z: 2.61
Recv: Bed x: 16.00 y: 87.00 z: 2.04
Recv: Bed x: 15.00 y: 159.00 z: 2.08
Recv: Bed x: 97.00 y: 159.00 z: 2.48
Recv: Bed x: 179.00 y: 159.00 z: 2.45
Recv: Eqn coefficients: a: 0.00 b: 0.00 d: 2.00
Recv: planeNormal x: -0.00 y: -0.00 z: 1.00
Recv: ok

Viel Erfolg. Bei Problemen einfach fragen.

P.S.: Warum bei unter 5€ Kosten nicht alle Drucker vom Hersteller her mit Autoleveling ausgerüstet werden? – Offenbar sind die paar Euro zuviel.

108 Gedanken zu „Prusa Geeetech IX3 Pro / GT2560 Board mit Autoleveling für unter 5 Euro nachrüsten

  1. Hans

    Sau cool, vielen Dank für die bebilderte Anleitung! Habe erst mal ein paar andere Sachen für den Drucker auf dem Zettel, aber das wird definitiv noch realisiert.
    Deinem PS schließe ich mich an, einfach unverständlich. Aber gut, bei dem Billigbausatz ist so einiges unverständlich. 😉

    OT: Ich bin gerade dabei Cura und Slic3r bissl zu vergleichen. Slic3r hat ja das Problem, dass die Oberflächen unschön sind, dafür ist es beim Rest mMn sauberer und hat mehr Features. Ich habe gerade eben Slic3r aus den aktuellen Sourcen kompiliert, da sollte der Fehler, der die löchrige Oberfläche verursacht hat behoben sein. Schau ich mal die Tage.
    Zu dem Fehler siehe hier: https://github.com/alexrj/Slic3r/issues/2960

    Antworten
  2. Tom

    Hallo Stefan,

    vielen Dank für deinen Blog!
    Hab die von dir gezeigten Upgrades an meinem Prusa i3X durchgeführt – der Qualitätsunterschied ist deutlich sichtbar.
    Seit dem Autobedleveling habe ich sogut wie keine Probleme mehr mit dem Drucker – alles kommt so raus, wie es soll – einfach perfekt!
    Vielen Dank dafür!

    Antworten
  3. Michael

    Servus,
    Ich bin wie beschrieben vorgegangen,aber egal was ich mache mein Hotend fährt gegen die Alu-Druckplatte !!!

    Ich hatte es manuell über den Drucker,also ohne PC hinbekommen das er exakt 1mm über der Druckplatte stehen bleibt,aber sobald ich Repetierhost starte und den G28 Befehl ausführe wieder das gleiche.

    Nach nun mehr 2 Stunden gehen mir die Ideen aus,wäre dankbar für Hilfe 😉

    Gruss Michael

    Antworten
    1. ST Beitragsautor

      Hallo Michael,

      wenn es mit einem reinen G28 Kommando klappt, dann schließe ich mal:
      1. Der Sensor läuft und ist richtig angeschlossen.
      2. Du hast die veränderte Firmware hochgeladen.

      Vermutung: G28 läuft richtig. Nach G28 bleibt das Hotend über der Aluplatte stehen und die in der Firmware hinterlegte z-Distanz wird als Höhe eingestellt. Wenn diese z-Distanz zu gross ist, lösen die folgenden Druckkommandos den Aufschlag aus. Ich habe die Firmware mit der Distanz 2.6mm hochgeladen.
      Ändere den Wert auf Deinen Abstand oder setze ihn per G92 nach G28/G29.

      Gruss Stefan

      Antworten
  4. Michael

    Vielen Dank für die schnelle Antwort Steffen 😉

    Richtig angeschlossen habe ich ihn,genau nach deinem Schema.

    Er funktioniert aber nur unter folgender Voraussetzung und zwar ich flashe deine Firmware ganz frisch auf das Board vom Drucker,anschliessend stöpsel ich das USB Kabel ab und schalte den Drucker an.Wenn ich jetzt über den Drehknopf den „Home“ Befehl ausführe dann löst der Sensor zum richtigen Zeitpunkt aus,fährt ein Stück wieder nach Oben und anschliessend wieder etwas nach unten bis das Hotend 0.2mm über der Druckplatte stehen bleibt.

    Also wieder Drucker aus,USB Kabel dran und Repetierhost starten.Wenn ich jetzt eine Verbindung mit dem Drucker aufbaue und dann den G28 Befehl in der Konsole ausführe löst der Sensor nicht aus,obwohl er rechtzeitig leuchtet wird das Hotend gnadenlos in die Druckplatte gedrückt.

    Wenn ich jetzt den Drucker wieder ausmache und Neu starte ohne USB Kabel,dann funktioniert die Home Funktion über den Drehknopf auch nicht mehr korrekt.
    Das Hotend wird einfach in die Druckplatte gedrückt,auch wenn ich mit einem Messer schon lange vorher den Sensor aktiviere !!!

    Irgendwo bekommt der Drucker falsche Z-Werte her sobald ich ihn mit dem PC/Repetierhost verbinde.

    Das einzigste was ich an deiner Firmware Version geändert habe ist die Drehrichtung vom Motor der X-Achse !!!

    Vielleicht erkennst du ja jetzt meinen Fehler 😉

    Gruss Michael

    Antworten
    1. ST Beitragsautor

      Hallo Michael,

      das ist sehr merkwürdig. Könnte es an Repetier liegen und daran, dass dort beim initialisieren des Druckers irgendetwas passiert? – Was nimmst Du als Slicer / für die Konsole? – Mit Cura oder Simplify3D & Octopi klappt es. In Slic3r gibt es wohl eine eingebaute G92 Option, um die z-Höhe anzupassen. Ist die aktiv und hat ggf einen falschen Wert?

      Gruss Stefan

      Antworten
  5. Michael

    Hallo Steffen,

    Ja ich benutze Slic3r,dann werde ich mir das mit der Z-Höhe mal genauer ansehen.

    Was mir noch aufgefallen ist,wenn ich den Drucker ausmache mit einer Z Position von z.B 50mm,nimmt er beim nächsten Start diese Höhe als Neue „0“ Position.
    Das bedeutet Z lässt sich nicht mehr nach unten sondern nur noch nach Oben bewegen.
    Ich hatte ganz am Anfang des Druckers das gleiche Problem,was aber durch aufspielen einer neuen Geeetech Firmware komplett verschwunden war !!!

    Aber das Wochenende kommt ja,Zeit zum Basteln 🙂

    Gruss Michael

    Antworten
  6. ST

    Kannst auch mal in das gcode File mit einem Ascii Editor hineinschauen und nach G28, G29 und G92 suchen. Dadurch solltest Du sehen können, was slic3r wirklich dreht. Ich geb zu, dass ich mit slic3r anfänglich keine guten Erfahrungen gemacht habe und seit dem nie wieder reingesehen habe. Ggf kannst Du mal probieren, ob mir Cura das selbe passiert.

    Gruss Stefan

    Antworten
  7. Michael

    Hallo Steffen,
    Es lag nicht an deiner Firmware 😉
    Der Sensor selbst war das Problem,die knapp 5V vom Schrittmotortreiber haben nicht ausgereicht das er auf 0 geschaltet hat,erst mit einem Spannungsteiler und 12V haben wir ihn zum laufen bekommen.
    Der von dir vorgeschlagene Sensor hatte zu lange Lieferzeit,deswegen bin ich auf einen anderen ausgewichen mit identischen Spezifikationen und zwar der hier :
    https://www.amazon.de/gp/product/B008FY763C/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1
    Also Vorsicht !!! Dieser hier funktioniert nur mit Spannungsteiler/Shifter !!!

    Jetzt funktioniert alles Einwandfrei und das Druckergebnis ist Phänomenal 🙂

    Vielen Dank für deine Hilfe

    Gruss Michael

    Antworten
    1. ST Beitragsautor

      Danke für die Rückmeldung. Das mit dem Levelshifter muss man genau ansehen. Bei einigen Sensoren kann man ihn weglassen, aber 5V sind bei allen Modellen offenbar außerhalb der offiziellen Spec.

      Antworten
  8. Vadim

    Hi. Danke erstmal für die super Anleitung! Habe ein Problem jetzt … irgendwie ist es egal welchen Wert ich in die Firmware eintarage (z-Wert) bleibt der extruder an gleicher Stelle stehen. Und zwar sobald der Sensor auslöst.

    Antworten
  9. ST

    Hallo Vadim,

    wenn es richtig funktioniert, dann levelt der Drucker x & y. Danach fährt er in die Mitte des Druckbetts und fährt dabie 5mm nach oben. Nun senkt er den Extruder schnell ab, bis der Sensor auslöst. Dann nochmal ca. 5mm nach oben und wieder langsam nach unten bis der Sensor auslöst.
    In diesem Vorgang wird immer die selbe z Höhe erreicht, egal welcher Wert im der Firmware steht: bis der Sensor auslöst. Wenn der Extruder dann steht, steht aber der in der Firmware eingetragene Wert im Display: Als Höhe über dem Druckbett.

    Gruss Stefan

    Antworten
    1. Vadim

      Danke.
      Mittlerweile habe ich alles soweit in der Firmware angepasst, da ich jetzt einen Bowden Extruder habe und TR8 Grwindestangen. Auto leveling funktioniert einwandfrei, auch mit einer Glassplatte auf der Aluplatte.

      Antworten
    1. ST Beitragsautor

      HI Cedric,

      ich habe keine praktische Erfahrung mit einer Glasplatte. Somit folgt Meinung und Theorie: Das MK2 Hotbed sollte den Sensor zuverlässig auslösen können. Allerdings geht die Dicke der Glasplatte von der Detektionsdistanz weg. Der genannte Sensor hat nominal 8mm und bei Alu / Kupfer hast Du ca. 1/3 dieser Länge übrig. Folglich löst der Sensor zwischen 2-3mm Distanz zur Metalloberfläche aus. In die 2-3mm muss nun die Glasplatte passen und die Düse darf auch noch nicht auf der Glasplatte aufgesetzt haben (und der Sensor muss höher als die Düse montiert sein, weil er sonst in den Druck hineinfährt). Ergo wird das selbst bei einer sehr dünnen Glasplatte sehr knapp. Bei den typischen Glasplatten mit 3-4mm Dicke geht es vermutlich schief.
      Wenn’s die Glasplatte in Kombination mit einem induktiven Sensor sein soll, dann versuche einen mit 12-16mm Distanz zu bekommen. Letztlich geht eine größere Distanz aber auf die Genauigkeit.

      Gruss Stefan

      Antworten
      1. Cedric

        Hi Stefan,

        danke für Deine Ausführungen – hat mir sehr geholfen! Ich gucke mal wie ich es löse… habe mir den Sensor trotzdem erstmal bestellt, für die paar Euro kann man ja nicht viel falsch machen.

        Hättest du denn eine Sensor-Empfehlung für mich um auf die 12-16 mm zu kommen?

        LG,
        Cedric

        Antworten
      2. Tom

        Hallo Stefan und Cedric,

        zwar etwas spät, aber vielleicht hilfts dem einen oder anderen noch.
        Ich habe meinen Drucker nach deiner Anleitung auf Autobedleveling umgebaut. Wie du verwendte ich einen Induktiven Sensor (8mm).
        Damals funktionierte die Kombination mit Mk2-Heatbed und 3mm-Glasplatte nicht auf anhieb. Abhilfe schaffte ich mir damit, dass ich zwischen Heatbed und Glasplatte noch ein 1mm dickes Stahlblech dazwischengeklemmt habe. Seitdem funktioniert alles bestens und ich habe immer noch 3-4mm Luft zwischen Sensor und Glasplatte.

        Antworten
        1. ST Beitragsautor

          Ein Stahlblech erzeugt bzgl des Sensors eine größere Auslösedistanz. Das dürfte der Trick sein, um es mit einer Glasplatte ans Laufen zu bringen. Langt die Oberflächentemp noch?

          Gruss Stefan

          Antworten
    1. ST Beitragsautor

      Hallo Hans,

      Das ist eine gute Alternative. Hast Du Deinen Halter ausgemessen? – der Sensor sitzt an einer anderen Stelle als bei meinem Klebehalter. Da muss man die FW anpassen. Wäre prima, wenn Du die Werte für den x/y Offset posten würdest.

      Gruss Stefan

      Antworten
  10. Patrick

    Danke für die Hilfe!!!! 🙂 Du solltest in deinem Tutorial aber erwähnen, dass du 2.6 mm auf Z ins Minus gegangen bist. 😉 Meine DDP freut sich jetzt über ein paar Striemen mehr 😉 Beste Grüße, Patrick

    Antworten
  11. Hans

    Ich habe ein paar Fragen zu deiner Firmware:
    Warum hast du als Höhe des Druckbereichs nur 12 cm angegeben, obwohl bis zu 18 cm gehen?

    Wie hast du die PIDs gefunden? Wenn ich Autotune mache dann kommt immer die Meldung „PID Autotune failed! Temperature too high“, weil der überschwingt. Erst wenn ich BANG_MAX (und damit PID_MAX) auf 210 stelle kann Autotune durchgeführt werden, weil dann erst die Temperatur langsam genug steigt, damit die PIDs greifen können (ist zumindest meine Schlussfolgerung). In deiner FW ist BANG_MAX allerdings nach wie vor auf volle 255.

    LG

    Antworten
  12. Vadim

    Ich habe auch eine Glassplatte (4mm) und eine mk2 Platte. Da aber die Platte bei mir nicht genau gerade ist, die Glassplatte aber schon, habe ich die Glassplatte einfach von unten mit Aluklebeband beklebt. Der Sensor reagiert jetzt auf das Klebeband und nicht mehr auf das verbogene Heatbed.
    Falls es jemandem hilft.))

    Antworten
        1. Hans

          Stimmt offenbar, das mit dem Sensor. Ich überlege auf Glas umzusteigen (siehe unten), weshalb ich das mit der Alufolie gerade getestet habe.
          Bei „unserem“ (also dem von ST verlinkten) Sensor reicht eine Lage Alufolie für zuverlässiges Triggern. Sehr schönes Teil hast du da raus gesucht. 🙂

          Hintergrund: Ich bin mit der Ebenheit meiner Aluplatte ziemlich unzufrieden. Trotz sehr naher Nozzle und 9er-Grid-Autolevel hält das extrudierte Plastik an bestimmten Stellen nicht und an anderen dafür viel zu fest. Ich vermute eine Schwankung von über 0,3 mm. Ich hatte das MK3 Aluminium Heatbed bestellt, in der Hoffnung, dass da Wert auf Ebenheit gelegt wird. Pustekuchen, es hat eine deutliche Vertiefung in der Mitte (mind. 0,2 mm würde ich schätzen) und wird zurück geschickt. Einen Anbieter für präzise Aluplatten habe ich auf eBay auch nicht gefunden.

          Antworten
      1. Willi

        Danke Stefan für die tolle Anleitung,
        auch ich habe mir den Drucker zusammengebaut und mir nun den Senor bestellt.
        Den Drehknopf habe ich schon mal geändert. Nebenbei hab ich das Menü auf deutsch umgestellt. Allerdings gibt es Darstellungsprobleme am Display mit den Umlauten. Gibt es da eine Lösung. Muss das Alphabet auch noch von Englisch auf Deutsch umgestellt werden (oder wie muss ich mich da ausdrücken?)? Ich habe jetzt erstmal in der Datei languag_de.h alle Umlaute entfernt/geändert auf ä=ae etc..

        Antworten
        1. ST Beitragsautor

          Hallo Willi,

          danke für das Feedback. Mit den Umlauten habe ich noch nicht experimentiert. Diese Displays halten sich tyischerweise nicht an die ASCII Codes für Sonderzeichen. Google mal nach „2004 lcd character map“; ich vermute stark, dass Du diese Umlaute per Esc Sequenz in die Strings klopfen musst, damit das geht.

          Gruss Stefan

          Antworten
  13. Willi

    So, nachdem der Sensor vor einigen Tage angekommen ist, habe ich mich gestern mal an dem Umbau gemacht und möchte hier meine Erfahrungen und Probleme mal kurz mitteilen. Ich muss sagen, ich bin wirklich kein Experte in dem Thema und habe auch wenig Erfahrung mit Arduino etc.

    Da ich vorher von den Vorteilen eines Bauteilelüfters gehört hatte, habe ich mir dieses Teil für den Umbau ausgedruckt, da dann noch Platz für den Lüfter ist.
    http://www.thingiverse.com/thing:1528694
    HIerbei ist die Sensormitte -60 auf der X Achse, was zu einem Probem geführt hat:

    Ich hatte alles nach Anleitung gemacht und die Positionswerte des Sensors eingetragen, dann den ersten G28 und dann G29 ausgeführt. Bei G29, also dem eigentlichen Leveln, war in der Firmware eingetragen, dass ein Messpunkt auf X175 liegen soll. Da der Sensor auf -60 ist, müsste der Schlitten des Extruders nach X235. Der Rahmen ist aber nur gut 200mm breit.
    Da ist keine Sicherung eingebaut. Er ist mir vor den Rahmen gefahren und der Riemen ist übergerattert.
    Ich habe den Messpunkt „#define RIGHT_PROBE_BED_POSITION“ in der Zeile 393 (nachdem ich die Zeilen in der Arduino Datei nach langem suchen gefunden hatte) auf 135 gesetzt. Dann hat er allerdings beim kompilieren gemeckert. Ich habe nicht ganz verstanden, wo genau das Problem war, aber irgendwie waren jetzt die Messpunkte zu dicht aneinander. Ich habe dann den Wert „AUTO_BED_LEVELING_GRID_POINTS“ in Zeile 399 von 3 auf 2 gestellt.
    (Wenn ich es richig verstanden habe, dann besagt dieser Wert, wieviele Punkte ja Achse gemessen werden sollen). Das hat funktioniert und ich denke die jetzt 4 (stimmts?) Messpunkte reichen für´s erste.
    Jetzt läuft er erstmal zu meiner zufriedenheit und ich habe wieder einiges gelernt.

    Danke Stefan, für deine verständlichen Erklärungen in dem Blog – die haben mir wirklich weitergeholfen.

    Nochmal was anderes: Hast du eine Meinung zum Thema Bauteilelüfter? Nachdem ich Probleme beim Drucken von Überhängen und Brücken hatte, habe ich ein bisschen gegoogelt und neben veränderten Slidereinstellungen die Empfehlung eines (geregelten) Bauteilelüfters gesehen. Ich habe noch keine brauchbare Anleitung dazu gefunden.
    Die beiden vorhanden Lüfter haben ja dreiadrige Anschlüsse (PWM Lüfter?) aber dass die in irgendeinerweise geregelt sind, konnte ich noch nicht feststellen. Oder kann das Board des i3 X Pro (GT2560) das garnicht?

    Und noch was – Thema Lager: Angeblich sollen die originalen Gleitlager nicht so der Hit sein und es wurden mir diese hier empfohlen
    http://www.ebay.de/itm/272279116093?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT
    Ich habe mir die jetzt mal bestellt, mal sehen ob da ein Unterschied feststellbar ist – benutzt du noch die Originalen?
    Mehr Sorgen mache ich mir allerdings um die Messingführungen mit Gewinde auf der Z-Achse. Die waren bei mir nach wenigen Stunden so schwergängig, dass die Motoren nicht mehr zuverlässig gedreht haben (deutlich hörbares rattern. Auch lagen sichtbar feine Spähne davon darunter. Ich habe dann alles mit Silikonöl-Spray wieder leichtläufig bekommen. Was ist da die beste Möglichkeit? Gibt es überhaupt Alternativen. Es ist ja jetzt auch so, dass die Z-Achse permanent nachregelt, da ja Unebenheiten der Druckplatte ausgeglichen werden sollen. Ohne Autoleveling wurde nur nach jedem Layer verstellt. Da dürfte der Verschleiß der Teile ja noch deutlich höher sein?!

    Freundliche Grüße
    Willi

    Antworten
    1. ST Beitragsautor

      Hallo Willi,

      zum Thema Bauteillüfter habe ich keine praktische Erfahrung. Wenn Du nicht-warpendes Material hast, dann kann das helfen (z.B. bei PLA). Das GT2560 müsste das eigentlich können. Ich vermute stark, dass es irgendwo an der Firmware Konfiguration liegt, dass die Lüfter immer auf Vollgas laufen.
      Bei den Gleitlagern habe ich noch die Originalen drin. Läuft auch alles leicht. Diese Lager sind bestimmt nicht die besten. Qualitätslager sind teuer. Berichte mal, ob die Drylins wirklich was sind. Man liest jedenfalls Positives im Netz. Die z-Achsen Bewegung sollte imho das geringste Problem sein. Die x/y Lager bewegen sich wesentlich mehr.
      Bei mir haben die Lager in den Umlenkrollen für die Riemen schnell ausgefallen. Seit da neue Lager drin sind, ist da auch Ruhe.

      Gruss Stefan

      Antworten
    2. Hans

      Moin, einige deiner geschilderten Probleme kenne ich nur zu gut. Die Gleitlager waren bei mir absoluter Müll, weshalb ich neue LM8UU besorgt habe. Die laufen deutlich besser. Die von dir geposteten haben scheinbar ähnliche Maße. Bei der Suche nach einer geeigneten Befestigungsmöglichkeit bin ich auf die hier gestoßen:
      https://www.thingiverse.com/thing:79361
      Davon habe ich dann ein Remix erstellt, damit es für die Bohrungen des Geeetech-Bauteil passt:
      https://www.thingiverse.com/thing:1727156
      Funktioniert perfekt, allerdings musste ich bei der Y-Achse was abfeilen (siehe Foto bei Thingiverse), da das Bett knapp zu tief liegt. Dafür bekommt man minimal mehr Reichweite für die z-Achse. 😉
      Alternativ gibt es viele solcher Halterungen bei denen die Lager mit Kabelbinder befestigt werden, was soweit ich gelesen habe auch sehr gut funktioniert und beim originalen Prusa i3 MK2 auch so gehandhabt wird.

      Zum Thema Bauteillüfter: Bisher verwende ich eine Abwandlung von dem hier:
      https://www.thingiverse.com/thing:1025471
      Meine Abwandlung davon ist hier zu finden:
      https://www.tinkercad.com/things/g463YVYjMgH
      Die ist allerdings für die Befestigung an meiner Sensorhalterung vorgesehen (wird einfach mit Aceton dran geklebt):
      https://www.thingiverse.com/thing:1721597
      Damit funktioniert die Kühlung sehr gut und ich habe mit Überhängen, gerade bei PLA, kaum noch Probleme. Demnächst will ich allerdings auf das E3D v6 Hotend wechseln, wofür ich das Extruderdesign des originalen Prusa i3 Mk2 verwenden werde:
      https://github.com/prusa3d/Orignal-Prusa-i3/tree/MK2
      Aber das nur am Rande.

      Das GT2560 Board hat einen PWM-Lüfteranschluss, allerdings habe ich den noch nicht in Betrieb genommen, bisher regel ich den Lüfter über einen Step-Down-Converter. Werde ich aber noch nachholen.
      http://www.geeetech.com/wiki/index.php/GT2560#Interface_Layout
      Der PWM-Anschluss ist der um 90° gedrehte. Falls dein Lüfter nur zwei Kabel hat ist das egal, der gelbe Anschluss ist für das Melden der Umdrehungszahl zuständig und kann mW ignoriert werden.

      Zu den Gewindestangen: Die mitgelieferten M8-Stangen sind Müll. Ich habe damit immer z-Wellen gehabt und gequietscht haben die trotz bester Ölung auch gerne. Ich rate dringend zu Tr8-Stangen. Die gibt es zb bei Aliexpress billig mit passendem Flansch. In Deutschland habe ich so einen Flansch nur für über 20€ gesehen…
      Hier ein Beispiel: https://www.aliexpress.com/item/1pcs-RepRap-3D-Printer-THSL-300-8D-T-type-stepper-motor-Lead-Screw-Dia-8MM-Thread/32544014846.html
      Je nach Steigung muss die Firmware angepasst werden. Bei Bedarf kann ich das genauer erläutern.
      Ich würde 3 bestellen, falls eine nicht perfekt ist (was bei mir natürlich der Fall war). Aber selbst die nicht-perfekte Stange war viel viel besser als die M8-Stangen. Mit den Stangen habe ich keine Probleme mehr und die Z-Wellen sind komplett weg.
      Ich habe übrigens auch versucht neue M8 Stangen aus Deutschland zu verbauen, was den Aufwand aber absolut nicht Wert war. Die sind genauso verbogen wie die chinesischen.

      So long…

      Antworten
      1. Phil

        Habe mir auch die von dir vorgeschlagenen Gewindestangen besorgt, an welcher Stelle muss ich die jetzt in die Firmware einpflegen. Sind ja TR8x3, aber ich weiß weder wo noch was ich dafür eintragen müsste.

        Antworten
        1. ST Beitragsautor

          Hallo MArc,

          schaue in die Configuration.h . Dort suchst Du nach
          #define DEFAULT_AXIS_STEPS_PER_UNIT
          Dahinter steht in der geschweiften Klammer, wieviel Steps pro Millimeter nötig sind. Den dritten Wert auf 2133.3333 für TR8 setzen. Achtung: Tr8 hat normalerweise die Steigung 1.5. Wenn Du wirklich Tr8x3 hast, musst Du den Wert halbieren. Allerdings wäre Tr8x3 ein nicht genormtes Gewinde, daher tippe ich mal auf Tippfehler.

          Gruss Stefan

          Antworten
  14. Uwe

    Auch von mir vorab ein fettes merci für die Anleitung. Ein Problem habe ich jedoch und bekomme keine Lösung hin. Ich sag mal Z-Offset …
    Ich sende G92 Z10 und dann fahre ich das Hotend in 0.1 Schritten nach Unten. Alles prima! Bei 2,6mm klemmt dann das Papier, auch gut. Welchen Wert trage ich jetzt in der Firmware ein? 2,6, -2,6, 7,4 oder doch -7,4?

    Wenn ich in der Firmware dann nichts eintragen will, welchen Wert dann in slic3r als Z-Offset?

    Wass soll denn dann für Z im Display stehen? So als Kontrolle.

    Grüße Uwe

    Antworten
    1. ST Beitragsautor

      Hallo Uwe,

      trage folgendes ein:
      #define Z_PROBE_OFFSET_FROM_EXTRUDER -2.6

      Gegebenenfalls -2.5, wenn es zu knapp ist. Slic3r nehme ich nicht. Vermute aber mal, dass Du das Starter Script meinst. Erst einmal nimmst Du dort:
      G28
      G29

      Wenn Du „nachstellen“ willst, dann beispielsweise folgendes Kommando hinten dran
      G92 Z2.40 ; distance nozzle to sensor

      Gruss Stefan

      Gruss Stefan

      Antworten
  15. Jan

    Hallo Stefan,

    hab alles so gemacht wie es oben steht.

    G28 und G29 funktioniert auch.
    Beim drucken macht er aber kein ausgleich der Z-Achse, das sollte der Drucker dann doch tun.

    Gruß Jan

    Antworten
  16. ST

    Hallo Jan,
    wenn alles richtiv läuft, bewegt sich normalerweise die z Achse immer ei wenig hin und her, während x/y Bewegungen ablaufen. es könnte natürlich sein, dass Du das Bett so perfekt ausgerichtet hast, dass die z Kompensation nichts tut. ist aber eher unwahrscheinlich.
    hast du die Firmware passend geändert? – siehst Du bei G29 in der seriellen Ausgabe die Messungen (siehe Blogbeitrag) inkl Ergebnisberechnung?
    es klingt so, als ob die Firmware nicht richtig aus Autoleveling umgestellt ist.

    Gruss Stefan

    Antworten
  17. Ralf

    Hallo Stefan,
    Ich habe ein Display mit 5 Knöpfen an meinem Lcd Board.
    Ist da die Firmware anders als an eurem
    Board mit dem Drehknopf?
    Ansonsten sind die Drucker aus meiner Sicht absolut baugleich…
    Beste Grüße
    Ralf

    Antworten
    1. ST Beitragsautor

      Hallo Ralf,

      es gibt für den Prusa verschiedene LCDs, die man unterschiedlich in der Firmware konfigurieren muss. Der hier erwähnte Geeetech hat ein LCD Display, das auch oft mit 2004 bezeichnet wird. Heiß eigentlich nur 20 Zeichen und 4 Zeilen. Wenn Du das hast, dürfte die Firmware Konfiguration jedenfalls von der Display Seite her passen. Bei den Knöpfen gibt es auch unterschiedliche Varianten. Letztlich alles ein Hexenwerk und ggf in der Configuration.h einstellbar.
      Wenn Du Autoleveling an einen anderen / ähnlichen Drucker bringen willst, schau Dir am besten die configuration.h und die Configuration_adv.h an. Ich habe alle Änderungen im Code mit einem Kommentar markiert. Das überträgst du dann auf den Code, der für Deinen Drucker konfiguriert ist.

      Gruss Stefan

      Antworten
  18. Martin Mollet

    Leider funktioniert es bei mir nicht ganz, der Sensor sitzt bei mir vor der Düse wie bei dir auch, wenn man Wenn er mit G28 Homt, versucht er auch ein Z-Homing, obwohl der Sensor noch gar nicht über dem Druckbett liegt und fäghrt die Düse so in die Durckplatte. Leider kann ich deine Firmware nicht übernehmen, weil in meiner noch ein paar andere Änderungen drin sind. Deine Änderungen hast du ja mit ST gekennzeichnet, aber da habe ich auch nicht den entscheidenen Schritt gefunden, vielleicht hast du eine Idee für mich

    Antworten
    1. ST Beitragsautor

      Hallo Martin,
      wenn der Drucker den Extruder und damit den Sensor beim z-Homeing nicht in in die Mitte des Druckbetts fährt, prüfe mal den Autoleveing define.

      #ifdef ENABLE_AUTO_BED_LEVELING

      Klingt so, als ob der Modus nicht aktiviert ist.

      Gruss Stefan

      Antworten
      1. Martin Mollet

        Vielen Dank, das war es , das Funktioniert jetzt.
        Allerdings scheint das Bed Leveling trotzdem nicht zu gehen. Rechts ist es zu dicht und links ist es zu weit weg.
        Genau dass sollte doch das Auto Bed Leveling verhindern.
        Allerdings macht er bei mir auch nur das Bed Leveling mit 4 Punkten un nicht mit 9 Punkten

        Antworten
        1. ST Beitragsautor

          Wenn das Autoleveling nicht gut klappt, würde ich auf eine krumme Aluplatte tippen. War bei mir auch so. Das Ding von Geeetech hatte nach ein paar Heizzyklen eine leichte Beule in der Mitte. Hab dann eine 4mm Aluplatte vom Metallbauer besorgt. Die ist gerade. Seit dem ist Ruhe.

          Gruss Stefan

          P. S. 9 Punkte sind ein weiterer Define. Kommt kurz nach dem generellen Schalter.

          Antworten
  19. Niko

    Hallo,
    super der Blog! Danke für die vielen Infos.

    In dem Artikel steht immer IX3 Pro. Ich baue gerade meinen ersten 3D Drucker zusammen. Einen Geeetech Prusa i3 Pro B. Ist die Firmware für dieses Modell zu benutzen? Es gibt wohl verschiedene Ausführungen wobei ich bis jetzt noch nicht verstanden habe ob sich B, C, X lediglich auf diverse Bauteile oder auch auf die Software beziehen.

    Ich wäre dankbar für eine Info.

    Gruß
    Niko

    Antworten
    1. ST Beitragsautor

      Hallo Niko,

      Geeetech veröffentlich die Firmware für die Drucker in Forum: http://www.geeetech.com/forum/viewtopic.php?f=20&t=17046
      Bei der Firmware handelt es sich immer um Marlin: https://github.com/MarlinFirmware/Marlin

      Auf Basis der „last stable“, aktuell 1.0.2-1 werden die Firmwares veröffentlicht. Die Unterschiede sind marginal. Es sind eigentlich nur die Dateien configuration.h, configuration_adv.h sowie pins.h angepasst. Diese Anpassungen können aber komplett entscheidend sein, ob eine Firmware läuft oder nicht. Beispielsweise haben die Drucker unterschiedliche Boards, so dass Ausgänge anders konfiguriert werden müssen.
      Deshalb würde ich an Deine Stelle die FW aus dem Forum nehmen und von dort aus Anpassungen vornehmen. Die eigentliche Logikkern in der Marlin Firmware ist für alle Drucker gleich und der selbe Stand.
      Interessant wird es, wenn Marlin in einer neuen stable erscheint. Mal sehen, ob Geeetech dann alle Drucker pflegt, oder ob man selbst ran muss.

      Gruss Stefan

      Antworten
  20. Volker

    Hallo Stefan
    Ich habe mich heute mal an dieses Projekt gewagt. Als ich die Firmware aufspielen wollte kamen folgende Fehlermeldungen:
    cardreader.cpp:1:20: error: Marlin.h: No such file or directory
    cardreader.cpp:3:22: error: ultralcd.h: No such file or directory
    cardreader.cpp:4:21: error: stepper.h: No such file or directory
    cardreader.cpp:5:25: error: temperature.h: No such file or directory
    cardreader.cpp:6:22: error: language.h: No such file or Directory

    Passiert ist demzufolge nichts und ich weis auch nichts damit anzufangen.
    Wie geht es jetzt weiter?

    Antworten
    1. ST Beitragsautor

      Hallo Volker,
      Du hast vermutlich die Ino Datei angeklickt und dann in der Arduino IDE auf den Pfeil geklickt. Dann fehlen sämtliche Projekt Dateien und das haut er Dir um die Ohren (no such file…) .
      Du musst die Dateien aus dem zip in ein Verzeichnis auspacken und dann per Öffnen von dort öffnen.
      Generell empfiehlt es sich ein paar Grundkenntnisse über Programmierung zu erwerben.

      Gruss Stefan

      Antworten
  21. Volker

    Hallo Stefan
    Danke für den Hinweis, alles gut und auch meinerseits angepasst, da mein Sensor 2,5 cm neben und hinter der Düse sitzt, Halter habe ich modifiziert aus Thingiverse
    http://www.thingiverse.com/thing:1777358
    Allerdings gibt es ein Problem.
    Leveling u.s.w. mit 9 Punkten passt, aber beim Drucken wird die Z-Achse hochgefahren wenn X nach rechts fährt.
    Habe mal die Prim gemessen: von links nach rechts über 70mm von 0 bis 0,3mm.
    Das Teil habe ich noch, kann ein Bild davon machen, aber wie einstellen?
    Vielleicht ahst Du eine Idee?
    Danke Volker

    Antworten
    1. ST Beitragsautor

      Hallo Volker,

      Das ist das Autoleveling. Autoleveling bestimmt nicht nur die Höhe des Hotbeds. Es misst mit den 9 Punkten auch aus, ob das Hotbed schief steht und versucht das zu kompensieren. Wenn Dein Hotbed keine Dellen hat und alles gut läuft, funktioniert das auch. Wenn Du das mal testen willst, stelle das Hotbed mal absichtlich einige Millimeter schief (nicht komplett übertreiben) und schau, was passiert.

      Gruss Stefan

      Antworten
      1. Volker

        Na gut, aber sollten die Umrandungen des Druckteiles, eben die Prim, dann nicht die gleiche Layerhöhe haben, egal an welchen Punkten? Oder hat es einen Einfluß, daß ich einen Kapazitiven Sensor wegen der Glasplatte habe?

        Antworten
        1. Volker

          Sorry, etwas umständlich ausgedrückt.
          Sollte der erste Layer durch das Leveling nicht gleichmäßig sein?
          Bei mir fährt die Z-Achse, wenn X nach rechts fährt hoch, wodurch sich der Abstand zum Druckbett unnötigerweise vergrößert, so das das Filament eigentlich nur noch aufgelegt wird.
          In meinem Beispiel: „von links nach rechts über 70mm von 0,01 bis 0,3mm“, wobei ich mit 0,01 meine, daß das Filament kaum durch die Düse kommt und der Extruder klopft.

          Antworten
          1. ST Beitragsautor

            Merkwürdig. Vorschlag: Mach doch mal das Hotbed künstlich schiefer. Was passiert dann?
            Ziel des Experiments: Funktioniert das Autoleveling richtig und sehen wir ein Genauigkeitsproblem? – Oder ist ein genereller Hau drin?

            Gruss Stefan

  22. Daniel

    Hallo

    Danke für den ausführlichen und hilfreichen Artikel.
    Ich möchte dies auch demnächst bei meinem Drucker einbauen die Frage ist nur, ob es auch bei meinem Geeetech Prusa I3 ProB funktioniert?

    Antworten
    1. ST Beitragsautor

      Hallo Daniel,
      Es wird gehen. Du musst vermutlich einen anderen Halter für den Sensor konstruieren, weil der Extruder beim Pro B anders aufgebaut ist. Ich weiss nicht, ob der Pro B mit einem Gt2560 Board kommt. Falls nicht, musst Du den elektrischen Anschluß variieren. Die hier gepostete Firmware solltest Du so nicht nehmen. Nimm die von Geeetech veröffentlichte Version und schaue Dir die Änderungen im Code an, die ich gemacht habe (configuration.h).

      Gruss Stefan

      Antworten
  23. Nikolas Vogt

    Hallo Stafan,

    Danke für die Infos. Inzwischen bin ich auch etwas weiter mit meinem Drucker, habe die ersten Drucke hinter mir und verstehe ein wenig besser was dahinter steckt. Ich werde mich in den nächsten Tagen an das Projekt Sensor machen und dann berichten oder nachfragen. Je nach dem wie es läuft 🙂

    Super Sache dein Einsatz mit dieser Seite! Danke.

    Gruß Niko

    Antworten
  24. Volker

    Hallo Stefan
    Der Drucker nivelliert die Schieflage mit aus, soweit alles richtig.
    Aber er setzt die Abstände von L nach R um ca. 0,45mm nach oben.
    Also zB. L=0,05, M=0,25, R=0,45.
    Und das bleibt so, ob das Bett gerade, schief von links nach rechts oder andersherum ist.
    Die Abstände vergrößern sich, warum auch immer.
    Ich weis nicht weiter.

    Antworten
    1. ST Beitragsautor

      Hallo Volker,

      ich kann nur spekulieren; hier ein paar Ideen:
      1. Die Hotbed Oberfläche könnte krumm sein.
      2. Stimmen die Steps / mm für die x,y,z-Achsen? – Falls die Geometrie nicht stimmt, wird ggf über/unterkompensiert.
      3. Stelle sicher, dass die 9 Punkte symmetrisch auf dem Hotbed angeordnet sind. Lege die Punkte ggf mal mehr ins Zentrum. Ich habe eine 4mm dicke Aluplatte. Bei einer dünneren Aluplatte könnten Höhenmessungen am Rand der Platte unpräziser sein.
      4. Schau dir mal den Output im Terminal an, wenn der Drucker das Autoleveling durchführt. Es werden die einzelnen Abstandswerte angezeigt. Sind die Messungen sinnhaft? – Sind die Messsungen stabil, wenn Du das Autoleveling 2x hintereinander ausführst?

      Viel Erfolg
      Stefan

      Gruss Stefan

      Antworten
      1. Volker

        Hallo Stefan
        Ich habe alles noch einmal durchgemessen, überprüft, eingestellt u.s.w. Es bleibt beim alten. Vielleicht hat der Sensor eine Macke. Werde ich demnächst mal testen, erstmal einen bestellen.
        Es mach den Eindruck als wenn er den linken (ersten) Wert nimmt und nach rechts jeweils verdoppelt (zB. 01–02–04). Ich hänge mal 2 Messungen mit an. Aus meiner Sicht durchaus annehmbar:
        1.Messung
        1) 20:10:14.409 : Bed x: 40.00 y: 20.00 z: 0.22
        2) 20:10:25.581 : Bed x: 110.00 y: 20.00 z: 0.10
        3) 20:10:36.768 : Bed x: 180.00 y: 20.00 z: -0.00
        4) 20:10:47.784 : Bed x: 180.00 y: 77.00 z: -0.14
        5) 20:10:58.831 : Bed x: 110.00 y: 77.00 z: 0.01
        6) 20:11:09.878 : Bed x: 40.00 y: 77.00 z: 0.17
        7) 20:11:20.799 : Bed x: 40.00 y: 134.00 z: 0.20
        8) 20:11:32.034 : Bed x: 110.00 y: 134.00 z: 0.01
        9) 20:11:43.268 : Bed x: 180.00 y: 134.00 z: -0.19
        20:11:43.299 : Eqn coefficients: a: -0.00 b: -0.00 d: 0.35
        20:11:43.299 : planeNormal x: 0.00 y: 0.00 z: 1.00
        20:11:43.299 : echo:endstops hit: Z:-0.19

        2.Messung
        1) 20:13:17.139 : Bed x: 40.00 y: 20.00 z: 0.22
        2) 20:13:28.342 : Bed x: 110.00 y: 20.00 z: 0.09
        3) 20:13:39.530 : Bed x: 180.00 y: 20.00 z: -0.01
        4) 20:13:50.545 : Bed x: 180.00 y: 77.00 z: -0.14
        5) 20:14:01.608 : Bed x: 110.00 y: 77.00 z: 0.00
        6) 20:14:12.655 : Bed x: 40.00 y: 77.00 z: 0.17
        7) 20:14:23.577 : Bed x: 40.00 y: 134.00 z: 0.19
        8) 20:14:34.807 : Bed x: 110.00 y: 134.00 z: 0.00
        9) 20:14:46.026 : Bed x: 180.00 y: 134.00 z: -0.19
        20:14:46.057 : Eqn coefficients: a: -0.00 b: -0.00 d: 0.34
        20:14:46.057 : planeNormal x: 0.00 y: 0.00 z: 1.00
        20:14:46.057 : echo:endstops hit: Z:-0.19
        Vielen Dank für Deine Hilfen
        Gruß Volker

        Antworten
        1. ST Beitragsautor

          Hallo Volker,

          die Messwerte sehen gut aus. Bist Du sicher, dass die Aluplatte bei Dir gerade und nicht gewölbt ist? – Hast Du mal versucht die Messpunkte mehr in die Mitte zu schieben?

          Gruss Stefan

          Antworten
          1. Volker

            Hallo Stefan
            Die Alu- sowie die Glasplatte sind eben. Habe den kompletten Drucker nochmal ausgerichtet und eingestellt, das Bett mit einer 25cm Wasserwaage. Die hat nicht geschaukelt. Werde den Sensor auswechseln, mal sehen was dann wird. Melde mich dann nochmal.
            Bis dahin erstmal vielen Dank für deine Geduld und Hilfe.
            Gruß Volker

  25. Volker

    Hallo Stefan
    Hatte den Sensor gegen einen Induktiven getauscht, aber alles beim alten.
    Dem zufolge habe ich alles wieder zurück gebaut und auch in der FW (hoffentlich) alles gefunden.
    Jetzt streikt dafür mein Extruderantrieb, aber das ist ein anderes Thema.
    Danke auf jeden Fall für diesen Beitrag, sehr gut geschrieben, und erklärt und auch für deine Hilfestellung.
    Ohne diesen Beitrag hätte ich es wahrscheinlich nicht in Angriff genommen.
    Gruß Volker

    Antworten
  26. Nikolas

    Hallo und danke schon mal für die letzte Antwort. Davon Motiviert habe ich inzwischen meinem Pro B fertig und auch die ersten erfolgreichen drucke. Also ran ans Autoleveling…
    Leider bekomme ich es echt nicht hin! Ich habe alles nach Anleitung gemacht und auch alle Änderungen in Marlin vorgenommen. Wenn ich allerdings „define ENDSTOPPULLUPS“ auskommentiere dann gehen ja auch meine Endstops für x und y nicht mehr. Wenn ich es nicht auskommentiere dann fährt meine Düse ins Heatbed. Obwohl der Sensor, laut LED auslöst.

    Also habe ich versucht es auszukommentieren und x und y pullups einzeln zu aktivieren. Gleiches Ergebnis. Ich habe leider keine Ahnung was ich falsch mache und hoffe auf Hilfe!

    Vielen Dank!

    Antworten
    1. ST Beitragsautor

      Hallo Nikolas,

      warum hast Du denn ENDSTOPPULLUPS auskommentiert? – Das ist in dem oben geposteten Code nicht der Fall. Nimm Dir den Code vor und vergleiche die Configuration.h und die Configuration_adv.h. Nicht blind alles übernehmen, weil Du einen anderen Drucker hast. Nur die Zeilen bzgl. z-Endstop und Autoleveling. Bzgl. Endstops: Du musst Z_MIN_ENDSTOP_INVERTING von false auf true setzen.

      Gruss Stefan

      Antworten
  27. Nikolas

    Hallo und Danke für die Antwort. Das ist mir alles klar. Habe ich auch so gemacht. Dann aus Verzweiflung eben noch mehr. Z.b. die Endstops Geschichte…
    Jetzt habe ich raus gefunden, dass wohl lediglich die Kabel schwarz und braun vom Sensor vertauscht waren. Schande über mein Haupt! Jetzt funktioniert es 🙂
    Danke noch mal und Gruß

    Antworten
  28. Michael Sendrowski

    Hallo Stefan, jetzt drucke ich schon seit September 2015 mit meinem Prusa i3. Nach allen Schwierigkeiten, war es für mich Alltag das Druckbett mit der Hand auszurichten. Wenn es Probleme gab wurde eben nochmal das Druckbett ausgerichtet. So kam es das ein Freund kurz vor Weihnachten kam und mich „nervte“, dass hier Autolevel beschrieben ist. OK, mein Delta Rostock hat das auch schon, aber der olle Prusa ? Sensor bestellt, (allerdings gab es auf der schnelle nur der „blaue“ von eBay, wundert euch nicht da Leuchtet die LED nicht, löst aber trotzdem aus), Halterung gedruckt (Thingiverse, danke datdiy) und genau die Anleitung hier umgesetzt.
    Nach insgesamt 1h Stunde war ich fertig. Funktioniert wirklich alles wie beschrieben, Danke für das tolle HowTo. Hat Spaß gemacht das umzusetzen ! Danke !

    Antworten
    1. ST Beitragsautor

      Hallo Andre,

      Du hast Spindeln mit 8mm Durchmesser ausgesucht. Diese haben nach Norm eine Steigung von 1.5mm pro Umdrehung. Du setzt 8mm Steigung an; das wäre jenseits aller Norm und extrem steil. Siehe auch:
      https://de.wikipedia.org/wiki/Trapezgewinde

      wie man das in die FW einträgt, steht in den Kommentaren zum anderen Thread:
      https://blog.thesen.eu/ein-3d-drucker-geeetech-prusa-i3-x-pro/
      (dieser Thread hat ja nix mit den Spindeln zu tun, deshalb bitte dort weiter machen)

      Gruss Stefan

      Antworten
  29. Julian Weidner

    Erstmal vielen lieben dank für diese extrem Tolle Anleitung. Bin gerade dabei meinen Geeetech Prusa i3 nach dieser Anleitung aufzurüsten. Leider hänge ich an einer Stelle und ich hoffe du kannst mir helfen. Unter dem Punkt „Sensor testen & einmessen“ wir beschrieben, dass man einen G28 Befehl durchführen soll. Als Effekt soll der Extruder in die Mitte des Hotebeds fahren und sich soweit absenken biss der Sensor auslöst.

    Gebe ich den Befehl ein, passiert auch was. Der Extruder fährt aber nicht genau in die Mitte sondern eher mittig in das untere drittel des Hotebeds.

    Benutze derzeit:
    Slicer: Repetier Host

    Wie bekomme ich das umgestellt/Angepasst? Also, dass der Extruder genau in die Mitte fährt.

    Vielen lieben dank schon einmal für deine Hilfe! =)

    Antworten
    1. ST Beitragsautor

      Hallo Julian,

      vermutlich ist alle richtig. Der Sensor soll in die Mitte des Hotbeds fahren. Ich habe den Sensor (siehe Fotos) vor dem Extruder montiert. Der Extruder fährt also ca. ins hintere Drittel. Damit steht der Sensor in der Mitte.
      Falls Du den Sensor an einer anderen Stelle montiert hast, musst Du das in der Firmware entsprechend anpassen. Dort ist der x/y Abstand zwischen Sensor und Hotend eingestellt.

      Gruss Stefan

      Antworten
  30. Christian

    Hallo Stefan, ich möchte statt eines induktiven Sensors einen kapazitiven nutzen. Was genau muss ich da bei deiner Firmware-Version Ändern oder Beachten? Da ich noch Anfänger im 3D-Druckbreich bin, bin ich mir da noch etwas unsicher.

    Antworten
    1. ST Beitragsautor

      Hallo Christian,

      Ich habe selbst noch keinen kapazitiven Sensor benutzt. Die Sache ist weniger ein 3D Druck Problem als ein Elektronisches. Du musst die Betriebsspannung passend organisieren, die richtigen Signalpegel für das Gt2560 Board haben (5V) und den richtigen Typ (Öffner, Schließer) wählen / konfigurieren. Falls Dir das alles nichts sagt, würde ich Dir raten erst mal die Finger davon zu lassen. Die Möglichkeit etwas kaputt zu machen ist durchaus real.

      Gruss Stefan

      Antworten
  31. Bjoern

    Hallo, sehr interessanter Beitrag. Ersteinmal Danke dafür.

    Ich habe mir mal aus spaß so ein 140€ Prusa Holz Rummel aus Ebay zugelegt um zu basteln.
    Allerdings steht in der Bedienungsanleitung, das ich keine Firmware update machen darf oder kann (Chinesisch auf English) weil kein Bootloader vorhanden ist. Kann das sein. Ich trau mich nun nicht deine Firmware aufzuspielen.

    Danke und Gruss Björn

    Antworten
    1. ST Beitragsautor

      Hallo Björn,
      Du solltest besser keine Firmware irgendeines anderen Prusa drauf hauen. Endstopschalter, Motor Richtungen, Kalibrierung des Hotends, Abmessungen, LCD Konfiguration sind vermutlich nicht komplett gleich und damit wird der Drucker wohl eher nicht mehr richtig laufen.
      Wenn Du eine passende configuration.h hast, kannst Du die Änderungen aus der hier geposteten FW leicht übernehmen. Ob man Dein Board flashen kann, musst Du testen. Wenn die Arduino IDE die Kommunikation zum Flashprozess (Reset + passende Antwort) aufbauen kann, wird das Flashen vermutlich gut gehen.

      Gruss Stefan

      Antworten
    1. ST Beitragsautor

      Ich kenne Dein Board nicht. Vermutlich wie bei den meisten Prusas ein Mega 2560.
      Dir ist bewusst, dass Du dann Deine Firmware überschreibst? Du hast zuvor geschrieben, dass Du keine FW oder configuration.h zu dem Drucker hast….
      Gruss Stefan

      Antworten
      1. ST Beitragsautor

        Das ist eine Anleitung, wie man auf einen Mega einen Bootloader bringt mit konkreter Verkabelung über die LCD Anschlüsse. Sollte gehen. Eine configuration.h brauchst Du dennoch.

        Gruss Stefan

        P.S.: Irgendwie hat das alles nichts mit dem Thema zu tun.

        Antworten
  32. Pingback: Autobed-level für Geeetech i3 | XFLOW

  33. Roger Fuchs

    Hallo Stefan,

    vielen Dank für deinen Blog!
    Wäre alles Super, nur verzweifle ich langsam beim einstellen der Düsenhöhe.
    Ich mache zuerst G28 der Drucker ein Prusa I3 Kalibriert sauber und läuft in Bettmitte.
    Sensor leuchtet Rot.
    Dann Gebe ich in Simplify 3D den Befehl G92 Z10 ein wie Du beschrieben hast (in Marlin habe ich bei Z Offset 0 eingegeben) Dann steht in Simplify und auf dem Druckerdisplay bei Z 10.00.
    wenn ich nun einen schritt runter will geht die Anzeige runter aber der Schrittmotor macht keinen wank,
    bleibt einfach stehen.Ich benutze die neuste Firmware von Marlin RC8 Habe alles aus deiner Firmware ausgelesen aber komme nich mehr weiter.Kann Dir auch meine Marlin Datei senden wenn Dir das mehr hilft.
    Besten Dank
    Gruss Roger

    Antworten
    1. ST Beitragsautor

      Komisch. Vielleicht liegt es an der RC8. Probier mal die Last Stable von Marlin. Diese liefert Geeetech auch aus.
      Ich halte offen gesagt eh nix davon, einen Release Candidate auf den Drucker zu packen (es sei denn man entwickelt Firmware). Die Marlin Leute selbst sagen ja auch: Not for production use.

      gruss Stefan

      Antworten
  34. Steffmaster

    Hallo! Ich hoffe hier antwortet noch jemand. Nachdem man G92 Z10 eingetragen hat muss man aber erst den Sensor vom z-stop Pin trennen oder? Ich kann jedenfalls nicht weiter nach z minus in 0.1mm Schritten fahren, weil der Sensor auslöst. Z plus geht dann aber so lange die rote LED leuchet kann ich nicht weiter ins minus.

    Antworten
    1. ST Beitragsautor

      Hast Du Autoleveling in der Firmware schon aktiviert? – In diesem Modus löst der z-Sensor beim Druck des untersten Layers öfters aus, wenn der Sensor über die Kante des Druckbetts fährt. Kein Problem. Deshalb ist diese Beschränkung meines Wissens bei Autoleveling deaktiviert. Bei mir geht es dementsprechend. Man muss dem Drucker nur sagen, dass nach unten noch Luft ist (G92 Z10).

      Gruss Stefan

      Antworten
  35. Steffmaster

    Ich danke dir. Das wahr in der tat nicht aktiv. Jetzt läuft es. Danke für die tolle Anleitung.

    Es wäre vlt. günsteig für andere User, wenn du der Zeile

    #define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)

    ein „ST:“ anhängst. Man übersieht (so wie ich) diese Änderung sonst leicht.

    Besten Dank

    Antworten
  36. Michi

    Blöde Frage, aber ich komm nicht ganz dahinter was mit dem dritten Kabel passiert? Am Sensor sind ja drei Kabel – eines kommt am Anschluss des z endstops auf den oberen Pin, eines kommt an Spannung, und das dritte? An eine Masse?

    Lg

    Antworten
    1. ST Beitragsautor

      Hallo Michi,
      so ein induktiver Sensor ist ein aktives Bauteil und braucht Saft. Also vereinfacht gesagt: Plus und Minus müsssen dran, sonst funktioniert der Sensor nicht. Die Belegung steht oben im Text:
      Braun = VCC
      Blau = GND
      Schwarz = Sensorausgang

      Gruss Stefan

      Antworten
  37. Werner

    Hallo,
    ich habe das Problem, dass beim Home die X- und die Y-Achse an den Endschalter fahren und dann die Z-Achse das auch tun will ohne in die Mitte zum Bett zu fahren.
    ENABLE_AUTO_BED_LEVELING ist gesetzt.
    Werner

    Antworten
    1. ST Beitragsautor

      Hallo Werner,

      man muss einiges konfigurieren, damit das Autoleveling funktioniert; z.B. den Modus in dem das Leveling laufen soll. Vermutlich ist die Konfiguration nicht vollständig. Du kannst die Firmware hier als Vorlage nehmen. Alle Änderungen habe ich markiert. Oder durch die Marlin Doku wühlen.

      Gruss Stefan

      Antworten
  38. noch ein Werner

    Hallo Stefan,

    vielen Dank für den Beitrag. Mein Prusa funktioniert jetzt, wie er soll.

    Mein kapazitiver Sensor mit 18mm funktioniert übrigens auch zuverlässig mit größeren Abständen. Ich habe einen Abstand von 7mm gewählt. Das hat den Vorteil, dass der Sensor beim Drucken nicht gegen die Druckbettklammern fährt.

    Antworten
    1. ST Beitragsautor

      Kein Fehler, sondern wohl einfach eine neue Entwicklungsumgebung auf altem Marlin Code. Das ist letztlich ja nur ein konfigurierter Marlin Code, den ich vor 4 Jahren hier eingestellt. Mit der damaligen Arduino Entwicklungsumgebung (und dem damaligen gcc). Die haben inzwischen syntaktisch einiges angezogen. Den alten Code zu anzupassen dürfte zur Sisyphos Arbeit werden. Also entweder die Arduino IDE von 2016 nehmen oder die aktuelle Marlin Version passend konfiguieren. Ich habe mal auf github die Versionen der Arduino IDE nachgesehen – dürfte eine 1.6er Version gewesen sein.

      Antworten

Schreibe einen Kommentar

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