Cómo configurar el firmware Marlin y cargarlo en su impresora 3D
Una gran cantidad de impresoras 3D se ejecutan en el popular firmware Marlin , que se configuró inicialmente para Ultimaker Original. Echemos un vistazo a la configuración básica de otras impresoras 3D.
El firmware está disponible aquí . Descargue el archivo Marlin-Development.zip haciendo clic en el botón Descargar ZIP . Descomprímalo en una carpeta de su elección.
Ahora descargue Arduino IDE para configurar y cargar el firmware en su impresora 3D . Enlace . Haga clic en el botón de Windows Installer y descargue arduino-1.6.0-windows.exe . Ahora ejecútelo e instale Arduino IDE .
Abra la carpeta del firmware y ejecute el archivo Marlin.ino .
A continuación, el editor Arduino IDE abre el firmware. Necesitamos abrir la pestaña Configuration.h .
En esta sección, verá varios enlaces para la calibración de la impresora 3D y varias configuraciones básicas (por ejemplo, tipo de electrónica, tipo de sensor de temperatura, controlador LCD, etc.).
Comencemos eligiendo su controlador (PLACA MADRE). La lista de controladores está disponible en la pestaña boards.h . Haga clic en el icono de triángulo en la esquina superior derecha y seleccione tableros. H.
Ahora echemos un vistazo al hardware instalado. Éstos son algunos de los tipos de placas:
Melzi
RAMPAS 1.4
Disponemos de RAMPS 1.4.
Entonces, necesitamos reemplazar la línea “MOTHERBOARD BOARD_ULTIMAKER” con “MOTHERBOARD BOARD_RAMPS_13_EFB” en la configuración. H.
#ifndef PLACA MADRE
#define MOTHERBOARD BOARD_RAMPS_13_EFB
#terminara si
A continuación, deberá seleccionar el sensor de temperatura : elija una resistencia térmicamente sensible . Puede ver una lista grande llamada «//// Configuración del sensor de temperatura». En este caso en particular, tenemos un hotend E3D-v5 y una resistencia térmica china sobre la mesa. Para E3D-v5 seleccionamos “// 5 es termistor de 100K – ATC Semitec 104GT-2”, para la tabla – “// 1 es termistor de 100k – la mejor opción para EPCOS 100k”. Puede seleccionar 1 si no conoce el tipo de resistencia térmica. Podrás seleccionar cualquiera de ellos y probarlos si la temperatura no es de tu agrado. Estamos cambiando los valores.
Termistor 100K – ATC Semitec 104GT-2
Una resistencia térmica china común de 100 K
El límite máximo de la temperatura del hotend «#define HEATER_0_MAXTEMP 275».
El límite mínimo de la temperatura del hotend «#define EXTRUDE_MINTEMP 170».
Si el interruptor de límite se conecta de forma irregular y es necesario invertir su función, esto se puede hacer en el propio firmware sin necesidad de resolver los conectores. Los valores son verdaderos o falsos. El comando M119 (p. Ej. En Pronterface ) muestra el estado de los finales de carrera. Nuestros interruptores de límite están configurados en la posición INICIO en MAX .
En la posición de INICIO
En posiciones distintas de HOME a lo largo de todos los ejes
No tuvimos que cambiar nada.
const bool X_MIN_ENDSTOP_INVERTING = verdadero;
const bool Y_MIN_ENDSTOP_INVERTING = verdadero;
const bool Z_MIN_ENDSTOP_INVERTING = verdadero;
const bool X_MAX_ENDSTOP_INVERTING = verdadero;
const bool Y_MAX_ENDSTOP_INVERTING = verdadero;
const bool Z_MAX_ENDSTOP_INVERTING = verdadero;
Al cambiar las direcciones de rotación de los motores paso a paso , los valores son falsos o verdaderos . Corregir los movimientos de la boquilla en relación con la mesa :
– En el eje X – a la izquierda “-“, a la derecha “+”.
– En Y – hacia adelante «+», hacia atrás «-«.
– En el eje Z – más cerca “-“, más lejos “+”.
– Dispositivo de extrusión. «Extruir» – extrusión del hilo, «Revertir» (retraer) – retracción del hilo.
#define INVERT_X_DIR falso
#define INVERT_Y_DIR falso
#define INVERT_Z_DIR falso
#define INVERT_E0_DIR verdadero
A continuación, se encuentran los ajustes de los interruptores de límite . Necesitamos averiguar dónde están ubicados: el punto de origen está en la esquina izquierda cercana de la tabla . Si la boquilla llega a esta posición, los interruptores MIN se activarán; si alcanza la posición superior derecha, activará los interruptores MAX . Tenemos tres interruptores de límite MAX en la posición INICIO , nuestra configuración es la siguiente:
// Establece la dirección de los topes finales al volver a la posición inicial; 1 = MAX, -1 = MIN
#define X_HOME_DIR 1
#define Y_HOME_DIR 1
#define Z_HOME_DIR 1
Luego, necesitamos configurar las dimensiones del movimiento después del inicio en la posición INICIO . Podemos establecer las dimensiones del área de trabajo en los ejes X e Y, así como la configuración de la boquilla en relación con la mesa.
Si el interruptor de límite ( MIN ) se activa cuando la boquilla toca la mesa (como en el caso de la Ultimaker Original), la boquilla se puede ajustar a la mesa moviendo el interruptor de límite. Necesitamos poner el valor de la coordenada a la distancia máxima de la mesa a la boquilla en la línea “#define Z_MAX_POS”. Puede encontrar el valor necesario utilizando el comando M114 o mirando la pantalla.
Si el interruptor de límite en el eje Z se activa cuando la boquilla está más lejos de la mesa ( MAX ), necesitará encontrar los valores de la dimensión Z usted mismo. Inicialmente establecemos el valor “#define Z_MAX_POS” más alto de lo normal, por ejemplo usamos 250 con la dimensión de 200 mm. Podemos bajar la boquilla hasta que toque la mesa para que podamos ver el valor mayor que cero en la pantalla (o usando el comando M114 ), que restamos del valor más alto establecido y obtenemos la dimensión Z necesaria. Luego lo escribimos en la línea ”#define Z_MAX_POS”. Podrá ajustar este valor en consecuencia después de imprimir la primera capa según los resultados.
// Límites de viaje después del regreso
#define X_MAX_POS 215
#define X_MIN_POS 0
#define Y_MAX_POS 215
#define Y_MIN_POS 0
#define Z_MAX_POS 200
#define Z_MIN_POS 0
Puede ajustar la velocidad de movimiento en la posición INICIO.
#define HOMING_FEEDRATE {50 * 60, 50 * 60, 4 * 60, 0} // establece las velocidades de inicio (mm / min)
Ahora pasemos a la parte más importante: establecer los pasos por unidad para uno o más ejes . El dispositivo de extrusión también es un eje. Aquí están nuestras configuraciones:
Ahora veamos cómo los configuramos . Hay motores paso a paso en todos los ejes, 200 pasos por revolución, 16 micropasos por paso (determinados por los pines de puente en la placa). Los ejes X e Y están equipados con una correa de transmisión GT2 con un paso de rosca de 2 mm y poleas de 20 dientes, que en total nos lleva a esta fórmula: (200 * 16) / (2.0 * 20). El eje Z tiene roscas M8 con un paso de 1,25 mm, la fórmula total es 200 * 16 / 1,25.
Podemos encontrar las especificaciones necesarias (hojas de datos) para los motores paso a paso instalados, en los que vemos que el eje gira 1.8 grados en un paso, lo que significa 360 / 1.8 = 200 pasos por revolución completa. Este parámetro es el mismo para la mayoría de motores paso a paso de impresoras 3D domésticas.
Perfiles de banda comúnmente utilizados en impresoras 3D y su paso . Enlace original, página 61.
Polea
¿Cómo medir el paso del tornillo ?
Podemos medir el segmento del tornillo y contar las vueltas en él, luego dividir la longitud de la sección en milímetros por el número de vueltas: 20/16 = 1,25 mm. Podemos medir el segmento de longitud máxima para obtener resultados más precisos.
El proceso de configuración del dispositivo de extrusión depende de la relación de reducción y el diámetro del engranaje de alimentación. Seleccionemos algunos valores experimentando después de la carga inicial del firmware. Desenrosque la boquilla y reduzca el límite mínimo de temperatura de la boquilla a 5 grados : “#define EXTRUDE_MINTEMP 5”. Ahora el dispositivo de extrusión funcionará con una boquilla fría, que es exactamente lo que necesitamos. Mantengamos esta configuración por el momento. Usamos Pronterface para la configuración. Ponemos los siguientes valores: 50 mm y la velocidad de 100 mm / seg (50 mm es la longitud de la barra que pasa por el dispositivo de extrusión; podemos medir la longitud de la barra que pasa por el dispositivo de extrusión con una regla o una calibre de calibre).
Jugando con la configuración del dispositivo de extrusión, encontraremos el valor exacto necesario a una longitud de barra razonable, digamos 300 mm. Una vez configurado, volveremos al límite mínimo de temperatura : “#define EXTRUDE_MINTEMP 170”.
Los siguientes valores son los límites de la velocidad axial máxima . Pusimos 200 mm para los ejes X e Y y no cambiamos el resto.
#define DEFAULT_MAX_FEEDRATE {200, 200, 5, 25}
Configuración de la aceleración de movimientos axiales. Los saltos de pasos son posibles con valores de aceleración suficientemente altos. Puede encontrar los valores adecuados experimentando en Pronterface con las pruebas a cualquier velocidad determinada. Aquí están nuestras configuraciones:
#define DEFAULT_MAX_ACCELERATION {1000,1000,100,10000}
#define DEFAULT_ACCELERATION 1500
Finalmente, necesitamos activar la pantalla LCD con una tarjeta SD . Esta pantalla en particular se encontró en RepRap.org y la identificó como RepRapDiscount Smart Controller .
Descomentemos (eliminemos las barras dobles) las siguientes líneas:
#define ULTRA_LCD
#define SDSUPPORT
#define ULTIPANEL
#define REPRAP_DISCOUNT_SMART_CONTROLLER
Hay un ajuste más para aumentar la precisión de la función de algunos interruptores de límite. Cuando establecemos el valor Z en cero, nos encontramos con el problema de que la boquilla ubicada sobre la mesa cambia ligeramente su posición después de cada inicialización de INICIO . Después de hurgar en el firmware, encontramos el parámetro responsable de la puesta en marcha de los interruptores de límite. Necesitamos abrir la pestaña Configuration_adv.hy buscar la línea “#define Z_HOME_RETRACT_MM 2”. Luego cambiamos el valor 2 a 5 y nos olvidamos alegremente de este parámetro para siempre.
Ahora es el momento de cargar el firmware en el controlador . Para hacer esto, necesitamos poner correctamente el tipo de placa y el número de puerto COM en Arduino IDE . En la parte inferior de la ventana, puede ver el tipo de placa y el número de puerto que se muestran. No olvide guardar sus cambios (Ctrl + S).
Rampas
MELZI
Para poder seleccionar la placa deseada en Arduino IDE , primero debe copiar todo de la carpeta de firmware «Marlin-DevelopmentArduinoAddonsArduino_1.5.xhardwaremarlinavr» a la carpeta Arduino IDE en «C: Archivos de programa (x86) Arduinohardwarearduinoavr» ‘ . Esto le permite elegir la placa Sanguino (placa base para Melzi ) y el tipo de procesador deseado. No tenemos una placa Melzi, por lo que no podemos verificar su funcionalidad con el software.
Haga clic en el círculo con el icono de flecha para cargar el firmware.
El indicador muestra el progreso de la carga del firmware
Deberá ejecutar la calibración PID para calentar el hotend y la cama después de asegurarse de que todo funciona correctamente . Para ello utilizamos Pronterface . Ingrese el siguiente comando: M303 E0 C8 S260 , donde M303 es el comando de calibración, E0 es el hotend, C8 es el número de ciclos de calentamiento-enfriamiento y S260 es la temperatura estándar de operación de la boquilla.
Luego ingresamos los resultados en el firmware .
#define DEFAULT_Kp 12.22
#define DEFAULT_Ki 0.58
#define DEFAULT_Kd 64.08
Después de eso, calibramos el PID de la cama usando el mismo método. Ingrese el siguiente comando: M303 E-1 C8 S110 , donde E-1 es la cama y S110 es la temperatura estándar de calentamiento de la cama. Ingrese los resultados en el firmware . Nuestra mesa se calienta muy lentamente, por lo que tenemos que reiniciar el comando debido a un error de tiempo de espera.
#define DEFAULT_bedKp 105.94
#define DEFAULT_bedKi 4.97
#define DEFAULT_bedKd 564.11
¿Dónde puedo encontrar los parámetros predeterminados de mi impresora 3D para evitar la recalibración?
Los parámetros predeterminados establecidos en el firmware se pueden encontrar usando el programa Repetier-Host en el menú de configuración de EEPROM . Primero debe especificar el puerto COM en la configuración y hacer clic en el botón Conectar.
La lista de parámetros de firmware se muestra en la sección derecha de la ventana cuando conecta su impresora 3D a Pronterface.
Los parámetros también se pueden ver en la pantalla LCD a través del menú ControlMotion .