¡Configura el firmware de Marlin y haz que funcione!

¡Configura el firmware de Marlin y haz que funcione!

  1. Primeros pasos
  2. Serial Ports, Baudrate, Bluetooth, custom name
  3. Stepper drivers
  4. Sensorless Homing
  5. Microstepping y Stealthchop
  6. Control fuente de alimentación
  7. Ajustes térmicos - Termistor y Temp Max/Min
  8. Ajustes PID
  9. Seguridad - Cold Extrusion y Thermal Runaway
  10. Ajustes mecánicos - CoreXY, Belt Printer, Robot Arm
  11. Ajustes de final de carrera - Endstop settings y Endstop Noise Threshold
  12. Ajustes de Movimiento - Acceleration, Steps, Feed Rate, Jerk, Junction Deviation, Linear Advance
  13. Sensor Z y nivelación de cama
  14. Tamaño de la cama y sensores de fin de filamento
  15. M600
  16. Funciones adicionales - EEPROM, ajustes de precalentamiento, limpieza de boquillas, contraseñas, idioma, sensibilidad del codificador, LCDs, neopixels

Una nota rápida antes de empezar: mencionaré los números de línea para que sea más fácil encontrar la línea de firmware correcta. Dependiendo de qué firmware o qué archivos de configuración está utilizandos, esto puede diferir un poco, pero sigue siendo relativamente fácil encontrar la línea correcta.

Además, las instrucciones en Marlin se llaman definiciones, pueden estar activadas, desactivadas o activadas + valor seleccionable. Las que están activadas no están comentadas, lo que significa que no tienen un identificador de comentario, que es una doble barra. Básicamente, la doble barra desactiva todo y permite que se escriban comentarios si quieres personalizar tu firmware para que sea utilizable por ti mismo o por otros más adelante. Cualquier cosa escrita con un // al principio de la línea será completamente ignorada por el firmware cuando se compile.

1. Primeros pasos

Para editar el firmware de Marlin, necesitas el software adecuado. Aunque hay diferentes opciones, la mayoría utilizaría Visual Studio Code. Este software se puede descargar aquí de forma gratuita, tanto para Windows, Linux como para Mac.

Para hacer esto también necesitarás la extensión Platform IO. Una vez instalado VS Code, ve a las extensiones en la barra de herramientas de la izquierda (el icono con los 4 cuadrados), busca Platformio y haz clic en Instalar. También puedes usar el plugin Auto-Build Marlin, que hará las cosas un poco más rápidas si configuras tu placa con el procesador adecuado, pero también podemos hacerlo a la vieja usanza. Te mostraremos cómo hacerlo más adelante.

Una vez que tengas todo junto, necesitas conseguir el firmware Marlin. Así que dirígete a Marlin GitHub y descarga la última versión.

Verás que hay una versión de corrección de errores y una versión normal. La versión de corrección de errores contiene los últimos cambios en el firmware. Es útil, pero también la menos estable, ya que se trabaja en ella constantemente. Sin embargo, el equipo de Marlin es muy bueno identificando y corrigiendo bugs y errores, así que nos gusta usar estas versiones.

Haz clic en Code en la esquina superior derecha para descargar el firmware como un zip, descomprime la carpeta zip y carga el VS Code. A continuación, vete al archivo y abre la carpeta y el firmware Marlin.

Luego están los archivos de configuración, las configuraciones específicas de la impresora también se pueden encontrar en GitHub.

Estas son especialmente útiles si desea cambiar el firmware sólo ligeramente. Por ejemplo, si tienes una impresora, digamos una Ender 3, y acabas de actualizar el hotend y necesitas cambiar el termistor en el firmware, puedes simplemente descargar los archivos de configuración para esa impresora y pegarlos en la carpeta Marlin que acabas de descargar. De esta forma, todas las especificidades del firmware por defecto de la impresora ya están ahí y sólo tendrás que cambiar los valores del termistor.

Cuando estés preparando una carpeta de firmware para editarla, hay un punto muy importante que debes tener en cuenta antes de poder empezar a editarla, y es elegir el modelo de placa base y procesador adecuados.

Si vas a la página configuration.h en el Explorador a mano izquierda, verás un comando en la línea 70 que especifica qué placa base se está utilizando. Para muchas placas sólo hay una versión, pero algunas tienen variantes o algunas impresoras han usado diferentes placas en el pasado. Lo mejor es abrir la impresora y comprobar qué placa está instalada.

Para saber exactamente cómo se llama tu placa en el firmware, vuelve al explorador de la izquierda, ve a src, core y boards.h. Esta es una lista de todas las placas que soporta Marlin. Luego presiona CTRL F e introduce la marca de tu placa, por ejemplo Creality Ender 3 boards, introduce Creality. Desplázate hacia abajo para saltar cualquier cosa que tenga que ver con esa palabra y encontrarás las placas Creality V4. Puede simplemente utilizar Board_Creality_V4. Este es básicamente el mismo proceso para cualquier marca de placa base, siempre y cuando sea compatible con esa versión de Marlin. También encontrarás las variantes de procesador para esta placa, para las placas de la versión 4 vemos STM32F103RC y STM32F103RE.

Anota ambos, vuelve a Configuration.h y copia la placa en el área después de #define MOTHERBOARD. Ahora también puedes ir a la barra de herramientas del explorador a la izquierda y hacer clic en la pestaña platform.io para asegurarte de que el modelo de procesador correcto está en la línea default_envs en la parte superior de la página

Ok, eso es todo, ahora podemos editar el firmware. Hay dos páginas principales que vamos a editar, la mayoría de ellas en config.h, pero algunas también en config_adv.h.

2. Serial Ports, Baudrate, Bluetooth, custom name

Si vas a config.h, podemos empezar por ahí. Ya hemos terminado con la placa base, así que pasemos a la siguiente definición: Serial Ports.

Casi todas las impresoras utilizan un Serial Port para conectarse a varios dispositivos. En la mayoría de los casos, sólo se utiliza uno, pero si vas a conectar algo más como una pantalla táctil con una tarjeta SD o un puerto USB, es posible que tengas que experimentar un poco. No vamos a hacer esto aquí, así que vamos a olvidarlo por ahora.

Baudrate es la velocidad de transmisión de estos puertos. Puede variar, pero la mayoría utiliza una Baudrate de 115200.

A continuación encontrarás más opciones para los serial ports, pero podemos dejar el indefinido; ya que probablemente no necesites ningún puerto adicional.

También hay opciones para la conectividad Bluetooth, que es poco común para las impresoras, y una opción para cambiar el nombre de la impresora, que está desactivado por defecto. Puedes ver este nombre en la pantalla LCD cuando tu máquina está encendida. Activa la opción e introduce un nuevo nombre si te apetece.

3. Stepper Drivers

Lo siguiente son los stepper drivers. Parece difícil, pero no lo es en absoluto. Todas las impresoras usan stepper drivers que controlan los motores. En el pasado, las impresoras utilizaban el A4988 u otras variantes, lo que significaba que los motores eran bastante ruidosos. Hoy en día, TMC2208 o TMC2209 se instalan como controladores estándar en la mayoría de las impresoras. Sin embargo, hay una serie de otros controladores con diferentes características y ventajas, tales como la división por pasos, la corriente máxima o la búsqueda de referencia sin sensor, donde no se necesitan interruptores de límite físicos para la búsqueda de referencia de los ejes.

Puedes configurar fácilmente qué driver quieres usar para cada acceso. A menudo, la placa base de una impresora no especifica qué stepper drivers utiliza. A veces una placa utiliza stepper drivers incorporados, lo que significa que no se pueden quitar. En este caso, probablemente no se indica qué driver se utiliza, pero a veces hay una marca en la placa base que puede indicar qué driver se utiliza. Las placas Creality V4, por ejemplo, tienen un pequeño código en el conector de la tarjeta SD. Si dice "T8", significa que se utiliza el controlador TMC2208. Algunas placas base utilizan controladores extraíbles, lo que tiene la ventaja de que puedes reemplazarlos fácilmente en caso de un defecto - si eso sucede con los drivers integrados, necesitarías una placa nueva.

4. Sensorless Homing

Me gusta mucho el Sensorless Homing. No es tan preciso como los topes finales físicos, pero reduce la necesidad de cables, y odio los cables. No todos los drivers son compatibles con el Sensorles Homming, por ejemplo, los controladores TMC2208 muy populares no pueden utilizar esta función. Los controladores TMC2209, por otro lado, sí pueden.

Para conseguir que el Sensorless Homing funcione, se requieren algunos cambios físicos en la placa base, pero no te preocupes, son realmente sencillos. Esto puede variar dependiendo de la placa base, pero por lo general es simplemente poner Jumpers o puentes en ciertos pines. Consulta el manual del SKR Mini E3

En lo que respecta al firmware, esto es lo que se necesitas para el Sensorless Homing: En primer lugar, HOMING_BUMP se debe establecer en 0 en la línea 210 (configuration_adv.h) - esto se utiliza normalmente para los finales de carrera donde el eje golpea el tope final, se mueve un poco hacia atrás, y luego golpea lentamente el tope final de nuevo. Por defecto esto es unos pocos mm, necesitamos desactivarlo.

En la línea 1174, ENDSTOP_INTERRUPTS_FEATURE (configuration.h) debe ser undefined.

El siguiente punto es la alimentación. Lo bueno de estas placas base comparadas con las antiguas es que la corriente del motor en las antiguas placas de 8 bits no se podía cambiar por firmware. Tenías que cambiar la Vref en la placa base girando un pequeño trim pot que era muy sensible. Gíralo demasiado y pasa a 1,5, a pesar de que sólo necesites 0,8 (o 800 mA) para la mayoría de los motores XY. Puedes encontrar las líneas para ajustar la corriente desde 2386 (configuration_adv.h).

La corriente que necesitas en tu firmware depende del Stepper Driver y del motor. Si tienes un motor como un motor 42-34, el valor de corriente sólo necesita ser 800. Si encuentras una hoja de datos técnicos de tu motor, puede que veas que la corriente máxima es de 1.5A o 1500mA. Pero no introduzcas 1500 en el firmware, eso es un valor pico absoluto y no trabajamos con valores pico, dado que podría acabar mal. Buscamos el valor RMS, el valor cuadrático medio de la corriente. Calcular la corriente correcta en realidad no es tan fácil, pero hay calculadoras, como esta de ALL3DP.

La gestión de la corriente es crucial a la hora de calibrar el Sensorless Homing, ya que es posible que tengas que juguetear un poco con ella para asegurarte de que funciona de forma óptima.

MONITOR_DRIVER_STATUS se encuentra en la línea 3204 (configuration_adv.h) - esto comprueba periódicamente los drivers para determinar su estado. Marlin puede reducir automáticamente la corriente del driver si éste informa de un aviso de sobretemperatura. Así que actívalo.

También puedes activar TMC_DEBUG en la línea 3317 (configuration_adv.h), donde se puede ver más información acerca de los Stepper Drivers.

Ok, ahora podemos activar SENSORLESS_HOMING en la línea 3272 (configuration_adv.h), tenemos que activar esto para X e Y y establecer la Stall Sensitivity, la sensibilidad con la que los controladores pueden medir el Stall, es decir, cuando el motor mueve el cabezal de impresión a un lado de su eje y golpea el final. Si es demasiado baja, no detectará nada y seguirá girando el motor incluso si el cabezal de impresión golpea el lado, si es demasiado alta, "detectará" la el Stall todo el tiempo, incluso si el cabezal de impresión está ahí. Después de flashear el firmware, la pantalla LCD ahora tiene un menú donde se pueden cambiar los valores para Stall Sensitivity y la corriente, por lo que sólo tienes que cambiar los valores para que se ajuste. Los valores para el Stall Sensitivity van de 0-255, por lo que el primer intento debe hacerse en el medio, alrededor de 128. Ajusta el valor y luego inténtalo de nuevo una y otra vez. Si te quedas atascado y, uses el valor que uses simplemente no funciona, entonces necesitas ajustar el amperaje. Auméntalo un poco. ¡¡¡SÓLO UN POCO!!! Si son 800 miliamperios, auméntalo a 850 e inténtalo de nuevo.

También puedes usar define IMPROVE_HOMING_RELIABILITY un poco más abajo en la línea 3291.

En caso de que te lo estés preguntando, la localización sin sensores en el eje Z es complicada, especialmente en impresoras que utilizan husillos para el movimiento Z, que es lo que hacen la mayoría de las impresoras. Para ahorrarte problemas, no actives el Sensorless Homing para el eje Z.

5. Microstepping y Stealthchop

En la línea 2838 hay otra función del driver X_MICROSTEPS (configuration_adv.h). Los Stepper Drivers se mueven por pasos, normalmente 1,8 grados por paso, lo cual es muy preciso, pero ¿puede ser esto más preciso? Aparte de conseguir otro motor que tenga un paso más pequeño, puedes usar Microstepping, que le dice al driver que le indique al motor que se mueva menos de 1.8 grados, lo que es bastante práctico para un ajuste muy preciso. El valor por defecto es 16, pero se puede ir más alto, lo que por supuesto significa que el número de pasos necesarios para mover un motor una cierta distancia también cambia. Por eso Marlin tiene esta maravillosa función llamada "Interpolate" en la línea 2833 (configuration_adv.h) que, si la pones en True, interpolará automáticamente cada valor de paso del motor para que no tengas que cambiar nada manualmente. Así que si cambias el Microstepping de 16 a 32, tienes que ajustar los pasos de todos los motores para alcanzar el nuevo valor. Si activas la interpolación, lo realizará automáticamente.

El siguiente elemento es STEALTHCHOP en la línea 3140 (configuration_adv.h). Actívalo, hace que todo sea super silencioso - también deberías marcar CHOPPER_TIMING CHOPPER_DEFAULT justo debajo. Lo más probable es que tengas una impresora de 24 V, así que ajústalo a 24 V. Por supuesto, el Stealthchop también depende de tu driver, pero por suerte la mayoría pueden hoy en día.

6. Control de la fuente de alimentación

Volviendo a Configuration.h, en la línea 388 encontramos el control PSU (configuration.h), que puede ser interesante si queremos apagar automáticamente nuestra impresora tras finalizar un trabajo de impresión.

7. Ajustes Térmicos - Termistor y Temp. Máx/Mín

Lo siguiente es la configuración térmica en la línea 430 (configuration.h), y este es probablemente el tutorial de firmware más solicitado de todos. Para muchas personas, una actualización de Hotend es el primer cambio que hacen. Así que si tienes una Ender 3 y deseas actualizar a un hotend Revo, ¿qué hay que hacer? Bueno, hay dos cosas que cambiar, la primera es el termistor. La mayoría de las impresoras utilizan un termistor de 100k, para el cual el tipo de sensor en Marlin es "1". Sin embargo, Revo y muchos otros termistores usan el número 5, que también es un termistor de 100k, pero de Semitec. Como puedes ver, hay unas cuantas marcas que utilizan este tipo de termistor. Pero, ¿quizás quieras mejorar a algo como un PT1000? Depende del PT1000, pero la mayoría utiliza el sensor número 1047 con un pullup de 4,7 ohmios.

Puedes hacer lo mismo para temp_sensor_bed en la línea 536 (configuration.h).

La otra parte de la actualización del hotend es el HEATER_0_MAXTEMP en la línea 611 (configuration.h). Los hotends de PTFE están generalmente limitados a 260C, que se escribe como 275C en Marlin. No estoy seguro de por qué se hizo esto, pero no importa la temperatura que pongas aquí, la temperatura real alcanzable de tu impresora será 15C inferior. Así que si tienes un Hotend de 300C, debes introducir por lo menos 315C como valor máximo.

En la línea 597 también encontrarás HEATER_0_MINTEMP, que apagará automáticamente el calentador cuando alcance esta temperatura. Por cierto, si tienes una impresora que apaga el calentador o muestra un error "mintemp" y no estás seguro de por qué, puede ser porque tu impresora está en un ambiente demasiado frío. Recibimos muchas preguntas sobre esto en invierno, ya que mucha gente tiene la impresora en el garaje y puede ocurrir fácilmente.

En la línea 623 tienes el Thermal Overshoot (configuration.h) que permite temperaturas por encima del valor maxtemp antes de apagar la máquina. Los overshoots pueden ocurrir si tu calentador no está calibrado, lo que nos lleva a la línea 633 y el ajuste del PID (configuration.h)

8. Ajustes del PID

Esto sincroniza el calentador y el termistor para que el calentamiento sea preciso. Lo más importante aquí es la línea 659, que da los valores por defecto para proporcional, integral y derivada. Realmente no necesitas cambiar nada aquí, pero cuando cambias de calentador es una buena idea hacer un ajuste PID, que esencialmente calibra tu calentador o termistor para que la temperatura no fluctúe demasiado cuando tu impresora está funcionando. Así que yo recomendaría hacer esto después de una actualización Hotend. Hay varias maneras de hacer esto, pero una manera fácil es habilitar esto en tu menú LCD en la línea 803. Otro método sería conectar la impresora al ordenador a través de USB y utilizar un programa terminal como Pronterface.

En este terminal puedes introducir comandos gcode. El comando correcto para la sintonización PID es "M303 E0 S210 C10 U".

M303 es el comando para iniciar el proceso de ajuste.

E0 se refiere al calentador utilizado (E0 es la configuración predeterminada para casi todas las impresoras de un solo extrusor).

S210 se refiere a la temperatura de 210C, que es adecuada para PLA, pero puede cambiarla si deseas utilizar principalmente otros filamentos.

C7 indica la frecuencia con la que realizar la prueba. Cuantas más veces realices la prueba, más precisa será, pero hemos comprobado que no son necesarios más de 7 intentos.

La prueba se puede realizar tantas veces como desees.

Una vez que haya introducido este comando, la prueba se realiza y devuelve los valores de Kp, Ki y Kd.

Una vez que tengas estos valores, puedes introducirlos en el terminal utilizando el comando M301, como M301 P30 I3 D60.

A continuación, guarda la configuración con un comando M500, y ya está.

Hay más sobre el control PID de la cama y la cubierta. El ajuste PID para tu cama no es tan necesario como el de tu Hotend. Los Hotends se cambian mucho más a menudo que el termistor de la cama, pero está ahí cuando lo necesites.

9. Seguridad - Cold Extrusion y Thermal Runaway

El siguiente punto importante es la protección térmica en la línea 827 (configuration.h), ¡que definitivamente deberías activar! Esto apagará la impresora si la temperatura sube por encima del nivel esperado. Puede que algo suceda en el termistor y no lo sepas. Sin él, la temperatura sigue subiendo y el valor del termistor apenas cambia. Esto es malo, por lo que, ¡ENCIÉNDELO!

También hay una función para prevenir la extrusión en frío en la línea 816 (configuration.h). Esto evita que el motor del extrusor se active cuando la temperatura está por debajo del valor introducido. Por defecto, se establece un valor de 170. El filamento que utilices normalmente con tu impresora te dirá qué valor debe utilizarse aquí. Por ejemplo, si imprimes principalmente PETG, deberías establecer una temperatura de unos 220C.

10. Ajustes mecánicos - CoreXY, Belt Printer, Robot Arm

Lo siguiente son los ajustes mecánicos, y ya que vamos a utilizar una configuración Corexy, esto es muy importante. Tenemos que definir Corexy.

Hay otras cinemáticas como delta, impresora de cinta o si tienes un brazo robótico, esto también es posible.

11. Ajustes de final de carrera - Endstop settings y Endstop Noise Threshold

Luego vienen los ajustes de endstop en la línea 1071 (configuration.h). Aquí es simplemente donde se activan los topes finales.

Hay otra pequeña función para Endstop Noise Threshold. Hace mucho tiempo tuve que usar esta función cuando quise conectar cables extra largos a una impresora para que toda la electrónica estuviera fuera de la caja. Por alguna razón los cables largos causaban errores al ser detectados durante el homing, pero esta función me salvó el día.

12. Ajustes de Movimiento - Acceleration, Steps, Feed Rate, Jerk, Junction Deviation, Linear Advance

Los siguientes son los ajustes de movimiento en 1194 (configuration.h) y lo primero son los pasos por defecto. Como se mencionó anteriormente, los motores stepper o paso a paso giran en pasos cada 1,8 grados (a menos que tengas un motor de 0,9 grados). Cuando el motor gira una correa, husillo o engranaje, debe tomar un cierto número de pasos para hacer que la pieza se mueva la cantidad deseada. La mayoría de las veces esto necesita ser cambiado en las actualizaciones del extrusor, donde todo lo que realmente necesitas hacer es cambiar el número en esta línea. Normalmente los fabricantes dan los pasos del extrusor (o esteps), pero estos pueden necesitar ser ajustados, por lo que hacemos una calibración de esteps. Existen muchos vídeos sobre esto.

Los pasos y en realidad todos los valores de paso no necesitan ser configurados en el firmware, puedes simplemente editar tu gcode de inicio para insertar un nuevo valor con un comando M92. Esta es la forma más fácil cuando actualizas tu extrusor, no necesitas actualizar tu firmware en la mayoría de los casos y puedes simplemente usar el gcode ya sea en tu slicer o vía Pronterface como ya hemos mostrado. En realidad esto se puede hacer para todos los valores de la categoría de ajustes de movimiento con M203 para el avance máximo, M201 para la aceleración máxima, m204 para la aceleración por defecto y M205 para los ajustes de Jerk. Por ejemplo, si quieres cambiar los pasos del extrusor para un nuevo extrusor Bondtech, todo lo que tienes que hacer es escribir M92 E415 en el Start Gcode de arranque (M92 es el comando para cambiar los pasos de un motor y E indica que es el motor del extrusor), eso es todo. Estos valores se pueden cambiar con bastante facilidad sin cambiar el firmware.

Por cierto, si te interesan los comandos gcode en general y los parámetros que se usan con ellos, puedes echar un vistazo a la web de Marlin, que tiene una lista de todos los comandos gcode, algunos de los cuales te pueden ser muy útiles. Aquí tienes un ejemplo del gcode de Startup Acceleration M204.

Jerk es una función que limita la velocidad de cambio de aceleración de un eje, especialmente cuando el cabezal de impresión está parado y de repente empieza a moverse, pero también cuando gira 90 grados. Es una función relativamente antigua en el firmware que todavía es utilizada por muchas impresoras, pero las impresoras más nuevas, especialmente aquellas con firmware Klipper, utilizan algo llamado Junction Deviation, así que vamos a echar un vistazo a eso.

En cuanto a los cambios en el firmware, esto es muy sencillo: ve a la línea 1288 y define Junction Deviation. Asegúrate también de que classic_jerk no está definido en la línea 1265 (configuration.h). Esa es la parte del firmware hecho, pero todavía tienes que averiguar el valor de la Junction Deviation. Por defecto, se establece en 0,013 mm, pero eso depende totalmente de tu impresora. Afortunadamente es una prueba sencilla, todo lo que tenemos que hacer es imprimir un modelo donde cada capa tiene un valor ligeramente diferente de Junction Deviation y luego comprobar qué capa se imprime mejor. Si notas mucho Ringing, el valor es demasiado alto. Pero tampoco debe ser demasiado bajo, porque eso ralentizaría el proceso.

TeachingTech tiene una estupenda guía y calculadora.

Lo siguiente es la S-Curve Acceleration en la línea 1301 (configuration.h), que reduce la vibración y, al igual que la función Jerk, es relativamente antigua. Una de ellas es Linear Advance. ¿Qué es? Bueno, se utiliza para controlar la velocidad del volumen extruido a medida que cambia la aceleración. ¿Has notado alguna vez al imprimir esquinas de 90 grados que la impresión se curva un poco? Eso es lo que el Linear Advance está diseñado para corregir.

En términos de firmware, es similar a Junction Deviation. Ve a la línea 2205 en configuration_adv.h y lo encontrarás (configuration_adv.h). Lo único que tienes que hacer es quitar el comentario para que quede definida. Luego tienes que calibrarlo para encontrar el valor correcto. Lo llamamos el valor K, por defecto es 0.22.

Calibrar el valor K es similar a calibrar el valor de Junction Deviation, imprimimos algo con diferentes valores y vemos cuál funciona mejor. Por suerte, Marlin tiene una calculadora genial que puedes usar para resolverlo todo.

13. Sensor Z, nivelación de cama, cambio del sentido de giro del motor

En la línea 1311 llegamos a la nivelación de la cama y las sondas Z (configuration.h). Esta es una sección muy extensa ya que hay muchos métodos diferentes de nivelación, no sólo complementos de nivelación automática, sino también un montón de otras cosas. Si quieres leer sobre firmware para el BLTouch o dispositivos similares, te recomiendo el vídeo de TeachingTech, que habla sobre cómo conseguir que un BLTouch funcione en prácticamente cualquier dispositivo.

¿Necesitas invertir la dirección de tu motor? A veces esto es necesario para actualizaciones de extrusores o cambios de Stepper Drivers. Hay muchas funciones en Marlin que requieren invertir la dirección, pero no tienes que hacerlo ahora. Cuando compiles y flashees tu firmware, simplemente intenta mover un motor y comprueba si funciona en la dirección correcta. Si necesitas cambiar la dirección, ve a la línea 1698 y cambia INVERT_[X/Y/Z]_DIR a false o true

14. Tamaño de la cama y sensores de fin de filamento

El siguiente elemento en la línea 1753 (configuration.h) es el tamaño de la cama. Las camas deben tener un poco de margen, ya que no queremos que nuestro modelo se imprima demasiado cerca del borde de la cama, por lo que podemos establecer nuestra min_position a 0, que será el punto donde el tope final o el Sensorless Homing detendrá este eje cuando se haga el Auto-homing. Tal vez el punto de parada final ya está a una distancia razonable del borde de la cama, o tal vez ni siquiera está en la cama. En este caso necesitas espacio libre, así que simplemente edita la posición_mín en mm para incluir tu espacio libre, y luego mueve el carro hacia el lado opuesto de la cama al punto que no quieres que sobrepase, y esa es tu posición_máx, que es el punto al que se limita todo el recorrido.

Lo siguiente son los sensores de fin de filamento en la línea 1818 (configuration.h). La forma más fácil de configurar un sensor es utilizar un tope normal con un pequeño rodillo en el extremo. Este rodillo es bastante importante porque si tiras del filamento, la tira metálica se doblará o incluso se romperá, haciendo que el interruptor sea inutilizable o poco fiable. Hay otras opciones como un opto-sensor, que me parece mucho más fiable. Nunca he tenido problemas con el sensor de la Prusa MK3, pero los sensores de fin de carrera son fáciles de montar, son baratos y con el diseño adecuado pueden funcionar muy bien. Así que si quieres usar uno entonces descomenta filament_runout_sensor en la línea 1830, deberías tener #define FIL_RUNOUT_ENABLED_DEFAULT habilitado y puesto a true y sólo necesitas 1, a menos que tengas un extrusor dual así que pon #define NUM_RUNOUT_SENSORS a 1. Deberías tener el comando M600 habilitado (más sobre eso un poco más adelante) así que cambia a la línea 1877 (configuration.h).

También tienes que ir a ADVANCED_PAUSE_FEATURE en la línea 2752 (configuration_adv.h) y quitar el signo de comentario. Hay muchos otros ajustes que puedes hacer aquí, y Marlin ha puesto unos comentarios muy útiles y fáciles de entender junto a ellos. Cámbialos como creas conveniente y adáptalos a tu impresora.

Todo lo que necesitas hacer ahora es conectar la placa. Dependiendo de tu placa también puedes cambiarlo si quieres. Para comprobar donde está el pin por defecto puedes ir a SRC, PINS y tu modelo de procesador, seleccionarlo y pulsar CTRL F e introducir FIL_RUNOUT_PIN, para nosotros en una BTT SKR e3 Mini V3.0 el pin es PC15, ve a Google y escribe el nombre de tu placa y el diagrama de pinouts y mira donde está ese pin.

15. M600

Ya hemos mencionado el comando M600. Se trata de una función del firmware tristemente infrautilizada pero muy útil, para cambiar el filamento mientras se imprime. Si quieres imprimir las primeras capas en un color, las siguientes en otro y luego seguir cambiando de color, puedes hacerlo con esta función. Echa un vistazo a este modelo que hicimos con el comando M600.

Así que ya hemos habilitado M600 y la función de pausa avanzada, ahora tenemos que habilitar la función para 2aparcar" el cabezal de impresión. Así que vamos a la línea 2362 (configuration.h) y activamos "nozzle park". Aquí puedes cambiar la posición si quieres, y también la velocidad en "feed rate" y "minimum z feed rate"

Ahora vete a la línea 824 y activa Extrude max length (configuration.h). Esto extruirá nuevo filamento hasta esta longitud, que es suficiente para eliminar el filamento viejo y cambiar el color completamente. Este valor depende de si tienes un cable Bowden o un Direct Drive. Si tienes un cable Bowden con un tubo largo de PTFE, este valor debe ser bastante alto, si tienes un Direct Drive puede ser bajo.

A continuación, vuelve a la función de pausa avanzada en configuration_adv.h y asegúrate de que PARK_HEAD_ON_PAUSE está sin comentar para que la boquilla se estacione (configuration_adv.h)

16. Funciones adicionales - EEPROM, ajustes de precalentamiento, limpieza de boquillas, contraseñas, idioma, sensibilidad del codificador, LCDs, neopixels

El siguiente elemento es EEPROM en la línea 2291 y definitivamente debería estar habilitado (configuration.h) - es como la función de memoria de tu impresora. Así que si cambias algo, básicamente cualquier cosa con un comando Gcode, puedes guardarlo con un comando M500 y se conservará. Sin esa función, la impresora simplemente se reiniciará con la configuración de firmware que configuraste en tu ordenador.

Lo siguiente son las constantes de precalentamiento en la línea 2335 (configuration.h). Al igual que con EEPROM, deberían estar ahí por defecto, aunque a veces los valores no sean tan buenos. Me gusta que estos valores sean un poco más altos que la temperatura de impresión real. Por defecto, sólo las temperaturas de PLA y ABS están preestablecidas, pero si en realidad no usas ninguna de ellas o necesitas muchos preajustes, se pueden añadir hasta 10.

Lo siguiente es la función de limpieza de boquillas en la línea 2374 (configuration.h). Esto es útil para una impresora de doble extrusor, pero también podría ser útil para una impresora de un solo extrusor si deseas que la primera capa sea perfecta.

La siguiente cosa es el password en la línea 2498 (configuration.h) - es posible que no desees que tu hijo, por ejemplo, o compañeros de cuarto:inside que no conocen los límites utilicen la impresora. La protección por contraseña podría ser útil en ese caso, pero si eres el único con acceso a la impresora, no es útil.

También tenemos ajustes para el soporte LCD en la línea 2529 (configuration.h). Si el inglés o el chino no es tu primer idioma, eso no es un problema, tienes unos cuantos para elegir aquí. Si tu controlador utiliza una rueda codificadora, puedes cambiar la sensibilidad en la línea 2602 (configuration.h). Más abajo en la configuración del controlador, puedes seleccionar tu controlador, tal vez uno con soporte para tarjeta SD o uno con pantalla táctil.

También puedes actualizar tu impresora con neopixels, que son LEDs que puedes conectar a tu impresora para crear una mejor iluminación o un espectáculo de luces. Estos ajustes se pueden encontrar en la línea 3450 (configuration.h)

Por último, hay una característica nueva y muy chula llamada Input Shaping. Esta es una nueva característica en Marlin que puede compensar las vibraciones que pueden causar defectos antiestéticos en su impresión. Ya hemos creado un video y guía para ayudarte a configurarlo.

Esta lista de ninguna manera cubre todo, sino que sólo da una visión general de los cambios que se suelen hacer en general. Si tienes algún problema con una parte en particular del firmware Marlin o te gustaría ver esta lista ampliada, por favor háznoslo saber. Ampliaremos esta guía en el futuro para ayudarte con cualquier cambio que desees realizar.