23-10-2024, 07:38 PM
(Última modificación: 23-10-2024, 07:39 PM por Rebolero.)
Buenas tardes:
Tengo una artillery X1 pero con la placa de una X2, el caso es que estoy intentando que me funcione el sensor de filamento y no hay manera. El sensor de filamento lo tengo conectado en el pin PA0 que en su día es donde estaba el final de carrera del eje z que no utilizo porque llevo un Bltocuh. Tengo activado en configuration.h el M600, le he bajado a 5mm para que me salte antes para no esperar tanto, antes lo tenía en 25mm y aparte de eso lo tengo puesto en LOW es decir que cuando no tiene filamento esta OPEN y cuando tiene esta en modo triggered. En pins, también he hecho alguna modificación en la carpeta STM32F4 dentro de la carpeta artillery ruby .h.
No se mas que podría añadir, lo que no he utilizado es el pullup, no se si haría falta o no, de momento no lo he activado.
Hola Sinemart, a ver si eres capaz de resolver este dilema, me está dando quebraderos de cabeza y que nadie sabe
Hola, unas preguntas para poder diagnosticar el problema:
- El sensor de filamento lo tienes conectado en PA0 pero, ¿has definido el parámetro FIL_RUNOUT_PIN con ese valor?
- ¿El sensor de filamento que estás utilizando es de tipo NO o NC?
- ¿Cómo estás imprimiendo, desde la tarjeta SD o desde el ordenador?
(23-10-2024, 07:38 PM)Rebolero escribió: Buenas tardes:
Tengo una artillery X1 pero con la placa de una X2, el caso es que estoy intentando que me funcione el sensor de filamento y no hay manera. El sensor de filamento lo tengo conectado en el pin PA0 que en su día es donde estaba el final de carrera del eje z que no utilizo porque llevo un Bltocuh. Tengo activado en configuration.h el M600, le he bajado a 5mm para que me salte antes para no esperar tanto, antes lo tenía en 25mm y aparte de eso lo tengo puesto en LOW es decir que cuando no tiene filamento esta OPEN y cuando tiene esta en modo triggered. En pins, también he hecho alguna modificación en la carpeta STM32F4 dentro de la carpeta artillery ruby .h.
No se mas que podría añadir, lo que no he utilizado es el pullup, no se si haría falta o no, de momento no lo he activado.
Hola Sinemart, a ver si eres capaz de resolver este dilema, me está dando quebraderos de cabeza y que nadie sabe
(23-10-2024, 10:25 PM)Simemart escribió: Hola, unas preguntas para poder diagnosticar el problema:
- El sensor de filamento lo tienes conectado en PA0 pero, ¿has definido el parámetro FIL_RUNOUT_PIN con ese valor?
- ¿El sensor de filamento que estás utilizando es de tipo NO o NC?
- ¿Cómo estás imprimiendo, desde la tarjeta SD o desde el ordenador?
Buenas noches Sinemart:
Tengo el Fil_Runout_Pin PA0, te pongo una imagen para que veas como lo tengo. Estoy imprimiendo desde la tarjeta SD o desde un pendrive USB. Y no se que tipo de sensor es el sensor de filamento de la artillery X1 o X2 que es lo mismo. No se si es muy importante y la verdad no se para que es, la historia es que lo he utilizado en modo LOW o en HIGH, es decir, como actua cuando entra filamento o se queda sin filamento. EL caso es que como lo tengo ahora mismo si le digo desde pronterface un M600 la máquina se para y pide cambio de hilo pero si le quito el filamento no lo hace. Esto todo lo he probado siguiendo unos pasos con la IA, no se si la he cagado mas o no pero he aprendido mucho. No encuentro por ningún lado si es NC o NO, ya lo siento.
Por lo que veo en esa captura, tienes un error en el pin, has puesto PA0S.
119 (24-10-2024, 11:40 PM)Simemart escribió: Por lo que veo en esa captura, tienes un error en el pin, has puesto PA0S.
Lo he corregido y lo he vuelto a compilar pero sigue igual cuando quito el filamento del sensor no se para. Pero el caso es que si hago un M119 me aparece de la siguiente manera con el filamento insertado en el sensor
Connecting...
Printer is now online.
>>> M119
SENDING:M119
Reporting endstop status
x_min: TRIGGERED
y_min: open
z_probe: TRIGGERED
filament: TRIGGERED
¿Y sin filamento que responde el comando M119? Porque si también da TRIGGERED, nunca se disparará el proceso.
(25-10-2024, 06:32 PM)Simemart escribió: ¿Y sin filamento que responde el comando M119? Porque si también da TRIGGERED, nunca se disparará el proceso.
A ver he cambiado a High y con filamento me sale así
SENDING:M119
Reporting endstop status
x_min: TRIGGERED
y_min: open
z_probe: TRIGGERED
filament: open
y sin filamento
SENDING:M119
Reporting endstop status
x_min: TRIGGERED
y_min: open
z_probe: TRIGGERED
filament: open
26-10-2024, 07:43 PM
(Última modificación: 26-10-2024, 07:59 PM por Simemart.)
Como se puede apreciar en esas respuestas, no hay cambio en el estado del pin cuando se activa el sensor, lo que puede ser debido a un sensor de filamento defectuoso o a un problema en el circuito de la placa que controla ese pin: tendrás que probar con otro conector, para ver si es un problema de la placa, por ejemplo con el conector UART: mirando la placa con los conectores de los motores hacia arriba, los tres pines de la derecha en ese conector son PA10, GND y 5V (supongo que tu placa será una Artillery Ruby v1.2).
P.S.: No me había dado cuenta que ese conector lo utiliza la pantalla TFT, así que no se puede utilizar para esto. Donde sí habría pines para utilizar sería en los conectores EXP, ya que están libres.
(26-10-2024, 07:43 PM)Simemart escribió: Como se puede apreciar en esas respuestas, no hay cambio en el estado del pin cuando se activa el sensor, lo que puede ser debido a un sensor de filamento defectuoso o a un problema en el circuito de la placa que controla ese pin: tendrás que probar con otro conector, para ver si es un problema de la placa, por ejemplo con el conector UART: mirando la placa con los conectores de los motores hacia arriba, los tres pines de la derecha en ese conector son PA10, GND y 5V (supongo que tu placa será una Artillery Ruby v1.2).
P.S.: No me había dado cuenta que ese conector lo utiliza la pantalla TFT, así que no se puede utilizar para esto. Donde sí habría pines para utilizar sería en los conectores EXP, ya que están libres.
Buenas tardes Sinemart, el caso es que el pin que comentas que en este caso sería el EXP1 no tiene los pines seguidos, habría que crimpar con pines separados unitarios y no tengo de eso porque si te fijas el GND y 5V son los dos primeros empezando desde la derecha teniendo los motores arriba y luego si quiero elegir otro pin de posicionamiento dice que el PB7,PB8 y PB9 están duplicados por lo que esos no los utilizariamos e hiriamos directamente al PB5. De todas formas me mosquea mucho que en Klipper el sensor funcionaba correctamente conectado al pin PA0 y ahora que lo he vuelto a pasar a Marlin no vaya de ninguna manera. Además de eso me he bajado algún que otro Marlin precompilado como los de Digant, Prezi y demás y mi Marlin está completamente igual que el suyo y dicen que funciona el Sensor de filamento. Ya no se que hacer, si me dices que lo conecte ahí la única manera que tengo es comprar pines unitarios de plástico, espero tu respuesta y muchas gracias porque estoy aprendiendo un montón.
El cambio de pin sería para solventar un posible problema con el PA0 en la placa, lógicamente no sería necesario si funcionase bien.
Por probar, puedes intentar quitar la asignación que se hace de ese pin en el archivo de pines de la placa, no sea que se esté produciendo algún solapamiento.
Además, es bastante raro que en dicho archivo se asignen los pines para MIN y MAX, cuando esa placa solo tiene un conector para cada final de carrera.
El archivo de pines se encuentra en \Marlin\src\pins\\stm32f4\ y se denomina pins_ARTILLERY_RUBY.h.
Las líneas donde se asignan esos pines son estas:
//
// Limit Switches
//
#if (X_HOME_DIR == 1)
#define X_MIN_PIN -1
#define X_MAX_PIN PA2
#else
#define X_MIN_PIN PA2
#define X_MAX_PIN -1
#endif
#if (Y_HOME_DIR == 1)
#define Y_MIN_PIN -1
#define Y_MAX_PIN PA1
#else
#define Y_MIN_PIN PA1
#define Y_MAX_PIN -1
#endif
#if (Z_HOME_DIR == 1)
#define Z_MIN_PIN PC2
#define Z_MAX_PIN PA0
#else
#define Z_MIN_PIN PA0
#define Z_MAX_PIN PC2
#endif
Como se puede ver, en el caso de los ejes X e Y solo se asigna un pin (MIN o MAX), lo que es lógico teniendo en cuenta que solo hay un conector; lo raro es que en el eje Z se asignen dos pines, uno el PA0 y otro el PC2, este último perteneciente al conector Probe (BL-Touch).
Puedes probar a poner el último Z_MIN_PIN a -1, a ver si eso desbloquea el funcionamiento del sensor de filamento, asignando al FIL_RUNOUT_PIN el PA0 y conectándolo en el final de carrera de Z.
(29-10-2024, 06:36 PM)Simemart escribió: El cambio de pin sería para solventar un posible problema con el PA0 en la placa, lógicamente no sería necesario si funcionase bien.
Por probar, puedes intentar quitar la asignación que se hace de ese pin en el archivo de pines de la placa, no sea que se esté produciendo algún solapamiento.
Además, es bastante raro que en dicho archivo se asignen los pines para MIN y MAX, cuando esa placa solo tiene un conector para cada final de carrera.
El archivo de pines se encuentra en \Marlin\src\pins\\stm32f4\ y se denomina pins_ARTILLERY_RUBY.h.
Las líneas donde se asignan esos pines son estas:
//
// Limit Switches
//
#if (X_HOME_DIR == 1)
#define X_MIN_PIN -1
#define X_MAX_PIN PA2
#else
#define X_MIN_PIN PA2
#define X_MAX_PIN -1
#endif
#if (Y_HOME_DIR == 1)
#define Y_MIN_PIN -1
#define Y_MAX_PIN PA1
#else
#define Y_MIN_PIN PA1
#define Y_MAX_PIN -1
#endif
#if (Z_HOME_DIR == 1)
#define Z_MIN_PIN PC2
#define Z_MAX_PIN PA0
#else
#define Z_MIN_PIN PA0
#define Z_MAX_PIN PC2
#endif
Como se puede ver, en el caso de los ejes X e Y solo se asigna un pin (MIN o MAX), lo que es lógico teniendo en cuenta que solo hay un conector; lo raro es que en el eje Z se asignen dos pines, uno el PA0 y otro el PC2, este último perteneciente al conector Probe (BL-Touch).
Puedes probar a poner el último Z_MIN_PIN a -1, a ver si eso desbloquea el funcionamiento del sensor de filamento, asignando al FIL_RUNOUT_PIN el PA0 y conectándolo en el final de carrera de Z.
Buenas de nuevo sinemart, yo lo tenía configurado de la siguiente forma, la cual no funcionaba, ahora lo he cambiado a la tuya y tampoco se para, te dejo aquí puesto como lo tenía al principio y como lo he puesto después como tu me has dicho, ninguna de las dos formas funciona, igual hay que dejarlo tal cual se ve ahí pero poniendo en -1 los PC2, bajo mi desconocimiento lo digo, a ver que piensas tu:
//
// Limit Switches
//
#if (X_HOME_DIR == 1)
#define X_MIN_PIN -1
#define X_MAX_PIN PA2
#else
#define X_MIN_PIN PA2
#define X_MAX_PIN -1
#endif
#if (Y_HOME_DIR == 1)
#define Y_MIN_PIN -1
#define Y_MAX_PIN PA1
#else
#define Y_MIN_PIN PA1
#define Y_MAX_PIN -1
#endif
#if (Z_HOME_DIR == 1)
#define Z_MIN_PIN -1
#define Z_MAX_PIN -1
#else
#define Z_MIN_PIN -1
#define Z_MAX_PIN -1
#endif
Ahora lo he puesto así:
//
// Limit Switches
//
#if (X_HOME_DIR == 1)
#define X_MIN_PIN -1
#define X_MAX_PIN PA2
#else
#define X_MIN_PIN PA2
#define X_MAX_PIN -1
#endif
#if (Y_HOME_DIR == 1)
#define Y_MIN_PIN -1
#define Y_MAX_PIN PA1
#else
#define Y_MIN_PIN PA1
#define Y_MAX_PIN -1
#endif
#if (Z_HOME_DIR == 1)
#define Z_MIN_PIN -1
#define Z_MAX_PIN PA0
#else
#define Z_MIN_PIN PA0
#define Z_MAX_PIN -1
#endif
La segunda forma es como creo que debería estar configurado el archivo, pero parece que no es ese el problema: yo lo dejaría así y buscaría por otro lado.
Por ejemplo, comprobaría que el sensor de filamento esté funcionando realmente, quizá sea él el que está fallando (aún no sé que sensor estás utilizando, si pones una foto te indicaré cómo puedes hacer la prueba)
(29-10-2024, 10:05 PM)Simemart escribió: La segunda forma es como creo que debería estar configurado el archivo, pero parece que no es ese el problema: yo lo dejaría así y buscaría por otro lado.
Por ejemplo, comprobaría que el sensor de filamento esté funcionando realmente, quizá sea él el que está fallando (aún no sé que sensor estás utilizando, si pones una foto te indicaré cómo puedes hacer la prueba)
Buenas tardes Sinemart me he metido en el canal de telegram de artillery y me comentan que para que el bltouch funcione en la artillery con Marlin hay que conectarlo a la TFT sino dicen que no funciona, solo funciona así cuando estás en Klipper. Voy a probarlo pero claro ahora me suscitan otras dudas y son las siguientes:
Todo lo modificado hasta ahora en PINS.h habría que dejarlo como estaba o se puede quedar así?
Lo alterado en Filanment runout pin en configuration h también habría que modificarlo?
Pues no sé si eso que comentan en ese canal se referirá a Klipper, pero con seguridad no se aplica a Marlin: de serie, la X2 trae conectado el sensor tipo BL-Touch en el conector de la placa y como es lógico, controlado por Marlin; es por eso que me extraña mucho la configuración que trae Marlin en el archivo de pines, pues el pin PC2 se lo asigna al sensor, por lo que no puede controlar uno de los dos finales de carrera del eje Z (MIN o MAX).
Como ya indiqué en mi anterior respuesta, yo dejaría el archivo de pins configurado como la segunda opción que pusiste en #11, de forma que se asigne siempre el pin PA0 al final de carrera del eje Z, pues es en ese conector donde se encuentra, sea el Z_MIN o el Z_MAX.
Sobre el problema con el sensor de filamento, quizá la causa sea la TFT: creo recordar que con las de BTT había que desactivar la función en la TFT si se quería controlar con la placa, aunque en este caso no existe esa función en el firmware de la TFT, pero sí la de cambio de filamento y quizá ahí se encuentre el problema.
|