BLTouch / 3DTouch
BLTouch / 3DTouch

Instalar y configurar BLTouch / 3DTouch en Marlin (MKS Gen, SKR, Anet A8, RAMPS)

Recientemente un compañero me envió un sensor BLTouch / 3DTouch de la marca Geeetech. Para mis impresoras suelo utilizar sensores de infrarrojos ópticos, pero deseaba probar los sensores BLTouch ya que aún no había caído ninguno por mis manos. Así que me puse manos a la obra para Configurar BLTouch con BabyStepping en el último Marlin disponible a día de hoy y saciar mi curiosidad.

Siempre he utilizado sensores de nivelación en mis máquinas, ya que lo de nivelar con un folio las cuatro esquinas de la superficie de impresión definitivamente no es lo mío. Ni lo veo práctico y ni mucho menos preciso, aunque llegado a este punto seguro que discrepo con algún lector 🙂

He de decir que probé bastantes sensores inductivos y capacitivos, incluso opté por el PINDA 2 original, el cual es muy cómodo de instalar ya que es de los pocos que realmente se alimenta a 5v. y da bastante precisión. Pero tampoco me convenció. En todos y cada uno de ellos un denominador común, la distancia de detección varía dependiendo del metal e incluso de la temperatura de la cama.

Es algo que no me gusta para nada. No me da sensación alguna de precisión, ya que lo que yo busco es una medición inmutable (o al menos mínima). Tener un componente que según las condiciones de uso funcione de distinta manera carece de sentido alguno. No quiero calibrar de nuevo esa distancia si cambio el filamento de PLA a ABS, es un engorro.

Con los sensores ópticos, los cuales me encantan, nos olvidamos de esas variaciones ya que en condiciones normales no les afecta el tipo de metal ni la temperatura. Y con los BLTouch lo mismo, ya que son sensores completamente mecánicos (de allí mis ganas por probarlo).

Introducción

Antes de comenzar he de confesar que no dispongo de una impresora 3D comercial como podéis tener muchos de vosotros (Anet A8, Ender3 o Artillery X1 por ejemplo). Tuve una comercial al principio (un desastre de impresora), así que opté por diseñar y fabricar una propia a mi gusto y necesidades.

No obstante eso no debe preocuparte ya que a la hora de configurar el sensor BLTouch las opciones a modificar en el firmware Marlin serán exactamente las mismas. Lo único que variará serán las conexiones, pero indicaremos algunos ejemplos para que no tengas problema alguno en su sección correspondiente.

En este artículo solamente vamos a comentar las opciones a modificar para dar soporte a BLTouch / 3DTouch. Si necesitaras configurar completamente Marlin no dudes en visitar la Guía completa: Configurar Marlin 2.0.3 desde cero y no morir en el intento que también tienes disponible en nuestra página web.

¿Por qué utilizar BLTouch / 3DTouch?

La principal razón para mi sería no tener que estar nivelando 4 esquinas con un folio o haciendo cuadrados en la cama. Si efectuamos la nivelación de la superficie de impresión en las 4 esquinas, cuando estas nivelando una otra se descompensa. Al final para que quede todo bien cuadrado acabas haciendo varias pasadas, y máxime si eres un maniático de la precisión.

Así que la pregunta es extremadamente sencilla. ¿Por qué no instalar un sensor de nivelación para nivelar en un solo punto central de la cama (SAFE_HOMING), y dejar que Marlin genere la malla de puntos y se preocupe del resto? Para eso está Marlin, para facilitarnos la vida ciertamente.

Más razones, puedes instalar sensores capacitivos o inductivos, pero este tipo de sensores varían dependiendo de la temperatura de la cama y del metal. A mayor temperatura, menor rango de detección. Con lo cual no puedes dejar un valor fijo para PLA y otro para ABS.

Además, sobre aluminio se ve mermado considerablemente el rango de detección de los sensores capacitivos y conductivos respecto a usar acero o hierro. Otro punto negativo ya que si usas cristal vas a ir muy justo y en cualquier fallo tu boquilla atravesará el cristal con el consiguiente riesgo de rotura.

Los sensores BLTouch / 3DTouch son mecánicos, así que no les afecta calor, humedad o tipo de material de tu superficie de impresión.

Además, la conexión de los sensores BLTouch / 3DTouch a las placas es relativamente sencilla y no precisas de efectuar ninguna modificación electrónica como sí pasa en otros sensores. Algunos sensores chinos, te indican rangos de funcionamiento desde 6-36v, nada más lejos de la realidad. Si los alimentas a valores mínimos no funcionan, así que has de alimentarlos a 12v.

El problema viene cuando has de enviar la señal (S) a tu placa electrónica, si no regulas ese voltaje (con electrónica adicional) puedes llegar a quemar el puerto como me pasó a mi en mi MKS Gen v1.4. El resultado fue que el conector Z- se me quedó completamente inservible al haber metido 12v. en una entrada de 5v. No es mayor problema, puedes cambiar dentro del firmware de Marlin e indicarle que para Z- vamos a usar el Z+, pero ya has de hacer modificaciones innecesarias.

¿Donde puedo adquirir un BLTouch / 3DTouch?

Puedes adquirir este tipo de sensores en cualquier tienda online,  ya que son muy comunes en el mundo de la impresión 3D. Más abajo te dejo dos enlaces de afiliado a Amazon y Banggood. Por supuesto puedes adquirirlos donde desees, existen decenas de páginas.

Si decides adquirirlo a través de estos enlaces, es mi deber comentarte que una pequeña comisión se destinará al proyecto 3DWork.io y te estaremos eternamente agradecidos. De esta forma podremos continuar redactando guías de impresión 3D y artículos de interés. O como alternativa, puedes seguirnos en nuestras redes sociales 🙂

BLTouch Original (Antclabs)Amazon Logo PNG e1579685453346aliexpress logo 
3DTouchAmazon Logo PNG e1579685453346aliexpress logobanggood
Bigtreetech 3DTouch v3.0  banggood
Creality 3D BLTouch v3.1Amazon Logo PNG e1579685453346  
3DTouch GeeetechAmazon Logo PNG e1579685453346  

O si lo deseas, puedes utilizar nuestro buscador de componentes Markets.sx, donde podrás comparar precios en diferentes Marketplaces (Amazon, Aliexpress, Banggood, etc.) con una sola búsqueda y muy fácilmente.

Markets2

Configurar BLTouch / 3DTouch en Marlin

Marlin 12

Bueno, pues comencemos a configurar nuestro firmware Marlin para dar soporte a los sensores BLTouch / 3DTouch. Tal y como expliqué en el articulo previo de Configurar Marlin 2.0.3 desde cero, para activar las opciones hay simplemente que descomentarlas. Eso se efectua eliminando las dos barritas que hay delante de cada #define, de esta forma el compilador podrá hacer uso de ellas y añadirlas al firmware finalizado.

Empezaremos la configuración editando el archivo Configuration.h con tu editor de textos favorito (el mío es Sublime). Una vez que lo has editado, vamos a indicarle a nuestro querido Marlin que nuestra impresora 3D dispone de un final de carrera (sensor) en el eje Z. Procederemos a descomentar las opciones USE_ZMIN_PLUG.

#define USE_ZMIN_PLUG // 3DWORK BLTOUCH Z-

Dependiendo de como conectemos nuestro sensor de nivelación a nuestra placa  podemos optar por dos tipos de configuración en Marlin. 

  • En el caso que usemos el método tradicional de conectar la parte endstop a nuestro final de carrera en Z, normalmente el – o MIN:
    Descomentamos la opción Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN.
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN // 3DWORK BLTOUCH Z-
  • En el caso que nuestra placa cuente con un conector especial PROBE y queramos instalarlo ahí:
    Descomentaremos las siguientes lineas (recordad revisar que el caso anterior no este descomentado ya que haría fallar la compilación del firmware), siendo la primera para indicar que nuestro sensor conectado al puerto PROBE se use para el proceso de homing y la segunda (en el caso que no este definido ya en nuestro fichero pins que suele estar) indicar en que pin de nuestra placa se encuentra el PROBE:
#define USE_PROBE_FOR_Z_HOMING // 3DWORK BLTOUCH PROBE PARA HOMING
#define Z_MIN_PROBE_PIN XXX // 3DWORK BLTOUCH PROBE PIN
d2448300145e90cb4943c
Ejemplo para una SKR 1.4 usando el pin PROBE para Marlin 2.0.5.3 o superior

Y en esta otra línea del código le vamos a indicar que nuestro sensor instalado es un BLTouch / 3DTouch, que para Marlin vienen a ser lo mismo.

#define BLTOUCH // 3DWORK BLTOUCH

Si usamos un sensor de autonivelación (sea BLTouch o cualquier otro), deberemos indicarle a Marlin la posición del mismo respecto a nuestro Nozzle de impresión. Este obligatoriamente se encontrará separado y lo definiremos como coordenadas y en milímetros.

Mi BLTouch de nivelación se encuentra 37mm a la derecha del fusor, y 2 mm más atrás del mismo, así que pondría la siguiente configuración. Deberás medir en tu impresora estos valores a introducir (no uses los míos)

/**
 * Z Probe to nozzle (X,Y) offset, relative to (0, 0).
 *
 * In the following example the X and Y offsets are both positive:
 *
 *   #define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 }
 *
 *     +-- BACK ---+
 *     |           |
 *   L |    (+) P  | R <-- probe (20,20)
 *   E |           | I
 *   F | (-) N (+) | G <-- nozzle (10,10)
 *   T |           | H
 *     |    (-)    | T
 *     |           |
 *     O-- FRONT --+
 *   (0,0)
 *
 * Specify a Probe position as { X, Y, Z }
 */
#define NOZZLE_TO_PROBE_OFFSET { 37, -2, 0 } // 3DWORK BLTOUCH OFFSETS

Ahora debemos descomentar la función AUTO_BED_LEVELING_BILINEAR y después la función RESTORE_LEVELING_AFTER_G28, para que queden activas en nuestro firmware.

/**
 * Choose one of the options below to enable G29 Bed Leveling. The parameters
 * and behavior of G29 will change depending on your selection.
 *
 *  If using a Probe for Z Homing, enable Z_SAFE_HOMING also!
 *
 * - AUTO_BED_LEVELING_3POINT
 *   Probe 3 arbitrary points on the bed (that aren't collinear)
 *   You specify the XY coordinates of all 3 points.
 *   The result is a single tilted plane. Best for a flat bed.
 *
 * - AUTO_BED_LEVELING_LINEAR
 *   Probe several points in a grid.
 *   You specify the rectangle and the density of sample points.
 *   The result is a single tilted plane. Best for a flat bed.
 *
 * - AUTO_BED_LEVELING_BILINEAR
 *   Probe several points in a grid.
 *   You specify the rectangle and the density of sample points.
 *   The result is a mesh, best for large or uneven beds.
 *
 * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling)
 *   A comprehensive bed leveling system combining the features and benefits
 *   of other systems. UBL also includes integrated Mesh Generation, Mesh
 *   Validation and Mesh Editing systems.
 *
 * - MESH_BED_LEVELING
 *   Probe a grid manually
 *   The result is a mesh, suitable for large or uneven beds. (See BILINEAR.)
 *   For machines without a probe, Mesh Bed Leveling provides a method to perform
 *   leveling in steps so you can manually adjust the Z height at each grid-point.
 *   With an LCD controller the process is guided step-by-step.
 */
//#define AUTO_BED_LEVELING_3POINT
//#define AUTO_BED_LEVELING_LINEAR
#define AUTO_BED_LEVELING_BILINEAR // 3DWORK BLTOUCH BILINEAR
//#define AUTO_BED_LEVELING_UBL
//#define MESH_BED_LEVELING

/**
 * Normally G28 leaves leveling disabled on completion. Enable
 * this option to have G28 restore the prior leveling state.
 */
#define RESTORE_LEVELING_AFTER_G28 // 3DWORK BLTOUCH

Es muy importante una vez subidos los cambios veríficar que los offsets esten correctamente cargados en la EEPROM. Esto lo podemos verificar usando el comando M503 desde Pronterface/Octoprint o desde la propia pantalla (segun version y opciones habilitadas en Marlin) en Configuración/Avanzado/Probe Offsets.
En el caso que no estén cargados correctamente esros valores podemos refrescar los datos desde Pronterface/Octoprint usando M502 M500 o desde la pantalla de la impresora Configuración Reset / Load Save Eeprom.
Si deseamos cambiarlos sin tener que compilar Marlin podemos desde Pronterface/Octoprint usar el comando M851 y despues un M500 (guardarlos en EEPROM) y un M503 para verificar que se guardaron correctamente. Por ejemplo para un desfase X de -1.7 e Y -1.3 de nuestro PROBE usariamos el siguiente comando
M851 X-1.70 Y-1.30

Una vez configurado el tipo de autonivelación que deseamos que Marlin efectúe, le indicaremos con los parámetros GRID_MAX_POINTS el número de sondeos (o pruebas) a efectuar. Yo suelo realizar 9 puntos de comprobación antes de cada impresión, podéis ampliarlo o reducirlo, eso queda a vuestra elección.

#define GRID_MAX_POINTS_X 3 // 3DWORK BLTOUCH MALLADO 3x3
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X

Y como me gusta hacer siempre el HOMING en el centro de la cama por seguridad, activo la opción Z_SAFE_HOMING.

#define Z_SAFE_HOMING // 3DWORK BLTOUCH

En el caso que usemos cama de cristal con grapas/clips podremos ajustar el margen de seguridad para evitar que nuestro sensor de nivelación pueda chocar con estas.

#define MIN_PROBE_EDGE 20 // 3DWORK BLTOUCH MARGEN 20MM

Para versiones de 2.0.6.x de Marlin o superiores:

#define PROBING_MARGIN 20 // 3DWORK BLTOUCH MARGEN 20MM

Aunque con un sensor como Bltouch/3DTouch no suele ser necesario podemos definir varias lecturas por punto para mejorar la resolución de las mismas.

#define MULTIPLE_PROBING 3 // 3DWORK BLTOUCH MULTIPLES LECTURAS X PUNTO

Otra opción que os aconsejamos es habilitar los menús en pantalla para la nivelación que os dará opciones extras muy interesantes, es importante comentar que esta opción solo funciona si tienes una pantalla LCD.

#define LCD_BED_LEVELING // 3DWORK MEJORAS

Siguiendo con añadir mejoras en las opciones de nuestra pantalla es interesante añadir las opciones de homing por eje, podremos activarlo mediante:

#define INDIVIDUAL_AXIS_HOMING_MENU // 3DWORK MEJORAS

Otra mejora muy interesante e útil es la activación del nivelado de 4 esquinas mediante el sensor de nivelación que nos ayudará a nivelar nuestra cama de una forma sencilla y precisa, más que usar un folio y sensaciones, para dejarla lo más a nivel posible.

#define LEVEL_BED_CORNERS // 3DWORK MEJORAS
...
#define LEVEL_CORNERS_USE_PROBE // 3DWORK MEJORAS

Es necesario ajustar las coordenadas donde se realizará el test de las 4 esquinas para que al compilar no genere un error.
Primero revisaremos el valor que tenemos en los offsets de nuestro sensor/probe, tomamos el siguiente como ejemplo:
#define NOZZLE_TO_PROBE_OFFSET { 35, 5, -0.799 }
A continuación cogiendo como referencia el valor absoluto mayor en los offsets del sensor/probe para los ejes X e Y de la anterior linea le sumaremos 5, en nuestro caso 35+5=40 y colocaremos ese valor en la siguiente linea:
#define LEVEL_CORNERS_INSET_LFRB { 40, 40, 40, 40 }
Esto es una sugerencia de cálculo rápido y válido para el cálculo para las 4 esquinas con sensor aunque dependiendo de la máquina puede variar, es importante entender que ese punto que elijamos para las 4 esquinas el sensor de nivelación quede dentro de la cama ya que las coordenadas hacen referencia a la punta del nozzle

Por otro lado disponemos de ENABLE_LEVELING_FADE_HEIGHT el cual nos permite indicarle a Marlin hasta que altura se aplicarán las correcciones de nivelación para evitar artefactos.

k9AzQIyVbu4dEixRRkGHPK8oXlUlGAeaGC9VFd4Fv1tUQCS2Zb2g Pv0n59xujlY1gp6OVjyjJM7DX9rtSJhmdP7dsvES1l9cZtH9WCgEFo9iiWWEdlNmWrm
#define ENABLE_LEVELING_FADE_HEIGHT 10 // 3DWORK MEJORAS

Ahora guardaremos el archivo Configuration.h y editaremos un nuevo archivo denominado Configuration_adv.h. La diferencia respecto a Configuration.h es que nos ofrece opciones de personalización más detalladas, y funciones experimentales o en desarrollo.

Es aconsejable activar reintentos en el proceso de generacion de malla G29 para prevenir problemas durante el proceso (esta función puede no ser compatible con todos los sistemas de nivelación como por ejemplo UBL)

# define G29_RETRY_AND_RECOVER // 3DWORK MEJORAS

Otra función más que interesante es la de activar el asistente de Z-Offset para que el proceso de encontrar este offset sea muy muy sencillo.

#define PROBE_OFFSET_WIZARD // 3DWORK MEJORAS

Yo en mi impresora uso una función de nivelación disponible en Marlin 2 denominada BABYSTEPPING. Esta función me permite calibrar con un folio la altura de mi sensor de nivelación en el centro de la cama una sola vez.

Más tarde, la impresora efectuará 9 puntos de testeo (probe points) automáticamente al comenzar cada impresión. De esta forma no tendré que ir esquina por esquina innecesariamente para calibrar mi cama. Por defecto viene desactivada, así que activaremos la opción BABYSTEPPING tal y como os muestro a continuación:

#define BABYSTEPPING // 3DWORK BABYSTEPPING
#define DOUBLECLICK_FOR_Z_BABYSTEPPING // 3DWORK BABYSTEPPING
#define BABYSTEP_DISPLAY_TOTAL // 3DWORK BABYSTEPPING

Bueno, pues estas serían las opciones básicas para configurar tu BLTouch. Por supuesto, puedes configurar mucho más parámetros como límites, sondeos, velocidades de desplazamiento, etc. Pero para empezar es más que suficiente.

Instalar BLTouch / 3DTouch en tu cabezal

Configurar sensor BLTouch / 3DTouch con Babystepping en Marlin 2.0.3 (MKS Gen v1.4)

Independientemente de donde se ubique respecto a los ejes X e Y, que son los que debes configurar en Marlin, tienes que posicionar el sensor BLTouch / 3DTouch a una distancia determinada en altura de tu Nozzle.

Está lógicamente tiene que estar dentro del rango de acción del mismo. Cuando la sonda se encuentre retraída deberá estar por encima del Nozzle (sino tendremos problemas). Y cuando se encuentre extendida deberá bajar varios milímetros por debajo del Nozzle para poder actuar.

Lo recomendable es 2mm. según he visto en algunos sitios, pero a mi se me hacía algo corto tras unas pruebas y decidí ponerlo a 2.5mm. que me funciona correctamente. Por supuesto, esta distancia queda a tu absoluta elección, solo es un valor orientativo.

Conexión de BLTouch / 3DTouch a tu electrónica

BLTouch

Como puedes observar en esta imagen, los sensores de nivelación BLTouch / 3DTouch disponen de dos cables de conexión. Uno de tres pines y otro de dos pines, que serán los que necesitaremos conectar a nuestra electrónica.

A continuación os adjuntamos algunos esquemas de conexión para las placas más usadas:

Esquemas conexión SKR

Dada la gran popularidad de las placas de BigtreeTech os mostramos los esquemas de conexión de alguna de sus placas.

Este esquema depende de la versión de Marlin cargada en la impresora, normalmente a partir de la 2.0.7.x se puede usar el puerto dedicado PROBE en la placa si no se deberá utilizar el puerto Z-STOP.

6c54297e6e5edb52cb861
ekyD A5GbpEMf9xCeeoebOtgNanm5zvrwrMZyJYSCHq4RxghXi49hJC7 tOMDOGmTqSbALRevT1swCRy3Xp5pc9Y79

Podéis encontrar más detalles e información de la SKR 1.4 aquí.

Esquemas conexión Fysetc

Otra marca es Fysetc que cuentan con unas placas muy interesantes y potentes. A continuación podéis encontrar los esquemas para sus dos buques insignia la Fysetc Spider y S6.

spaces%2F MTqLw6KI5FruaRNEMZD

En el caso de disponer de una Spider v1.1 esta cuenta con un conector específico para el Bltouch/3Dtouch.

Es importante colocar el jumper rojo en la posición de 5v para alimentar correctamente nuestro sensor.

Podéis encontrar más detalles e información de la Fysetc Spider aquí.

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2F8wScJeD4iCtlRH36c6tQ%2Fimage

Esquemas conexión otras marcas

Importante actualizar el firmware a la última versión o uno custom y actualizar el firmware del TFT que tenga soporte, este es muy aconsejable https://github.com/wgcv/RAWR-TFT-Firmware-Artillery3D. También puedes ver el siguiente video del proceso

https://youtu.be/QY0BPCdgkr4
spaces%2F MTqLw6KI5FruaRNEMZD
spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FzE3QUoX9CKvWdDFehE70%2Fimage
Configurar sensor BLTouch / 3DTouch con Babystepping en Marlin 2.0.3 (MKS Gen v1.4)

Muy fácil como habéis podido comprobar, pinchar en esos 2 sitios y listo. Cuando enciendas la impresora verás que el sensor hace una pequeña comprobación (despliega y retrae la sonda).

Configurar sensor BLTouch / 3DTouch con Babystepping en Marlin 2.0.3 (MKS Gen v1.4)

Esta conexión es similar, pero deberás asegurarte que tienes el jumper activado, así nos aseguraremos de que le lleguen al sensor de nivelación los 5v. necesarios (muy importante).

Comprobaciones previas!!!

  • Comprobación del sensor:
    • Revisar la parte servo, la parte servo funciona con el grupo de tres cables (rojo/amarillo/negro). Para comprobar si funciona correctamente lo aconsejable es desde la pantalla ir a Configuración donde encontraremos un menu para gestionar el BlTouch, en este caso tenemos que comprobar que podamos desplegar y recoger el pin. Si esto no funciona deberemos revisar el cableado o en el caso de placas antiguas la definición del SERVO en Marlin.
      También se puede hacer esta parte con gcode desde un terminal:
      M280 P0 S10 ; despliega el pin
      M280 P0 S90 ; recoge el pin
      M280 P0 S120 ; Autotest – despliega y recoge el pin hasta que ponemos el dedo o lanzamos el comando posterior
      M280 P0 S160 ; Elimina estado ALARMA
    • Comprobación de la parte endstop, la parte endstop funciona como cualquier endstop y esta gestionado por el par de cables negro y blanco que normalmente colocamos en el puerto PROBE o Z-STOP/Z-MIN de la placa. Dependiendo de las versiones de Marlin debera colocarse en uno o en otro si esta soportada la placa o no completamente.
      Para comprobar que funcione correctamente y tal como hicimos en el paso anterior mediante el menu o comandos desplegamos y recogemos el pin y comprobamos con M119 que el enstop cambia de TRIGERED (pin recogido) a OPEN (pin desplegado) correctamente.
  • Activar Modo Debug nivelado
    El modo debug para el nivelado se tiene que activar solo en caso de problemas con el proceso de nivelación si no es el caso puedes obviar este punto.
    Cambios en Marlin (configuration.h):
    #define DEBUG_LEVELING_FEATURE // Permite obtener información detallada en caso de problemas
    Comandos gcode para habilitar/deshabilitar el modo Debug:
    M111 S38 ; LEVELING, ERRORS, INFO
    M111 S0 ; Disable debugActivar
  • Test de precisión
    Permite habilitar un menú dentro del LCD para realizar tests de repetitibilidad y mostrar el rango de precisión del sensor:
    #define Z_MIN_PROBE_REPEATABILITY_TEST
  • Verificar ajuste del pin para errores aleatorios en lecturas
    Se pueden dar dos casos que el pin este demasiado junto al servo que imanta el mismo y evite que caiga o que el imán del pin no tenga la suficiente tracción por el estado de su imán para que el servo lo pueda imantar y retraer.
    En estos casos mediante el tornillo central podremos ajustar ambos problemas en la medida de lo posible.
    Puedes ver el siguiente video donde puedes ver como es el proceso.
    Por otro lado en el caso que el pin este totalmente sin imán puedes extraerlo y dejarlo 24h junto con otro imán para que recupere sus propiedades… en caso que ninguna de estas soluciones funcione puedes solicitar un repuesto del pin o del propio sensor.

Configurando el desfase (Z-Offset)

Ajuste Z-Offset usando el wizard/asistente

Desde la version 2.0.7.2 Marlin incluye un nuevo asistente para encontrar el valor Z Offset de una forma sencilla. Para activarlo iremos a configuration_adv y habilitaremos:

#define PROBE_OFFSET_WIZARD // 3DWORK MEJORAS

Con esto dispondremos de un nuevo menu en Configuración/Avanzado/Probe Offsets

Ajuste fino del Z-Offset con BabyStepping durante la impresión

Guía completa para configurar Marlin 2.0.x desde cero y no morir en el intento

Ya para acabar, y al haber activado BabyStepping dispondrás de un menú propio llamado Desfase. Podrás acceder a él antes del proceso de impresión y durante (si, me has leído bien) el proceso de impresión pulsando el botón dos veces en tu display.

De esta forma, y en tiempo real, podrás ajustar el desfase mientras te está haciendo los primeros perímetros de impresión, y dejar un ajuste perfecto. A mi esto me ha salvado alguna que otra impresión, la verdad es que es bastante útil.

Una vez que hayas efectuado la configuración del desfase, no olvides guardar el valor en memoria. Deberías tener una opción llamada Grabar en EEPROM, siempre y cuando le hayas dado soporte en tu Marlin. Si no la encuentras, puedes como alternativa ejecutar el comando M500 (Save settings). Este almacenará toda la configuración actual en tu EEPROM de forma permanente.

Script de inicio (Comandos GCODE)

Deberás añadir la función de autonivelación al principio de cada impresión. Eso se hace muy fácilmente configurándose en tu Slicer favorito (Repetier, Simplify3D, Cura, etc.). Simplemente es añadir el comando G29 para nivelar vuestro cabezal antes de cada impresión.

Os dejo un ejemplo de mi script de inicio en cada impresión:

G28          ; Efectuar HOME en todos los ejes
G29          ; Comando de nivelar cabezal

En todo caso os aconsejamos revisar la Guia de Calibración Inicial ya que contiene un script de inicio completo con todas las opciones completas.

Y bueno, si has leído hasta aquí te mereces un gallifante, te felicito. No sería de extrañar que me hubiera dejado algo en el tintero, si es así no dudes en notificarlo en los comentarios al final del artículo Instalar y configurar BLTouch / 3DTouch en Marlin 2.0.3 (MKS Gen v1.4 y RAMPS).

Por último recordarte, como siempre, que puedes encontrarnos en nuestro canal de Telegram lleno de trastornados por la impresión 3D en el siguiente enlace, o en nuestras redes sociales (no olvides seguirnos si te gusta la web).

Otras guías de impresión que pueden interesarte en 3DWork.io: