Este es mi primer tutorial en SpainLabs y ya sabeis, no me hago responsable de los desperfectos que pueda causar alguna de las técnicas aqui comentadas.
Si tienes algun comentario no dudes en hacerlo así mejoraremos el tema.
Al lio!
Tabla de contenidos
• Historia y enlaces de interés
• Donde comprarlo (original y copia)
• Diferencias original y copia
• Instalación en el carro X
• Pruebas, ¿funciona mi bltouch?
arduino-bltouch-test-@mashirito-v1.zip (Tamaño: 1.89 KB / Descargas: 1,029)
• Instalación en la mega2560 y RAMPS
• Modificaciones en Marlin
marlin-RC8-bltouch-@mashirito-ny-2017.zip (Tamaño: 1.28 MB / Descargas: 1,127)
Marlin_RC5-autolevel-rerepack-@mashirito.zip (Tamaño: 966.47 KB / Descargas: 457)
marlin-RC8-bltouch-@mashirito-20170117.zip (Tamaño: 1.28 MB / Descargas: 690) Con la EEPROM, el debug de autoleveling y el test de repitibilidad activados.
• Pruebas
Historia y enlaces de interés
bltouch es un sensor desarrollado en 2015 por Paris K. Lee de Antclabs en Korea del Sur (la tierra del kimchi!) y que aparecio en indiegogo.com por primera vez.
1ª campaña
2ª campaña
Google community
bltouch esta basado en la detección de un sensor de efecto hall (magnético) sobre un perno metálico que se desplaza gracias a un electroimán y a la gravedad.
El desarrollo fue realizado para que fuera compatible con los sensores de autoleveling tipo servomotor y final de carrera, facilitando así su instalación y uso.
bltouch mejora sustancialmente las mediciones de posición de la cama, ya que no tiene partes mecánicas complejas, ni depende del material de cama caliente que se utilice ni de la dilatación ni contracción de la misma debido a la temperatura.
Antclabs proporciona una tabla compartiva de precisión, repetibilidad y consumo:
Gran cantidad de impresoras comerciales utilizan bltouch para la autocalibración.
Yo estoy encantado con el sensor y la tarea de imprimir se ha vuelto mas sencilla desde que instale bltouch a mediados de 2016.
Donde comprarlo
Por unos 46€ podemos adquirir el sensor original directamente a antclabs por ebay (la verdad que no es barato y parece haber subido de precio):
http://www.ebay.es/itm/BLTouch-Auto-Bed-...Sw9IpXxne9
Edit al final del post
Gracias a @xircom por unos 17€ podemos adquirir alguno de los clones en
https://es.aliexpress.com/item/Free-Shipping-3D-Printer-Auto-Leveling-Sensor-Auto-Leveling-3D-Printer-TOUCH-Free-Shipping/32763693241.html
siguiendo el proceso que explica en:
http://www.spainlabs.com/foros/tema-Ofer...on-bltouch
Comprar el original o el clon de geetech -> El clon con el que he hecho las pruebas es de otro chino, en conreto este.
En principio los clones funcionan correctamente y son compatibles totalmente con el original.
Si por el motivo que fuera no funcionara no dudéis en poneros en contacto con el vendedor, por lo habitual os enviará uno nuevo.
Diferencias original y copia
No existen diferencias electrónicas en el output generado por uno y otro sensor.
El ruido en la captura de potencia es debido a los motores y demás electrónica, la segunda captura se ha realizado con el sensor totalmente aislado de la electronica.
Detección, sensor original:
Detección, sensor copia:
Instalación en el carro X
Ya que la posición respecto a X e Y la introduciremos en el firmware para la instalación física únicamente debemos tener en cuenta la distancia de la punta del sensor con la punta de nuestro nozzle, esta tiene que ser de unos 8mm tal como muestra la siguiente figura.
Existen diferentes carros, extrusores, y piezas que nos ayudaran a este cometido, ahí van algunas.
Pieza para ajustar el sensor con adaptadores mobiles http://www.thingiverse.com/thing:1765933
Un adaptador fijo y mobil para el Greg's (esta es mía!!!) http://www.thingiverse.com/thing:1496029
Un Adaptador para el E3D v6 http://www.thingiverse.com/thing:1747443
El carro entero para el extrusor titan con soporte para bltouch http://www.thingiverse.com/thing:1560625
Otro extrusor entero para el titan, con ventilador de capa http://www.thingiverse.com/thing:1543232
Soporte para hephestos www.thingiverse.com/thing:1846913
Pruebas, ¿funciona mi bltouch?
Ya que da un poco de palo cambiar firmware y conectar el sensor a nuestras placas de las impresoras solo para probar si funciona, he desarrollado un pequeño programilla de arduino que nos permitirá probar el sensor un cualquier placa de arduino.
El programa utiliza la librería de servo controles de arduino para configurar la señal de control del sensor y el commandLine de basilfx para pasar comandos, este ultimo lo podéis descargar de https://github.com/basilfx/Arduino-CommandLine.
Por lo habitual necesitaremos alimentar externamente el sensor ya que un arduino conectado directamente al USB esta en el limite de consumo en el momento que el electroiman del sensor se desconecta. En el momento de desconexión de la bobina se inducen corrientes elevadas en la alimentación que harán que nuestro arduino se reinicie.
Si nuestro sensor funciona perfectamente conectado directamente al arduino, este paso no será necesario.
Para la alimentación podemos utilizar una fuente de alimentación externa o ATX de PC o un 7805 o un lm317 o cualquier dispositivo que nos proporcione 5V.
Un 7805 es lo mas sencillo, además es probable que lo necesitemos para alimentar el dispositivo en nuestras máquinas.
Para sistemas con lógicas de 3.3V deberemos añadir una resistencia de 240ohm, por lo habitual el vendedor nos enviará una junto con el sensor.
Con todo, el montaje con un arduino nano quedaría de la siguiente forma:
Podemos ver los comandos permitidos enviando “help” a la consola serie:
El modo de funcionamiento del terminal serie es "Both NL & CR".
Podemos enviar el comando test para probar que funcione correctamente y despues rt para sacar el embolo y ht para meter el embolo.
Cuando el embolo esta fuera si tocamos con el dedo, el sensor detectara contacto y se encenderá el led (PIN 13) del arduino.
arduino-bltouch-test-@mashirito-v1.zip (Tamaño: 1.89 KB / Descargas: 1,029)
Instalación en la mega2560 y RAMPS
El sensor deberá conectarse a los pins de servo de nuestra RAMPS por un lado y a la entrada del final de carrera zmin por el otro, el conexionado se muestra en la imagen.
Tal y como se ha comentado anteriormente es probable que necesitemos alimentarlo externamente, en este caso el led del sensor parpadeará o el arduino se reiniciará, esto ultimo podeis identificarlo en la pantalla de LCD.
En principio conectado el jumper de 5V de la RAMPs (tal y como muestra la figura) deberíamos tener suficiente para alimentar el sensor, en mi caso no si las dos RAMPS y MEGAS que he probado están rotas, pero por mucho que conecte el jumper... el sensor no va ni a tiros, además algunas veces parpadea y algunas veces el led esta encendido y únicamente se reinicia el arduino. La solución alimentar con un regulador externo.
Para alimentar el sensor únicamente debemos proporcionar 5V al cable rojo y masa al cable marron, dejando el cable naranja conectado tal y como se muestra en la imagen.
Si finalmente vamos a utilizar un 7805 para convertir la tensión de nuestra fuente de alimentación de 12V a 5V aseguraros de añadir un par de condensadores a Vin y Vout tal y como recomienda el fabricante.
Modificaciones en Marlin
Llega el momento de hacer las modificaciones pertinentes para que marlin-RC8 funcione con el bltouch.
Activamos el sensor BLTOUCH descomentando la linea
Configurar los offsets X, Y y Z, estos dependerán de donde tengamos posicionado nuestro sensor.
En mi caso utilizando el greg's wade extruder y con el sensor posicionado a la derecha del nozzle tal y como muestra la figura:
Los offsets quedarian tal que asi:
Si por ejemplo lo tenéis igual que yo pero a mano izquierda, el offset de Y deberá ser negativo.
Si el sensor esta demasiado pegado a la cama es probable que entre en modo error (led del sensor parpadea) cuando se hace la autocalibración.
Podemos incrementar la distancia del sensor entre prueba y prueba modificando:
Donde:
Z_CLEARANCE_DEPLOY_PROBE es la distancia entre la punta y la cama al inicio, al final de la calibración y al hacer homming de Z.
Y Z_CLEARANCE_BETWEEN_PROBES es la distancia que se tomará entre los diferentes puntos de calibración.
Finalmente para ajustar el offset de z (Z_PROBE_OFFSET_FROM_EXTRUDER), podemos utilizar el comando m851 z <valor deseado>, ejemplo
m851 z -1.1;
Con el comando:
m500; almacenaremos el valor en EEPROM.
Recomiendo empezar con valores cercanos al 0 o al -1 e ir bajando progresivamente a -1.1, -1.2... para no romper nada.
Tened cuidado con este paso!
Activar el tipo de autoleveling que queremos para nuestra maquina, en mi i3steel con cama cuadrada es el modo “LINEAR”:
Seleccionar el numero de puntos que se tomarán para calcular la desviación del plano, por defecto este viene configurado a 2, lo que realizará 4 mediciones una en cada esquina de la cama.
Yo lo configuro a 3, lo que hará que se tomen 9 puntos de referencia en el calculo del plano.
PUNTO critico!!!!
Configurar los limites donde el sensor puede llegar, estos dependen de las dimensiones de la cama y de los offsets del sensor, por ejemplo:
Las dimensiones de mi cama están definidas con:
Los offsets del sensor con:
En este caso y para que el sensor no intente hacer pruebas fuera del área accesible los limites que yo configuro son:
De esta forma se cumple:
LEFT_PROBE_BED_POSITION - X_PROBE_OFFSET_FROM_EXTRUDER >= XMIN
RIGHT_PROBE_BED_POSITION - X_PROBE_OFFSET_FROM_EXTRUDER <= XMAX
FRONT_PROBE_BED_POSITION - Y_PROBE_OFFSET_FROM_EXTRUDER >= YMIN
BACK_PROBE_BED_POSITION - Y_PROBE_OFFSET_FROM_EXTRUDER <= YMAX
Si no cumplimos con los anteriores requisitos, arduino nos dará un error de compilación, del estilo:
Con esto hemos terminado las modificaciones en el marlin, os dejo un par de marlins RC5 y RC8 para que modifiquéis los mínimos parámetros y lo pongais a funcionar.
marlin-RC8-bltouch-@mashirito-ny-2017.zip (Tamaño: 1.28 MB / Descargas: 1,127)
Marlin_RC5-autolevel-rerepack-@mashirito.zip (Tamaño: 966.47 KB / Descargas: 457)
marlin-RC8-bltouch-@mashirito-20170117.zip (Tamaño: 1.28 MB / Descargas: 690) este ultimo con la EEPROM, el debug de autolevel y test de repitibilidad activados.
Pruebas
Preparados para probar el nuevo sensor.
Con el comando g28 haremos homming de X y de Y y el extrusor se posicionará en el centro de la cama para hacer homming de Z.
Con el comando g29 haremos el autoleveling con lo que marlin calculará el plano de desviación que deberá aplicar cuando se realice la impresión.
De este modo deberemos añadir los comandos g28 y g29 en nuestro fileteador para que éste se ejecute al inicio antes de empezar la impresión.
Yo utilizo slic3r así que en la pestaña “printer settings” añado:
Si en durante su operación el led del sensor se queda parpadeando, deberemos resetearlo con el comando:
m280 p0 s160;
Finalmente podemos ejecutar el autotest del sensor con el comando:
m280 p0 s120;
Podemos activar los mensajes de depuracion del autolevel con el comando:
M111 S32;
El output que obtendremos es bastante duro asi que paciencia al analizarlo.
Para realizar pruebas de repetibilidad tenemos el comando M48 como se describe en https://github.com/MarlinFirmware/Marlin/wiki/M48, por ejemplo:
M48 P4 X100 Y100 V2 E L2;
El output que obtendremos sera del estilo:
Espero que sea de ayuda.
Saludos y buen forro
P.D. Agredecimientos a @dumbilol por la revisión y comentarios.
Edit: Por fin tengo el sensor de trianglelab!!
Y tiempo para postear los resultados.
Pues eso, aquí paso el análisis que he hecho, primero de todo comentar que el output no es igual que el original ni el clon de geetech.
Como podéis ver en la imagen el sensor da una salida de nivel alto cuando se hace release del perno, además cuando el touch detecta por contacto, el pulso generado no es ni por asomo 5ms.
Comentar que es normal tener problemas para la detección con el sensor porque tiene doble flanco de subida o de bajada para cada detección.
Me he puesto en contacto con el chino para comentarle que las especificaciones que envía juntamente con el sensor no tienen nada que ver con el funcionamiento real del mismo (son para despistar).
Tela con el chino, me ha dicho que no hay intención de solucionarlo. Yo creo que es más fácil programarlo bien que lo hay ahora o los los hacks necesarios para hacerlo funcionar con el marlin.
Me ha pasado un pdf con los cambios necesarios para hacerlo funcionar con marlin RC7 y RC8. Aquí lo tenéis
TL-touch_firmware_settings1.pdf (Tamaño: 617.37 KB / Descargas: 1,490)
Alterantivamente podéis utilizar un arduino para gestionar la salida y hacerla compatible con el original o reprogramar el atiny que lleva dentro, opciones un poco mas complejas.
Espero que sea de ayuda para todos los que teneis problemas.
Saludos!
Si tienes algun comentario no dudes en hacerlo así mejoraremos el tema.
Al lio!
Tabla de contenidos
• Historia y enlaces de interés
• Donde comprarlo (original y copia)
• Diferencias original y copia
• Instalación en el carro X
• Pruebas, ¿funciona mi bltouch?
arduino-bltouch-test-@mashirito-v1.zip (Tamaño: 1.89 KB / Descargas: 1,029)
• Instalación en la mega2560 y RAMPS
• Modificaciones en Marlin
marlin-RC8-bltouch-@mashirito-ny-2017.zip (Tamaño: 1.28 MB / Descargas: 1,127)
Marlin_RC5-autolevel-rerepack-@mashirito.zip (Tamaño: 966.47 KB / Descargas: 457)
marlin-RC8-bltouch-@mashirito-20170117.zip (Tamaño: 1.28 MB / Descargas: 690) Con la EEPROM, el debug de autoleveling y el test de repitibilidad activados.
• Pruebas
Historia y enlaces de interés
bltouch es un sensor desarrollado en 2015 por Paris K. Lee de Antclabs en Korea del Sur (la tierra del kimchi!) y que aparecio en indiegogo.com por primera vez.
1ª campaña
2ª campaña
Google community
bltouch esta basado en la detección de un sensor de efecto hall (magnético) sobre un perno metálico que se desplaza gracias a un electroimán y a la gravedad.
El desarrollo fue realizado para que fuera compatible con los sensores de autoleveling tipo servomotor y final de carrera, facilitando así su instalación y uso.
bltouch mejora sustancialmente las mediciones de posición de la cama, ya que no tiene partes mecánicas complejas, ni depende del material de cama caliente que se utilice ni de la dilatación ni contracción de la misma debido a la temperatura.
Antclabs proporciona una tabla compartiva de precisión, repetibilidad y consumo:
Gran cantidad de impresoras comerciales utilizan bltouch para la autocalibración.
Yo estoy encantado con el sensor y la tarea de imprimir se ha vuelto mas sencilla desde que instale bltouch a mediados de 2016.
Donde comprarlo
Por unos 46€ podemos adquirir el sensor original directamente a antclabs por ebay (la verdad que no es barato y parece haber subido de precio):
http://www.ebay.es/itm/BLTouch-Auto-Bed-...Sw9IpXxne9
Edit al final del post
Gracias a @xircom por unos 17€ podemos adquirir alguno de los clones en
https://es.aliexpress.com/item/Free-Shipping-3D-Printer-Auto-Leveling-Sensor-Auto-Leveling-3D-Printer-TOUCH-Free-Shipping/32763693241.html
siguiendo el proceso que explica en:
http://www.spainlabs.com/foros/tema-Ofer...on-bltouch
Comprar el original o el clon de geetech -> El clon con el que he hecho las pruebas es de otro chino, en conreto este.
En principio los clones funcionan correctamente y son compatibles totalmente con el original.
Si por el motivo que fuera no funcionara no dudéis en poneros en contacto con el vendedor, por lo habitual os enviará uno nuevo.
Diferencias original y copia
No existen diferencias electrónicas en el output generado por uno y otro sensor.
El ruido en la captura de potencia es debido a los motores y demás electrónica, la segunda captura se ha realizado con el sensor totalmente aislado de la electronica.
Detección, sensor original:
Detección, sensor copia:
Instalación en el carro X
Ya que la posición respecto a X e Y la introduciremos en el firmware para la instalación física únicamente debemos tener en cuenta la distancia de la punta del sensor con la punta de nuestro nozzle, esta tiene que ser de unos 8mm tal como muestra la siguiente figura.
Existen diferentes carros, extrusores, y piezas que nos ayudaran a este cometido, ahí van algunas.
Pieza para ajustar el sensor con adaptadores mobiles http://www.thingiverse.com/thing:1765933
Un adaptador fijo y mobil para el Greg's (esta es mía!!!) http://www.thingiverse.com/thing:1496029
Un Adaptador para el E3D v6 http://www.thingiverse.com/thing:1747443
El carro entero para el extrusor titan con soporte para bltouch http://www.thingiverse.com/thing:1560625
Otro extrusor entero para el titan, con ventilador de capa http://www.thingiverse.com/thing:1543232
Soporte para hephestos www.thingiverse.com/thing:1846913
Pruebas, ¿funciona mi bltouch?
Ya que da un poco de palo cambiar firmware y conectar el sensor a nuestras placas de las impresoras solo para probar si funciona, he desarrollado un pequeño programilla de arduino que nos permitirá probar el sensor un cualquier placa de arduino.
El programa utiliza la librería de servo controles de arduino para configurar la señal de control del sensor y el commandLine de basilfx para pasar comandos, este ultimo lo podéis descargar de https://github.com/basilfx/Arduino-CommandLine.
Por lo habitual necesitaremos alimentar externamente el sensor ya que un arduino conectado directamente al USB esta en el limite de consumo en el momento que el electroiman del sensor se desconecta. En el momento de desconexión de la bobina se inducen corrientes elevadas en la alimentación que harán que nuestro arduino se reinicie.
Si nuestro sensor funciona perfectamente conectado directamente al arduino, este paso no será necesario.
Para la alimentación podemos utilizar una fuente de alimentación externa o ATX de PC o un 7805 o un lm317 o cualquier dispositivo que nos proporcione 5V.
Un 7805 es lo mas sencillo, además es probable que lo necesitemos para alimentar el dispositivo en nuestras máquinas.
Para sistemas con lógicas de 3.3V deberemos añadir una resistencia de 240ohm, por lo habitual el vendedor nos enviará una junto con el sensor.
Con todo, el montaje con un arduino nano quedaría de la siguiente forma:
Podemos ver los comandos permitidos enviando “help” a la consola serie:
El modo de funcionamiento del terminal serie es "Both NL & CR".
Podemos enviar el comando test para probar que funcione correctamente y despues rt para sacar el embolo y ht para meter el embolo.
Cuando el embolo esta fuera si tocamos con el dedo, el sensor detectara contacto y se encenderá el led (PIN 13) del arduino.
arduino-bltouch-test-@mashirito-v1.zip (Tamaño: 1.89 KB / Descargas: 1,029)
Instalación en la mega2560 y RAMPS
El sensor deberá conectarse a los pins de servo de nuestra RAMPS por un lado y a la entrada del final de carrera zmin por el otro, el conexionado se muestra en la imagen.
Tal y como se ha comentado anteriormente es probable que necesitemos alimentarlo externamente, en este caso el led del sensor parpadeará o el arduino se reiniciará, esto ultimo podeis identificarlo en la pantalla de LCD.
En principio conectado el jumper de 5V de la RAMPs (tal y como muestra la figura) deberíamos tener suficiente para alimentar el sensor, en mi caso no si las dos RAMPS y MEGAS que he probado están rotas, pero por mucho que conecte el jumper... el sensor no va ni a tiros, además algunas veces parpadea y algunas veces el led esta encendido y únicamente se reinicia el arduino. La solución alimentar con un regulador externo.
Para alimentar el sensor únicamente debemos proporcionar 5V al cable rojo y masa al cable marron, dejando el cable naranja conectado tal y como se muestra en la imagen.
Si finalmente vamos a utilizar un 7805 para convertir la tensión de nuestra fuente de alimentación de 12V a 5V aseguraros de añadir un par de condensadores a Vin y Vout tal y como recomienda el fabricante.
Modificaciones en Marlin
Llega el momento de hacer las modificaciones pertinentes para que marlin-RC8 funcione con el bltouch.
Activamos el sensor BLTOUCH descomentando la linea
Código:
#define BLTOUCH
Configurar los offsets X, Y y Z, estos dependerán de donde tengamos posicionado nuestro sensor.
En mi caso utilizando el greg's wade extruder y con el sensor posicionado a la derecha del nozzle tal y como muestra la figura:
Los offsets quedarian tal que asi:
Código:
#define X_PROBE_OFFSET_FROM_EXTRUDER 10 // 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 -1.70 // Z offset: -below +above [the nozzle]
Si por ejemplo lo tenéis igual que yo pero a mano izquierda, el offset de Y deberá ser negativo.
Si el sensor esta demasiado pegado a la cama es probable que entre en modo error (led del sensor parpadea) cuando se hace la autocalibración.
Podemos incrementar la distancia del sensor entre prueba y prueba modificando:
Código:
#define Z_CLEARANCE_DEPLOY_PROBE 10 // Z Clearance for Deploy/Stow
#define Z_CLEARANCE_BETWEEN_PROBES 8 // Z Clearance between probe points
Donde:
Z_CLEARANCE_DEPLOY_PROBE es la distancia entre la punta y la cama al inicio, al final de la calibración y al hacer homming de Z.
Y Z_CLEARANCE_BETWEEN_PROBES es la distancia que se tomará entre los diferentes puntos de calibración.
Finalmente para ajustar el offset de z (Z_PROBE_OFFSET_FROM_EXTRUDER), podemos utilizar el comando m851 z <valor deseado>, ejemplo
m851 z -1.1;
Con el comando:
m500; almacenaremos el valor en EEPROM.
Recomiendo empezar con valores cercanos al 0 o al -1 e ir bajando progresivamente a -1.1, -1.2... para no romper nada.
Tened cuidado con este paso!
Activar el tipo de autoleveling que queremos para nuestra maquina, en mi i3steel con cama cuadrada es el modo “LINEAR”:
Código:
#define AUTO_BED_LEVELING_LINEAR
Seleccionar el numero de puntos que se tomarán para calcular la desviación del plano, por defecto este viene configurado a 2, lo que realizará 4 mediciones una en cada esquina de la cama.
Yo lo configuro a 3, lo que hará que se tomen 9 puntos de referencia en el calculo del plano.
Código:
#define ABL_GRID_POINTS_X 3
PUNTO critico!!!!
Configurar los limites donde el sensor puede llegar, estos dependen de las dimensiones de la cama y de los offsets del sensor, por ejemplo:
Las dimensiones de mi cama están definidas con:
Código:
#define X_MAX_POS 180
#define Y_MAX_POS 155
#define Z_MAX_POS 150
Los offsets del sensor con:
Código:
#define X_PROBE_OFFSET_FROM_EXTRUDER 10 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER 0 // Y offset: -front +behind [the nozzle]
En este caso y para que el sensor no intente hacer pruebas fuera del área accesible los limites que yo configuro son:
Código:
// Set the boundaries for probing (where the probe can reach).
#define LEFT_PROBE_BED_POSITION 15
#define RIGHT_PROBE_BED_POSITION 170
#define FRONT_PROBE_BED_POSITION 0
#define BACK_PROBE_BED_POSITION 150
De esta forma se cumple:
LEFT_PROBE_BED_POSITION - X_PROBE_OFFSET_FROM_EXTRUDER >= XMIN
RIGHT_PROBE_BED_POSITION - X_PROBE_OFFSET_FROM_EXTRUDER <= XMAX
FRONT_PROBE_BED_POSITION - Y_PROBE_OFFSET_FROM_EXTRUDER >= YMIN
BACK_PROBE_BED_POSITION - Y_PROBE_OFFSET_FROM_EXTRUDER <= YMAX
Si no cumplimos con los anteriores requisitos, arduino nos dará un error de compilación, del estilo:
Con esto hemos terminado las modificaciones en el marlin, os dejo un par de marlins RC5 y RC8 para que modifiquéis los mínimos parámetros y lo pongais a funcionar.
marlin-RC8-bltouch-@mashirito-ny-2017.zip (Tamaño: 1.28 MB / Descargas: 1,127)
Marlin_RC5-autolevel-rerepack-@mashirito.zip (Tamaño: 966.47 KB / Descargas: 457)
marlin-RC8-bltouch-@mashirito-20170117.zip (Tamaño: 1.28 MB / Descargas: 690) este ultimo con la EEPROM, el debug de autolevel y test de repitibilidad activados.
Pruebas
Preparados para probar el nuevo sensor.
Con el comando g28 haremos homming de X y de Y y el extrusor se posicionará en el centro de la cama para hacer homming de Z.
Con el comando g29 haremos el autoleveling con lo que marlin calculará el plano de desviación que deberá aplicar cuando se realice la impresión.
De este modo deberemos añadir los comandos g28 y g29 en nuestro fileteador para que éste se ejecute al inicio antes de empezar la impresión.
Yo utilizo slic3r así que en la pestaña “printer settings” añado:
Si en durante su operación el led del sensor se queda parpadeando, deberemos resetearlo con el comando:
m280 p0 s160;
Finalmente podemos ejecutar el autotest del sensor con el comando:
m280 p0 s120;
Podemos activar los mensajes de depuracion del autolevel con el comando:
M111 S32;
El output que obtendremos es bastante duro asi que paciencia al analizarlo.
Para realizar pruebas de repetibilidad tenemos el comando M48 como se describe en https://github.com/MarlinFirmware/Marlin/wiki/M48, por ejemplo:
M48 P4 X100 Y100 V2 E L2;
El output que obtendremos sera del estilo:
Código:
M48 P4 X100 Y100 V2 E L2
M48 Z-Probe Repeatability Test
1 of 4: z: 1.755
2 of 4: z: 1.758
3 of 4: z: 1.756
4 of 4: z: 1.759
Finished!
Mean: 1.756938 Min: 1.755 Max: 1.759 Range: 0.003
Standard Deviation: 0.001351
Espero que sea de ayuda.
Saludos y buen forro
P.D. Agredecimientos a @dumbilol por la revisión y comentarios.
Edit: Por fin tengo el sensor de trianglelab!!
Y tiempo para postear los resultados.
Pues eso, aquí paso el análisis que he hecho, primero de todo comentar que el output no es igual que el original ni el clon de geetech.
Como podéis ver en la imagen el sensor da una salida de nivel alto cuando se hace release del perno, además cuando el touch detecta por contacto, el pulso generado no es ni por asomo 5ms.
Comentar que es normal tener problemas para la detección con el sensor porque tiene doble flanco de subida o de bajada para cada detección.
Me he puesto en contacto con el chino para comentarle que las especificaciones que envía juntamente con el sensor no tienen nada que ver con el funcionamiento real del mismo (son para despistar).
Tela con el chino, me ha dicho que no hay intención de solucionarlo. Yo creo que es más fácil programarlo bien que lo hay ahora o los los hacks necesarios para hacerlo funcionar con el marlin.
Me ha pasado un pdf con los cambios necesarios para hacerlo funcionar con marlin RC7 y RC8. Aquí lo tenéis
TL-touch_firmware_settings1.pdf (Tamaño: 617.37 KB / Descargas: 1,490)
Alterantivamente podéis utilizar un arduino para gestionar la salida y hacerla compatible con el original o reprogramar el atiny que lleva dentro, opciones un poco mas complejas.
Espero que sea de ayuda para todos los que teneis problemas.
Saludos!