Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Autolevel manteniendo Endstop Z configurado en Marlin
#1
Hola,

He estado trasteando para montar un sensor inductivo en mi P3Steel de HTA3D, he batallado bastante, primero colocando el endstop Z de 3 cables en serie con el sensor inductivo, técnicamente funcionaba pero no me convencía. Al final vi en mi Marlin RC7 la función para usar tanto el endstop Z como el sensor para autolevel. Aquí, lo podéis encontrar (a parte de en el propio Marlin), en Z Probe Options:

https://github.com/MarlinFirmware/Marlin...figuration

Básicamente es cambiar el pin D32 por el D19 que es el de la señal del Z Max endstop para el sensor que usemos. Me extraña que nadie haya comentado esta configuración y anden con "inventos" para usar ambos dispositivos (o no he buscado debidamente).

Ahora las dudas:

Resulta que el problema que tenía es que la impresora no respetaba el Z offset que le marcaba (M851+M500), siempre bajaba algo más hasta el punto de tocar cristal y no dejar salir el plástico fundido. Tengo el endstop 0.3mm más bajo del nivel de la cama caliente y claro, deduje que al hacer un homing definía el Z=0 a la altura del Z endstop (más bajo del nivel de la cama) y siempre bajaba buscando el Z=0 aunque en realidad nunca llegaba a activar el endstop así que realmente no sé por qué bajaba tanto, así que he modificado en Marlin:

Código:
#define MANUAL_Z_HOME_POS -0.3

-0.3 (antes 0) es la distancia que hay desde el home Z endstop hasta la posición ideal en la cama caliente, es decir, si subo 0.3mm el eje Z el nozzle queda a 0.1mm de la cama caliente, siendo esta posición Z=0. He configurado el Z offset desde el punto en que el sensor se activa hasta que el nozzle queda a 0.1mm con un folio, etc. No he tenido que usar nunca el código G92 para definir una altura en Z y ganar margen de ajuste ya que siempre he tenido recorrido de sobra hacia abajo y si no tenía tampoco me servía de nada G92, le impresora se lo pasaba por el forro y no bajaba más.

1-Según lo que he explicado lo he hecho bien? es así como tiene que configurarse?

Suponiendo que lo haya hecho bien:

2-Mi duda es... como el eje Z no bajará más allá de 0 en realidad el autolevel sólo sirve para cuando la cama caliente quede más alta y no más baja?
Me gustaría que no hubiera esa limitación, es decir, que fueran independientes totalmente, tanto el Z endstop como el autolevel y que una vez el sensor detecta la cama caliente al imprimir baje sólo lo definido por el offset (sea más allá de 0 o no dejando actuar el endstop cuando toque, sin más), sin tener que buscar el límite de Z=0 que es como lo tengo ahora.

3-Realmente medir sólo 4 puntos (uno en cada extremo) es suficiente? mi cama se abomba levemente por el centro, es usual? solución? con calibración tradicional con folio Marlin en su menú dejaba ajustar una pequeña compensación en 9 puntos (3 filas de 3 puntos) pero veo que desaparece con el autolevel.

4-Otro tema: Uso cristal de borosilicato y la cama caliente de aluminio pero ni con sensor inductivo de 4mm ni con sensor inductivo de 8mm me detecta la cama caliente (por muy poco, menos de 1mm), he comprobado en el datasheet del sensor de 8mm que el aluminio lo detecta con menor margen, así que he pegado en el cristal, en los 4 puntos de medición, un pequeño cuadrado de cinta de cobre adhesiva pero no puedo medir el centro, a ver que me podéis sugerir sin tener que usar sensores capacitivos que dicen que son menos fiables, estoy por ver otros modelos inductivos o medir en el centro de los extremos del cristal aunque no he mirado como añadir más puntos de medición.

5-En la prueba de impresión que he hecho he impreso 9 cubos, en realidad una "loncha" del famoso cubo XYZ, 3 filas de 3 "lonchas" y en las zonas frontales de la cama queda la impresión algo peor, más alejada de la base (y eso que ajusté con folio), así que no sé si realmente está compensando la distancia el autolevel, durante la impresion he visto moverse el eje Z mínimamente, como si el ajuste fuera casi perfecto, cosa que no es así. Tal vez no podía bajar más por ser el límite Z=0. Tal vez el "truco" sea ajustar la base por encima de 0 y así tener margen tanto hacia arriba como hacia abajo?

Quedo a la espera de que alguien me de una solución o me confirme que lo he configurado todo bien para tener tanto Z endstop como Sensor Autolevel.

Gracias de antemano.

Saludos.
Citar
#2
Que raro, nunca he oido eso de utilizar dos detectores para el eje Z... lo cierto es que no se que utilidad práctica tendría pero... no has valorado la posibilidad de en lugar de utilizar un sensor inductivo o capacitivo... usar un pequeño servo con un brazo impreso en 3D y un final de carrera mecánico acoplado al final y conectado al endstop Z?

Yo lo tengo así en mi prusa I3 y jamás he tenido problema alguno de calibración... y eso que utilizo una cama caliente de 200x300mm y solo hago mediciones en 4 puntos de la cama (y ni siquiera en los 4 extremos ya que a veces utilizo unos cristales de 200x200 que tengo de la anterior cama), nunca he tenido que hacer ninguna cosa rara para que el extrusor se ajustase a la altura correcta, y eso que he imprimido en todas las secciones de la cama caliente sin problema... lo configure una única vez con el offset Z entre la conmutación del final de carrera desplegado y el extrusor y no he vuelto a tocarlo en un año, y eso que suelo mover la impresora de sitio.

Evidentemente, en mis inicios de la impresión 3D tuve múltiples problemas de calibrado, pero desde que me anime a ponerle el final de carrera con el servo, no he tenido que tocarlo más.

Conforme al autocalibrado, este solo actúa durante las impresiones y si, se debería mover el eje Z continuamente para ir compensando el plano de impresión conforme se mueve el extrusor, mira que no tengas configurado que se te apaguen los motores del eje Z cuando no existe movimiento, pues puede darte problemas.

personalmente, aunque no te puedo dar respuesta a muchos apartados, creo que tienes un problema con tu detector, no debe detectarte bien la cama en x puntos y ha de bajar más o menos de lo que debe hasta detectar, causando que te calcule un plano incorrecto... esto con un final de carrera mecánico no te debería pasar siempre que no esté lleno de mierda el cristal.




Conforme a los pines, pues si, realmente tu puedes utilizar cualquier conexión de la ramps, incluso la de los finales de carrera para cualquier propósito, con poner el pin a -1 en las declaraciones puedes usarlo para lo que tu quieras, l oque ocurre es que mucha gente no lo sabe y busca inventos chinos para apañarselas. Viendo el código de marlin por encima se puede aprender mucho y comprender como funciona la impresora, algo que suele ser bastante útil en algunos casos.
Citar
#3
Hola Shellmer,

En realidad no uso dos detectores para Z al uso, digamos que separo; mantengo el Z endstop para homing y el sensor inductivo para autolevel. En caso de que fallara el sensor inductivo o algo tendría el Z endstop como medida de seguridad. Mi sensor inductivo es N.O. y si falla el eje Z seguiría bajando.

El autolevel mediante servo no dudo que sea efectivo si se da con un montaje adecuado pero considero mucho más óptimo el uso de un sensor inductivo o capacitivo.

El sensor creo que funciona bien, durante el autolevel en cuanto detecta para, el problema viene a la hora de imprimir, no respeta el Z offset y baja más de la cuenta, ahora no por que como he comentado he ajustado la distancia del nozzle respecto a la cama caliente (0.1mm) para que sea Z=0 y de ahí no baja más por lo visto, lo cual también supone un problema si ha de compensar algún desnivel, aunque para autolevel sí que baja hasta donde haga falta.

He dado con este parámetro:

Código:
#define Z_MIN_POS 0


que es el "Travel limit after homing", seguramente modificándolo consiga que baje más allá de Z=0 para compensar el posible desnivel cuando imprima, lo probaré a ver que tal.

Gracias por responder.

Saludos.
Citar
#4
Bueno, he hecho una prueba drástica, he puesto el cristal inclinado para confirmar que compensa la inclinación y sí, la compensa, la pieza no sale espléndida precisamente pero como prueba de que compensa el desnivel ha valido.

Así que deduzco que lo tengo todo bien y sólo me falta afinar la nivelación de la cama caliente con el ajuste del folio y los tornillos para que imprima óptimamente y a partir de ahí cualquier desnivel me lo compensará perfectamente, o eso espero.

He puesto (Travel limit after homing):

#define Z_MIN_POS -1 // ORIGINARIAMENTE 0

Por si al dejarlo en 0 impide correcciones negativas con -1mm podría bajar el eje Z más (el Z endstop está a -0,3mm), si alguien me puede aclarar si es necesario configurar este parámetro lo agradecería.

El siguiente paso será añadir si puedo puntos de medición intermedios hasta llegar a tener 8 puntos de medición en los extremos del cristal a excepción del centro por no poder por lo mencionado en el post inicial.

Agradecería a ver si alguien puede confirmarme si lo estoy haciendo bien

Saludos.
Citar
#5
Bueno a la espera que alguien me oriente actualizo diciendo que he descubierto que el autolevel lo hace pero no tiene en cuenta el offset, no lo hace ni siendo positivo ni negativo.

He toqueteado varias cosas sin éxito, con M851 y configurándolo en Marlin.

Saludos.
Citar
#6
Pues a quien le pueda interesar:

He actualizado a Marlin 1.1.0 RC8 y el offset por fin ha funcionado.


Saludos.
Citar
#7
(27-01-2017, 08:26 PM)nimio escribió: Pues a quien le pueda interesar:

He actualizado a Marlin 1.1.0 RC8 y el offset por fin ha funcionado.


Saludos.

buenas estaba navegando por las redes y acabe en tu post, a ver si me puedes ayudar tengo una prusa steel y la estoy actualizando le he aumentado la cama y queria ponerle autolevel con sensor de presion como el que te pongo el enlace
resim

y por mas que busco no encuentro o no di como poderlo activarlo ya que en el z tengo el endstop me podrias indicar como pusiste el tuyo ?
tengo marlin 1.1.8 y ramps 1.4

UnSAludo
Citar
#8
Hola josualo,

disculpa la tardanza, no me había dado cuenta que tenía respuesta a mi hilo xD.

Pues verás, debes buscar en Marlin en la pestaña Configuration.h la sección "Z Probe Options" y "Bed Leveling"

léete las explicaciones comentadas en el código que ayudan bastante, por otra parte decide donde conectar tu sensor, tal vez debas reasignar algún pin en la RAMPS en la pestaña pins_Ramps.h (o algo así) yo lo tuve que hacer y decirle que el pin para el sensor lo quería en Z endstop Max.

Si a estas alturas, desde que he respondido no lo has logrado míratelo un poco y me comentas y trataré de ayudarte.

Como comentario adicional diré que no sé como de buena idea son esos sensores por presión, parecen interesantes pero creo que implica tener siempre el nozzle limpio o calentarlo antes de medir ya que si quedan restos de filamento en la punta no dará medidas fiables.

EDITO: Ahora que recuerdo en la propia web de Marlin en la página principal hay un link sobre el Auto Level:

http://marlinfw.org/docs/features/auto_b...eling.html
http://marlinfw.org/docs/gcode/G029-abl.html

Saludos
Citar


Temas similares...
Tema Autor Respuestas Vistas Último mensaje
  ¿MKS Sbase + Marlin 2.0? 3Dsastre 4 120 Ayer, 12:11 PM
Último mensaje: 3Dsastre
  Prusa i3 Pro B Geeetech - Marlin 1.1.6 bugfix - Autolevel pablognu 8 2,038 10-11-2018, 09:01 PM
Último mensaje: shiryu55
  El marlin no me hace caso spa_sergio 10 1,335 05-11-2018, 01:17 PM
Último mensaje: Simemart
  Eje Z invertido al hacer homing + sensor de autolevel + Marlin 1.1.9 pepebky 7 289 18-10-2018, 08:25 PM
Último mensaje: Simemart
  Marlin 1.1.9 en Anet A8 PatogomaII 9 1,390 18-10-2018, 07:45 PM
Último mensaje: jhony85