TwitterFacebookGoogle
formats

Auto Leveling mit dem Mendelmax

Update 03.01.2014 21:16 Uhr So fertig 🙂 Nun passt alles. Startcode muss noch überarbeitet werden und Firmware noch zum runterladen anhängen, aber dann kann es bei euch losgehen.
Update 03.01.2014 14:45 Uhr Noch nicht anfangen da läuft noch manches nicht ganz rund, und das Bild mit den Endstops ist falsch 🙂 Fixe das heute noch, auch neue Firmware
Zusatz 2.1.2014 Teste eben noch anderen X-Schlitten, der hätte den Vorteil mit dem Hotend auf X in einer Linie zu liegen. Mal sehen was es wird.

Vorbereitung für Ramps

  • Im Slicer das einfügen als Startcode:

zu finden im Reiter Printer Settings ->Custom G-Code -> Start G-Code

G21 ;metric values
G90 ;absolute positioning
M107 ;start with the fan off
G1 Z15.0  ;Lift nozzle 15mm sicherheitshalber
G28 X0 Y0 ;move X/Y to min endstops
G1 Y100 ; Y muss sich bewegen das Endstop im Bett liegt
G1 X30 ; X bewegen das Endstop im Bett liegt, beim mir ausserhalb ein bisschen wegen Filament was rausläuft das es weg ist
G28 Z0 ;move Z to min endstops
G29 ; Perform Auto Bed Leveling
G92 E0 ;zero the extruded length

  • Einen 9g Servo besorgen, z.B. den hier

Hauptsache ist ein 9g Servo, mit dem von Conrad passen meine Einstellungen, aber das Ändern ist kein Hexenwerk. Sollten 4.8V und 6V können.

  • Auf dem Ramps neben dem Resetknopf sind 3 Anschlüsse, dort VCC auf 5V überbrücken weil beim Ramps auf dem Servoanschluss kein 5V vorhanden ist.

ramps

Dann die 3 Kabel vom Servo verlängern und in die Servopins stecken (Steht daneben, das sind die am Ende meines Pfeiles, sogut wie nicht zu verfehlen)

In der Mitte ist der Stromanschluss, wenn der Servo Töne von sich gibt steckt der Stecker verkehrt herum drin.

  • Nun zur Firmware

Dies hier runterladen

Marlin-Autolevel2014

Wenn du noch Optisches Endstop hast oder mechanische mit nur 2 Anschlüssen musst du dies noch in der Firmware anpassen.

Diese Stelle:

// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.

Für den Endstop auf false ändern. Z Endstop muss jetzt aber ein mechanischer sein mit 3 Anschlüssen!!!

Öffnen und in der Config.h bis ganz runter scrollen

Dort steht jetzt schon ein Servo drin (meiner)

Geöffnet geht er auf 130 Grad, zum schliessen geht er auf 30 Grad.

Hochladen in eure Boards, wenn der Servo angeschlossen ist ausprobieren mit M401 (runter) M402 hoch.

Schauen ob der Winkel stimmt,  zum testen M280 P0 S(Winkel) eingeben. Wenn es passt dann eure Sachen in die Firmware eintragen.

Servo ist fertig, mit Sekundenkleber den Servo-Endstophalter ankleben (Endstop vorher befestigen)

Die Löcher sind für M2 Schrauben, man kann auch M3 nehmen wenn ihr die Löcher vorsichtig aufbohrt. Dann empfiehlt sich aber ein einkleben der Schrauben das sie sich nicht mehr lockern.

servo1

  • Euer Drucker sollte so aussehen (Aufbau der Endstops)

drucker_leveling

Wenn alles eingebaut ist sollte das so aussehen ungefähr

Nun bewegen wir uns mit den X und Y Achsen nach Hause (Homing also 🙂 )

(Wenn es bei euch nicht passt, die Schlitten sich in die andere Richtung bewegen z.B. dann die Stecker der Motoren drehen, es muss so laufen wie in der Firmware vorgesehen)

Und fahren den Y-Schlitten um 75 mm wieder raus.

Nun senken wir Z ab bis das Hotend den berühmten Blattpapierabstand vom Druckbett hat.

In Repetier geben wir nun  ein

G92 X0 Y0 Z0

Dann den X-Schlitten um 20mm anheben.

Nun den Z-Endstop genau über den Punkt bringen wo das Hotend war.

Mit dem Taster soweit runterfahren bis es klick macht und das Licht angeht auf dem Endstop.

Dann in der Hostsoftware M119 eingeben gefolgt von M114

Dann steht bei euch sowas auf dem Bildschirm

level2

Meine Werte sind jetzt nicht die euren 🙂

Abschreiben und aus Z12.00 wird später -12.00, wir drehen die Vorzeichen.

Nun gehen wir in die Firmware und tragen es ein.

Dafür suchen wir

//============================= Bed Auto Leveling ===========================

Darunter nehmen wir bei //#define ENABLE_AUTO_BED_LEVELING die // weg.

Wir suchen diese Stelle

// these are the offsets to the prob relative to the extruder tip (Hotend – Probe)

Und tragen dort unsere Werte ein.

Es stehen meine schon drin, theoretisch müsste der erste Wert bei euch auch 0 sein wenn ihr Endstop so wie ich angebaut habt

Theoretisch sollte der zweite Wert auch passen.

Nur Z sollte sich unterscheiden wenn ihr anderes Hotend habt als wie ich (sehr wahrscheinlich)

Firmware hochladen, fertig.

  • Der Test

Nachdem alles hochgeladen ist X und Y homen, dann g1 z20 eingeben.

Z fährt jetzt auf Poition 20mm über 0 (sicherheitshalber)

Dann G1 Y100

Nun Z homen, es sollte der Schalter ausklappen und Z sollte sich homen.

Hand immer am Resetknopf lassen oder am Stromschalter!! 🙂

Nun gebt ihr G29 ein und wenn alles passt beginnt nun das Autoleveln.

So sollte es aussehen.

Und nun viel Spass beim Basteln, falls was nicht klappt oder anders besser ist, benutzt bitte die Kommentarfunktion hier drunter.

 

14 Gedanke zu “Auto Leveling mit dem Mendelmax

  1. Hallo Axel,
    fährst Du jetzt den Drucker 3-achsig simultan?
    Weil das Bett könnte ja schief stehen.
    Sehr interessant, schaft das der Arduino ( Rechenleistung ), oder ist das in der Software beim Slicer?
    Danke für Antwort und frohes neues Jahr

  2. Gesundes Neues Jahr Axel! Wie oft habe ich gedacht „Ach das wäre mal schön nicht immer ewig auszurichten. Das wird auf jeden Fall als nächstes gebaut. Danke dir für das Tutorial 🙂
    Gruß aus DD

    • Hallo Peter 🙂
      Noch nicht so ganz anfangen bitte, da sind noch paar Fehler drin (Bild stimmt nicht zum Beispiel, Y-Min muss auf der Seite vom Motor sein)war natürlich Quatsch was ich geschrieben hatte
      Auch mit der Firmware und dem Startcode muss ich morgen noch was ändern.
      Aber grundsätzlich, ja es geht 🙂

  3. Hallo Axel,
    zittert dein Servo auch so wenn er am Ramps angeschlossen ist? Auf deinem Video sieht es nicht so aus….. Ich habe es damals nicht in den Griff bekommen und es deshalb mit dem Servo aufgegeben.
    Nathan

    • ne da zittert nix 🙂
      liegt wohl am servo und auch daran das jetzt der servo abgeschaltet wird wenn er nicht gebraucht wird.

  4. So nochmal for the record:
    Funktioniert gut deine Anleitung (vorausgesetzt man hat 5 V dort wo 5 V sein sollen und nicht nur 4,7 😉
    Viele Grüße und bleib dran 🙂

  5. Hi Alex, das sieht nach einer wirklich klasse Idee aus und ich würde sie wirklich sehr gerne bei meinem Drucker umsetzten. Allerdings steuere ich meinen Drucker über ein Panelolu2 und habe nun etwas Sorge das es nicht funktioniert. Hast du damit schon irgendwie Erfahrungen gemacht? Welchen Code muss ich für diese Funktion in meinen Drucker einbauen? Weil ich möchte ja nach Möglichkeit meinen ungern gegen deinen ersetzen.
    Vg

    • Was hat das Display damit zu tun?
      Wichtig ist ja nur die Firmware und der Anschluss der Servos, Display brauchst du ja dafür nicht.
      Das sind ja Codesachen in der Fimrware.
      Oder verstehe ich jetzt was falsch?

      mfg
      Axel

      • Hi, vielen Dank für deine Antwort! Das Panelolu2 ist ja nicht nur ein Display, sondern darüber steuere ich ja den Drucker und drucke auch über die SD Karte, somit ist die Firmware schon recht umfangreich. Ich denke es wäre einfacher die notwendigen Bausteine aus deiner Firmware in meine zu integrieren, als wenn ich deine um die Bausteine vom Panelolu2 erweitere.
        Vg

Hinterlasse ein Kommentar.

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

*

CyberChimps