18-01-2022, 12:12 PM
(Última modificación: 18-01-2022, 12:28 PM por Simemart.)
Hola, como te indicaba en el otro post, la configuración de una CoreXY no es tan sencilla como la de una cartesiana normal, pues los movimientos de los ejes X e Y se consiguen actuando los dos motores al unísono: si utilizas una configuración normal, solo se moverá el motor del eje correspondiente al movimiento que ordenes, pero el carro de impresión no seguirá la dirección de dicho eje, pues en una CoreXY si se meve un motor y el otro está parado, el movimiento es en diagonal (se mueve en ambos ejes).
Para poder indicarte cómo debes configurar Marlin para tu máquina, se necesita saber varias cosas relativas a como está construida: modelo de placa (en tu caso has indicado que es una MKS GEN L V1.0), qué tipo de drivers incorpora (si son A4988, DRV8825, TMCxxxx, etc.), número de dientes de las poleas de los ejes X e Y, sistema de arrastre del eje Z (si son husillos, de qué tipo; si son varillas de rosca métrica, de qué diámetro), modelo de pantalla, final de carrera del eje Z (si es mecánico o un sensor).
Una vez se tengan todos esos valores, queda la tarea de configurar el firmware para que los ejes se muevan de forma correcta.
Para ello, lo primero es determinar qué tipo de Core es la máquina, si CoreXY o CoreYX, lo que está determinado por la posición de los ejes en la máquina.
Si no se quieren tener problemas de inversión de ejes en las piezas impresas, hay que posicionar los ejes y sus finales de carrera de forma que la máquina cumpla con el estandar: vista la máquina de frente (cual es el frente lo tenemos que decidir al construirla), el eje X debe ir de izquierda a derecha, el eje Y de delante a atrás y el eje Z de abajo a arriba, siendo siempre estas direcciones en sentido creciente: con esta disposición, el origen (punto 0) de los ejes X e Y estará situado en la esquina delantera izquierda del área de impresión y los finales de carrera habrá que configurarlos en el firmware para ello, dependiendo de donde estén situados físicamente.
Con eso fijado, si cuando los motores giran en sentidos contrarios se mueve el eje X y cuando lo hacen en el mismo sentido se mueve el Y, es una CoreXY y viceversa. El tipo de Core habrá que indicárselo al firmware definiendo el parámetro correspondiente.
Una vez fijado el origen, tendrémos que medir el volúmen de impresión máximo que permite la máquina y configurarlo en los parámetros correspondientes.
Hecho todo lo anterior, ya solo quedaría configurar el movimiento de los ejes: para el Z y el E no hay mucho problema, pues solo hay que verificar que lo hacen en el sentido correcto y sino cambiar la lógica del movimiento del eje en el firmware, pero para los ejes X e Y la cosa es algo más complicada, pues hay que combinar dicha lógica con la conexión de los motores en la placa.
En una CoreXY, la lógica siempre será contraria en los dos ejes (true-false o false true) y en una CoreYX será la misma (true-true o false-false): si con ella no se mueven en el sentido correcto, hay que intercambiar las conexiones de los motores en la placa y volver a probar con las dos posibles lógicas.
Bueeeeno, ya he conseguido que la impresora haga correctamente los homing, después de intentar cambiar todo tipo de parámetros en el arduino. Al final he ido a la opción más sencilla, que ha sido cambiar los cables tanto del endstop como los del motor paso a paso del eje X al Y, y viceversa. Ahora ya solo me falta el saber cómo una vez que la impresora hace el homing en las esquinas, se dirija automáticamente al centro de la cama caliente.
Gracias por adelantado por la información.
Si lo que preguntas es como hacer para que una vez hecho el homing en los ejes X e Y, vaya al centro de la cama para hacer el home del eje Z, solo tienes que configurar en Marlin el Z Safe Homming, para lo que hay que descomentar (quitar la // del comienzo) la línea #define Z_SAFE_HOMING: por defecto, Marlin viene configurado para hacerlo en el centro de la cama, siempre que se hallan configurado correctamente sus dimensiones y los offsets correspondientes.