Marlin Auto Bed Leveling mit UBL

Unified Bed Leveling – oder kurz UBL – ist die nächste Generation des Mesh-Levelings in der Marlin Firmware für 3D Drucker. Ich schaue mir heute an, was UBL ausmacht und wie man es einrichtet, denn umfangreiche Dokus sind derzeit noch rar und wenn man sie findet, dann auf Englisch.

Was ist Unified Bed Leveling

Zuerst vielleicht die Frage: Was ist überhaupt Auto Bed Leveling oder Mesh-Leveling? Kurz gesagt: Es sind Methoden, die den Nutzer dabei unterstützen über des gesamte Druckbett hinweg einen möglichst gleichen Abstand zwischen Nozzle und Druckbett zu erhalten, für gleichmäßige und gut haftende erste Layer. Die klassische Methode ist ein manuelles Leveling, bei dem in der Regel das Bett mit Hilfe von Schrauben ausgerichtet wird. Leider kann es – insbesondere bei günstigen Druckern – immer wieder vorkommen, dass die Druckoberfläche nicht 100% plan ist und z.B. in der Mitte leicht durchhängt. Das lässt sich manuell kaum kompensieren. Auto Bed Leveling kann solche Abweichungen messen und den Drucker entsprechend darauf reagieren lassen, indem die Nozzle automatisch abgesenkt oder angehoben wird.

Voraussetzung ist natürlich irgendeine Form von Sensor, mit dem die Messung erfolgen kann. Die beliebtesten sind wohl induktive Sensoren, kapazitive Sensoren oder elektromechanische Lösungen, wie der BLTouch, den ich auch an meinem Tornado verbaut habe. Tom hat mal einen sehenswerten Vergleich der Leveling Sensoren gemacht.

In der offiziellen Marlin Doku wird UBL beschrieben als a superset of the previous leveling systems, also als eine Übermenge aller bisherigen Leveling Systeme. UBL vereint also die Stärken bisheriger Methoden in einem Paket. Dabei werden insbesondere vier Vorteile besonders hervorgehoben:

  • Optimierte Algorithmen für die Berechnung der Höhenabweichungen über das gesamte Druckbett
  • Die Möglichkeit ein hochaufgelöstes (sprich aus vielen Messpunkten bestehendes) Netz (Mesh) zu messen und fest im Drucker zu speichern, um es bei jedem Druck abzurufen, sowie die Möglichkeit durch eine schnellere Messung an mindestens drei Punkten vor jedem Druck kleine Abweichungen zum gespeicherten Mesh zu berechnen
  • Berücksichtigung des gesamten Druckbetts, indem nicht messbare stellen rechnerisch angeglichen werden
  • Die Möglichkeit das Mesh jederzeit gezielt zu bearbeiten um bestmögliche Ergebnisse zu erzielen
Lese auch:  Grafikfehler beim Reprap Discount Full Graphic Display beheben

Zusammenfassend kann man sagen, dass man mit UBL in Marlin eine sehr genaue, flexible und zeitsparende Möglichkeit hat, ein automatisches Leveling durchzuführen. Zwar kostet die Einrichtung Zeit, insbesondere wenn dabei viele Punkte gemessen werden, dafür ist vor jedem Druck kein Vermessen des gesamten Betts mehr nötig, wie bei anderen Methoden, die das Bett vor jedem Druck komplett vermessen.

Wie richtet man UBL ein

Um Unified Bed Leveling nutzen zu können, benötigst du eine entsprechen angepasste Firmware, die BLTouch Versionen in meinem Downloadbereich sind alle mit aktiviertem UBL ausgestattet. Wenn du deine Firmware lieber selbst anpasst, würde ich empfehlen auf einer aktuellere Version von Marlin zu setzen, da UBL ein vergleichsweise junges Feature ist und in den letzten Versionen noch einige Bugs behoben wurden.

Ist die Firmware installiert, kann es auch schon an die Einrichtung gehen, der erste und wichtigste Schritt ist dabei das Einmessen des Mesh. Grundsätzlich gibt es dafür zwei Wege zum Ziel: Meine Marlin Versionen haben ein eigenes UBL Menü, das direkt über die Controlbox des Druckers aufgerufen werden kann. Ich muss aber dazu sagen, dass ich dieses Menü nur aus anderen Versionen übernommen und nicht weiter getestet habe. Daher werde ich mich auf Variante 2 konzentrieren und das ist über die Eingabe von Gcode Befehlen, z.B. über OctoPrint, Simplify3D oder Pronterface.

Im ersten Schritt bringen wir Druckbett und Nozzle auf Temperatur, das ist nicht unbedingt notwendig, wird aber empfohlen, weil sich durch die Hitze durchaus kleine Abweichungen in der Länge der Nozzle oder einer Wölbung des Betts ergeben können, die bei einer gewünschten Genauigkeit im Nullkomma-Millimeter-Bereich durchaus etwas ausmachen können. Zudem laufen mit dem heißen Hotend auch die Lüfter in der Controlbox, was vor allen bei Trinamic Treibern, die recht warm werden, wichtig ist.

M190 S60
M104 S200

Der nächste Schritt ist das allgemeine Homing aller Achsen mit G28. Danach folgt das Vermessen des Betts, das kann einige Zeit dauern:

G29 P1
G29 P3 T

Mit dem zweiten Befehl werden die nicht gemessenen Bereiche ausgefüllt. Die Marlin UBL Doku empfiehlt, diesen Befehl mehrfach auszuführen.

Lese auch:  Marlin Firmware Update via OctoPrint

Damit ist ein Großteil der Arbeit auch schon erledigt. Es fehlt nur noch das Abspeichern der gerade ermittelten Werte im EEPROM des Druckers.

G29 S0
G29 F 10.0
G29 A
M500

Damit das gespeicherte Mesh bei jedem künftigen Druck verwendet werden kann, muss im Slicer der Start-Gcode angepasst werden. Nach dem G28 für das Homing wird ein G29 L0 eingefügt. In dieser Einstellung misst der Drucker nur an einem Punkt den Nullpunkt der Z-Achse. Sollen drei Punkte gemessen werden, um das Mesh daraufhin anzupassen, folgt noch ein G29 J.

Falls beim ersten Druck mit UBL die Nozzle zu hoch oder zu niedrig ist – was bei mir merkwürdigerweise immer der Fall war – kann man das gesamte Mesh verschieben, um den idealen Nullpunkt zu finden:

G29 P6 C +0.1
G29 S0
G29 A
M500

In der ersten Zeile wird einfach der benötigte Wert, um den das Mesh verschoben werden soll eingetragen, im Beispiel sind es +0,1mm. Wichtig ist, dass hier ein Vorzeichen angegeben und anstelle vom Komma ein Punkt verwendet wird. Die übrigen drei Zeilen speichern die neuen Werte wieder ab.

Falls du trotzdem noch Probleme hast, prüfe ob ein Z-Offset eingestellt ist. Ich habe die besten Ergebnisse erzielt, wenn ich den auf 0 setze.

UBL Feintuning

Wer es ganz genau haben will, kann ein spezielles Testmuster drucken lassen, an dem sich Abweichungen auf den einzelnen Messpunkten erkennen lassen. Bisher war das bei mir nicht nötig, da ich auch so schon mit den Ergebnissen sehr zufrieden war.

40 Gedanken zu “Marlin Auto Bed Leveling mit UBL”

  1. Hi Kevin,

    verstehe ich nicht ganz mit dem Z-Offset. Momentan benutze ich nicht das UBL sondern das normale ABL mit 20 Messpunkten. Mein Z-Offset habe ich auf -1.15 gesetzt.
    Bei UBL soll das Z-Offset auf 0 gesetzt werden ?
    Mit verschieben durch G29 P6 C +0.1 bekomme ich dann die Nozzle weiter weg vom Druckbett und mit – näher ran?

    Gruß
    Silvio

    PS: Die 20 Messpunkte nerven einfach vor jedem Druck , mit UBL sollte das ABL ja schneller gehen.

    1. Das geht auf jeden Fall schneller. Ist als wenn du ganz normal druckst. Einmal in der Bettmitte Z messen und los gehts. Das mit dem Z-Offset auf 0 scheint auch n Ding gewesen zu sein, was da in den frühen Versionen von UBL problematisch war. Mit neueren Versionen ist das – würde ich sagen – auch etwas einfacher und unkritischer geworden. Aber an sich wäre es bei 100% passender Konfiguration trotzdem richtig, denn du definierst ja schon beim Einrichten des BLTouch welche Abstände der in X, Y und Z-Richtung von der Nozzle hat. Wenn das Z da auf den mm richtig gesetzt ist, bräuchte es keinen zusätzlichen Offset mehr.
      G29 P6 macht das Finetuning, genau so, wie du sagst, positive Werte mehr nach oben, negative näher ans Bett.

  2. Hallo Kevin,
    ich habe Deinen Beitrag zu UBL Leviling gelesen.
    Bei mir wird zwar das UBL Leveling durchgeführt, jedoch kann ich beim Ausdruck keine Änderungen erkennen.
    Das Heizbett ist nicht ganz eben und trotz UBL Leveling ist die Düse zu nah (Filamentstau) oder zu weit entfernt keine gute Haftung.

    Ich habe einen JGAurora A5 mit BLtouch Marlin Firmware 1.1.9 .
    Als Slicer verwende ich Simplify3D.
    Den Offset habe ich ermittelt und in der Firmware eingetragen.
    Werden bei Dir die ermittelten Werte in den Ausdruck übernommen?
    Vielleich habe ich ja was beim Start Script nicht beachtet.
    Hier mein Start Script.
    M502 ; Reset settings to configuration defaults…
    M500 ; …and Save to EEPROM. Use this on a new install.
    M501 ; Read back in the saved EEPROM.
    G29 P1 T ; Do automated probing of the bed.
    G29 P3 T ; Repeat until all mesh points are filled in.
    G29 T ; View the Z compensation values.
    G29 P5
    M420 S1
    G29 S1 ; Save UBL mesh points to EEPROM.
    G29 F 10.0 ; Set Fade Height for correction at 10.0 mm.
    G29 A ; Activate the UBL System.
    M500
    G1 X20 Y5 Z0.45 F3000 ; get ready to prime
    G1 X20 Y5 F3000 ; get ready to prime
    G92 E0 ; reset extrusion distance
    G1 X200 E20 F600 ; prime nozzle
    G1 X180 F5000 ; quick wipe

    Als denn ich sage schon mal Danke.

    Gruß Andreas

    1. Hallo Andreas,

      das Problem ist, dass du den ganzen initialen UBL-Kram, den man eigentlich nur einmalig durchführen muss, in dein Startscript gepackt hast. Abgesehen davon, dass es unendlich lange dauert, bis du mal drucken kannst, würde das wahrscheinlich sogar funktionieren, wenn dann nicht das entscheidende Laden des Meshs mit G29 L0 (bzw. in deinem Fall G29 L1) fehlen würde.

      Diesen kompletten Abschnitt musst du nur einmal manuell ausführen. Am besten auch nicht am Stück, sondern Zeilenweise von Hand, damit alles richtig klappt:
      M502 ; Reset settings to configuration defaults…
      M500 ; …and Save to EEPROM. Use this on a new install.
      M501 ; Read back in the saved EEPROM.
      G29 P1 T ; Do automated probing of the bed.
      G29 P3 T ; Repeat until all mesh points are filled in.
      G29 T ; View the Z compensation values.
      G29 P5
      M420 S1
      G29 S1 ; Save UBL mesh points to EEPROM.
      G29 F 10.0 ; Set Fade Height for correction at 10.0 mm.
      G29 A ; Activate the UBL System.
      M500

      Und dann kommt dein eigentlicher Start-Gcode, den du in Simplify eintragen musst, ergänzt um zwei entscheidende Zeilen:
      G28
      G29 L1
      G1 X20 Y5 Z0.45 F3000 ; get ready to prime
      G1 X20 Y5 F3000 ; get ready to prime
      G92 E0 ; reset extrusion distance
      G1 X200 E20 F600 ; prime nozzle
      G1 X180 F5000 ; quick wipe

      Hoffe, das hilft dir weiter.
      Viel Spaß beim Drucken!

  3. Hallo Kevin,
    recht herzlichen Dank, jetzt funktioniert das UBL.
    Ich sehe wie sich die Z Achse anpasst, eine tolle Sache.

    Nochmal alles Gute und Danke

  4. Hallo Kevin,
    Danke für den Artikel, der hat mir Licht ins Dunkel gebracht.
    UBL läüft einwandfrei.
    Genial ist, dass man mit dem G29 P6 C +- live im Druck die höhe anpassen kann. das macht das Z-offset überflüssig. Eine riesen Erleichterung.
    Jetzt muss ich nur noch sehen, wie ich diese Befehle (oder auch die gesamte Mesh erstellung) als Buttons in Octoprint einfügen kann. Das wäre sehr Komfortabel, wenn der Drucker mal wieder Service benötigt.

  5. Hallo Kevin,

    sehr intessanter Beitrag und gut erklärt.
    Ich habe bloß immer das Problem wenn ich im Slicer Skript angebe G29 L1
    (L1 deswegen weil ich beim Speichern S1 eingegeben habe) dass befor der Druck startet beginnt er mit dem Mesh Leveling immer zu weit links Außen, also fast schon Außerhalb des Bruckbettes.
    Wenn ich das Bett Leveling über das Display manuell Starte beginnt er sauber Symetrisch auf dem Druckbett mit ca. 10mm Abstand innerhalb es Bettes. Wenn ich im Slicer Skript nur G29 eingebe ohne L1 passt es auch.
    Wenn ich aber L1 nicht lade ist es doch für die Katz, oder täusche ich mich? Kannst du mir da evtl. einen Tip geben.

    Gruß
    Helmut

    1. Hallo Helmut,

      wenn du im Startscript des Slicers nur G29 angibst, dann wird das zuvor verwendete Mesh nicht verwendet, das wäre als sinnlos, wie du ja richtig erkannt hast.

      Hast du denn vor dem Einmessen des Mesh auch ein G28 gemacht und hast du im Startscript auch nach wie vor das G28 vor dem G29 L1 stehen?

      1. Hallo Kevin,

        habe mich exakt an deine Anleitung gehalten und ein G28 gemacht. G28 steht auch im Start Script vor G29 L1.
        Sind die Positionen für das abgespeicherte Leveling in der configuration.h irgendwo zu finden?
        M500 funktioniert auch. Keine Ahnung woran das liegt.

        Grüße
        Helmut

        1. Hallo Kevin,

          ich habs geschafft.
          Da hat es an vielen stellen gehapert.
          Bin halt noch Blutiger Anfänger.
          Dachte das Mesh besteht nur aus den neun Punkten, und die hat es halt jedesmal gemessen, weil in der configuration.h natürlich nocht nicht UBL Aktiviert war. Muss glaub ich nicht mehr viel dazu sagen. Wenn ich dann die G29 geladen habe hat er die neun Punkte, keine Ahnung warum immer außerhalb des Bettes gemessen, was er ja aber eigentlich eh nicht mehr machen soll. Das macht er ja jetzt nicht mehr nachdem er G29 Slot 1 lädt, sondern piept nur kurz. Jetzt ist alles klar, hab dann in der Configuration_adv.h die Bettgröße etwas angepasst und G26_MESH_VALIDATION aktiviert in configuration.h.

          Grüße
          Helmut

  6. Hi Kevin!

    Erstmal, ein super Beitrag. Der hat mir schon sehr weiter geholfen meinen Drucker zu konfigurieren und einzurichten.
    Und jetzt kommt das ABER:

    Jedesmal, wenn ich meinen Drucker aus- und wieder einschalte muss ich mit
    G29 P6 C +/-x.x
    meine Mesh neu einstellen. Mal +2.5, mal +3.3 oder +0.2. Ich habe es so verstanden, dass man dieses einmal machen muss und dann ist gut. Auch das einmalige Messen vor einem Druck findet nicht statt. Hast Du da vielleicht irgendwie eine Idee, was ich falsch mache?

    Ansonsten weiter so!
    Grüsse
    Zabbel

    1. Hi Zabbel,

      erstmal sorry für die etwas späte Antwort. Dein Kommentar ist automatisch in den Spamfilter gerutscht und da habe ich es gerade erst rausgefischt.

      Grundsätzlich hast du das richtig verstanden. Eigentlich muss man das nur einmal machen und dann ist Ruhe. Vor jedem Druck wird dann je nach Start GCode an einem Punkt der Z Nullpunkt bestimmt, oder eben über eine Messung von drei Referenzpunkten das Mesh korrigiert. Mal ein paar Punkte aus der Hüfte geschossen, die du prüfen kannst:
      – Korrekte Firmware mit aktivem UBL drauf? Manchmal hakt auch was beim Upload der Firmware. Erneutes Flashen schafft dann Abhilfe.
      – G29A und M500 ebenfalls durchgeführt, um die Werte im EEPROM zu speichern? Auch nochmal wiederholt, nachdem G29 P6 C gemacht wurde?
      – Start GCode angepasst? Erst G28, dann G29 L1 (oder 0 oder was auch immer du vorher beim G29 S verwendet hast)

      Was mich etwas wundert, ist dass du jedes mal so stark abweichende Werte eingeben musst. Das ist schon sehr merkwürdig. Check doch die o.g. Dinge nochmal und melde dich gern bei mir, mit dem Ergebnis.

  7. Hallo Kevin,

    hat Alles so geklappt, wie Du es beschrieben hast. Vielen Dank. Ich hab nur eine Frage zu Deinem Abschlusssatz:
    ” Wer es ganz genau haben will, kann ein spezielles Testmuster drucken lassen, an dem sich Abweichungen auf den einzelnen Messpunkten erkennen lassen. ”

    Gibt es da irgendwo eine Anleitung zu?

    Viele Grüße,

    Burkhard

  8. Servus,

    jetzt bhabe ich noch eine Frage das MKS gen L board ist ja anders wie mein MKS base, an welche pins stecke ich den BLTouch an?

    1. In der Hinsicht sind die Pins gleich. Der BLTouch kommt ja auf den “Servos” Block. Der einzige Unterschied: Das MKS Base hat davon nur einen, das Gen L hat zwei. Der erste Block hat die gleichen Nummern, wie der Servos Block auf dem Base

  9. Servus,

    also irgendwie klappt das nicht so, hab alles nach deiner beschreibung gemacht, aber es haut noch nicht so hin.

    Wenn er das Z überhaupt ausgleicht dann aber nur minimal und keinsesfalls wie es soll.

    Klappt das nur übers USP Kabel mein das drucken oder klappt das UBL auch über die Speicherkarte?
    Heist das
    G29 F 10.0
    Oder
    G29 F10.0
    ?
    Wie stell ich das offset ein?

    Nur mi den
    G29 P6 C-+
    ?

    1. Klappt sowohl über SD, als auch über USB. Hast du denn im Slicer den Start-Gcode angepasst? Da muss dann ja nach dem G28 noch ein G29 L0 (oder 1, je nachdem, was du vorher bei G29 S genommen hast) um das UBL Mesh zu laden. Wenn das nicht passiert, dann druckt der Drucker so weiter, wie bisher.

      G29 F10.0 wäre richtig. Zwischen dem Buchstaben für den Befehl und dem Wert sollte kein Leerzeichen sein. Offset stellst du nur mit G29 P6 C ein.

  10. Der G29 L0 befehl steht im Start Gcode drin.

    Auf G29 P6C +- reagirt er erst gar nicht .

    Ich kann auch am Drucker wenn ich move axis Z mache nicht ins minus 0 gehen der geht nur bis 0.
    Nur wenn er halt nur bis 0 geht dann geht, denke ich, dass er auch bei den G29 P6C +- nicht weiter runtergeht. Denn der Offset am Drucker ist ja schon 0. An der Z- Achse selbs, merkt man auch nur kleine vibrationen.
    Meine Platte, ist zwar sehr uneben aber gerade deshalb, denk ich müsste sich die Z achse, ja um so mehr rühren. Z.B. wollte ich den Rahmen für das MKS GEN L mainboard drucken, die obere Linke ecke wr gut die untere rechte Ecke war direckt draufgepresst man hörte das klacken auch am Drucker wenn der Extruder lehr durch geht.

  11. Ich habe den Start Gcode:
    G28
    G29 L1
    G1 X20 Y5 Z0.45 F3000 ; get ready to prime
    G1 X20 Y5 F3000 ; get ready to prime
    G92 E0 ; reset extrusion distance
    G1 X200 E20 F600 ; prime nozzle
    G1 X180 F5000 ; quick wipe

  12. Servus ,

    hab es Gestern nochmal probiert klappte aber immer noch nicht,

    Kann es sein, dass der Befehl G29 P6 C +0.1 erstz dann auf die Zachse übertragen wird wenn so eingegeben wurde.
    G29 P6 C +0.1
    G29 S0
    G29 A
    M500

    Leider ändert es nichts daran, dass sich die Zachse nicht ausrichtet.

    Hat du irgendwelche Tipps?

    1. Hallo Christian,

      Änderungen, die du über G29 P6 machst, werden erst übernommen, wenn du sie speicherst, also wie geschrieben G29 S0, G29 A, 500.
      Was mir aber grad auffällt: Du schreibst, dass du mit G29 S0 speicherst, in deinem Start Gcode steht aber G29 L1. Du speicherst das Mesh also auf Slot 0, rufst aber von Slot 1 ab. Das kann dann natürlich nicht gehen. Da müsstest du entweder bei beidem 1 oder 0 verwenden.

  13. Ich habe mir jetzt auch die TMC 2130 Treiber und das MKS Mainboard zugelegt. Leider hatten die von Watterott nicht die Pins oben, so kaufte ich noch welche von Amazon die haben die und es sind diverse Kabel dabei.
    Mal sehen ob das geht.

    Weißt du wo man ein komplettes Heizbett vür den Tevo Tornado kaufen kann?
    Also mit Heitzmatte Obervfläche usw. ?

    1. Also hast du komplette Treiber von Amazon gekauft? Vermutlich die chinesischen. Von dem, was ich über die gehört habe, wäre es einfacher, bei den Watterott Treibern die Pins oben dran zu löten.

      Komplettes Heizbett gibt es, soweit ich weiß, nicht zu kaufen. Wenn dein Glas gebrochen ist, müsstest du dich da woanders nach Ersatz umsehen. Entweder mal lokal beim Glaser fragen, was er hitzebeständiges da hat und ob er das auf Maß schneiden und bohren kann oder auf bspw. Alu ausweichen. Die Heizmatte bekommst du abgezogen und wenn du den Kleber sauber entfernst, kannst du die wiederverwenden. Benötigst nur neuen Kleber. Es gibt von 3M spezielle doppelseitige Klebepads, die entsprechend Hitzebeständig sind: https://amzn.to/2JgBTtD Außerdem wirst du eine neue Isolierung für unter der Heizmatte brauchen. Geht dann aber wunderbar. Habe den Tausch auch schon durch, weil mein Bett einen Spring hatte. Hab damals aber auf Garantie eine neue Glasplatte von Tevo bekommen.

      1. Also ich glaube, dass das UBL geht nur die Platte soellig ist, dass es nicht emhr wirkt. das Problem sollte sich aber bald erledigt haben. Ich baue gerade an einem neuen Heizbett.

        Was nicht geht, ist mit dem Befehl: G29 P6 C +0.1
        ins minus zu gehen.
        Ich habe das Offset am Drucker vorher schon auf null gesetzt, müsste aber mindestens noch 0,3 tiefer gehen.
        Das machte er aber nicht, ich musste dies am Drucker einstellen.

        Wenn ich den Drucker auf ZMC 2130 Treiber umbaue, kann ich dann noch über die Speicherkarte drucken?

        1. Eigentlich sollte es auch dann gehen, dafür ist das UBL ja da, auch wenn man bei extrem welligem Bett eher andere Maßnahmen ergreifen sollte. Dass es nicht weiter runter geht, hatte ich schon ein paar Mal gehört. Meistens war dann irgendwas beim Upload der Firmware schiefgegangen. Ein erneutes Aufspielen hat dann geholfen.

          Du kannst mit den 2130 auch weiterhin von der SD Karte drucken, allerdings müsstest du eine Kleinigkeit in der Firmware anpassen und die Verkabelung etwas abweichend von meiner hier veröffentlichten Anleitung durchführen. Was genau zu beachten ist, habe ich in einem entsprechen Artikel zusammengefasst.

          1. Meine Stepper von Watterott haben ja keine Pins oben, wenn ich da sensoless Homing nicht mache, brauche ich doch nichts zu verkabeln oder?
            Dann müssen doch nur die Stepper eingesteckt werden oder.
            Funktioniert dann das drucken über die SD Karte oder muss ich da in der Firmware auch was ändern.
            Welche deiner Firmenwares nehme ich denn dann?

  14. Servus Danke für die Antworten.
    Hab das UBL auf slot 0 gespeichert und rufe es auch auf slot 0 ab.

    Ich werde es heute abend nochmal probieren.

    1. Hi Martin,

      das hängt natürlich stark von deinem Mainboard ab. Ganz grundsätzlich hast du ja zwei Kabel: Ein zweiadriges (in der Regel schwarz/weiß) und ein dreiadriges (orange/rot/braun). Das schwarz/weiße kommt an den Z- Endstopp-Anschluss und zwar schwarz auf G und weiß auf S, also die unteren beiden der drei Pins.

      Die übrigen drei kommen an den Servos Block. Das MKS Gen L hat davon 2 mit jeweils 6 Pins in zwei Reihen. Davon nimmst du die unterste Reihe und von links nach rechts orange, dann rot, dann braun.

      Ich hab leider grad keine eigene Grafik zur Hand, aber auf die Schnelle diese hier gefunden. Hoffe das hilft dir!

  15. Nochwas, hab die Firmware jetzt auf mein MKS Base 1.4 Board geflasht, allerdings stimmt etwas mit der X Achse nicht. Wenn ich die Achse von Hand verfahre, fährt diese mit einem irren Tempo, auch der Weg passt nicht, bei 1mm Vorgabe fährt die Achse ca. 1,8 cm. Die anderen Achsen scheinen zu stimmen. Durch die hohe Geschwindigkeit hat es mir beim homen der X-Achse den Endschalter verbogen :(.

    1. Hi Martin,

      welche Firmware hast du denn da verwendet und hast du noch was angepasst? Das MKS Base hat ja fest verbaute Treiber und auch den ein oder anderen Pin intern anders nummeriert. Alle Marlin Versionen, die ich hier zum Download stelle, sind für das MKS Gen L gedacht. Dort lassen sich die Treiber austauschen. Die meisten Versionen unterstützen TMC2130 Treiber, nur die Tornado Gold Standard Version ist für die A4988 gedacht. Aber wenn ich mich recht erinnere, sind auf dem Base nochmal andere Treiber verbaut. Das könnte also durchaus die Ursache für dein Problem sein.

  16. Hallo,

    ich hab die Standard Version 1.1.9 für die Standard Treiber geflasht. Hab mal geschaut, auf der Platine sind die A4982 Treiber verbaut. Muss mir wohl mal das Datenblatt holen und den Arduino Code zerpflücken, vielleicht find ich was. Mich wunderts halt nur, dass die anderen Achsen funktionieren…

    Gruß,

    Martin

    1. Hi Martin,

      zerpflücken musst du da nichts. Schau einfach mal in der configuration.h deiner runtergeladenen Marlin Version. Dort gibt es einen Abschnitt Namens “Stepper Drivers” (müsste irgendwo in der Gegend um Zeile 660 sein). Da wird definiert welche Achse welche Treiber hat. Musst dort also nur entsprechend A4982 auf allen Achsen eintragen, wenn noch nicht geschehen. Das andere was du mal checken kannst, sind deine Steps/mm. Wenn nur X spinnt, ist da vielleicht auch ein falscher Wert eingetragen. Das ist mir auch mal beim Extruder kalibrieren passiert, da ist mir das Komma um eine Stelle verrutscht. Was das bedeutet, kann man sich ja ausmalen 😀

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.