[Anleitung] Marlin konfigurieren: G29 - Bed Leveling (ohne Sensor)

  • Mit Marlin gibt es die Möglichkeit, über die Kommandozeile (vom Computer aus per USB, in Pronterface, OctoPrint oder einem Slicer) mit dem Befehl G29 mehrere Messpunkte auf dem Druckbett anzufahren, dort mit dem Motor die z-Höhe der Düse einzustellen (Papiermethode) und die z-Werte zu speichern.

    Zukünftig kann der Drucker automatisch an jeder Stelle eines unebenen Druckbettes die Höhe der Düse berechnen und anpassen. Ohne Druckbettsensor.

    Der Höhenausgleich funktioniert (leider) auch wenn das Druckbett völlig schräg und falsch zu den Achsen eingestellt ist. Allerdings werden größere Drucke entsprechend krumm und windschief (gleichmäßiger z-Versatz). Man sollte das Druckbett vorher von Hand möglichst gut einstellen und das Bed Leveling nur zum Ausgleich des unebenen Druckbettes nutzen. Dabei darauf achten, dass kein Teil des Druckbettes tiefer liegt als der feste z-Endanschlag, so dass die Düse auch rankommt.
    (Falls sich die Druckachsen nicht rechtwinklig zueinander einstellen lassen gibt es in Marlin 'Skew Compensation'.)

    Die alte Methode MESH_BED_LEVELING wird zukünftig nicht mehr von Marlin unterstützt, es soll AUTO_BED_LEVELING_BILINEAR mit PROBE_MANUALLY benutzt werden. Damit sind die meisten vorhandenen Anleitungen veraltet.

    [Zahlen in Klammern] geben die ungefähre Zeilennummer in Marlin 2.0.7.2 Bugfix im Januar 2020 an. Die Zeilennummern können sich ändern. Die Funktionen gibt es wohl auch in Marlin 1.x.

    [873] #define PROBE_MANUALLY

    Optional: [874] #define MANUAL_PROBE_START_Z 0.2
    Wenn dieser Wert gesetzt ist, wird jeder Messpunkt sicherheitshalber mit Höhe 0,2 mm angefahren. Ansonsten wird die z-Höhe des letzten Punktes benutzt. Bei krummen Druckbetten zur Sicherheit eventuell noch höher setzen.

    [989] #define NOZZLE_TO_PROBE_OFFSET { 0, 0, 0 }
    Die Düse wird als Druckbettsensor benutzt.

    Optional: [993] #define PROBING_MARGIN 10
    Die Düse hält einen Abstand von 10 mm von den Grenzen des Druckbereiches ein. Das ist für größere Sensoren gedacht, die an den Druckbett-Clips hängen bleiben könnten. Wer den Druckbereich voll ausnutzen möchte kann den Abstand hier reduzieren.

    [1311] #define AUTO_BED_LEVELING_BILINEAR

    [1320] #define RESTORE_LEVELING_AFTER_G28
    Normalerweise wird das Bed Leveling nach G28 Auto Home ausgeschaltet. Man muss deshalb im Slicer M501 (Load all saved settings from EEPROM) und M420 S1 (Bed Leveling State: Enable) in den Start-GCode jeder Druckdatei eintragen um es vor jedem Druck wieder zu aktivieren.
    (Ungetestet:) Bed Leveling ist nach jedem Einschalten des Druckers standardmäßig deaktiviert. Falls das nur am Auto Home beim Start liegt würde dieser Eintrag helfen.

    Optional: [1343] #define ENABLE_LEVELING_FADE_HEIGHT
    [1345] #define DEFAULT_LEVELING_FADE_HEIGHT 10.0 // (mm) Default fade height.
    Hier wird eingestellt bis zu welcher Höhe die Höhenkorrektur langsam verringert wird, damit der Druck darüber plan ist. Nicht ändern.

    Optional: [1372] #define GRID_MAX_POINTS_X 3
    Anzahl der Messpunkte für die x-Achse. Ich würde 5 vorschlagen. In der Zeile darunter wird der gleiche Wert für die y-Achse gesetzt.

    Optional: [1357] #define G26_MESH_VALIDATION
    Schaltet ein Testmuster frei, das man mit G26 drucken kann um den Erfolg des Bed Leveling zu überprüfen. In den Zeilen darunter stehen die Einstellwerte (u.a. Temperaturen) für diesen Druck. Der Vorteil dieses Testmusters ist, dass es unabhängig von den vielleicht verstellten Einstellungen des Slicers ist.

    Optional: [1441] #define LEVEL_BED_CORNERS
    Schaltet einen zusätzlichen Menüpunkt frei, mit dem nacheinander die Ecken des Druckbettes angefahren werden können, um das Druckbett vor dem Bed Leveling einfacher von Hand einstellen zu können.

    [1444] #define LCD_BED_LEVELING
    Schaltet ein zusätzliches Menü im Display des Druckers frei, so dass man Bed Leveling ohne Computer nutzen kann.

    [1577] #define EEPROM_SETTINGS // Persistent storage with M500 and M501
    Generelle Einstellung. Erlaubt die Speicherung von Einstellungen und Messwerten im EEPROM-Speicher des Boards statt auf der SD-Karte.



    Weitere Anmerkungen:

    Nach dem Flashen der Firmware wie üblich einen Reset durchführen und alte Werte im EEPROM löschen.

    Im Slicer unter Start-GCode für jede Druckdatei eintragen:
    M501 // Load all saved settings from EEPROM
    M420 S1 // Bed Leveling State: Enable

    Eine genaue Anleitung zum Bed Leveling per Kommandozeile oder Druckermenü gibt es hier (Unter Manual Probing, Click for Details). Dabei ist es nicht so wichtig wie dick das Papier ist oder wie hoch die Kraft - solange es an allen Punkte gleich ist.

    Nach dem Bed Leveling nicht vergessen die Messdaten im EEPROM zu speichern (Menüpunkt oder M500)

    Anschliessend muss man einmal die Höhe der Düse über dem Druckbett während der ersten Schicht einstellen (z-Offset, der Vorgang wird First Layer Calibration genannt). Dafür gibt es einen Menüpunkt mit dem man beim laufenden Druck die Höhe verändern kann (z-Babystepping). Das erfordert etwas Übung, es ist aber sehr wichtig das gut zu machen. Der gedruckte Strang darf nicht zu platt und nicht zu rund sein, sonst gibt es trotzdem Haftungsprobleme.

  • Hallo Druckt nicht, das ist ja eine echt super Beschreibung, dicken Daumen hoch dafür...

    Vielleicht bin ich ja paranoid, aber bevor ich eine Firmware flashen würde, würde ich die Originalversion sichern wollen...das ist so die jahrzehntelange Berufserfahrung aus dem Anlagenbau. So hat man, falls etwas in die berühmt berüchtigte Hose geht, wenigstens die Möglichkeit, das ursprüngliche System wieder auf einfache Art und Weise wieder herzustellen (quasi wieder ein "Downgrading").

    Gibt es dafür auch eine Möglichkeit? Ich meine, es gibt hunderte von Gründen, warum etwas später nicht funktionieren will oder kann...und billig ist dieses Hobby ja nun auch nicht wirklich.

    Gruß

    Thomas

  • Nachtrag zum Feineinstellen der z-Höhe während des Druckens:

    "Babystep Z" findet man im "Tune" Menü während des Druckens. Den eingestellten Wert muss man hinterher speichern (Menüpunkt oder M500), sonst ist er spätestens nach dem Ausschalten weg.

    Man kann Babystepping auch mit M290 aus der Kommandozeile durchführen.

    Vorsicht: Babystepping ignoriert Endstops. Bei Endstops mit Mikroschaltern geht die x-Achse irgendwann nicht weiter runter. Notfalls Position des Schalters ändern.

    Es gibt auch Babystepping für den z-Sensor (im Menü "Z Probe Offset", im Code BABYSTEP_ZPROBE_OFFSET). Nicht verwechseln.



    Für Selbstkompilierer in Datei configuration_adv.h:

    [adv 1606] #define BABYSTEPPING
    Einschalten. In den Zeilen danach kommen weitere Einstellmöglichkeiten.

    [adv 1617] #define DOUBLECLICK_FOR_Z_BABYSTEPPING
    Doppelklick auf den Drehknopf startet Babystepping.

  • Moin

    Ich das auch mal so probiert an stelle vom Meshbedleveling funktioniert fast alles. Ich habe den Bedlevel Visualisieren in Octoprint laufen, der funktioniert damit nicht, da ein G29 T beim ABL Bilinear nicht mehr das Mesh ausgibt sondern dann Messen möchte, beim Mesh gibt G29 T die aktuellen Offsets aus. Gut diese Visualisierung ist nur spielkram und braucht man eigentlich nicht.

  • @druckt-nicht versteh ich das richtig : ich muss einmal über G29 das Bett leveln, diese Werte dann im EEprom speichern und kann dann mit den Befehlen M501 und M420 im Startcode jedesmal mein vorher gespeichertes "Mesh" abrufen ?

    :!: "Ich denke. also druck ich." :) :S :!:

  • Hallo in die Runde,

    ich habe da ein kleines Problem, ich habe mir auch Marlin gegönnt, aber wenn ich "Ecken nivellieren" möchte, um das Bett erstmal Mechanisch auf höhe zubringen, fährt er nach dem ersten Punkt nur ein Raster von 10 mm ab und ich verstehe gerade nicht wo ich das ändern kann. Also er will ein Viereck mit 10x10 mm abfahren, der Punkt für die Mitte liegt dann jedoch außerhalb dieses Viereckes. Im ganzen sollte er eigentlich ein Viereck von 160x160 abfahren.

    Ich komme da gerade irgendwie nicht weiter.


  • Danke, hat sich erledigt. Bin nun selber drauf gekommen.

  • Hallo

    Erst mal vielen Dank für die gute Anleitung!

    Ich habe ein kleines Problem und hoffe mir kann jemand helfen.

    Ich habe ein Skr 1.4 Turbo mit einem TFT35 E3

    Ich möchte nur Mesh Leveling Aktivieren.

    Im LCD mode (kein touch) kann ich meine 25 mesh punkte durchführen!

    Im Touch modus habe ich das Problem das dort der BL touch aktiviert ist und kein Manual mesh bed leveling (siehe Foto)

    Muss man da noch was aktivieren bzw deaktivieren?

  • @druckt-nicht

    vorweg, vielen Dank für deine hilfreichen Posts und das du dir immer Zeit nimmst.

    ich hab deinen Beitrag noch 3mal durchgelesen und bin dadurch auf folgenden Punkt gekommen:

    1. ich verwende anscheinend das alte mesh bed leveling

    2. das neue Verfahren wird mit manually_probe UND mesh...bilinear aktiviert.

    obwohl ich den Beitrag jetzt weitere 4mal durchgelesen habe und auch die Info, welche durch deinen manualy-probe „link“ auf der marlin Webseite angezeigt wird, versteh ich noch nicht so recht den benefit von der neuen Methode.... im Vergleich zur alten methode(außer das diese nicht mehr unterstützt wird... zum Glück bei mir schon noch...)

    soweit ich das verstanden habe, werden auch Punkte abgefahren und eingestellt..... könntest du mir hier noch auf die Sprünge helfen.

    vielen vielen Dank!

  • Für den Anwender ist es kein Unterschied, aber die Programmierer wollten das Bed Leveling (den Ausgleich) vom Sensor unabhängig machen. Es gibt immer wieder neue Sensoren, die man nur als PROBE hinzu zu fügen braucht.
    MESH BED LEVELING ist ein älteres eigenes Programm das Messen mit der Düse und einen eigenen Algorithmus zum Bettausgleich kombiniert. Wenn es Verbesserungen beim Bilinear oder Unified Bed Leveling gibt bekommt MESH BED LEVELING davon nichts mit.

  • chris3d

    Die bunten Displays haben für den Grafikmodus einen eigenen Prozessor und eigene Firmware. Die Menüs und Befehle sind dort festgelegt. Das Display ist für Marlin gar kein richtiges Display sondern ein Computer, der ihm Befehle gibt. Soweit ich weiß kann man Menüs bei BTT auch anpassen, ist aber nicht ganz einfach.

    Im Marlin-Kompatibiltät-Modus kommen die angezeigten Texte (Menüs) direkt von Marlin. Super Idee.




  • @druckt-nicht

    Ok dann hat ja alles funktioniert ...ich habe im LCD12864 menü ein manuelles mesh leveling durchgefürt,nur ich hatte mich gewundert das im bunden touch menü kein manuelles mesh leveling auftaucht!

    Also wenn dann müsste ich das in der Firmware vom Display angepassen?

Disclaimer:
*Externe Links enthalten Affiliate Daten. Wird über diese Links etwas bestellt, erhalten wir eine kleine Provision, Euch kostet es nichts Extra.
**Als Amazon-Partner verdienen wir an qualifizierten Verkäufen.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!

Ungelesene Themen

    1. Thema
    2. Antworten
    3. Letzte Antwort
    1. Wie kann ich bei klipper code mit Python schreiben 10

      • TypTech
    2. Antworten
      10
      Zugriffe
      206
      10
    3. TypTech

    1. Welcher Drucker-Hersteller ist der Beste? 13

      • trimix
    2. Antworten
      13
      Zugriffe
      130
      13
    3. unic

    1. OpenNept4une 85

      • Whiskywhisky
    2. Antworten
      85
      Zugriffe
      1,6k
      85
    3. bastelsachse

    1. Modelle von Cura drucken nicht auf Neptun 4pro 4

      • baertthomas
    2. Antworten
      4
      Zugriffe
      82
      4
    3. ma_v

    1. Stempel mit Laser erstellen 49

      • Steppenwolf
    2. Antworten
      49
      Zugriffe
      1,4k
      49
    3. Quisa