Módulo UPS - Recuperación ante fallos corriente
Como mejorar nuestras impresiones evitando que estas no finalicen correctamente ante un fallo de corriente.
Última actualización
Como mejorar nuestras impresiones evitando que estas no finalicen correctamente ante un fallo de corriente.
Última actualización
El lanzar una impresora de muchas horas y descubrir que esta no finalizó correctamente es una de las grades frustracciones de la impresión 3D.
Para solventar este problema hay diferentes alternativas, siempre pensando en el "universo" Marlin, como pueden ser:
Activado de Power Less Recovery (PLR en adelante) en Marlin con log en cambio de capa
Activado de PLR usando un modulo UPS con detección y control de apagado
Un SAI/UPS para mantener nuestra impresora funcionando sin suministro durante X minutos
En este caso vamos a optar por una solución intermedia entre el primer y el segundo caso mejorando y solucionando los fallos del primero (la maquina no se apaga correctamente dañando la impresion en un alto porcentaje de veces) y evitando el alto gasto de tener un SAI/UPS dedicado aunque sin duda es de las mejores opciones.
IMPORTANTE!!! La función PLR gestionada por Marlin solamente funciona al imprimir desde la SD de la placa no desde un componente externo como pantallas TFT (que pueden tener su propio sistema PLR) o Octoprint, Pronterface o similares
Os sugerimos usar los siguientes módulos UPS que son compatibles con la mayoría de placas y la diferencia principal es el acabado del módulo y el cableado a la placa, es importante recalcar que a la hora de comprarlo tengamos bien presente a que voltaje funciona nuestra placa:
Personalmente en cuanto a calidad recomendamos el módulo de MKS pero si buscamos sencillez y menos complicaciones usemos el que mejor se adapte a la marca de nuestra electrónica.
IMPORTANTE!!! Estos módulos se conectan a la alimentación de nuestra fuente y/o a 220/110v así que es muy importante al manipular tomar todas las medidas de seguridad necesarias para evitar descargas eléctricas, si no estas seguro de lo que haces lleva tu impresora a un técnico. También es aconsejable que se coloquen en sitios que eviten el contacto o manipulación fácil además de intentar dejarlos protegidos con algún tipo de cubierta/protección.
A continuación y para los modelos sugeridos os facilitamos los esquemas de conexión que dependiendo de vuestra placa puede variar el pin de control:
La parte más importante de la conexión es la que se hace al pin que tengamos asignado o asignemos a PLR que normalmente usaremos un conector JST-XH de 3 pines prestando atención en la ubicación del pin SGN tanto del módulo como de nuestra placa. En la siguiente tabla os indicamos para los modelos más usados por nosotros:
Placa | Puerto asignado | Pin SGN | Num. Pin |
BTT SKR 1.3 | Ninguno por defecto, elige un endstop de X, Y o Z MAXO | O O X | X+ P1.28 Y+ P1.26 Z+ P124 |
BTT SKR 1.4/Turbo | Al lado de Z- y EXP1 | O O X | P1.00 |
BTT SKR PRO | Ninguno por defecto, elige un sensor de filamentos E0, E1 o E2 | O O X | E0 PE15 E1 PE10 E2 PG5 |
BTT SKR DIP v1.1 | Ninguno por defecto, elige E0 que es el sensor de filamentos | OXO | E0 PC2 |
BTT SKR MINI E3 v2 | Al lado del conector Y-stop | XOO | PC12 |
BTT SKR E3 Turbo | A la derecha de EXP1 | XOO | P1_20 |
BTT SKR E3 RRF | Al lado de Z-Stop y termistor hot-end | XOO | PE0 |
Dentro de nuestro fichero configuration_adv.h buscaremos POWER LOSS RECOVERY dejando habilitada esta función de Marlin eliminando //
Si queremos que PLR esté siempre habilitado deberemos activar PLR ENABLED DEFAULT de la siguiente forma, aunque podemos habilitarlo en el gcode de inicio de nuestro slicer para activarlo solo cuando lo consideremos necesario con el gcode M413 S1 (M413 S0 para deshabilitarlo y M413 sin ningún parámetro para ver el estado)
En nuestro caso y como vamos a instalar un módulo UPS habilitaremos esta funcionalidad que permitirá al PLR poder realizar unas opciones avanzadas:
Relacionado con el punto anterior y dado que montaremos el módulo UPS habilitaremos la opción que al detectar un fallo en corriente levante el eje Z unos milímetros para evitar que el nozzle nos estropee nuestra pieza, es muy importante entender que la cantidad de corriente disponible en el módulo es limitada y tenemos que minimiza el consumo de la misma durante el proceso PLR para que todo el proceso se realice de forma adecuada, lo haremos habilitando teniendo en cuenta poner un multiplicador del valor de full step para nuestro eje Z:
Como ya hemos indicado el módulo UPS va conectado a la placa para dar la señal de que la corriente ha fallado y proceda a realizar el proceso de apagado. Para nuestro caso vamos a usar nuestra SKR E3 RRF la cual tiene un conector PT-DET (pin PE0) para este uso, en las tablas del punto anterior puedes encontrar indicados para las placas que normalmente usamos:
Deberemos indicar dependiendo el módulo UPS usado cual es el estado del pin por defecto, en el caso del módulo BTT este será HIGH:
Al igual que el anterior necesitamos indicar si nuestra placa en el pin utilizado es PULLUP o PULLDOWN, en nuestro caso debemos de dejarlo activado para que funcione correctamente:
El siguiente valor dependerá de nuestro sistema de extrusión en el cual indicaremos cuantos mm de filamento vamos a purgar antes de retomar la impresión para asegurar que tenga un flujo constante de filamento al reanudar la impresión:
También para evitar el reflujo de filamento al realizar el apagado controlado podemos ajustar una retracción la cual debería de ser del mismo valor que las opciones de retracción de nuestro slicer en su gcode final que siempre aconsejamos de unos 3-5mm. Este valor lo ajustaremos en
En todo caso y dado que ya realizamos una purga al retomar la impresión y por lo comentado que disponemos de una cantidad de corriente limitada NO lo vamos a habilitar en nuestro ejemplo.
Dado que disponemos de un módulo UPS no es necesario tener definido que Marlin guarde el estado de la impresión en cada cambio de capa además de que mejoraremos considerablemente la vida de nuestra SD por lo que dejaremos comentado esta opción:
Pues ya esta!!! a continuación os mostramos como debería quedar nuestra función PLR en Marlin (2.0.9.1 en este ejemplo):
Recuerda que cada vez que subimos una nueva versión de Marlin, más si añadimos nuevas funcionalidades o ajustamos parámetros editables por pantalla/gcode, hemos de recargar los valores de la EEPRO... para más información sobre el uso de la EEPROM por parte de Marlin os aconsejamos revisar esta información.
A continuación os damos algunos consejos a revisar en el caso de no funcionar correctamente:
Asegúrate que has conectado correctamente todos los cables en la posición correcta según las especificaciones del o de los fabricantes en cada caso
Que tienes el pin de detección de fallo de corriente bien definido en POWER_LOSS_PIN
Recuerda que el sistema de recuperación ante fallos de corriente funciona solo en impresiones gestionadas por la electrónica de la impresora, aquellas que se hacen desde un host como Octoprint o pantallas TFT serial no funcionan, desde su propia SD donde crea un archivo extra con el log/progreso de nuestra impresión que permita retomarla
Si solamente iniciar una impresión o la impresora nos salta el asistente de recuperación por fallo de correo comprueba la lógica de activación de esta en POWER_LOSS_STATE
ajustando su valor HIGH/LOW
Si no funciona correctamente, teniendo lo anterior correcto, el proceso podemos revisar:
que nuestra SD contenga el fichero extra de seguimiento de impresión o que la SD no este dañada o le falte espacio
que no tengamos en el gcode de inicio de nuestro laminador un M413 S0 que nos deshabilite la funcionalidad
Cuando apliques tu versión de Marlin modificada, asegúrate que recargas los valores de la EEPROM tal y como se ha comentado anteriormente... para asegurarse lo ideal es lanzar el comando M503 y buscar el apartado de Power-loss recovery
y debería aparecer un M413 S1
indicando que esta habilitada la funcionalidad
podemos habilitar #define DEBUG_POWER_LOSS_RECOVERY en nuestro Marlin temporalmente para, con la impresora conectada a Pronterface, poder obtener más información del proceso