Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Eje Z invertido al hacer homing + sensor de autolevel + Marlin 1.1.9
#1
Hola muy buenas a todos. Hace tiempo que leo el grupo aunque por suerte no he tenido problemas con mi impresora y no he tenido que pedirles ayuda.
Pero como todo algun dia cambia y bueno aqui estoy.
Tengo un sensor inductuvo desde hace tiempo y debido a algunas dificultades al instalarlo lo deje desactivado.
Ahora he decidido conectarlo y actualizar a Marlin 1.1.9 que segun he visto tiene muchas mejoras.
Conecte el sensor donde antes estaba el interruptor, cambie la configuracion del Marlin como explica el excelente video del compañero 3DCampy 3DEspaña.
Resulta ser que el eje Z al hacer homing funciona al reves de lo que deberia.
O sea al intentar hacer homing va hacia arriba y no hacia abajo. (La imprersora es una Prusa Steel). Luego al mover manualmente el eje funciona bien.
Los valores positivos de Z hacen subir el extrusor.
Si yo invierto el sentido del eje Z ahora el homing lo hace correctamente, pero al intentar mover el eje sigue moviendose hacia abajo con lo cual debo apagar la impresora para que no llegue al cristal.
He estado mirando y no pude encontrar la solucion. Incluso mi configuracion esta igual a este post https://www.spainlabs.com/foros/tema-Pro...rlin-1-1-9
Los Home estan todos en -1 (o sea el valor minimo).
Espero vuestros comentarios y aprovecho para enviarles un saludo.

Jose
Citar
#2
Hola, hay cuatro cosas que tienen que estar bien configuradas para que la impresora realice correctamente el "homing" de un eje (las indico en el orden en que se encuentran en el archivo Configuration.h): el conector que utiliza su final de carrera, su lógica, el sentido del movimiento de su motor y su dirección de "homing".
En este caso se trata del eje Z y se utiliza un sensor como interruptor de final de carrera.

Para el primer apartado, dado que el sensor está conectado en el Z_MIN, hay que tener descomentada la siguiente línea:
#define USE_ZMIN_PLUG

La lógica se configura en las siguientes líneas:
#define Z_MIN_ENDSTOP_INVERTING valor
#define Z_MIN_PROBE_ENDSTOP_INVERTING valor

siendo valor=false, si el sensor es NPN-NC o PNP-NO; valor=true, si es NPN-NO o PNP-NC. Realmente, para el "homing" solo se utiliza la primera linea, pero como vamos a utilizar el sensor también para realizar las mediciones del autolevel, hay que configurar también la segunda. Como estamos utilizando el mismo dispositivo para las dos cosas, los valores que se configuren deben ser idénticos en las dos líneas.

El sentido del movimiento se configura en la siguiente línea:
#define INVERT_Z_DIR valor
siendo valor, como siempre, false o true. Hay que poner el que haga que el eje se mueva en sentido negativo hacia el sensor.

Y, por último, dado que se utiliza el conector Z_MIN, la dirección del "homing" será:
#define Z_HOME_DIR -1

Configurado de esta forma y si el sensor funciona, la impresora debería hacer correctamente tanto el movimiento como el "homing" del eje Z.
Citar
#3
Hola Simemart,. Gracias por tu pronta respuesta.
Te respondo lo que pones arriba.

#define USE_ZMIN_PLUG ----------------------------------------> Esta descomentado o sea activado

#define Z_MIN_ENDSTOP_INVERTING valor ----------------- > Esta en true como los de los ejes X e Y y como estaba en el Marlin que funcionaba

#define Z_MIN_PROBE_ENDSTOP_INVERTING valor [b]------- > [/b]Esta en true como recomienda el tutorial

#define INVERT_Z_DIR valor [b]-----------------------------------> [/b]Esta en false. asi hace el homing correcto pero luego al querer subir el eje, va hacia abajo.
                                                                                                            En el codigo anterior estaba en true, que es donde funciona bien en modo normal, pero no hace el homing Z (El homing va hacia
                                                                                                            arriba y no hacia abajo)

#define Z_HOME_DIR -1 [b]---------------------------------------- > [/b]Esta en -1

Por lo que dice tu comentario arriba los ZMIN deberian estar en false para el sensor NPN que es el que tengo. Revisare esto y comento que ha sucedido.
Desde ya muchas gracias.
Saludos.

Jose
Citar
#4
Creo que debes volver a leer con calma mi respuesta.
Tiene que ser false si el sensor es NPN-NC o PNP-NO, pero lo más habitual es que sea NPN-NO y si es así, hay que poner true.
Para la dirección de giro del motor olvídate del "homing". Tienes que poner el valor que haga que se mueva la cama hacia el sensor cuando indicas movimientos negativos en ese eje.
Por lo que dices, parece que el valor correcto es true.
Si todo lo anterior está configurado como se indica, el "homing" lo tiene que hacer en la dirección correcta al ponerlo a -1. Sino, puede que el problema no sea de software.
Te recomiendo que, una vez hayas cargado el firmware, hagas un Restaurar memoria seguido de un Guardar memoria, no sea que no se estén cargando los nuevos valores.
Sería de gran ayuda una foto del sensor y un esquema de cómo lo tienes conectado, pero ya sé que va en contra de la norma minimalista que impera en las preguntas del foro.
Citar
#5
Gracias por tu preocupacion. Estoy bastante frustrado con esto. A ver te comento las pruebas que he hecho.
Parti de otro Marlin 1.1.9 limpio donde configure todo igual, solo que asumi que en vez del sensor tengo conectado el interruptor.
Ajustando todo lo pertinente, la impresora funciona de maravillas (Hablo del homing y movimientos del Z)
Vuelvo a cargarle el Marlin con el sensor haciendo algunos cambios y nada.
He mdoficado a false lo que me has dicho arriba.
El sensor es este: Sensor de Proximidad Inductivo NPN LJ12A3 4 Z/BX
y lo conecte asi https://cdn.shopify.com/s/files/1/0409/9...1475512107
La unica diferencia es que las resistencias son de 10 y 15 K en vez de 100 y 150K. Hay varios tutoriales que indican esos valores.
He medido con un multimetro y el interruptor indica 5V cuando se cierra (o sea es un NO) y el sensor tambien. Le acerco un objeto metalico y cambia de 0.17V a 4.93V y enciende el LED como que esta funcionando.
Algunas preguntas que pueden parecer muyyyyy tontas pero tal vez yo estoy confundido.
Al conectar el sensor a la RAMPS quito el interruptor y en ese mismo sitio lo conecto.
En Marlin hay una linea que dice que el probe esta conectado en el Zmin.
Alli cuando le doy home todos los ejes, deberia desplazar el X a la izquierda, el Y la cama todo atras y el Z ir bajando hasta que el sensor llega a su ajuste y alli calibra en la misma posicion varias veces y se sube a un valor de Z del Marlin (5 en mi caso). ¿Es esto correcto?.
Desde ya muchas gracias. Saludos

Jose
Citar
#6
Hola, pués si con el interruptor funciona correctamente, también lo tiene que hacer con el sensor si este último funciona como debe.
Porque no hay nada en Marlin que se configure distinto si es un interruptor o un sensor el que actúa como final de carrera. Sólo hay que poner bien la lógica que corresponda.
El sensor que indicas, según la referencia es NPN-NO, pero el comportamiento que indicas que has medido no se corresponde con eso. En algún sitio hay un error.
De todas formas, no te compliques con el tema de los tipos de sensores, cosa con la que parece estás un poco liado. Si quieres puedes mirar la segunda parte de mi tutorial sobre autolevel, donde explico todo esto.
Para solucionar tu problema solo tienes que comprobar cómo funciona el final de carrera, utilizando el ordenador para enviar comandos gcode a la impresora (con Pronterface, por ejemplo).
Lo primero, desconecta tanto el interruptor como el sensor y configura #define Z_MIN_ENDSTOP_INVERTING true.
Envía un comando M119 y comprueba que la respuesta es z_min: open. Si no es así, es que hay un problema en el circuito de control del final de carrera del eje Z en la placa.
En caso de que sea así, conecta de nuevo el sensor y sin estar activado envía de nuevo el comando: tendría que darte z_min: open de nuevo.
Si te da z_min: TRIGGERED, invierte la lógica y pon #define Z_MIN_ENDSTOP_INVERTING false.
Vuelve a probar si ya te da z_min: open estando el sensor desactivado.
Si es así, manda el comando con el sensor activado. Tiene que indicar z_min: TRIGGERED. Sino, es que no funciona como debe el sensor.
Cuando hayas conseguido que te de open con el sensor desactivado y TRIGGERED con él activado, pon la misma lógica en la línea #define Z_MIN_PROBE_ENDSTOP_INVERTING.
El resto de la configuración debe estar como te indiqué en la otra respuesta.
Aprovecho, como siempre, para recordar que para manipular todas las conexiones de la placa, es más que conveniente tenerla apagada.
Citar
#7
Hola Simemart. Queria comentarte que funcionó bien el sensor. Ahora estoy con los ajustes de altura y los puntos de medicion.
Resulta ser que tengo una cama de aluminio MK3 pero quiero seguir imprimiendo sobre cristal y he puesto sobre el mismo, 4 discos metalicos y debo ajustar donde hace las mediciones.
Pero por ahora voy avanzando y no tengo mas el problema de que no hacia la calibracion y luego de bajar demasiado no lo podia subir.
La causa del problema el la logica invertida del sensor. Al testear con M119 y el sensor me sin "sensar" me daba TRIGGERED.
Hice lo que tu me indicastes (invertirlo) y funcion. Quedo en "false".
Desde ya muchisimas gracias por tu ayuda y tu tiempo. Saludos

Jose
Citar
#8
Me alegro que hayas resuelto el problema.
Un saludo.
Citar


Temas similares...
Tema Autor Respuestas Vistas Último mensaje
  ¿MKS Sbase + Marlin 2.0? 3Dsastre 1 13 Hace 1 hora
Último mensaje: Nullz
  Prusa i3 Pro B Geeetech - Marlin 1.1.6 bugfix - Autolevel pablognu 8 2,016 10-11-2018, 09:01 PM
Último mensaje: shiryu55
  El marlin no me hace caso spa_sergio 10 1,323 05-11-2018, 01:17 PM
Último mensaje: Simemart
  Marlin 1.1.9 en Anet A8 PatogomaII 9 1,354 18-10-2018, 07:45 PM
Último mensaje: jhony85
  Problema autolevel con Marlin 1.1.9 klipendorf 3 785 07-08-2018, 06:15 PM
Último mensaje: Simemart