Guía Calibración Impresoras 3D FDM/Filamento
La puesta en marcha de una impresora así como el calibrado preventivo es muy importante para un correcto funcionamiento y precisión de nuestra impresora.
Última actualización
La puesta en marcha de una impresora así como el calibrado preventivo es muy importante para un correcto funcionamiento y precisión de nuestra impresora.
Última actualización
Aunque probablemente muchos de vosotros sepáis como funciona una impresora FDM puede ser instructivo para algunos repasar a grandes rasgos como es su funcionamiento. La siguiente infografía, aunque algo antigua, creemos que refleja de una forma bastante sencilla y clara el funcionamiento general de esta tecnología de impresión 3D:
Por otro lado y dado que en algunas partes de los pasos de calibración mencionaremos algunas partes de nuestras impresoras a continuación os facilitamos un esquema de las partes de una impresora 3D FDM:
Os recordamos que tienes mas guias de ayuda en nuestro bot de Telegram @ThreeDWorkHelpBot
Para realizar los diferentes tests indicados en esta guía es necesario un laminador, os aconsejamos varios, ordenados por nuestro gusto personal, podéis probar varios y usar el que más os guste:
⚠️ OrcaSlicer - es un fork de Bambu Studio con algunas mejoras interesantes... como la compatibilidad incluyendo perfiles de otras máquinas como Ratrig, Voron, Creality, Anycubic, Prusa...
Dado que es un fork de PrusaSlicer comparte muchas opciones y funcionamiento pero con una interfaz reformulada, junto con algunas funciones de SuperSlicer, Cura y otros laminadores... además de incluir algunas funciones centradas en producción interesantes como múltiples platos de impresión, generación de 3mf con todo el contenido, acceso a la interfaz web de la impresora si esta cuenta con ella, etc...
Podemos descargar OrcaSlicer:
OrcaSlicer -> https://github.com/SoftFever/OrcaSlicer/releases/
Si estáis interesados podéis acceder anuestro grupo de Telegram.
Aconsejamos el uso de OrcaSlicer (fork de Bambu Studio) o SuperSlicer (un fork de PrusaSlicer donde integran opciones avanzadas antes de incorporarlas) ya que tiene unas estupendas opciones para generar algunos de los tests de calibración usados en esta guía.
Tenemos organizados por orden lógico los tests de calibración, en cualquier caso os vamos a agrupar estos en diferentes categorías que permitan localizar mejor el test adecuado en nuestro caso:
A continuación os facilitamos una serie de tests básicos a realizar...
Cambiamos de tipo de filamento
Hemos cambiado algún componente de nuestro sistema de extrusión
A continuación os vamos a sugerir, por orden, los tests y ajustes que pensamos interesantes para la calibración de nuestra impresora 3D. En todo caso, y aunque está en inglés, os aconsejamos este "cheat sheet" de core-electronics muy visual que nos puede ser de gran utilidad:
VREF/corriente es simplemente el voltaje regulado que entregan nuestros drivers al motor. Un ajuste correcto del VREF/corriente nos permitirá una calibración precisa de nuestros motores.
Si nuestro VREF/corriente es muy bajo nuestro motor no tendrá suficiente torque y puede causar la temida pérdida de pasos en forma de pérdida de precisión y el efecto de capas desplazadas en nuestras impresiones. Si por el contrario nuestro VREF es muy alto nuestros motores puedes sobrecalentarse ocasionando efectos similares al punto anterior e incluso hacer fallar los motores o dañarlos.
En el caso que tengamos una maquina comercial y siempre que no modifiquemos sustancialmente su mecánica/cinemática, motores o no tengamos los problemas citados anteriormente (perdida de pasos o sobrecalentamiento/fallo de los motores) no es normalmente necesario realizar este ajuste.
El calculo de VREF/CURRENT depende principalmente de tres factores... el tipo de drivers que usemos , los A soportados por nuestros motores y el tipo de firmware que usemos.
Es muy importante que en el caso de cambio de drivers o motores tengamos en cuenta las características de los mismos y las capacidades de los drivers. Como ejemplo revisa la siguiente lista sobre los A soportados por estos tipos de drivers listando algunos a modo de ejemplo:
A4988 -> 2A
DRV8825 -> 2A
TMC2208 -> 1.2A
TMC2209 -> 1.7A
Debemos intentar tener en concordancia los A de nuestros motores con las capacidades de nuestros drivers para evitar problemas
Con estos datos y para que sea sencillo el cálculo os aconsejamos el uso de una calculadora online donde indicar los A de vuestro motor y el % de seguridad el cual es aconsejable colocar entre 80-90%, tenéis una buena explicacion en este documento de E3D
Para el ajuste del VREF/CURRENT tenemos dos opciones dependiendo de como nuestros drivers esten instalados/configurados, normalmente tenemos dos modos... modo UART/SPI que es un modo inteligente donde el firmware puede controlar al detalle los ajustes del driver o Standalone/StepDir donde el driver usa una configuración estática:
El modo UART o modo gestionado dinámico de drivers es el más adecuado para poder aprovechar al máximo nuestros drivers siempre que estos y nuestra placa los soporten y estén configurados en nuestro Marlin.
En el caso de usar nuestra calculadora deberemos usar el valor de corriente máxima (CURRENT) de nuestros motores aplicando un margen de entre 80-90%.
Para ajustar el CURRENT en este caso es muy sencillo y básicamente tenemos 3 opciones:
Usando nuestra pantalla LCD/TFT, en pantallas LCD modo Marlin dispondremos de un menu Configuracion/Avanzado/TMC donde ajustar la corriente antes calculada o simplemente ajustarla a nuestro gusto. Para pantallas TFT depende de cada fabricante en que parte del interfaz dispongan de esta configuración. En cualquier caso es importante salvar a EEPROM una vez hecho el cambio (modo Marlin menú Configuracion/Salvar EEPROM) para evitar que este se pierda al reiniciar la impresora.
Mediante gcode usando un cliente terminal como Pronterface/Octoprint o algunas pantallas TFT. Para ello enviaremos el comando M906. M906 X5 Y5 Z5 por ejemplo ajustariá la corriente de los ejes X Y Z a 0.5V (500)... al igual que el punto anterior es importante salvar los cambios en EEPROM con un M500
En los ficheros de Marlin, en configuration_adv y dependiendo de nuestros drivers tenemos la configuración... os aconsejamos revisar la documentación de vuestra placa para encontrar donde se ubican exactamente los cambios
En este caso es muy aconsejable realizar un M503 y/o un M122 para verificar que los datos estan correctmente.
Es importante al ajustar estos valores realizar un seguimiento de nuestros motores para ver si los valores de vref/run_current son los adecuados para nuestra máquina:
En el caso que observemos un calor excesivo de los motores deberemos reducir el valor vref/run_current hasta unos valores que no afecten a la temperatura del motor en exceso. No hay una fórmula mágica pero generalmente si tocando con el dedo no aguantamos el calor del motor es síntoma de exceso de temperatura en el mismo
Por otra parte si vemos pérdida de pasos ya sea constante o puntuales que no estén relacionadas con problemas mecánicos deberemos aumentar el valor vref/run_current. Dado que normalmente aconsejamos un 80-90% de seguridad al calcular los valores suele ser el caso más común tener que ajustar al alza los valores vref/run_current pero siempre teniendo en cuenta los límites de nuestro motor y drivers!!!
Una parte crítica en una impresora 3D es el control del filamento extruido. Este proceso no es en un eje de movimiento si no de extrusión así que se aconseja que el test se realice extruyendo filamento por el nozzle.
Antes de comenzar a imprimir, si... ya hay ganas!!!, tenemos que calibrar los pasos de nuestro extrusor.
Con el hotend a la temperatura aconsejada para el material que usemos realizaremos una marca a 120mm de la entrada del extrusor.
Si en lugar de realizar el test extruyendo en caliente queréis hacerlo al "aire"/frio sin extruir deberéis desconectar el extrusor del hotend o desmontar este y usar el comando M301 P1 o S0 para poder extruir en frio.
Desde nuestra pantalla o mediante gcode mandaremos extruir 100mm.
Después de extruir mediremos desde la entrada del extrusor, donde previamente tomamos como referencia para marcar los 120mm, hasta la marca que hicimos en el primer punto y con ese valor realizaremos la siguiente fórmula (asumiremos que, aunque en un mundo perfecto debería medir 20mm esa distancia, hemos obtenido 19mm): 120mm-19mm= 101mm
Ahora calcularemos nuestros nuevos steps utilizando el valor de la siguiente fórmula: (valor_actual_steps*100)/(valorcalculado_medicion_extruido)= nuevo_valor_steps Como ejemplo: (33 * 100)/(101) = 32.673
El ajuste de los pasos los puedes realizar de diferentes formas:
desde la pantalla en modo Marlin en Configuración/Avanzado/Steps
mediante gcode desde un terminal como Pronterface con M92 Exxx (donde xxx serían los pasos calculados previamente).
Recuerda, si tienes un Marlin cocinado por ti anotar estos valores, y si modificaste por pantalla ir a Configuración/Salvar EEPROM o si lo hiciste por terminal lanzar un M500.
Puedes acceder a la calculadora E-step/rotation_distance aquí a continuación puedes ver como es:
Esta calibración es independiente del resto, dado que no requiere que se hayan reslizado otros tests previamente
Antes de meternos en lo que es la calibración en sí, sería bueno entender que es el PID/MPC, lo cual básicamente es un algoritmo que ayuda a la máquina a mantener los valores de temperatura deseados tanto en el Nozzle como en la Cama caliente, para ello tiene una serie de valores que ajustan la cantidad de corriente que llega a los calentadores de estos y la varía en función de las lecturas recogidas por los termistores (sensores de temperatura).
En el caso de la cama os aconsejamos ver el siguiente video para entender la importancia de usar o no PID en la cama.
En Marlin contamos con tres formas diferentes de ajustar temperaturas:
BANG BANG, es el método tradicional que actúa básicamente como un termostato apagando o encendiendo cuando un valor este por encima o debajo del umbral establecido. No suele ser el aconsejable salvo en casos muy específicos como con calentadores accionados por relés mecánicos o si tenemos inductancias como vimos en el video anterior
PID, es el más usado y básicamente es un algoritmo que actúa sobre la potencia del calentador para ajustar/mantener la temperatura de nuestros calentadores.
MPC, o Model Predictive Temperature Control, disponible desde las versiones 2.1.x es más inteligente y adaptable ya que usa la simulación y aprendizaje para el mantenimiento de nuestra temperatura. Esto añade unas ventajas como una configuración sencilla aportando más estabilidad térmica
Para realizar este ajuste podemos realizarlo de dos formas distintas:
IMPORTANTE!!! Es aconsejable realizar el PID con la ventilación de capa activada al 100%, la cama a la temperatura normal de impresion y la algura de Z a 5mm. En el caso de necesitar el proceso PID varias veces asegurarse que la temperatura del hotend/cama sea la ambiente para obtener valores más precisos.
Desde el LCD dentro del menú Temperatura o Configuración/Avanzado
Recordar habilitar en Marlin (configuration.h) las siguientes opciones:
#define PID_EDIT_MENU #define PID_AUTOTUNE_MENU
Desde terminal como Pronterface
Para realizar el PID del hotend: M303 E0 S200 C8 U
Para realizar el PID de la cama: M303 E-1 S60 C8 U
El comando M303 de Marlin tiene los siguientes parámetros:
C<número>, le indicamos el número de ciclos PID que queremos que haga. Por defecto hace 5 en el caso que no se especifique aunqe lo ideal es al menos 3. Normalmente un numero entre 8-10 suele ser más preciso
E<indice>, le indicamos el índice de nuestros calentadores.
Para la cama caliente indicaremos -1
Para hotends comenzaremos desde 0 para el primero, 1 para el segundo, ...
S<temperatura>, la temperatura objetivo a realizar el PID que os aconsejamos usar la temperatura máxima que uséis con vuestros filamentos
U, para que nuestros parámetros se apliquen en EEPROM... si no simplemente los mostrará en el terminal y será necesario guardarlos manualmente
En el caso que no deje realizar el PID de la cama (M303 E-1) es muy probable que no esté habilitado en Marlin (configuration.h): #define PIDTEMPBED
Guardar datos del PID en nuestra EEPROM!!!
Para que los valores obtenidos sean efectivos tenemos que asegurarnos que estos se almacenan en nuestra EEPROM para ser usados por el firmware. Tenemos tres formas de realizar este proceso:
directamente durante el proceso de calibración usando el flag U
anotando los valores obtenidos y aplicarlos con los gcodes M301 y M304
M301 P19.56 I0.71 D134.26 - hotend M304 P1 I2 D3 - cama
y en cualquier caso un M500 para que estos valores se almacenen en nuestra EEPROM
anotando los valores en las fuentes de nuestro Marlin, recordad que en caso que se haga un reset de la EEPROM si estos valores no estaban en nuestras fuentes/firmware compilado desaparecerán!!!, compilando y subiendo nuestro firmware con los nuevos valores... recordad que SIEMPRE que subamos una nueva versión de firmware debemos de realizar al menos un M502 (Factory reset) y un M500 (almacenar datos en EEPROM).
En caso que por protección térmica, nos puede saltar un aviso por pantalla o en raras ocasiones incluso resetear la impresora, no permita hacer el autoPID deshabilitar momentáneamente:
En el caso de alarmas por protección de temperaturas que no se solucione con un PID se tendrán que variar los parámetros de tiempo e histéresis de dicha protección.
https://3dprinting.stackexchange.com/questions/8466/what-is-thermal-runaway-protection
Como ya os comentamos MPC es una nueva función para el control que tiene en cuenta los siguientes aspectos:
el valor de potencia del hotend
temperaturas ambientes
efecto del ventilador en la temperatura del ambiente
temperatura del filamento y su feedrate, entendiendo que por defecto el filamento tiene la misma temperatura que el ambiente
Durante el proceso de calibración Marlin realiza todos los calculos y compara su predicción con la lectura del sensor haciendo diferentes simulaciones para obtener su algoritmo.
Os recordamos que MPC esta actualmente en modo EXPERIMENTAL por lo que puede no ser estable.
Dado el funcionamiento de MPC y siendo mucho más preciso que el PID tambien require de más cálculos por parte de la MCU lo que puede hacer que en electrónicas antiguas o con MCU lentas provoque problemas de rendimiento.
Habilitar MPC es bastante sencillo aunque actualmente solamente se encuentra esta función para el hotend:
Nos aseguraremos que NO tenemos habilitado PIDTEMP (Hotend)
Habilitaremos MPCTEMP en configuration.h
Configuraremos la potencia de nuestro calentador de hotend, normalmente las máquinas montan de 30W o 40W, en MPC_HEATER_POWER
Nos aseguraremos que en MPC_TUNING_POS tenemos unas coordenadas adecuadas para nuestra máquina como las que ya lleva por defecto que son en medio de los ejes X e Y y entre altura de primera capa y 1mm
También es interesante habilitar los menús de ajustes y de autotune que aparecerán en la sección Advanced Settings de nuestro display
Con esto ya tenemos la configuración de nuestro firmware, solo tendremos que compilar y aplicarlo a nuestra electrónica.
Una vez ya tenemos todo listo lanzaremos el autotune de MPC ya sea desde la pantalla como os sugeriamos antes o por gcode con el comando M306 T. En nuestro caso os mostramos por gcode:
Nos conectaremos desde un terminal a nuestra máquina y lanzaremos el gcode M306 T para hacer el autotune del hotend. El proceso moverá nuestro cabezal de impresión al centro de la cama y cerca de la superficie de la cama. Enfriará el hotend usando el ventilador de capa para conocer el efecto de este en la temperatura ambiente. Calentará el hotend varias veces, a 200ºC, para realizar mediciones. Mantendrá la temperatura y realizará más mediciones durante unos minutos. Con todos los datos realizará los cálculos para nuestra máquina y finalizará el proceso mostrando los valores a ajustar.
Una vez finalizado el proceso guardaremos en la eeprom con un M500 e idealmente anotaremos los valores que nos sufiere el proceso en nuestras fuentes de Marlin.
El nivelado de cama es crítico para poder disponer de una buena base para nuestras impresiones.
Dado que las primeras capas son extremadamente importantes para la adherencia de nuestras piezas es importante disponer de un sistema de nivelación que nos ayude a compensar desviaciones en nuestra máquina:
En Marlin y si no contamos con sensor de nivelación es muy aconsejable activar el nivelado MESH manual, tenéis una guía nivelación MESH aquí, ya que podéis ajustar y solventar problemas en el caso que vuestra cama no esté totalmente plana.
También en Marlin y para el ajuste manual 4 esquinas contamos con una interesante función de tramming (LEVEL_BED_CORNERS
) que si disponemos de sensor de nivelación podremos usar nuestro sensor de nivelación como ayuda para el ajuste haciendo que el nivelado sea mucho más preciso.
Si disponéis de sensor de nivelación y sois usuarios de Marlin os aconsejamos usar la nivelación UBL, la más potente en Marlin, y que gracias a sus opciones y asistentes nos facilitará enormemente el proceso de nivelación. Si queréis más información la podéis encontrar en nuestra guía UBL.
En el caso de ser necesario ajustar el ZOffset a partir del valor obtenido (en el caso de disponer de sensor de nivelación o MESH como sistema de nivelación) sumaremos el valor de babbystepping a nuestro ZOffset.
Podéis ver una explicación en forma de video aqui
Podemos verificar el estado de nuestra cama y si disponemos de un sistema de nivelación realizando un test de primeras capas:
Nuestro laminador favorito también nos permite crear un test de primeras capas en unos cuantos clicks.
Dado que SuperSlicer y PrusaSlicer suelen usar la misma base es muy sencillo el exportar/importar sus perfiles o usando un fichero 3mf
Iremos al menú de Calibration donde seleccionaremos Bed/Extruder leveling desde donde se nos abrirá una nueva pantalla con descripción del proceso y pulsar a generar nuestro test de primeras capas
Nos va a generar 5 rectángulos con una solapa para retirarlos fácilmente ubicados en las cuatro esquinas y otro central en nuestra cama.
Una función que incorporan la mayoría de los firmware para impresoras 3D es babystepping que básicamente nos permite realizar ajustes en la distancia de Z durante una impresión, normalmente usado en primeras capas.
Normalmente durante el test de primeras capas utilizaremos esta función para ajustar a nuestro gusto el ajuste de estas:
Desde Marlin, es imprtante que tenéis que tener habilitada esta opción (más información aquí), tenemos diferentes formas de realizar el ajuste:
Desde la pantalla (ejemplo para pantalla emulación Marlin, si dispones una táctil deberás revisar donde se encuentra en tu caso la opción) durante la impresión para poder usar Babystepping iremos al menú Tune
y seleccionaremos Babystep Z
y ajustaremos a nuestro gusto prestando atención al valor de Babystep ya que usaremos este después.
Enviando comandos gcode, desde un cliente terminal como Pronterface/Octoprint/TFT, disponemos de los comandos M290 Zx.xx
(para pedir que baje Z enviaremos M290 Z-0.0125
o para subir M290 Z0.0125
) donde x.xx es la distancia en mm a subir o bajar nuestro eje Z
El ajuste de flujo permite ajusta la cantidad de plástico extruído por la impresora. Una correcta calibración del flujo/flow permite solucionar problemas de falta o sobre extrusión además de mejorar los valores de retracción, ayudar a mejorar las esquinas y el efecto costura en nuestras impresiones.
Como paso previo al ajuste de flujo/flow es imprescindible que previamente tengamos correctamente ajustados los pasos de nuestros motores, encontrada la temperatura adecuada para nuestro filamento y el PID.
Un paso previo muy importante para una correcta calibración es realizar una comprobación del diámetro de nuestro filamento. Aunque el filamento que compramos normalmente indique 1,75mm en la realidad depende de la calidad del fabricante que este sea así cuando lo normal seria una desviación de 0.02mm en buenas marcas nos podemos encontrar con desviaciones de hasta/o más del 0.05mm. Para realizar esta comprobación mediremos 5 secciones de filametos con una distancia de unos 10cm en cada una y realizaremos una media.
Una vez tengamos este valor medio para este filamento lo ajustaremos en nuestro perfil de filamento en nuestro fileteador/slicer.
Filament Settings -> Filament -> Diameter
Como generar un test para comprobar nuestro flow idóneo:
En OrcaSlicer, podemos encontrar un test de flujo que podemos generar en unos pocos clicks:
Seleccionamos el perfil de impresora y filamento con el que queremos realizar el test de flujo.
Se nos crea un nuevo proyecto con 9 bloques, cada uno con un modificador de flow. Procederemos a laminar e imprimirlo.
Una vez impreso examinaremos los diferentes bloques de test para determinar cual es el que tiene una superficie más lisa.
Ajustaremos nuestro valor de Flow Ratio, dentro del perfil de filamento, haciendo una regla de 3: FlowRatio_orig*(100+modificador)/100 Si nuestro Flow Ratio original era 0.98 y en nuetro test hemos seleccionado el bloque de +5 el nuevo valor lo calcularemos: 0.98*(100+5)/100= 1.029 -> valor a colocar en Flow Ration
Volveremos al menú de calibración pero esta vez lanzaremos el Pass 2. Este proceso es similar al anterior pero en este caso generará 10 bloques con rangos de flow de -9 a 0.
Volvemos a imprimir el proyecto y seleccionaremos el bloque con mejor acabado. Teniendo en cuenta el Flow Ratio calculado previamente de 1.029 y seleccionando del nuevo test -6 el nuevo valor de Flow Ratio lo calcularemos de la siguiente forma: 1.029*(100-6)/100= 0.96726
En el caso que tengamos una Bambu Lab X1 o X1C, y para lanzar este test, deberemos desmarcar la opción Flow Calibration
Una vez tengámos nuestro valor de flujo/flow en nuestro fileteador/slicer lo podemos encontrar en...
Filament settings/Filament/Basic information/Flow ratio
Ultimas recomendaciones sobre el flujo/flow...
A veces es muy difícil obtener unas correctas dimensiones de los muros, dada la naturaleza de la impresión FDM es complicado obtener unos valores exactos y repetibles
El test de flujo no es necesario en cada bobina de un mismo tipo/color de filamento pero si seria aconsejable realizarlo en cada tipo y color de filamento para tenerlo como referencia ya que los valores de flow pueden cambiar significativamente sobretodo por tipo de filamento (PLA/PLA+/SPLA/PETG/TPU/ABS/etc...)
Las torres de temperaturas nos permiten encontrar la temperatura óptima para un determinado filamento.
Es importante hacer este test con cada bobina que usemos para ajustar o verificar que los valores son los correctos.
Como crear nuestra torre de temperatura:
Como ya os hemos comentado usando SuperSlicer contamos con un menú dedicado para crear nuestros tests de una forma muy sencilla.
Dado que SuperSlicer y PrusaSlicer suelen usar la misma base es muy sencillo el exportar/importar sus perfiles o usando un fichero 3mf
Iremos al menú de Calibration donde seleccionaremos Filament temperature calibration desde donde se nos abrirá una nueva pantalla con descripción del proceso y algunos ajustes para poder generar nuestra torre de temperatura
Descripción del test con algunas imágenes de ejemplo
Zona importante dado que nos indica que tests deberíamos de tener hechos antes de realizar este
Número de tests por debajo de la temperatura actual definida en nuestro perfil de filamento
Lo mismo que el anterior pero por encima de la temperatura
Aquí indicaremos el salto, por encima o por debajo, de temperatura en cada test. Por ejemplo con 2 saltos por encima y por debajo con un salto de 10 grados tendremos.. -20 -10 0 +10 +20. En el caso de ser un filamento totalmente nuevo hacer saltos en 10 suele ser un test bueno de aproximación siendo aconsejable hacer otro más fino después
Desde aquí podremos generar el test
Recuerda que si pasas el cursor por encima de las funciones tendrás una descripción de que hacen
Una vez todo ajustado y generado el test veremos nuestra torre de temperatura!!! en 4 clicks
podemos hacer el laminado y revisar el preview para verificar temperaturas en el
Para interpretar las torres de temperaturas deberemos fijarnos en:
Acabado de los puentes (bridge) y voladizos (overhang), que no queden descolgados en la medida de lo posible y bien definidos
Definición de los números de la temperatura, estos deben quedar lo mas legibles posible además del efecto "olas" (ghosting) alrededor de los mismos aunque esto último suele ser por otro tipo de problemas una correcta temperatura ayuda a reducir el efecto
Figuras cónicas (stringing) que bien definidas sin restos de material o deformaciones en la medida de lo posible
Consistencia, podemos intentar partir cada sección para ver si la adhesión de capas es adecuada
Es muy importante asegurar que los movimientos, en nuestros ejes de movimiento XYZ, son precisos y hacemos especial incapié en el concepto ejes de movimiento.
Históricamente, y por simplicidad para los usuarios que empiezan en la impresión 3D, hemos aconsejado el método del cubo de calibración para este ajuste... todo y que en las primeras versiones de esta guía no lo hacíamos creando problemas para entender el proceso o preferían el método del cubo.
Dado que queremos que nuestra guía de calibración sea lo más fiable posible volvemos a añadir en detalle el proceso de ajuste y verificación de los pasos en ejes de movimiento.
El uso del cubo de calibración está muy bien como test para comprobar si nuestras impresiones son fiables dimensionalmente pero no deberíamos usarlo como referencia para el ajuste de nuestros pasos en los ejes de movimiento.
Volviendo al concepto de ejes de movimiento... los ejes X Y Z de una impresora 3D son ejes de movimiento y por lo tanto tenermos que ajustar sus configuraciones en base a movimientos NO en base a piezas impresas.
Las configuraciones de estos ejes se han de calcular en base a:
el tipo de motor, básicamente al ángulo usado para sus movimientos en lo que básicamente encontramos de dos tipos... motores con 1.8º y 0.9º de giro
cantidad de micropasos usados por el driver para los movimientos del motor, normalmente 16 aunque hay máquinas o usuarios que les gusta usar 32 o incluso más. En este aspecto podríamos tener una amplia discusión de si el aumento de estos micropasos tienen verdaderamente beneficios, en general para máquinas normales, o pueden acarrear más problemas que beneficios.
tipo de engranaje usado para el acople de nuestras correas
Pongamos un caso práctico de una impresora típica que usa una correa en un eje de movimiento, normalmente una GT2 que tiene exactamente 2mm +/- tolerancias del fabricante entre dientes.
Si usamos un engranaje de 20 dientes que es lo normal en la mayoría de impresoras tendremos que una revolución del motor, una vuelta, será SIEMPRE 20 dientes * 2mm que es un desplazamiento de 40mm.
De igual forma, para un motor estándard de 1.8º necesitará SIEMPRE 200 pasos completos para realizar una vuelta con lo qu etendremos que 200 pasos completos equivalen a 40mm de desplazamiento.
Salvo casos graves las tolerancias de fabricación de componentes no deberían cambiar estos cálculos.
Los objetos impresos, a nivel de dimensiones en concreto, les afectan diferentes variables como por ejemplo el flujo, la expansión horizontal de nuestros filamentos, la precisión/calidad en el diámetro del filamento y un largo etcétera de opciones de nuestra configuración firmware/laminador o incluso ambientales.
Con todas esas variables y teniendo en cuenta lo explicado anteriormente NO es aconsejable usar una pieza impresa para el ajuste de pasos en ejes de movimiento.
Para calibrar de forma precisa nuestra máquina, y de nuevo recordando el concepto de ejes de movimiento, lo primero de todo deberemos excluir de la ecuación el uso de extrusión de filamentos para ello.
Segundo, tendremos que asegurarnos que nuestra máquina esté correctamente en aspectos como: tensión y calidad de correas, excéntricas, chasis a escuadra, prisioneros, engrasado/lubricado, corriente y configuración de señales de nuestros motores, etc.
Para realizar el test usaremos un manómetro o en su defecto un calibre digital el cual anclaremos de una forma firme a nuestra máquina para poder medir el eje deseado.
Os adjuntamos un video muy bueno de nuestro compañero TeachingTech que explica de forma excelente el proceso.
Es importante para estos tests:
nuestro sistema de medición ha de estar bien fijado y totalmente paralelo al movimiento del eje a medir
revisar que los movimientos y montaje de nuestro sistema de medición no golpee en ningún lugar durante los tests
Para realizar los tests podemos usar los controles de movimiento desde nuestra pantalla, usando Pronterface o desde un host como Octoprint o la UI de Klipper dependiendo de que sistema use nuestra máquina.
Hemos de asegurarnos que nuestra máquina haga un home antes de comenzar con el proceso y entonces fijar nuestro sistema de medición.
Os aconsejamos realizar movimientos de entre 50-100mm dependiendo de vuestra máquina y espacio disponible que permita la instalación del sistema de medición, a tests más grandes en distancias mejor detección de las desviaciones.
Es importante repetir las medidas por lo menos 3 veces por cada eje y hacer una media con los valores obtenidos.
Independientemente del método que decidamos usar para revisar/ajustar los paso de nuestros ejes es importante cuando dar por buena una desviación. En nuestro caso y para impresoras 3D destinadas para usuarios normales dariamos por buenas unas desviaciones entre 0.1-0.05 mm ya que normalmente no vamos a necesitar más precisión para nuestros proyectos.
También os recordamos que es mejor usar test de medidas de mayor tamaño dado que podremos encontrar o resaltar las desviaciones de una forma más visible y fiable, como por ejemplo imprimir un cubo de calibración de 30 o incluso 40mm o solicitar movimientos de 50 o 100mm para medirlos con un calibre o manómetro digital.
Por último os aconsejamos, antes de realizar cualquier ajuste de pasos en esta dado que vienen o se definen en base a las características de la máquina, revisar cuidadosamente los siguientes aspectos:
correas con la tensión correcta, y lo más parecidas entre los diferentes ejes... en especial en máquinas CoreXY o similares. Para ello tenemos diferentes métodos como una herramienta de verificación de tensado o un espectrómetro.
Un dato importante relacionado con las correas, engranajes y precisión dimensional es importante el porqué es aconsejable el uso de engranajes dentados para los pasos de correa.
El uso de engranajes dentados la unión entre el engranaje, por un paso con tracción, y la correa es más firme además que puede prevenir el propio desgaste de la correa tal como podemos observar en la siguiente imagen.
Por otro la los pasos de correa por engranaje por su parte lija es aconsejable que se use un paso liso sin dientes:
excéntricas correctamente ajustadas evitando holguras y/o resistencias en los movimientos del eje
chasis correctamente a escuadra que permita un movimiento fluido y fiable de los ejes
prisioneros en engranajes de motores correctamente fijados para evitar cualquier pequeño desplazamiento
correcto engrasado/lubricado de nuestra máquina que permita unos movimientos fluídos
corriente en nuestros motores bien ajustada que evite perdidas de pasos y/o excesivo calentamiento de los motores y drivers
funciones que mejoren la precisión de las señales o pulsos a nuestros motores como por ejemplo SQUARE_WAVE_STEPPING de Marlin, deshabilitar Hybrid o ajustarlo para velocidades que no afecten durante la impresión, etc...
Como ajustar finalmente nuestras desviaciones teniendo en cuenta por un lado los movimientos exactos de nuestros ejes donde ajustaremos los pasos en nuestro firmware y como segundo paso como ajustar nuestro laminador para afinar las medidas de nuestras piezas impresas:
Sentimos ser pesados pero recuerda que los pasos en firmware se definen por la configuración mecánica/electrónica de nuestra impresora, además de por el correcto ajuste de las partes expuestas anteriormente.
NO debería ser necesario modificar pasos salvo por no conocer o saber calcular los valores de tu máquina o que esta tenga unas desviaciones muy grandes probablemente provocadas por algún fallo en algún punto de la máquina.
Marlin usa steps por mm que básicamente son el número de pulsos que se envian al motor para llegar a realizar una distancia de 1mm.
Steps por mm dependen de diferentes cosas, angulo del motor (normalmente 1.8º aunque también son populares los de 0.9º), los drivers y su configuración de micropasos, y el sistema mecánico de engranajes y correas que use nuestra impresora.
Tal como desscribimos anteriormente con un calibre y midiendo un movimiento del eje calcularemos/ajustaremos nuestros pasos.
Puedes usar calculadora de pasos, regla de 3, para proceso de cálculo o verificado de pasos (pulsa sobre el icono Run Pen):
https://blog.prusaprinters.org/calculator_3416/#steppermotors
El ajuste/verificación de los pasos los puedes realizar de diferentes formas:
desde la pantalla en modo Marlin en Configuración/Avanzado/Steps
El ajuste/verificación de los pasos los puedes realizar de diferentes formas:
desde la pantalla en modo Marlin en Configuración/Avanzado/Steps
mediante gcode desde un terminal como Pronterface con M92 Xxxx Yxxx Zxxx (donde xxx serían los pasos calculados previamente) o usando M503.
Recuerda si tienes un Marlin cocinado por ti anotar estos valores, y si modificaste por pantalla ir a Configuración/Salvar EEPROM o si lo hiciste por terminal lanzar un M500.
He seguido todos los pasos anteriores y sigo teniendo problemas dimensionales con mis piezas o me gustaría ajustarlo al máximo...
IMPORTANTE!!!
hemos de asegurarnos que tenemos correctamente ajustados los pasos de nuestro extrusor
Tener correctamente los pasos o rotation_distance tal y como hemos leído previamente
Si vemos un error de skew/obliquidad >0.5º os aconsejamos revisar mecánicamente vuestra máquina antes de continuar con este test
Usemos el método de nuestro compañero Vector 3D con su Califlower Calibration!!! Para nosotros el método más fiable para ajuste dimensional usando una pieza impresa.
El proceso es muy sencillo y tenemos una calculadora de apoyo a continuación:
Nos aseguraremos que lo comentado en el warning anterior lo tengamos correcto
Descargaremos la pieza de test la cual imprimiremos sin escalar, es importante que si ya tenemos activadas correcciones de SKEW en nuestro firmware las deshabilitemos
Una vez impreso esperaremos a que se pueda extraer la pieza sin forzarla de nuestra cama de impresión
Mediremos siguiendo la calculadora los puestos indicados en el eje X, Y y Skew anotando en las celdas con fondo verde claro los valores. Se aconseja medir 3 veces por cada medida para obtener una media más adecuada
Con todos los valores ajustados procederemos a ajustar nuestro firmware:
Marlin podemos ajustar los e-steps y el skew tal como se indica
Klipper ajustaremos el skew en nuestro printer.cfg
Además de la siguiente calculadora para calibrar skew/pasos tendremos el proceso y cálculos de forma sencilla, podéis ver un video del compañero Vector 3D detallando el proceso también:
La retracción es el movimiento de retroceso del filamento necesario para evitar goteos de material durante los movimientos y desplazamientos que realiza el extrusor en vacío durante la impresión 3D.
Los parámetros que configuran a la retracción son:
Distancia de retracción: Longitud de material que retrocede en el proceso de retracción. Varía en función del tipo de material, el tipo de sistema de extrusión (Directo o Bowden) y del tipo de HotEnd. Para materiales flexibles, sobre todo para los tipo TPE (Filaflex), se debe desactivar la retracción para evitar que el filamento se enrolle en el piñón del extrusor.
Velocidad de retracción: Velocidad a la que el motor del extrusor hace retroceder al filamento. Con este parámetro hay que tener mucho cuidado si se utilizan velocidades altas (mayores a 70 mm/s) porque puede mellar (marcar) el filamento de tal modo que quede inservible para continuar la impresión 3D.
Desplazamiento mínimo: Longitud mínima a partir de la cual se quiere que se realice la retracción.
Enable combing: Al activar este parámetro, que se encuentra en apartado de opciones avanzadas de retracción del programa de laminación que se utilice (PrusaSlicer/SuperSlicer,Cura, Simplify3D, etc.), aparte de realizar la retracción, se evita que el HotEnd se mueva por encima de orificios o huecos. Con esto se evitan restos de material en las caras vistas de partes internas de las piezas.
Elevación del eje Z al retraerse (Lift z): A la vez que se produce la retracción, el HotEnd se mueve en el eje z a la distancia indicada. Esta elevación solo es necesaria en caso de realizar piezas con muchos detalles y con zonas pequeñas de mucho detalle para evitar que queden restos de material justo en esa zona. En caso de necesitar utilizar este parámetro recomendamos utilizar la misma distancia que la altura de capa.
Humedad en el filamento: algo crítico para este parámetro ya que es muy importante para el acabado final que nuestro filamento esté a 10% de humedad. Esto lo podemos conseguir con un correcto almacenado del filamento y el uso de una deshidratadora de alimentos por ejemplo.
Tipo de filamento: algunos filamentos más viscosos o técnicos, como por ejemplo PETG van a afectar más en las retracciones por lo que los valores de retracción pueden ser significativamente diferentes e incluso en ocasiones complicado encontrar el punto "dulce" de estas. Como ya se comentó es más que aconsejable realizar tests de retracciones por cada tipo de filamento... incluído diferentes marcas, tipos, colores incluso.
Tipo de y diámetro de nozzle: el tipo de material utilizado en nuestro nozzle así como su diámetro pueden afectar significativamente a los valores de retración por lo que es más que aconsejable de nuevo realizar tests si cambiamos el tipo o diámetro de nuestro nozzle.
Desgraciadamente no existe una fórmula para encontrar el valor exacto, si no que cada impresora 3D y cada extrusor necesita un valor particular.
La siguiente tabla contiene unos valores aconsejados de longitud y velocidad de retracción para la impresora 3D en función del tipo de extrusor que se utilice, los cuales son un buen punto de partida para ajustarlos a vuestro caso particular:
Distancia retracción (mm)
comenzaremos normalmente con un valor igual al diámetro de nuestra boquilla... ejemplo boquilla 0.4 -> distancia retracción 0.4
intentaremos estar por debajo de 1mm
comenzaremos con 1mm
el máximo dependerá de la distancia de nuestro bowden
Velocidad retracción (mm/s)
normalmente 35mm/s suele funcionar correctamente
utilizaremos rangos entre 25-40mm/s
normalmente 40mm/s suele funcionar correctamente
utilizaremos rangos entre 35-45mm/s
Como generar un test de retracciones:
Iremos al menú de Calibration donde seleccionaremos Extruder retraction calibration desde donde se nos abrirá una nueva pantalla con descripción del proceso y algunos ajustes para poder generar nuestra torre de temperatura
Elegiremos la distancia de retracción a añadir en cada test, normalmente 0.2 es un valor que nos dará buenos resultados para extrusión directa y 0.5 para bowden
Seleccionaremos la altura del test, no os aconsejamos modificarlo ya que unos valores altos pueden hacer que nuestro filamento se atasque en el sistema de extrusión
Seleccionaremos la temperatura del test
Dado que a las retracciones uno de los parámetros que más le afectan es la temperatura podemos elegir si queremos hacer varios tests bajando desde el umbral de temperatura que marcamos antes
Una vez configurado generaremos el/los tests:
Una vez finalizado el test revisaremos el resultado, teniendo en cuenta que cada marca equivale a un test/salto y al valor de retracción marcado a la hora de generar nuestro test podremos calcular el resultado óptimo. En el siguiente ejemplo se generó un test para bowden, 0.5 de distancia de retracción por salto, y a partir del 8 test/salto aparecen buenos resultados con lo que nuestro valor de retracción sería 4mm aunque siempre es aconsejable darle un margen de al menos un test/salto
Por último ajustaremos el valor en las opciones de retracción en el perfil de máquina/extrusor, aunque también podemos hacerlo en el de filamento en el caso que sea para un tipo de filamento que no sea el normal de impresión.
Por último y en el caso que no veamos mejoras significativas en nuestro tests:
Filamento, como ya te comentamos el estado del filamento es muy importante
y si, un filamento recien abierto puede venir y vienen con humedad
en el caso de filamentos viscosos como PETG
usar nozzles con recubrimiento que eviten que restos del filamento se adhiera a nuestra punta dejando gotas de filamento o evitando que este se deposite correctamente en nuestra pieza
ajustar especialmente bien pressure/linear advance
ajuste correcto de tu ventilación de capa ya que pueden afectar
Extrusor, uno de los componentes importantes de tu impresora y que en el caso de las retracciones por el tipo de movimiento puede ser importante revisar...
que tus engranajes estén bien y sin juegos por el desgaste
tengas una configuracion correcta de pasos
vref/corriente adecuada para tu motor, puedes perder grip y empuje en ciertos movimientos creando stringing o por otro lado y dependiendo del tipo de extrusor un exceso de calor puede afectar a la integridad del filamento afectando de nuevo al grip y empuje
Hotend, otro componente que influye significativamente en nuestra extrusión y por lo tanto en nuestras retracciones
limpia periódicamente este con un filamento de limpieza o mediante un tirón en frio, de esta forma quitamos trazas de otros filamentos o incluso de otros componentes que pudieran acabar en el nozzle como restos de PTFE, barrel, nozzle
manten bien el apriete entre las diferentes partes de tu hotend para evitar fugas y por lo tanto pérdidas de flujo especialmente críticas durante las retracciones
Calibración, asegúrate que los pasos anteriores al ajuste de retracciones estén ajustados para tu máquina/material en especial el ajuste de flujo y el pressure/linear advance
Perfil de laminador, algunas funciones de nuestro laminador nos van a permitir reducir artefactos en retracciones
el uso de Combing (Cura) o evitar cruzar perímetros (PrusaSlicer y derivados) puede reducir artefactos en las restracciones
el uso de Z-hop puede reducir artefactos
El test de tolerancia horizontal permite ajustar el valor de compensación para minimizar la expansión del material y que las piezas que son encajables lo hagan correctamente sin necesidad de rehacer el diseño o modificar las dimensiones de las piezas y su tolerancia.
Hablando de impresión 3D FDM/FFF normalmente se suelen tener un orden de +-0.5% de tolerancias. Por ejemplo, y dependiendo del tipo/calidad del filamento, una impresión realizada en ABS puede llegar a encogerse hasta un 2%, o usando PLA alrededor de un 0.5%.
Os adjuntamos una tabla orientativa:
Puedes utilizar este test muy rápido para encontrar los valores adecuados de tu filamento.
Es importante que antes de realizar estos tests tengas flujo, temperatura, pasos ejes y extrusión perfectamente ajustados.
Para evitar falsear las medidas de nuestras piezas se aconseja usar solamente la expansión interna no la externa.
También contamos con estos tests integrados en algunos laminadores como:
OrcaSlicer cuenta con un test de tolerancia que nos va ayudar y simplificar este proceso. Básicamente es un rectángulo donde encontramos seis hexagonos, cada uno con diferentes tolerancias... 0.0mmm 0.0.5mm 0.1mm 0.2mm 0.3mm y 0.4mm:
En contraremos el test dentro del menú Calibration donde seleccionaremos Orca Tolerance Test, no tendremos que añadir ningún ajuste extra:
Aunque el test incluye un hexágono para testear los seis aperturas lo ideal es usar una llave Allen M6.
Dependiendo del slicer este ajuste se llaman de formas diferentes:
En este laminador podemos encontrar estas opciones como Print settings -> Slicing -> XY compensation donde normalmente ajustaremos interna (inner) o externa (outer).
En el caso de SuperSlicer, imagen a continuación, contamos como siempre con algunas opciones extras con respecto a PrusaSlicer.
También disponemos en laminadores como PrusaSlicer/SuperSlicer o OrcaSlicer opciones de "shrinkage" con el cual podemos aplicar un % general en nuestras piezas siendo este relacionado con la contracción del filamento que usemos.
Este parámetro aplica una contracción o expansión, en %, para los ejes X-Y aplicando un escalado. Este ajuste puede ser similar a la compensación XY del contorno además de requerir diferentes tests para ajustarlo adecuadamente.
Este ajuste es doblemente importante, por una lado nos permite obtener unos mejores resultados en el aspecto de nuestras impresiones y por otro el ahorro de tiempo minimizando el uso de soportes.
Es aconsejable tener correctamente ajustados todos los pasos previos de esta guía ya que algunos de ellos afectan considerablemente al resultado del mismo.
Como comentabamos los voladizos permiten reducir el numero de soportes, para ello deberemos encontrar el valor del ángulo que nuestra impresora puede imprimir sin que se produzcan aberraciones o caídas en las capas. Para ello a parte del test específico es bueno recordar dos puntos importantes... ... reducir el ancho de línea mejora el resultado final por lo que nozzles de tamaño standard/pequeño 0.4-0.2 darán un mejor resultado que aquellos más grandes ... ventilación de capa es otro punto muy importante, no solo el flujo de aire que podamos lanzar sobre la creación de voladizos si no que la tobera que dirige dicho flujo lo haga orientada al punto exacto y desde al menos 2 o más direcciones ... optimizar las piezas en el diseño si el objetivo es la impresión FDM, esto es el uso de chaflanes 45 grados en lugar de angulos rectos ... en situaciones más extremas el cortal la pieza en varias partes puede darnos buen resultado
Para realizar el test os sugerimos el uso de esta torre de voladizos
El valor que encontremos deberemos configurarlo en nuestro fileteador/slicer. En PrusaSlicer podrás encontrarlo en Overhang thresold.
Relacionado con los voladizos es interesante ajustar los parámetros de nuestro fileteador/slicer para poder imprimir puentes sin que estos queden de forma incorrecta.
El siguiente test nos puede ayudar para
Este test realiza puentes de 10mm hasta 100mm, el objetivo seria imprimirlos a diferentes velocidades para ver cual es el que mejor se adapta a las caracteristicas de nuestra impresora. Entre estas caracteristicas estarian la de velocidad al realizar puentes... normalmente los valores ideales dependiendo de la impresoras estarían entre 30-80 mm/seg siendo 40mm/seg un buen punto de partida:
Otro valor a revisar es flujo de aire del ventilador en puentes, normalmente es aconsejable 100% pero en algún tipo de material como el PETG es aconsejable bajarlo un poco para evitar atascos.
Las costuras (seam en inglés) se generan en nuestras piezas durante el cambio de capa y normalmente este proceso puede dejar más o menos marcas en nuestras piezas.
Normalmente son más visibles en piezas redondeadas o si no ajustamos correctamente las opciones de ubicación o pintado que comentaremos más adelante, normalmente los laminadores intentan ajustar la costura en las aristas de nuestras piezas.
Cuando nuestras costuras no están bien ajustadas y dejan marcas que afectan al acabado es por una incorrecta configuración de los ajustes de nuestro laminador al realizar estas transiciones entre capas. Normalmente se producen por un exceso de presión en el hotend al realizar estas transiciones.
Os vamos a intentar dar algunas sugerencias para mejorarlas.