This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Power_loss_Recovery en marlin 1.1.9
#1
Recientemente actualice la impresora marlin 1.1.9 y probe la opcion de Power loss recovery asi:
Código:
#define POWER_LOSS_RECOVERY
 #if ENABLED(POWER_LOSS_RECOVERY)
   #define POWER_LOSS_PIN   44     // Pin to detect power loss
   #define POWER_LOSS_STATE HIGH   // State of pin indicating power loss
 #endif
El problema es que al probarlo: desenchufando la impresora la deje unos 10 segundos y la volvi a enchufar, me pregunto si quería reanudar la impresión y al darle empezo a calentar pero en vez de seguir por donde iba volvio a comenzar la impresión encima de la otra.  Clap Meparto 
Alguien sabe porque me paso esto??
Tengo una arduino mega y una Ramps 1.4
Gracias por cualquier aporte
  Responder
#2
No soy experto, pero creo que debes configurar algo mas, la verdad yo también quiero esa opción en mi cr-10 pero no me he atrevido a compilar e instalarle el marlin, por ahí vi un video en youtube que explicaba como activar esa opción en marlin obvio estaba en ingles y creo que modificaba varias pestañas en el marlin, puedes buscar en youtube "Power_loss_Recovery in marlin" de seguro encontrarás como hacerlo bien, saludos
  Responder
#3
el power loss recovery inicial se implemento por primera vez en la 1.1.9... y funcionaba "como el culo"
luego todos los bugs y mejoras los pasaron para la 2.0.x bugfix y ahora funciona "regular"...

la implementacion solo por soft no va muy bien porque en muchas maquinas al irse la corriente, el Z cae un poco y eso la impresora no lo sabe,no sabe cuando a caido y al volver tras la reanudacion ai veces que queda despegado, otras queda muy junto...

tienen mucho que mejorar,, pero vamos lo tuyo fijo que es por estar en la 1.1.9, prueba la 2.0.x bugfix
  Responder
#4
ya lo pudo cuadrar? porque yo ya lo tengo funcionando perfectamente en la cr 10 Sonrisa
  Responder
#5
Buenas tardes amigo espero poder ayudarte con los que necesitas. primero para poder usar la opción de recuperación en la version1.1.9 debes hacer los siguiente:

1. no debes tener nivelación automaticam, ni mesh leveling, debido a que la impresora sube o baja en todo momento la boquilla y al momento de recuperar da siempre error.
2. una vez niveles de forma manual tu cama calente vas y haces lo siguiente:

vas a la funcion power_loss_recover.cpp buscas la la linea donde aparece:

strcpy_P(job_recovery_commands[ind++], PSTR("G92.0 Z2")); aqui es donde esta el Z2 colocas Z0 para que la impresora no suba 2mm
strcpy_P(job_recovery_commands[ind++], PSTR("G1 Z2")); al igual en esta linea colocas 0 en Z

luego te diriges mas abajo y buscas

dtostrf(job_recovery_info.current_position[Z_AXIS] +2, 1, 3, str_1); borras aca el +2 para que no suba 2 mm

Por ultimo vas al fiche ultralcd.cpp
busca esta linea que este escrita tal cual asi:

enqueue_and_echo_commands_P(PSTR("M420 S0\nG28 R0"

guardas todo y compilas y listo
  Responder
#6
Muchas gracias a todos ya funciona  Clap
  Responder
#7
Buenas noches, alguien sabria como puedo hacer esto en el power less?

cuando se recupera de la corriente y le digo que continue la impresion:

1. que caliente la cama.
2. que caliente el nozzle solo 130 grados. //para que le nozzle este caliente pero que no llegue a deformar la pieza.
3. que levante el eje z 5mm. //para separar el nozzle de la pieza.
4. que caliente el nozzle el total que le falta.
5. que haga el home y. //para que independientemente del volumen de la pieza no golpee con el extrusor al hacer home.
6. que haga el home x. //para que independientemente del volumen de la pieza no golpee con el extrusor al hacer home.
7. que haga el home z. //para que independientemente del volumen de la pieza no golpee con el extrusor al hacer home.
8. que vuelva a la z memorizada en la sd +5mm. //para asegurarse de que queda por encima de la pieza.
9. que vuelva a la x memorizada en la sd.
10. que vuelva a la y memorizada en la sd.
11. que la vuelva a la z memorizada en la sd. //para que se situe en el punto z donde deberia continuar.
12. que continue la impresion.

creo que seria la mejor modificacion que se le podria hacer al power loss en marlin 1.9, por favor si alguien sabe como se podria hacer esto me seria de mucha ayuda, muchas gracias a todos/as.
  Responder
#8
Hola @ramonpks, bienvenido al foro.
Lo primero decirte que la utilidad Power Loss Recovery (PLR), no funciona como sería deseable a no ser que se tenga un módulo de alimentación (mini SAI/UPS), que dé tiempo al firmware a colocar la impresora en un estado adecuado para la reanudación de la impresión: si solo la activas en el firmware sin más configuración, el estado de la máquina se guarda cuando cambia el valor de Z, es decir, en el cambio de capa, por lo que la reanudación se realiza reimpirimiendo la capa completa que se interrumpió.
Si para evitar eso, se configura que se guarde la información al procesar cada comando, la carga de trabajo es demasiado grande (sobre todo en la tarjeta SD).
En todo caso, dado que si se modificase como pides la versión 1.1.9, tendrías que cargarla de nuevo en la placa, puedes cargar la última versión (2.0.x-bugfix) que realiza casi todos los puntos que indicas, por lo menos los que son realmente necesarios y que son posibles en función de la disponibilidad del módulo SAI/UPS: eso sí, debes configurarla de forma apropiada.
  Responder
#9
(03-03-2022, 12:29 AM)Simemart escribió: Hola @ramonpks, bienvenido al foro.
Lo primero decirte que la utilidad Power Loss Recovery (PLR), no funciona como sería deseable a no ser que se tenga un módulo de alimentación (mini SAI/UPS), que dé tiempo al firmware a colocar la impresora en un estado adecuado para la reanudación de la impresión: si solo la activas en el firmware sin más configuración, el estado de la máquina se guarda cuando cambia el valor de Z, es decir, en el cambio de capa, por lo que la reanudación se realiza reimpirimiendo la capa completa que se interrumpió.
Si para evitar eso, se configura que se guarde la información al procesar cada comando, la carga de trabajo es demasiado grande (sobre todo en la tarjeta SD).
En todo caso, dado que si se modificase como pides la versión 1.1.9, tendrías que cargarla de nuevo en la placa, puedes cargar la última versión (2.0.x-bugfix) que realiza casi todos los puntos que indicas, por lo menos los que son realmente necesarios y que son posibles en función de la disponibilidad del módulo SAI/UPS: eso sí, debes configurarla de forma apropiada.

Hola buenas, muchas gracias por responder, se lo que dices con lo del SAI, sin embargo, he visto videos en los que conectan el pin 44 del ramos a 5vcc y les funciona, creo que sí el power loss puede escribir la posición donde está en cada momento en la tarjeta SD, también podrá escribir en caso de que note una caída de los 5vcc en el pin 44, estamos hablando de milisegundos y aunque los motores se queden parados esa caída de tensión en milésimas de segundo puede ser suficiente para grabar la posición de los ejes en la SD en el momento de falla de tensión, pero eso es algo que tengo que probar ya que no estoy seguro, por otro lado los cambios que propuse para el power loss son para cuando empiece la recuperación de la impresora, para cuando vuelva la luz, y el motivo de elegir la versión 1.9 bugfix de Marlin y no la 2.0 es porque vengo de una versión 1.0 que tenía mi impresora de casa y he estado viendo en foros y videos que dicen que para placa de 8 bits la versión 2.0 debería de prescindir de muchas cosas que tengo ahora activadas en Marlin y no me hace mucha gracia ya teniendo la versión 1.9 funcionando correctamente en mi impresora. Simplemente pregunté si alguien sabría hacer estas cosas porque creo que como yo habrá gente que le será útil el echo de mejorar el powerloss y creo que con esa configuración se quedaría fetén. Así mismo gracias por responder y si alguien supiera cómo hacer todo eso por favor me sería de gran ayuda, gracias a todos/as.
  Responder
#10
Con este tema del PLR hay bastante confusión de cómo funciona realmente y hay mucha información en Internet que no es del todo correcta.
Este sistema puede funcionar de muchas formas, aunque no todas realizan lo que promete la publicidad: para hacerlo, el sistema necesita guardar el estado actual de la impresión, de momento solo utilizando la tarjeta SD, de forma que se pueda reanudar la impresión interrumpida cuando vuelva la alimentación.
Esto se puede configurar de cuatro formas distintas: grabando la información cuando cambia la posición del eje Z (es la que viene configurada por defecto), en cada comando ejecutado, cuando transcurre un determinado periodo de tiempo o mediante el cambio del estado de un pin de la MCU.
En la práctica, solo esta última opción da los resultados buscados: la primera solo graba el estado al comenzar cada capa, por lo que al reanudar la impresión se vuelve a imprimir completa, lo que implica que se vuelva a imprimir parte de la misma si no se interrumpió justo en el comienzo; la segunda y la tercera imponen una carga de trabajo demasiado alta para las capacidades de proceso del conjunto MCU/lector.
Pero la opción del pin indicador, solo tiene sentido si existe algún dispositivo que detecte dicha pérdida e informe a la MCU y si hay una fuente de alimentación momentanea que facilite el tiempo suficiente al sistema para grabar la información en la tarjeta (las grabaciones en ella no se realizan en milésimas de segundo).
Si no existe ese dispositivo y se configura un pin para esa función, hay que configurarlo de forma que se detecte la pérdida de alimentación cuando pase a estado bajo (LOW), pues sino no habrá nadie que lo ponga en alto (HIGH) en ese momento, pero entonces también estará LOW la MCU, por lo que nadie grabará nada en la SD: el hecho de que funcione el PLR cuando se configura el pin, se debe a que siempre está activa la grabación en el cambio de Z y es como si solo se tuviese configurada esa opción: no es por el pin por el que se desencadena la grabación.
Sobre la modificación de Marlin 1.1.9, será difícil que lo veas realizado a no ser que la hagas tú mismo, pues nadie que esté cualificado para realizarla está interesado en hacerlo, ya que esa versión está obsoleta y se ha dejado de desarrollar hace mucho tiempo: si se quiere utilizar, hay que hacerlo tal cual está.
En todo caso, solo las placas con MCU ATMega1284P tienen problemas para albergar la versión actual si se activan muchas funcionalidades, aunque hay algunas formas de ahorrar memoria que permiten salir del atolladero en casi todas las circunstancias.
  Responder
#11
(04-03-2022, 04:05 PM)Simemart escribió: Con este tema del PLR hay bastante confusión de cómo funciona realmente y hay mucha información en Internet que no es del todo correcta.
Este sistema puede funcionar de muchas formas, aunque no todas realizan lo que promete la publicidad: para hacerlo, el sistema necesita guardar el estado actual de la impresión, de momento solo utilizando la tarjeta SD, de forma que se pueda reanudar la impresión interrumpida cuando vuelva la alimentación.
Esto se puede configurar de cuatro formas distintas: grabando la información cuando cambia la posición del eje Z (es la que viene configurada por defecto), en cada comando ejecutado, cuando transcurre un determinado periodo de tiempo o mediante el cambio del estado de un pin de la MCU.
En la práctica, solo esta última opción da los resultados buscados: la primera solo graba el estado al comenzar cada capa, por lo que al reanudar la impresión se vuelve a imprimir completa, lo que implica que se vuelva a imprimir parte de la misma si no se interrumpió justo en el comienzo; la segunda y la tercera imponen una carga de trabajo demasiado alta para las capacidades de proceso del conjunto MCU/lector.
Pero la opción del pin indicador, solo tiene sentido si existe algún dispositivo que detecte dicha pérdida e informe a la MCU y si hay una fuente de alimentación momentanea que facilite el tiempo suficiente al sistema para grabar la información en la tarjeta (las grabaciones en ella no se realizan en milésimas de segundo).
Si no existe ese dispositivo y se configura un pin para esa función, hay que configurarlo de forma que se detecte la pérdida de alimentación cuando pase a estado bajo (LOW), pues sino no habrá nadie que lo ponga en alto (HIGH) en ese momento, pero entonces también estará LOW la MCU, por lo que nadie grabará nada en la SD: el hecho de que funcione el PLR cuando se configura el pin, se debe a que siempre está activa la grabación en el cambio de Z y es como si solo se tuviese configurada esa opción: no es por el pin por el que se desencadena la grabación.
Sobre la modificación de Marlin 1.1.9, será difícil que lo veas realizado a no ser que la hagas tú mismo, pues nadie que esté cualificado para realizarla está interesado en hacerlo, ya que esa versión está obsoleta y se ha dejado de desarrollar hace mucho tiempo: si se quiere utilizar, hay que hacerlo tal cual está.
En todo caso, solo las placas con MCU ATMega1284P tienen problemas para albergar la versión actual si se activan muchas funcionalidades, aunque hay algunas formas de ahorrar memoria que permiten salir del atolladero en casi todas las circunstancias.

Buenas tardes, bueno he seguido tu consejo, he probado con marlin 2.0x bugfix, y para sorpresa la mia cuando he dado todas las configuraciones y modificaciones que tenia y al compilarlo me ha dado sobre un 50%, con la version 1.1.9 me pasaba del 80 % para lo mismo, he podido hacer lo que queria con el power loss, estoy contento, solo tengo una pequeña duda por si alguien sabe donde puede estar lo que voy a comentar ahora para cambiarlo o habilitarlo.

La impresora imprime perfecta a la temperatura que le indico sin ningun problema, pero si estando la impresora sin imprimir caliento el nozzle, no puedo darle mas de 250 grados, eso como lo puedo cambiar para que me deje darle la temperatura que yo quiera?, por otro lado se que marlin dos incorpora la opcion de cuando termina de imprimir preguntarte si quieres volver a imprimir otra vez esa pieza, donde esta esta opcion para habilitarla?.

Muchas gracias a todos/as por responder.
  Responder
#12
Sobre las versiones de Marlin, desde el principio ha habido una leyenda negra en relación con que la versión 1.0.x de 8 bits es mejor para las máquinas de 8 bits, cuando realmente Marlin 2.0.x se compila en 8 bits para esas placas (sino no funcionaría) y que también soporte las MCU de 32 bits no influye en modo alguno en ello: para determinados casos, es bastante probable que la misma configuración ocupe menos memoria en la versión más actual, debido a que está más optimizada que la anterior y en el caso de que suceda lo contrario, seguramente será porque las funcionalidades que se utilicen, tienen características en Marlin 2 que faltan en Marlin 1. 
La temperatura máxima que pueden alcanzar los elementos calentadores, no solo depende de la configuración del firmware, sino que también está limitada por la potencia que tengan los elementos calefactores: eso quiere decir que la temperatura que podrás alcanzar tendrá siempre un límite, independientemente de la configuración.
Las temperaturas máximas en Marlin, se configuran en el archivo Configuration.h, en los parámetros HEATER_0_MAXTEMP para el hotend (si solo se tiene uno) y BED_MAXTEMP para la cama, pero hay que tener en cuenta que ese valor máximo se minora con el valor configurado en los parámetros HOTEND_OVERSHOOT para el hotend y BED_OVERSHOOT para la cama: es decir, no se puede sobrepasar la temperatura HEATER_0_MAXTEMP - HOTEND_OVERSHOOT para el hotend y  BED_MAXTEMP - BED_OVERSHOOT para la cama.
Sobre la opción de que pregunte al finalizar una impresión si se quiere repetir, que yo sepa no existe en el Marlin oficial: en todo caso y solo por curiosidad, ¿qué utilidad tendría esa opción?
  Responder
#13
(06-03-2022, 06:14 PM)Simemart escribió: Sobre las versiones de Marlin, desde el principio ha habido una leyenda negra en relación con que la versión 1.0.x de 8 bits es mejor para las máquinas de 8 bits, cuando realmente Marlin 2.0.x se compila en 8 bits para esas placas (sino no funcionaría) y que también soporte las MCU de 32 bits no influye en modo alguno en ello: para determinados casos, es bastante probable que la misma configuración ocupe menos memoria en la versión más actual, debido a que está más optimizada que la anterior y en el caso de que suceda lo contrario, seguramente será porque las funcionalidades que se utilicen, tienen características en Marlin 2 que faltan en Marlin 1. 
La temperatura máxima que pueden alcanzar los elementos calentadores, no solo depende de la configuración del firmware, sino que también está limitada por la potencia que tengan los elementos calefactores: eso quiere decir que la temperatura que podrás alcanzar tendrá siempre un límite, independientemente de la configuración.
Las temperaturas máximas en Marlin, se configuran en el archivo Configuration.h, en los parámetros HEATER_0_MAXTEMP para el hotend (si solo se tiene uno) y BED_MAXTEMP para la cama, pero hay que tener en cuenta que ese valor máximo se minora con el valor configurado en los parámetros HOTEND_OVERSHOOT para el hotend y BED_OVERSHOOT para la cama: es decir, no se puede sobrepasar la temperatura HEATER_0_MAXTEMP - HOTEND_OVERSHOOT para el hotend y  BED_MAXTEMP - BED_OVERSHOOT para la cama.
Sobre la opción de que pregunte al finalizar una impresión si se quiere repetir, que yo sepa no existe en el Marlin oficial: en todo caso y solo por curiosidad, ¿qué utilidad tendría esa opción?

Entonces debo haberlo en algun lado sobre una version no oficial durante mi investigacion, sin embargo no estoy seguro de ello, creo que en todos los lados donde he mirado eran sobre marlin oficial, ahora no estoy seguro de ello, por otra parte es una utilidad que aunque parezca simplona y tonta seria bastante util si tienes que imprimir varias piezas identicas y no quieres ir buscando por la sd donde esta el proyecto para imprimirlo, es como un atajo util aunque algo tonto si.
  Responder
#14
Pues tienes razón, si que hay esa opción, la pasé por alto al buscar: se activa decomentando la línea #define SD_REPRINT_LAST_SELECTED_FILE, que se encuentra en el archivo Configuration_adv.h.
  Responder
#15
(06-03-2022, 08:20 PM)Simemart escribió: Pues tienes razón, si que hay esa opción, la pasé por alto al buscar: se activa decomentando la línea #define SD_REPRINT_LAST_SELECTED_FILE, que se encuentra en el archivo Configuration_adv.h.

Perfecto muchas gracias.
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  De Marlin 2.0.9 a Marlin 2.12 21Curiosos 3 268 22-01-2023, 09:36 PM
Último mensaje: 21Curiosos
  Power_Loss_Recovery 21Curiosos 4 542 15-06-2022, 06:53 PM
Último mensaje: 21Curiosos
  Marlin Builder v1.0: Configurando firmwares Marlin online y de forma muy sencilla Peter13 4 15,137 20-04-2020, 10:07 AM
Último mensaje: Peter13