Marlin Autolevel Optionen Linear, Bilinear, 3-Punkt, UBL

In der Configuration.h findet man vier verschiedene Optionen die aktiviert werden können. Aber welche genau sollte man auskommentieren, damit diese aktiviert werden ? Nachfolgend eine Auflistung deren Funktionen und eine kurze Erklärung meinerseits dazu. Sollte ich dabei einen Fehler gemacht haben, bitte ich um eine Erklärung in den Kommentaren.


//#define AUTO_BED_LEVELING_3POINT

Dabei werden drei verschiedene Punkte auf dem Heizbett angefahren und dadurch eine Formel für das leveling erstellt.


//#define AUTO_BED_LEVELING_LINEAR

Wenn das Heizbett absolut gerade ist, dann sollte diese Funktion aktivieren, denn damit wird die Schieflage ausgeglichen.


//#define AUTO_BED_LEVELING_BILINEAR

Wenn das Heizbett nicht gerade ist und wie es bei einigen üblich ist, in der mitte eine Vertiefung besitzt oder irgendwo verzogen ist, dann muss diese Option aktiviert werden.


//#define AUTO_BED_LEVELING_UBL

Dieses ist eine Kombination aus den oben genannten Funktionen. Dadurch werden diese miteinander kombiniert.


Ich selber habe //#define AUTO_BED_LEVELING_LINEAR aktivert, da ich auf dem Ender3-Pro mir die XT1 Trägerplatte von 3DRapid bestellt habe. Diese ist zu 100% gerade und somit ist das leveling ein Kinderspiel damit. Kann ich jedem nur ans Herz legen, wer keine Lust auf die "normale" Trägerplatte hat, welche zudem auch schwerer im Vergleich zur XT1 ist.


Alle angegebenen Firmen- und Markennamen, sowie deren Warenzeichen sind Eigentum Ihrer Inhaber und dienen lediglich zur Identifikation und Beschreibung der Produkte.

    Kommentare 1

    • Es ist ein bischen zu vereinfacht, "AUTO_BED_LEVELING_UBL" als Kombination der anderen Methoden zu bezeichnen.


      UBL geht davon aus, dass das Bett sich bei gleicher Erwärmung immer wieder gleich verformt. Das ist ja auch eigentlich so - aber bei billigen, nicht steifen Federn (z.B. die werksseitigen beim Ender 3) bei 4 Punkten zum manuellen Leveln ist das nicht immer so. Wenn man bei 4 Levelschrauben bleibt, braucht man ggf. stärkere Federn oder Silikondämpfer.

      Bei UBL ist kein Bettleveling vor jedem Druck vorgesehen. Tatsächlich erfolgt das Leveln in mehreren Schritten: Mit G29 P1 werden alle Punkte vermessen, die vom Sensor gemessen werden können (einige lassen sich wegen x und y Offset ja gar nicht erreichen, wenn man nicht gerade Piezo oder Folienschalter an der Düse benutzt). Im nächsten Schritt (G29 P2) kann man die fehlenden Punkte (oder einige davon) mit der Papiermethode händisch vermessen/ergänzen. Das ist aber meist nur bei sehr krummen Bett erforderlich. Mit G29 P3 werden benachbarte, nicht vermessene Punkte ergänzt. Gibt es mehrere nicht ermittelte Punktreihen/Spalten, muss G29 P3 mehrfach wiederholt werden, bis für alle Punkte ein Wert ermittelt wurde.

      Dieses Mesh wird nun mit G27 Sx gespeichert. x kann je nach Größe des Mesch und des EEPROM von 0 bis irgendeine Obergrenze reichen und bezeichnet den jeweiligen Speicherplatz. Man kann z.B. bei 60° leveln und es in S0 speichern und dann nochmal bei 90° leveln und das in S1 ablegen.

      Im Start G-Code wird dann das gewünschte Mesh geladen, also bei PLA z.B. G29 L0 gefolgt von G29 A, um das Leveling zu aktivieren.

      Ein Sonderfall ist G29 S-1, das die Werte für jeden Punkt so über die serielle Schnittstelle in Form "M421 I0 J0 Z0.1234 "ausgibt, dass man es über gcode-Datei wieder setzen kann (bei EEPROM im Flash Emulation von STM32 Prozessoren erforderlich, da diese (noch) nicht UBL-kompatibel ist).


      Es ist auch möglich, vor jedem Druck drei Punkte zu messen und das gespeicherte Mesh um eine Neigung des Betts zu korrigieren - was natürlich nur bei 3 Schrauben fürs manuelle Bettleveling sinnvoll ist, da 4-Punktaufhängung das Bett - und damit das Mesh - in sich verbiegen könnte.


      UBL stellt also etwas andere Anforderungen. Es wird nur gelegentlich durchgefüht, nicht vor jedem Druck. Das würde bei Meshgrößen von 10*10 (Voreinstellung) bis 15*15 auch ziemlich lange dauern.


      Bei guter Konstruktion des Druckbetts ist UBL wirklich klasse. Auch, wenn man z.B. einen manuell anzubringenden Foliensensor an der Düse das Druckbett vermisst.

      Dann haben sich noch ein paar Fehler eingeschlichen:

      #define AUTO_BED_LEVELING_3POINT dient der Korrektur der Schieflage bei planem Bett. Eine plane Ebene ist durch drei Punkte im Raum definiert.


      #define AUTO_BED_LEVELING_LINEAR und #define AUTO_BED_LEVELING_BILINEAR vermessen in einem Grid (3*3 bis 7*7, je nach Einstellungen in der Konfig). Zwischen den Meßpunkten wird interpoliert. "Linear" interpoliert linear; "Bilinear" verwendet bilineare Interpolation - wie der Name schon sagt. Bei 32bit-Prozessoren gibt es keinerlei Grund, "linear" zu interpolieren. Bilinear ist genauer, linear ist schneller mit weniger Rechenaufwand.


      Bei feingefräster Gussaluminiumplatte wäre also "AUTO_BED_LEVELING_3POINT" das Mittel der Wahl. Sinnvollerweise mit Dreipunktlagerung des Betts.


    KabelDirekt
    ANZEIGE
    3DJake
    ANZEIGE
    Ampertec
    ANZEIGE