Hace poco decidí actualizar el firmware de mi Hellbot Magna 1, la impresora que me quedó luego de la donación a la escuela de mi hijo. Estas poseen Marlin 1.1.8 y decidí migrarla a la versión 2. Todo venía bien, pero cuando intenté habilitar el comando
M600 para realizar cambios de filamento automáticos, aparecieron varios detalles que requerían ajustes finos.
Quiero compartir el proceso que seguí, los problemas que encontré y cómo los resolví, por si alguien más está en la misma situación o quiere personalizar su experiencia de impresión un poco más.
El objetivo: un cambio de filamento realmente funcional
Aunque la Magna 1 viene originalmente con un sistema Bowden, la mía está modificada para usar un extrusor directo Bondtech. Eso implica que la distancia de retracción para un cambio de filamento no puede ser tan extensa como en la configuración de fábrica. Necesitaba que al activar el M600:
-
Se realizara una pequeña retracción para evitar goteo.
-
El cabezal se aparcara fuera del área de impresión.
-
Se ablandara el filamento con una ligera extrusión.
-
Se retiraran unos 8 cm de filamento, aproximadamente lo que hay entre la boquilla y el engranaje del extrusor.
-
Finalmente, que la máquina alertara con un pitido de que estaba lista para el cambio.
Activando y configurando M600 en Marlin 2
Primero habilité la función de pausa avanzada en el archivo Configuration_adv.h:
#define ADVANCED_PAUSE_FEATURE
Después, ajusté varios parámetros para que el comportamiento fuera exactamente el deseado:
-
Retracción inicial de 2 mm para cortar el hilo y evitar goteo.
-
Movimiento de parqueo a
X220 Y0con un leve ascenso deZ+10mm. A tener presente que cuando uno define esto, las posiciones de X e Y son absolutas y la de Z es relativa, es decir, no importa a que altura esté, va a ir 10mm hacia arriba -
Extrusión suave de 1 mm justo después del parqueo para ablandar el filamento.
-
Retracción larga de 80 mm a una velocidad moderada, que luego optimicé a 5 mm/s para evitar que el motor saltara pasos.
-
Purga ampliada a 10 mm tras la carga, para asegurar un flujo limpio y sin restos del filamento anterior.
-
Alerta sonora de 10 beeps al finalizar el proceso, avisando al usuario.
Con eso, el M600 pasó de ser un comando genérico a una herramienta bien afinada para mi impresora y mi flujo de trabajo.
Problemas menores y soluciones
Durante la primera compilación, noté que el motor del extrusor giraba al revés. Esto fue fácil de corregir ajustando:
#define INVERT_E0_DIR true
También me encontré con un comportamiento inesperado en OrcaSlicer, donde el M600 se insertaba justo al inicio del G-code, antes de la primera capa. Una simple condición dentro de los Gcodes de la máquina, sección Cambio de Filamento resolvió esto:
{if layer_num > 0}
M600
{endif}
Resultado final y reflexión
Después de compilar y subir el nuevo firmware, la impresión de prueba fue un éxito total. El filamento se retiró correctamente, sin dañar el material ni el extrusor, y el cambio se hizo con total suavidad.
Me quedo con la sensación de que ajustar el firmware no es solo cuestión de mejorar resultados, sino también de adaptar la máquina a nuestros propios hábitos. Cada impresora es distinta cuando empieza a ser “nuestra”.
Si tenés una Geeetech A10 o cualquier impresora que querés afinar con Marlin 2 y M600, te animo a meterte con estos ajustes. Y si te interesa, puedo compartir los fragmentos exactos del código que usé para que los copies y pegues directamente.
¿Estás listo para llevar tu experiencia de impresión al siguiente nivel?
Debido al volumen de cosas que voy a empezara a manejar, parece que voy a tener que habilitar un Gdrive para dejar la documentación que voy utilizando. Felices impresiones!
Marlin 2 optimizado para Magna 1 (Sirve para Geeetech A10)
