Neulich gab es den BL-Touch mit Blitzversand beim großen Fluss. Da hab ich nicht lange nachgedacht und mit Blick auf meinen Creality CR-10 einen bestellt. Da ich hier aber noch unschlüssig bin welches Board ich hier verbauen möchte, vermutlich wird es aber doch ein RepRap-Board, habe ich den BL-Touch mal an meinen Anet A8 geschraubt für den Test. Der arme Anet, immer muss er herhalten… Den Sensor an sich bekommt man auch günstiger, primär über ALI-Express. Allerdings dann mit 14 Tagen Lieferzeit und mehr 🙁
Der BL-Touch ist ein Sensor der mit einem feinen Stift arbeitet und direkt den Abstand zur Oberfläche erfühlt. Dies erledigt er mit einem feinen Stift den er per Magnet ein und ausfährt. Der Sensor ist relativ „filigran“ (netteres Wort für nicht gerade stabil) konstruiert und sollte daher mit Vorsicht montiert und in Betrieb genommen werden. Da keine Anleitung oder Etwaiges beiliegt, hatte ich selbst erstmal einen Unfall und musste den BL-Touch erstmal reparieren^^ Das ist aber ein anderes Thema… Soviel sei aber gesagt: Lasst die Finger von diesem Stift und zieht Ihn nicht heraus oder macht sonst Etwas damit wo eure Finger dabei eine Rolle spielen. Das mag er nicht!
Zurück zum Thema:
Inhalt
- Was Ihr braucht für RAMPS 1.4 und den BL-Touch:
- Schritt 1: Tauschen desZ- Endstops gegen den BL-Touch
- Schritt 2: Änderungen in der Marlin-Firmware und aktivieren des BL-Touch
- Schritt 3: Der erste Test und die Kalibrierung des BL-Touch
- Schritt 4: Abschließende Einrichtung und Kalibierung des BL-Touch unter Marlin mit RAMPS
Was Ihr braucht für RAMPS 1.4 und den BL-Touch:
Dieser Artikel zeugt Euch wie Ihr den BL-Touch an einem RAMPS-Board in Betrieb nehmt und was Ihr dafür braucht. Wenn Ihr ein RAMPS bereits installiert habt, dann braucht Ihr wirklich nur den BL-Touch. Ansonsten empfehle ich Euch diesen Artikel für den Aufbau mit einem RAMPS-Board. Hilfreiches Zubehör gibt allerdings schon noch. Eventuell habt Ihr das aber ja sowieso im Haus:
Schritt 1: Tauschen desZ- Endstops gegen den BL-Touch
Zunächst schauen wir uns an wie wir den BL-Touch mit unserem RAMPS-Board verbinden. Da ich hier ziemlichen Kabelsalat habe beim Testaufbau, zu Übersicht besser am Schaltbild vom REPRAP-Wiki. Für uns interessant sind die Pins des Z-Endstops. Diesen Endstop ersetzen wird durch den BL-Touch:
Hier verbinden wir die beiden Adern für die Schaltsignale des BL-Touch. Denkt daran, die Kabel für eure spätere Bedürfnisse entsprechend zu verlängen. Dazu knippst Ihr am besten ein gutes Stück Kabel samt Stecker ab und und verlängert dieses mit einem Adernpaar, in dem Ihr ein ausreichend langes Stück Kabel einlötet. Danach könnt Ihr die Adern für das Schaltsignal aufstecken.
Als nächstes brauchen wir noch eine Verbindung für die 3 Adern zur Sensorsteuerung, damit der Touch-Stift des BL-Touch auch korrekt angesteuert wird von eurem 3D Drucker später im Betrieb. Dafür sind folgende Pins auf dem RAMPS interessant:
Wir brauchen zunächst eine Jumperverbindung für die beiden Pins links im Bild. Falls ihr keinen Jumper habt, könnt Ihr diese auch notfalls per Kabelbrücke verlöten. Damit stellt Ihr 5 Volt zu Verfügung am Servo-Ausgang des RAMPS-Shields.
Als nächstes verbinden wir die 3 übrigen Adern des BL-Touch mit dem RAMPS (Orange, Rot, Braun). Der Stecker des BL-Touch ist dafür schon perfekt, allerdings müsst Ihr vermutlich die Kabel für eure Bedürfnisse verlängern.
Danach ist die Verkabelung fertig und wir müssen nur noch die notwendigen Änderungen in der Firmware machen
Schritt 2: Änderungen in der Marlin-Firmware und aktivieren des BL-Touch
Wir öffnen die Datei Configuration.h und machen dort folgende Anpassungen:
Als erstes stellen wir sicher, dass der Z-Endstop nicht invertiert interpretiert (toller Zungenbrecher) wird. Die Einstellung dazu finden wir ungefähr in Zeile
In ca. Zeile 583 stellen wir sicher, dass die Marlin-Firmware die Z-Entstop-Pins für den Sensor verwendet:
So um Zeile 637 entfernen wir die „//“ und kommentieren damit den „define BLTOUCH“ ein, siehe folgendes Bild. Damit weiß Marlin erstmal, das wir einen BL-Touch an unserem RAMPS verwenden wollen.
In ca. Zeile 784 geben wir unserm Drucker die Möglichkeit die Achsen in den Minus-Bereich zu fahren, was wir später für die Kalibierung brauchen. Das heißt aber auch das wir ab jetzt sorgfältig arbeiten müssen, da der Drucker die Nozzle in das Druckbett krachen kann. Wir können diese Einstellung nach der Kalibierung optional wieder rückgängig machen.
Danach müssen wir noch das AUTO-Leveling aktivieren. Dafür gehen wir ungefähr in Zeile 847. Ich hab mich für die bilineare Methode entschieden. Hier kann gerne später nach dem ersten Betrieb nach den eigenen Ansprüchen noch modifiziert werden. Bei mir war es nicht nötig.
So um Zeile 870 stellen wir die maximalen Messpunkte ein wo der Sensor messen darf. Diese Werte hier im Bild würde ich stark empfehlen für eine erste Inbetriebnahme. Letztlich hängen diese vom Format von eurem Druckett ab und Ihr müsst diese später noch entsprechend anpassen. Es geht um Fahrwege mit vorne links als Ausgangspunkt. Die Angabe erfolgt in Milimeter.
In Zeile 983 aktivieren wir noch das SAFE-Homing. Damit stellen wir sicher, dass zuerst X und Y eine Homing-Information haben müssen, bevor Z versucht wird zu nullen.
Danach seid Ihr mit der Anpassung fertig und könnt die Firmware auf euren Drucker laden.
Schritt 3: Der erste Test und die Kalibrierung des BL-Touch
Wenn Ihr nun alle bisherigen Todos richtig erfüllt habt, sollte der Sensor nach dem Einschalten erstmal einen Selbstest machen. Dafür fährt er 3 mal seinen Touch-Pin ein und aus und schließt den Test ab mit eingezogenem Pin und leuchtender roter LED. Sollte das nicht passieren, stimmt etwas nicht und Ihr müsst leider zurück auf Los ohne Auto-Leveling 😉 Überprüft dann nochmal die bisherigen Punkte. Wenn der Sensor blinkt, dann stimmt auch Etwas nicht.
Bevor Ihr nun versucht eure Achsen zu nullen, könnt Ihr mit folgenden Codes die Funktion des Sensors nochmal absichern. Diese Codes könnt Ihr über Octoprint eingeben oder über die Console in eurem Slicer wenn er mit dem Drucker verbunden ist:
Funkion | Ergebnis |
M280 P0 S10 | Pin ausfahren |
M280 P0 S90 | Pin einfahren |
M280 P0 S120 | Selbsttest starten |
M280 P0 S160 | Alarm zurücksetzen (Wenn er blinkt) |
Sollte alles in Ordnung sein, können wir den Sensor kalibieren und damit die Einrichtung abschließen:
Schritt 4: Abschließende Einrichtung und Kalibierung des BL-Touch unter Marlin mit RAMPS
Zunächst mal stellen wir sicher, dass der ausgefahrene Stift des BL-Touch tiefer hängt als die Nozzle. Das ist Grund-Vorrausetzung dafür das später alles richtig funktionieren kann. Das Z-Offset im Drucker sollte dann außerdem auf 0 stehen. Das können wir mit dem Befehl „M851 Z0″ sicherstellen. Danach machen wir ein Homing mit dem Befehl „G28″.
Der Drucker sollte nun alle Achsen homen und zum ersten mal auch mit dem Bl-Touch die Z-Achse. Nach dem Homing ist die Z-Achse nicht auf null. Das liegt daran das unser Offset noch nicht passt. Mit dem Befehl „G1 Z0“ fahren wir nun auf die Höhe, die unser Drucker gerade für 0 hält. Danach fahren wir mit 0,1-Schritten weiter nach unten in den negativen Bereich bis das Leveling stimmt.
Sobald das Leveling stimmt zeigt uns das Drucker-Display nun das neue Offset an das wir brauchen. Zum Beispiel -1.5 Diesen Wert (euren!), speichern wir nun im Drucker mit dem Befehl „M851 Z<euer Wert>„. Danach speichern wir noch die Konfiguration mit „M500“ im EEPROM. Damit sind wir dann fertig mit G29 können wir nun auch das Auto-Leveling verwenden.
Anschließen räumt Ihr mit dem neuen Offset-Wert noch die Firmware wieder auf. Besonders die „Probe_Bed_Positions“ sie oben.
Und dann seid Ihr fertig J
Viele Grüße und Happy Printing!
Kann der BLTouch auch an dem original CR-10 Mainboard angeschlossen werden? Wäre schön wenn es hierzu eine Anleitung geben würde.
Hi Christian,
geht auch, dafür müsstest Du allerdings dann den SD-Kartenslot opfern. Das Original-Board zu „modden“ halte ich für schwieriger und wenig attraktiv, alleine schon wegen dem kleineren ROM-Speicher.
Bei solchen Themen stellt sich mir immer die Henne-Ei-Frage, sprich: was macht man zuerst, die Verkabelung oder das Firmware-Update? Was, wenn man softwaremäßig Dinge umschaltet, wo die Verdrahtung aber auch schon anders sein muss als vorher? Das mag hier zwar gut gehen, und zudem: Du hast die Reihenfolge ja auch fest vorgegeben, aber das ist eine Frage, vor der ich immer Respekt habe, wenn ich Veränderungen am 3D-Drucker vornehme. Das nur als Randnotiz zu dem Artikel. Ansonsten: Danke für die Dokumentation, das gibt mir Mut, einen zweiten Anlauf zu starten, mit dem Sensor und das ewige manuelle Levelling vor jedem Druck zu eliminieren. Der erste Anlauf: BLTouch bei AliExpress bestellt, installiert, BLTouch defekt, Arduino kurz danach defekt, BLTouch hatte sich als von-Anfang-an als defekt herausgestellt. Ob das jetzt die Ursache für den Arduino-Defekt war, lässt sich nicht sagen/nachweisen. Ich wünschte mir dennoch, es gäbe eine Beschreibung irgendwo, nach der man den BLTouch ohne Anschluß an Mega/RAMPS vorher testen kann, meinetwegen an nem separaten Mega/Nano/Uno mit einer eigens dafür erstellten Software.
Danke für Anleitung. Hatte Marlin 1.0.x da lief der BLTouch nicht. Also Marlin 1.1.5 erst ohne
Autoleveling alle Steps keine Probleme. Danach Autoleveling aktiviert , der BLTouch macht
seinen Test zum Start. Wenn ich aber Kalibrieren möchte fährt die Z Achse zu schnell runter, also zu viele Steps statt 0,1mm geschätzt das 10 fache also 1mm. Muss ich in der Configuration.h noch irgendetwas aktivieren?
Hallo Tom, Steps und Geschwindigkeiten nochmal im Artikel nachlesen. Vermutlich ist nur die Geschwindigkeit zu hoch eingestellt.
Moin,
erst mal nettes Tutorial.
2 wichtige Sachen habe ich aber vermisst:
ZITAT aus Tutorial:
_________________
In ca. Zeile 784 geben wir unserm Drucker die Möglichkeit die Achsen in den Minus-Bereich zu fahren, was wir später für die Kalibierung brauchen. Das heißt aber auch das wir ab jetzt sorgfältig arbeiten müssen, da der Drucker die Nozzle in das Druckbett krachen kann. Wir können diese Einstellung nach der Kalibierung optional wieder rückgängig machen.
_________________
Meine Antwort darauf:
————-
Würde ich nicht empfehlen. Geht schnell vergessen und ein Crash auf irgend einer Achse ist vorprogrammiert. Wieso nicht einfach per Goce -> „M211 S0“ (soft_endstop deaktivieren) und „M211 S1″(soft_endstop aktivieren). Viel sicherer!! (Klar kann das auch vergessen gehen, aber bei einem reset oder poweroff sind die soft_endstopsvon automatisch wieder aktiv).
————
Ein wichtiger Punkt fehlt doch. Damit das Autoleveling 100% richtig fukntioniert. Muss die Firmware den X und Y offset des Sensor in relation zur Düse wissen. Damit der gemessene Punkt auch der Position der Düse entspricht.
Ca Zeile 64x (bei Marlin 1.14).
#define X_PROBE_OFFSET_FROM_EXTRUDER 34 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER 15 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle]
Grüsse Steven
hallo,
muss ich für mein MKS Gen 1.4 auch eine brücke machen damit ich die 5 volt auf dem MKS auf dem servos1 anschluss habe?
ansonsten auch wie oben abgebildet die erste reihe vom servos1 nehmen in der reihenfolge wie auf dem bild? (Orange, Rot, Braun) von oben nach unten?
da meine endstop stecker ja nur zwei belegungen statt 3 haben wie das mks muss ich den stecker so wie er reinpasst ganz nach rechts oder? sozusagen + und –
kannst du mir noch sagen ob schwarz vom bltouch + oder – ist vom z endstop den ich ändern soll? dann weiß ich nämlich was weiß ist..
Hi, super Anleitung. Danke!
Was ich mich aber gefragt habe, wie steht es denn um den CR-10s ? Mit dem neuen Board sollte das doch auch ohne Schwierigkeiten machbar sein…mehr Speicher, freie Servoanschlüsse etc. .
Ist ein Tutorial hierzu in Planung oder kann man ggf. gute Tipps erhalten, wie man die Firmware anpassen muss um die Anschlüsse richtig anzusprechen oder ist eine Modifikation gar nicht notwendig ?