BL-Touch und MKS Gen1.3/4 im Black Widow XXL
Die Bilder auf dieser Seite stammen von Ralphs Seite "drucktipps.de" und der Seite des Herstellers des Sensors BL-Touch.
Eine alternative Erklärung gibt es hier
Videos gibts bei Rics_3D, bei Crosslink für Marlin2.0 und teachingtech
Bei einem FDM-3D-Drucker muß die Düse einen sehr genauen Abstand zum Druckbett einhalten, auch wenn das Druckbett nicht wirklich eben, sondern wellig gewölbt ist. Das kann man mit Hilfe eines BL-Touch- oder 3D-Touch-Sensors einstellen.
Funktionsweise des BL-Touch
Prinzip
Will man mit einem Meßtaster ermitteln in welcher Entfernung sich das Druckbett befindet muß man mit einem Taststift, der am Extruder befestigt ist und sich tiefer (näher am Druckbett) befindet als die Düse, langsam in Richtung Druckbett fahren bis ein Sensor merkt daß der Stift in die Meßmechanik hineingeschoben wird. Der Sensor löst dann ein Signal aus und die Elektronik merkt sich jetzt die Position. Jetzt ist die Messung abgeschlossen. Damit man wieder ungestört mit der Düse drucken kann darf kein Stift mehr tiefer als die Düse am Extruder montiert sein, der Stift muß also in eine sichere (höhere) Rückzugsposition gebracht und sicher dort gehalten werden.
Herkömmliche Taster
In einem herkömmlichen elektromechanischen Meßtaster befindet sich neben einem Taststift in der Regel eine Feder und ein Elektromagnet. Ist der Magnet ausgeschaltet schiebt die Feder den Taststift nach außen. Wird der Magnet bestromt zieht er den Stift nach innen. Der Taststift bleibt solange im Gehäuise wie der Elektromagnet eingeschaltet bleibt.
BL-Touch
Im BLTouch wird der Stift nicht durch eine Feder bewegt, stattdessen ist an der Oberseite des Taststiftes ein Dauermagnet befestigt, so dass der Stift je nach Stromrichtung, die durch den Elektromagneten fliest, entweder ein- oder ausgefahren werden kann. Dabei reicht eine ziemlich kurze Zeit, etwa 100ms, aus um die gewünschte Ausfahr- oder Rückzugsposition zu erreichen.
Danach ist kein Strom mehr erforderlich, um die Position des Taststifts zu halten, da an der Oberseite des Elektromagneten ferromagnetisches Material (Sechskantschraube) angebracht ist, an welchem sich der Sondenstift selbst festhält.
Ist der Sondenstift in Meßposition ausgefahren, wird er ohne zusätzlichen Strom durch sein Eigengewicht gehalten. Daher muss BLTouch senkrecht zum Boden installiert werden. Wird das nicht berücksichtigt gibt BL-Touch falsche Signale aus.
Die Steuersignale werden dem BL-Touch durch ein PWM-Signal mitgeteilt. Hierzu hat der BL-Touch 3 Pins Masse, 5V und Servosignal. Unterschiedliche Servoauslenkungen bedeuten unterschiedliche Befehle, wie z.B ein- oder ausfahren oder weitere.
Als Eindrücksensor dient je nach BL-Touch-Version entweder ein Hallsensor, oder eine Lichtschranke.
Intern ist entweder ein ATtiny13A oder, ab Version 2.2, ein ATtiny2313A verbaut, der die Servosignale auswertet und mittels open drain ein Berührungsalarmsignal erzeugt (der entsprechende Pin wird auf GND gezogen).
Fazit
Da BL-Touch ein mechanischer Taster ist funktioniert er auf allen Oberflächen und ist somit universell einsetzbar. Je nach Ausführung des Einbau wurden laut Hersteller Meßabweichungen von 1 bis 50 Micrometer erzielt. Als Standardabweichung gibt der Hersteller 10Mycrometer an.
Wo wird der Sensor am MKS Gen1.4-Board angeschlossen?
MKS Gen V1.4 wurde von der Firma "Makerbase", einem chinesischen Hersteller in Liwan, im District Guangzhou gefertigt. Basis für das MKS Gen V1.4 Board ist der Stromlauf eines Arduino-Mega-2560 mit RAMPS 1.4. Wenn es nun um die Konfiguration der Firmware geht sind deshalb viele der Pins die gleichen wie beim RAMPS 1.4 Board.
Auf der Herstellerseite des Sensors sind ein paar Anschlußschemata für verschiedene Boards abgebildet. Auch mein Board, ein "MKS Gen 1.4" ist dargestellt. So wie ich es vor mir liegen habe entspricht eher die gezeigte Version 1.3 meinem "MKS Gen 1.4".
Wir brauchen einen der Anschlüsser für die Endstopschalter.
https://www.antclabs.com/wiring
Firmware:
ohne Kommentarstriche aktivieren: #define ENDSTOPPULLUPS
mit Kommentarstrichen deaktivieren: //#define ENDSTOPPULLDOWNS
ausprobieren: #define Z_MAX_ENDSTOP_INVERTING false oder true //BL- und 3D Touch unterscheiden sich hier
mit Kommentarstrichen deaktivieren: //#define Z_MIN_PROBE_USE_ZMIN_ENDSTOP_PIN
ohne Kommentarstriche aktivieren: #define USE_PROBE_FOR_Z_HOMING
#define USE_ZMIN_PLUG
//#define USE_ZMax_PLUG