3DTouch es un sistema de nivelación automática para impresoras 3D que puede medir las inclinaciones o variaciones de la superficie de impresión de una forma precisa y sencilla.
Es compatible con cualquier tipo de superficie: cristales, metal, etc. ya que a difrencia de otros sistemas funciona por contacto, lo cual es una gran ventaja frente a otros sensores capacitivos, inductivos y otros.
Este dispositivo cuenta con una sonda que recoge los datos de posición diferentes puntos de la superficie de impresión, de modo que puede calcular las desviaciones que ésta tiene y corregirlo durante la impresión.
En este post vamos a explicar cada paso necesario para configurar el sensor utilizando Marlin y placa Ramps. Mencionar que hay múltiples opciones para la configuración de este sensor, nosotros vamos a explicar las que estamos utilizando y consideramos más útiles.
Funciones principales:
- Funciona como si estuviera compuesto por un servo RC y un micro interruptor.
- Pequeño, ligero y fácil de ensamblar.
- Autoprueba al encenderse: el pin actúa dos veces, de forma que si hay algo que impide el libre movimiento del vástago o sonda, se mostrará una luz roja intermitente.
- Dispone de alarma LED: si encuentra un problema durante su funcionamiento la luz parpadeará.
- Gran precisión, de 0.005mm.
- Gran versatilidad en la configuración del muestreo.
Montaje
Dependiendo de cada extrusor, se podrá montar usando diferentes piezas que lo adapte, pero siempre debe instalarse perpendicular a la superficie.
En un montaje correcto, la altura de la sonda contraída debe quedar unos 2mm por encima de la altura de la boquilla.
Si se va a montar en nuestra P3steel de un extrusor, podéis utilizar esta pieza que lo adapta compartida en thingiverse.com:
https://www.thingiverse.com/thing:3403967
Precaución
Es importante probar bien el sensor antes de hacer homing o nivelar la plataforma. Una colocación o instalación incorrecta puede dañar la impresora.
Conexiones electrónicas
3DTouch tiene dos conexiones, una corresponde a la función de final de carrera de Z y la otra a la función de autonivelado.
Para realizar las conexiones, simplemente para cada cable o línea tenemos que preparar el cable con el conector dupont suministrado.
La conexión en la Ramps es la siguiente:
Como vemos, el cable negro y blanco (señal) se conecta en la posición del final de carrera de Zmin.
El otro cable, se conecta en la posición de Servo, con el orden del esquema (Señal, 5V, Tierra). Además, hay que colocar un jumper para que lleguen los 5V.
Modificaciones Marlin Firmware
Tenemos que cargar de nuevo el firmware con la configuración para nuestro 3DTouch.
Para configurar el sensor debemos modificar en Configuration.h de Marlin:
Asegurarnos de que el final de carrera Zmin esté habilitado:
#define USE_ZMIN_PLUG |
Habilitar la línea que asigna el PIN del sensor del final de carrera Zmin al sensor 3DTouch, de esta forma el sensor será también el final de carrera Zmin:
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN |
Ahora entramos en la configuración del 3DTouch. Vamos a poner las líneas que recomendamos activar con los valores que recomendamos como ejemplo o punto de partida, según en la impresora que se instale, puede necesitar otros valores, estos son sólo valores der referencia.
Habilitamos el sensor BLTouch (equivalente al 3DTouch)
#define BLTOUCH |
En esta línea elegimos el tiempo que tardará en tomar la lectura desde que saca la sonda, hemos puesto 50 milisegundos. Si con el uso el sensor se ensucia o deja de funcionar correctamente podemos modificar este valor:
#define BLTOUCH_DELAY 50 // (ms) Enable and increase if needed |
Las líneas para situar nuestro 3Dtouch con respecto a nuestro nozzle:
#define X_PROBE_OFFSET_FROM_EXTRUDER 22 // X offset: -left +right [of the nozzle] #define Y_PROBE_OFFSET_FROM_EXTRUDER 0 // Y offset: -front +behind [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle] |
En este caso de ejemplo el sensor estará a 22mm a la derecha de la boquilla, para cada modelo de impresora será diferente.
En las siguientes líneas asignamos cuanto queremos que contraiga la sonda dependiendo de en qué momento esté ejecutando el muestreo:
#define Z_CLEARANCE_DEPLOY_PROBE 9 // Distancia en mm que despliega o recoge la sonda en un primer sondeo #define Z_CLEARANCE_BETWEEN_PROBES 6 // Distancia en mm que despliega o recoge la sonda entres diferentes puntos de muestreo #define Z_CLEARANCE_MULTI_PROBE 3 // Distancia en mm que despliega o recoge la sonda en diferentes mediciones de un mismo punto de muestreo (cuando se habilita) #define Z_AFTER_PROBING 5 // Distancia en mm en la que se queda la sonda respecto a la superficie de impresión después del muestreo |
Elegimos el tipo de muestro que queremos: Bilinear:
//#define AUTO_BED_LEVELING_3POINT //#define AUTO_BED_LEVELING_LINEAR #define AUTO_BED_LEVELING_BILINEAR //#define AUTO_BED_LEVELING_UBL //#define MESH_BED_LEVELING |
Elegimos el número de puntos que queremos para el muestreo, en este caso 9:
#define GRID_MAX_POINTS_X 3 #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X |
En estas líneas, ponemos los límites para el muestreo, de manera que no realice la medición en la parte exterior de la superficie de impresión, donde puede encontrarse, por ejemplo, pinzas que sujeten el cristal:
#define LEFT_PROBE_BED_POSITION 25 #define RIGHT_PROBE_BED_POSITION 175 #define FRONT_PROBE_BED_POSITION 25 #define BACK_PROBE_BED_POSITION 175 |
Para que realice Z Safe Home, es decir, compruebe la posición 0 del eje Z en el centro de la superficie de impresión, debemos habilitar las siguientes líneas:
#define Z_SAFE_HOMING #if ENABLED(Z_SAFE_HOMING) #define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28). #define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28). #endif |
Opcionalmente, podemos habilitar una función rápida para el Babystepping o Desfase en Z. Habilitando esta línea, podremos acceder a esta función pulsando dos veces en el potenciómetro del LCD. Lo vemos en Configuration_adv.h:
#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z |
Añadir en gcode
Tenemos que añadir ciertos comandos a nuestros gcodes para ejecutar la nivelación correctamente:
G28 ; home global G29; nivela plataforma G1 Z5 F5000 ; eleva la boquilla G1 X-10 Y100 Z3 F5000; evita pinzas |
Con estos códigos, realizará un Home y realizará la autonivelación antes de empezar a imprimir.
Para más información sobre estos códigos visite:
http://marlinfw.org/docs/gcode/G028.html
http://marlinfw.org/docs/gcode/G029-mbl.html
http://marlinfw.org/docs/gcode/G000-G001.html
Comprobación del desfase en Z
Una vez empiece a imprimir, debemos ver si la altura del nozzle respecto a la cama es correcta.
De no serla, debemos ajustar el desfase en Z.
Para ello, pulsando dos veces el potenciómentro del LCD, si hemos activado esta función, entramos en la opción de Desfase en Z, ahí ajustamos el desfase. Y una vez terminada la impresión debemos Guardar en memoria.
11 Comentario(s)
Genial articulo y muy bien explicado!
Muchas gracias! =)
lo volveréis a tener en stock
Si, ya está en stock de nuevo :)
Por qué me viene con una resistencia el sensor? Gracias
Nuestro sensor no incluye ninguna resistencia externa.\r\nPor favor contacte con nosotros a través de: soporte@hta3d.com enviando el número de pedido y una foto de la duda para que podamos ver a lo que se refiere.
Lo puedo instalar en una artillery x1?
Este sensor se puede instalar muy fácilmente en cualquier impresora 3D, solo necesita la conexión de un servo y un final de carrera, y la mayoría de placas tienen estas conexiones disponibles.
He visto que en la artillery x1 se conecta en sustitución del lez, haciendo algún cambio de cableado en la placa, pero el Led tiene 4 pines y el 3d touch lleva 5 , se puede instalar? Quiero pediroslo y estar seguro q puedo instalarlo\r\nGracias
Las conexiones de este sensor son muy simples, es equivalente a un servo + un final de carrera, por lo que se puede instalar en la mayoría de impresoras 3D, pero no te puedo confirmar si en ese modelo concreto hay alguna incompatibilidad.
Muy buenas, voy a instalar este nivelador en mi P3steel con placa ramps 1.6+ y mi duda es donde colocar el jump para suministrar los cinco voltios, ya que en el ejemplo es una ramps 1.4.\r\nAdemás, ¿sería recomendable hacer alguna otra configuración en Marlin además de los parámetros indicados aquí. El firmware me lo he descargado de vuestra página para la P3steel 2.0.6.1?\r\nPor último, he visto que hay una nueva versión 2.0.7.2, ¿es una versión estable?\r\nMuchas gracias de antemano.\r\nUn saludo, David.
olvidaba indicar que es versión con husillos
Te recomiendo leer este artículo ya que básicamente es una actualización parcial a 3DSteel: https://www.hta3d.com/es/blog/tutorial-actualizacion-p3steel-3dsteel el jumper de los 5v de la Ramps 1.6+ ya viene montado está justo al lado del conector del motor del extrusor, saludos!
Hola en una 3D Platform 1000 con placa Ramps 1.4 tengo marlin pero las lineas para 3Dtouch no vienen creadas, simplemente agregando las lineas que indicas arriba con las medidas de la plataforma de impresion 1000*1000*500mm y lanzando el fimrware ya funcionaria? Gracias
Te recomendaría usar una versión de Marlin más actual, ya que si no tiene soporte para 3Dtouch, no funcionará aunque añadas esas líneas.
Un articulo estupendo, pero se me ha quedado un poco corto.
Tengo un problema que no se si va a ser resoluble.
Tengo el bltouch y una plac MKS Robin nano V1.2 .
Coloco el Bltouch en una posicion como se recomienda con la punta del sensor recogida que queda a 2 mm por encima del nnivel en Z del nozle(aunque he probado otras posiciones ) y me es igual, cuando estoy calibrando y voy bajando poco a poco ( de 0,1 mm ) hasta que se produzca el disparo del sensor y cuando este se produce , sube la varilla una vez y vuelve a bajar y se queda abajo y se enciende la luz roja parpadeante.
Le consulte al vendedor, y me recomendo actualizar el firmware del bltouch, ( pero no me dice cmo).
Tu sabes como se podria actualizar el firmware del sensor y si esto serviria para algo ?:
Muchas Gracias de antemano.
Cuando la luz parpadea es la indicación de un error. Ya sea mecánico o electrónico. Nuestros 3Dtouch no nos dan este tipo de problemas, ya llegan programados. Te recomendaría pedirle las indicaciones al fabricante para esa unidad en concreto.
mi sensor funciona ocasionalmente bien y luego no funciona estoy configurando sobre klipper y falla rotundamente cuando calibro la cama (No se pudo verificar que la sonda BLTouch esté levantada; reintentando)
Hola. Despues de seguir el tutorial encuentro que me da una serie de errores en CONDITIONALS_ POST.H refiiriendose a MESH_INSET del tipo MESH-MIN_X no declarado en este scope y muchos por el estilo. Me podrian orientar?
Parece que es un problema relacionado con el área que has configurado para el muestreo. Puedes contactar con nosotros indicando el número de pedido y el registro de errores completo para darte soporte personalizado si lo necesitas.
"To do this, by pressing twice the potentiometer of the LCD, if we have activated this function, we enter the option of Z Offset, there we adjust the offset. And once the printing is finished we must Save in memory." How to save this permanently? Please clarify.
Dejar un comentario