3Dwork - Labs
KLIPPERMARLINLABSTelegramColabora
  • 3DWork.io LABS
  • Invitame a un cafe :D
  • 📑Guías Impresión 3D
    • Guía Calibración Impresoras 3D FDM/Filamento
    • Guía Calibración Impresoras 3D SLA/Resina
    • Resolución de problemas
      • Problemas hardware impresora 3D
        • Motores
      • Problemas impresión
        • Problemas Extrusion
        • Mantenimiento del HotEnd
        • Problemas adhesion de impresiones
      • Problemas filamentos
        • Mantenimiento Filamentos
    • Mejoras/Upgrades
      • Extrusión
        • Nozzle... Aprende todo de este componente esencial
        • Extrusores... comparativa
        • Extrusores
        • HotEnds
          • Mosquito Slice Engineering
  • 🔬REVIEWS/GUÍAS
    • Electrónicas
      • BigtreeTech/SKR
        • Pad 7
        • Pad 5
        • BTT Pi
        • Manta E3 EZ/M4P/M5P/M8P
        • SKR Octopus PRO
        • SKR Octopus
        • SKR 3
        • SKR v2
        • SKR PICO
        • SKR MINI E3 V3
        • SKR MINI E3 V2
        • SKR MINI E3 Turbo
        • SKR E3 RRF
        • SKR E3 DIP V1.1
        • Pantallas BigtreeTech/SKR
      • FYSETC
        • FYSETC S6
          • FYSETC S6 - Klipper
          • FYSETC S6 - Marlin
        • FYSETC SPIDER
          • FYSETC SPIDER - Marlin
          • Fysetc SPIDER - Klipper
      • MKS
        • MKS Monster8
    • Impresoras 3D
      • FDM
        • ANYCUBIC
          • Anycubic Kobra S1 Combo
          • Anycubic Kobra 3 Combo
          • Anycubic Kobra 2 Series
          • Anycubic Kobra Plus
          • Anycubic Kobra Neo & Go
        • BIQU/Bigtreetech
          • BIQU Hurakan
        • CREALITY
          • Creality K2 Plus - Klipper
          • Creality K1 / K1 Max / K1C - Review
            • Creality K1 & K1 Max - Klipper
            • Creality K1 & K1 Max Mods
          • Creality Ender 3 V3 Series
        • ELEGOO
          • Elegoo Neptune 3
        • QIDI
          • QIDI Plus4
            • QIDI Plus 4 - Technical Guide
          • QIDI Q1 Pro
          • QIDI X-MAX 3
            • QIDI X-MAX 3 - Technical Guide
        • TWOTREES
          • TwoTrees SK1
        • RATRIG
          • VMinion - Ratrig
            • V-Minion Mods
          • VCore3 - Ratrig
            • VCore3 Mods
        • VORON
          • Voron 0.1 - Fysetc
          • Voron Trident - Fysetc
            • Voront Trident Mods
        • VOXELAB
          • Voxelab Aquila S2
        • BLV mgn Cube Kit - Fysetc
        • Monoprice Mini Delta v2
      • SLA
        • ANYCUBIC
          • Anycubic Photon Mono M7 PRO
          • Anycubic Photon Mono M5S PRO
          • Anycubic Photon Mono 4 Series
          • ANYCUBIC Photon M3 Premium
          • ANYCUBIC Mono X 6K
          • ANYCUBIC Mono X 4K
          • ANYCUBIC Photon D2
        • ELEGOO
          • ELEGOO Saturn 4 Series
          • ELEGOO Mars 5 Series
          • ELEGOO Jupiter SE
          • ELEGOO Saturn 3
          • ELEGOO Saturn 2
          • ELEGOO Mars 3 Ultra 4K
          • ELEGOO Mars 2 Pro
        • UNIFORMATION
          • UniFormation GKtwo
    • CNC/Laser
      • LaserPecker
        • LaserPecker LP4 : grabadora láser premium
      • TwoTrees
        • TwoTrees TTS-55
  • ⚙️Proyectos Maker
    • Pico Invaders
  • 🌐3DWORK
    • Quieres promocionar tus productos/empresa?
Con tecnología de GitBook
En esta página
  • Índice Tests Calibración:
  • 1. Ajuste vref/corriente Motores
  • Cálculo de nuestro VREF/CURRENT óptimo
  • Ajustar el VREF/CURRENT en nuestra impresora
  • 2. Pasos Extrusor
  • 3. Ajuste PID/MPC
  • 4. Nivelación de la cama
  • 5. Ajuste Flujo/Flow
  • 6. Torre de temperatura
  • 7. Pasos Ejes Movimiento
  • 8. Retracciones
  • 9. Tolerancia/Expansió Horizontal
  • 10. Ajuste de voladizos/puentes
  • 11. Costuras
  • 12. Test de Soportes
  • 13. Linear Advance/Pressure Advance
  • 14. Input Shaper y Aceleraciones (opcional)
  • 15. VFA/MRR
  • 16. Ajuste de Extrusión Volumétrica (Opcional)
  • 17. gcode de inicio y fin de impresion
  • Gcode de inicio de impresión
  • Gcode de final de impresión
  • Tests en cambio filamento/color sugeridos
  • Prueba de stress finall!!!
  • Puedes encontrar más tests específicos en mis colecciones de Thingiverse y Printables:
  • Perfiles de Impresión que podemos usar como referencia
  • Creality Ender
  • Creality CR10
  • Artillery X1/Genius
  • Links Relacionados:
  1. Guías Impresión 3D

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.

Anterior3DWork.io LABSSiguienteGuía Calibración Impresoras 3D SLA/Resina

Última actualización hace 2 meses

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:

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:

Uno de los laminadores más potentes hoy en día con un flujo de trabajo basado en perfiles que permite un gran control y versatilidad.

Aúnque está especialmente pensado para impresoras Prusa incluye perfiles de impresión para otras impresoras 3D y podemos crear las nuestras propias.

SuperSlicer es un fork de PrusaSlicer que cuenta con muchas funciones extras para controlar más en detalle el laminado.

También cuenta con un menú específico de calibración que es extremadamente útil para realizar de forma sencilla algunos de estos tests.

Al ser un fork de PrusaSlicer mantenido por la comunidad en ocasiones puede no estar alineado con la última versión de PrusaSlicer.

Bambu Studio es el laminador creado, como fork de PrusaSlicer, para las máquinas de Bambu Labs como la X1 o la P1P.

Dado que es un fork de PrusaSlicer comparte muchas opciones y funcionamiento pero con una interfaz reformulada, junto con algunas funciones de SuperSlicer 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 Bambu Studio:

⚠️ 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...

Otro laminador clásico con un interfaz muy sencilla y potente en opciones. Si comparamos con PrusaSlicer/Superslicer se puede quedar corto en algunas opciones pero con sus extensiones/plugins se pueden extender.

Aunque Cura esta pensado para máquinas Ultimaker también cuenta con muchos perfiles para otras impresoras.

Donde vais a disponer de una gran variedad de tests:

Otro laminador que aunque no es muy popular tiene algunas funciones muy interesantes (texturas, corte, etc...)

Su flujo de trabajo recuerda un poco a Simplify3D y puede ser un poco tosco de manejar inicialmente.

Recientemente lanzado Lychee da un aire nuevo a los laminadores aplicando los conocimientos del laminado SLA a FDM. Muy visuel e intuitivo.

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.

Índice Tests Calibración:

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

En este caso este conjunto de tests nos van a permitir afinar nuestra máquina o perfil de impresión para hacer nuestras impresiones más precisas:

Los siguientes tests son para ajustes avanzados de nuestra máquina:

1. Ajuste vref/corriente Motores

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.

Cálculo de nuestro VREF/CURRENT óptimo

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

Ajustar el VREF/CURRENT en nuestra impresora

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:

En modo UART... ajuste recomendable si nuestros drivers/placa lo soportan

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.

Klipper funciona diferente a Marlin en muchos aspectos, en el caso del ajuste de corriente en lugar de usar CURRENT utiliza RMS (Root Mean Squared) que normalmente se indica en los datasheet de motores como Peak Current Capacity en A.

En el caso de usar nuestra calculadora deberemos usar el valor de la misma marcada en la siguiente captura:

Posteriormente en nuestro printer.cfg, o en un include del mismo si tenemos una configuración modular, localizaremos la sección del driver/eje donde ajustaremos el parámetro run_current.

En el siguiente ejemplo, para un driver TMC2209 en el extrusor, ajustaremos el run_current al valor obtenido:

[tmc2209 extruder]
uart_pin: P0.5
#diag_pin: P1.26
run_current: 0.570

En modo STANDALONE... usando potenciómetro y disponible en la mayoria de drivers aunque a día de hoy no tan aconsejable

Para drivers en STANDALONE depende del driver deberemos medir en unos puntos con nuestro tester/multimetro, a modo de ejemplo podéis consultar la siguiente tabla donde se incluye una descripción de diferentes drivers, sus caracteristicas/configuracion y como medir el VREF:

En el caso de usar nuestra calculadora deberemos usar el valor de la misma marcada en la siguiente captura:

MUY IMPORTANTE!!! teniendo el tamaño y accesibilidad de los puntos donde medir ir con extremo cuidado, usar un destornillador cerámico para el ajuste del tornillo y girar este en pasos muy muy pequeños.

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!!!

2. Pasos Extrusor

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.

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.

  • Desde Mainsail en Control extruiremos 50mm dos veces (para hacer un total de 100mm extruídos) lo hacemos en dos veces porque por defecto Klipper tiene limitado la distancia máxima de extrusión la cual por otro lado podremos ajustarla si deseamos.

[extruder] ... max_extrude_only_distance: 105.0 ... En este caso, y desde la consola, lanzaremos un G91 seguido de un G1 E100 F60 para extruir 100mm de filamento.

Si vemos que no extruye correctamente o nuestro extrusor pierde pasos revisaremos la temperatura y el parámetro F60 que indica la velocidad de extrusión para ajustarla a nuestra máquina.

  • 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 nuestro nuevo rotation_distance en la parte del extrusor de nuestro printer.cfg utilizando el valor de la siguiente fórmula: valor_actual_rotationdistance*(valor_realextruído_pasoanterior/valor_solicitadoaextruir_pasoanterior)= nuevo_valor_rotationdistance Como ejemplo: 4.63 * (101/100) = 4.67

A continuación, y para simplificar el proceso podéis encontrar una calculadora donde introducir los valores comentados y obtener vuestro valor.

3. Ajuste PID/MPC

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

PID

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:

#define THERMAL_PROTECTION_HOTENDS
#define THERMAL_PROTECTION_BED

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.

MPC

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

//#define PIDTEMP          // See the PID Tuning Guide at https://reprap.org/wiki/PID_Tuning
#define MPCTEMP        // ** EXPERIMENTAL **
  • Configuraremos la potencia de nuestro calentador de hotend, normalmente las máquinas montan de 30W o 40W, en MPC_HEATER_POWER

  #define MPC_HEATER_POWER { 40.0f }                  // (W) Heat cartridge powers.
  • 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

  #define MPC_TUNING_POS { X_CENTER, Y_CENTER, 1.0f } // (mm) M306 Autotuning position, ideally bed center at first layer height.
  • 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

#define MPC_EDIT_MENU                             // Add MPC editing to the "Advanced Settings" menu. (~1300 bytes of flash)
#define MPC_AUTOTUNE_MENU                         // Add MPC auto-tuning to the "Advanced Settings" menu. (~350 bytes of flash)

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.

MPC Autotune start for E0
Cooling to ambient
Heating to over 200C
Measuring ambient heat-loss at 209.64
MPC Autotune finished! Put the constants below into Configuration.h
MPC_BLOCK_HEAT_CAPACITY 18.42
MPC_SENSOR_RESPONSIVENESS 0.2176
MPC_AMBIENT_XFER_COEFF 0.0664
MPC_AMBIENT_XFER_COEFF_FAN255 0.099
  • 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.

Klipper con sus comandos/macros extendidos Gcode hacen que el proceso para ajustar el PID sea muy sencillo. Podemos seguir los siguientes pasos para realizarlos:

  • Os aconsejamos añadir estas macros a vuestro printer.cfg, o en un cfg separado y añadido como include a nuestro printer.cfg, para automatizar el proceso explicado en los siguientes pasos.

Con esto tendremos 3 nuevas macros para lanzar la calibración del extrusor (PID_EXTRUDER), de la cama (PID_BED) o ambas (PID_ALL) automatizando y simplificando el proceso.

Podemos ajustar las temperaturas default del extrusor (195) y cama (45) en la macro a nuestro gusto.

Desde nuestro interfaz web podremos lanzarlas e indicar las temperaturas para el test:

También disponemos del ajuste de la ventilación del ventilador de capa en el caso de PID_EXTRUDER y de poder indicar que tool/hotend queremos realizar el proceso en el caso de tener varios para máquinas IDEX o MultiTool.

Si prefereimos realizarlo de forma manual:

  • Desde la ventana de CONSOLA lanzaremos los comandos necesarios para realizar el proceso.

  • Primero nos aseguraremos de que nuestros calentadores estén apagados con el comando TURN_OFF_HEATERS y esperaremos a que estos se encuentren a temperatura ambiente.

  • Lanzaremos el comando PID_CALIBRATE HEATER=<nombrecalentador> TARGET=<temperatura> donde para nombre_calentador usaremos el nombre asignado al calentador que queramos realizar el PID, normalmente extruder o bed, y en temperatura la temperatura a la cual queramos realizar el PID.

// Ejemplo PID para extrusor, PLA
PID_CALIBRATE HEATER=extruder TARGET=210
// Ejemplo PID para bed, P
PID_CALIBRATE HEATER=heater_bed TARGET=60

En el caso de calibrar el hotend/extrusor es aconsejable colocar el nozzle a unos 5mm de la cama, activar los ventiladores de capa al 100% y calentar la cama a la temperatura normal de impresión. De esta forma realizará el PID en las peores condiciones posibles para asegurarnos un ajuste óptimo.

  • Esperaremos a que el proceso termine, y usaremos SAVE_CONFIG para guardar nuestro nuevo PID

SAVE_CONFIG reiniciará nuestro Klipper!!!

Se puede dar el caso que no sea posible realizar el proceso PID por diferentes causas y que este proceso se pare por la protección termal de Klipper.

En esos casos, Y SOLAMENTE PARA REALIZAR EL PID, podemos relajar los valores de control de temperatura.

Para ello normalmente ajustaremos en la sección [verify_heater extruder] o [verify_heater bed], dependiendo del caso, y si no la tenemos la crearemos ajustando el valor de hysteresis a nuestras necesidades:

printer.cfg
### Ejemplo para el extrusor
[verify_heater extruder] 
hysteresis: 10
#   The maximum temperature difference (in Celsius) to a target
#   temperature that is considered in range of the target. This
#   controls the max_error range check. It is rare to customize this
#   value. The default is 5.

### Ejemplo para la cama
[verify_heater bed]
hysteresis: 10
#   The maximum temperature difference (in Celsius) to a target
#   temperature that is considered in range of the target. This
#   controls the max_error range check. It is rare to customize this
#   value. The default is 5.

En otros casos nuestro termistor y electrónica pueden dar lecturas poco fiables con lo que ajustaremos el valor de smooth_time:

### Ejemplo para el hotend
[extruder]
smooth_time: 2.0
#   A time value (in seconds) over which temperature measurements will
#   be smoothed to reduce the impact of measurement noise. The default
#   is 1 seconds.

### Ejemplo para la cama
[heater_bed]
smooth_time: 2.0
#   A time value (in seconds) over which temperature measurements will
#   be smoothed to reduce the impact of measurement noise. The default
#   is 1 seconds.
  • Para asegurarnos que los valores nuevos de PID se aplican es aconsejable reiniciar el firmware de la impresora.

Información extra

A continuación puedes ver información extendida con referencia al PID:

  • Nombres de nuestros calentadores configurados, Si no estas seguro del nombre de tus calentadores ves al fichero de configuración y busca los nombres... normalmente se usa extruder para el hotend y heater_bed para la cama.

  • Log, en caso de tener problemas para calcular el PID es aconsejable activar el log del proceso. Para hacer esto añadiremos WRITEFILE=1 al final de la lina PID_CALIBRATE. Esto creará un fichero de log llamado /tmp/heattest.txt con información detallada del proceso que seguro que nos ayudará a encontrar el problema.

  • Comando PID no funciona, en el caso que el comando de calibración del PID no haga nada deberemos buscar en los ficheros de configuración por la clase PIDCalibrate el cual habilita el comando PID_CALIBRATE.

  • Valores PID no se actualizan, si al hacer el SAVECONFIG no actualiza automáticamente nuestros valores PID podemos añadirlos de forma manual. Abriremos nuestro printer.cfg y buscaremos dichos valores en las secciones de extruder o heater_bed y actualizaremos manualmente a los nuevos valores.

  • PID sin resultados, si no encontramos los valores nuevos del PID en nuestra consola gcode o en la configuración es aconsejable revisar el klippy.log para encontrarlos y ponerlos de forma manual en nuestro printer.cfg.

4. Nivelación de la cama

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:

Nivelación manual

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.

Nivelación automática

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

De nuevo en Klipper el funcionamiento es ligeramente diferente pero gracias a sus macros asistidas podemos realizar un nivelado de cama relativamente sencillo:

  • Nivelación manual mediante ajuste de tornillos ya sea manual o asistida por el sensor, tenéis más información en la siguiente guía específica.

  • Mallado de la cama para corrección de desviaciones, podemos revisar esta guía

También contamos con las opciones de Z-Tilt cuando disponemos de dos o más motores en Z y que nos va a permitir alinear nuestros ejes para que estén perfectamente alineados.

Se aconseja realizar el nivelado manual de la cama desde los tornillos y el z-tilt en bucl hasta que ambos apenas requieran correcciones y con los ejes perfectamente a escuadra realizar el mallado de cama.

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.

Con unos cuantos clicks y ajustando las opciones a nuestra máquina podremos crear nuestro test a medida.

Babystepping... ajuste zoffset durante una impresión

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 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

Klipper también contamos con esta interesante función y tenemos diferentes formas de ajustarlo/usarlo:

  • Pantalla/LCD, dentro del menú Tune encontraremos Offset Z

  • Interfaz web, tendremos en nuestro dashboard un apartado para realizar estos ajustes:

  • Consola, utilizando las macro de sistema SET_GCODE_OFFSET Z_ADJUST=x.xx MOVE=1 donde x.xx será la distancia de ajuste Z en mm (por ejemplo para bajar Z utilizaremos SET_GCODE_OFFSET Z_ADJUST=-0.0125 MOVE=1 y para subirlo SET_GCODE_OFFSET Z_ADJUST=0.0125 MOVE=1

5. Ajuste Flujo/Flow

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

Preferences -> Printers -> your printer -> Machine Settings -> Extruder 1

Como generar un test para comprobar nuestro flow idóneo:

En OrcaSlicer, podemos encontrar dos tests de flujo que podemos generar en unos pocos clicks:

Calibración de flujo YOLO (nueva):

Este test introduce una forma alternativa de encontrar el flujo óptimo donde tendremos un test inicial (single-pass) que va a cubrir normalmente el 95% de los casos y necesitar solamente un test. En estos tests se cubren rangos de ajuste de flujo entre -0.05 y +0.05 con saltos de 0.01, imprimiremos el test y escogeremos el test que veamos más correcto y el valor indicado en el será el que tengamos que restar o añadir a nuestro valor de flujo.

Por otro lado si queremos ajustar al máximo podemos realizar un segundo test (perfectionist version) con el cual verificaremos un rango entre -0.04 y 0.035 con saltos de 0.005, procediendo de igual forma que explicamos anteriormente.

Calibración de flujo original:

  • 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

Últimamente nos está gustando mucho este test que es fácil de interpretar y además del flujo suele ayudar como test para buscar el ajuste correcto para figuraas articuladas.

Este test consta de 4 palancas en un lateral y en el otro lateral 4 pistones.

Una vez impreso intentaremos doblar las 4 palancas y presionar los 4 pistones del otro lado... el objetivo es que podamos doblar las 4 palancas y presionar/desbloquear los pistones del 4 al 2.

En el siguiente gráfico veréis de forma más sencilla el proceso:

A modo resumen:

  • alguna de las palancas o los pistones 1 al 3 no se pueden desplazar bajaremos el flujo en -.06

  • alguna de las palancas o los pistones 1 y 2 no se pueden desplazar bajaremos el flujo en -.03

  • si podemos desplazar todas las palancas y solamente el pistón 1 se queda trabado el test ha salido perfecto

  • si podemos desplazar todas las palancas y todos los pistones deberemos subir el flujo en +.03

Otra forma menos centrada en la precisión geométrica, que para ello hay otros parámetros que actuaran sobre ella, y más en el acabado final es el test de flujo de SuperSlicer el cual como ya os comentamos dispone de un cómodo menú desde donde poder generar estos tests directamente.

Dado que SuperSlicer y PrusaSlicer suelen usar la misma base es muy sencillo el exportar/importar sus perfiles o usando un fichero 3mf

Aunque es uno de los test, por su simplicidad y por su eficacia que más nos gustan lo ideal sería que los objetos de test sean lo más grandes posibles para poder ver mejor los detalles y desviaciones.

Siempre podemos crear nuestros propios objetos, cubos simples de unas capas de grosor... por ejemplo de 30x30x3mm... y más grandes que los objetos del test predeterminado, y ajustarles a ellos el valor de Extrusion multiplier.

Crearemos tantos de estos cubos como necesitemos y podamos imprimir como objetos

En las opciones del laminador configuraremos:

- Relleno : 30%+
- Top Infill Extrusion Width : 0.4 (en el caso de un nozzle 0.4)
- Bottom Layers : 2
- Minimum Shell Thickness : 0
- Top Layers : 10
- Infill :  Monotonic (Filled)
- Minimum Layer Time : 0
- Fan Speed : moderado o alto dependiendo de nuestra maquina

Una vez impreso nos centraremos en las partes centrales y después en los contornos siendo importante no encontrarnos con huecos entre las trazadas y que quede una superficie lo más lisa posible.

  • Iremos al menú de Calibration donde seleccionaremos Filament flow desde donde se nos abrirá una nueva pantalla con descripción del proceso, seleccionar los intervalos de los tests y pulsar a generar nuestro test de flujo

  • Una vez impreso prestaremos atención al acabado de la parte superior de los bloques y al aro que se encuentra en el seleccionando el % que mejor quede.

Es aconsejable realizar un primer test usando 10% como variación en los intervalos y con el valor obtenido ajustar nuestro perfil (Extrusion Multiplier) para generar un segundo test con variaciones del 2% para afinar aún más.

  • Una vez cargada nuestra torre de flujo en el laminador seleccionaremos el script de post-procesado FlowTower

  • configuración aconsajable para el test

 - Nozzle Size : 0.4
 - Layer Height : 0.2
 - Initial Layer Height : 0.2
 - Z Hop When Retracted : True
 - Line Width : 0.4
 - Wall Line Count : 3
 - Top/Bottom Thickness : 0.8 mm
 - Enable Bridge Settings : True
 - Use adaptative layers : False
 - Support : None
 - Print Thin Walls : True
 - Flow : 100%
  • Una vez impreso el objetivo es imprimir la parte con forma de pin dentro del cubo del mismo número, cogeremos el que entre sin forzar de mayor valor... en el ejemplo de la imagen el test a partir del 106% son difíciles de insertar/retirar

  • otra forma es la de medir en tres partes del pin, inicio medio y final, anotando los valores y realizando una media... el que más se aproxime a 4mm será el % de flujo adecuado. En el ejemplo a continuación nos indica que el flujo al 100% es el adecuado

Asegúrate de eliminar este script para tu siguiente impresión!!!

Aunque este método está bastante extendido no suele ser el más preciso ya que imprimir 2 o x perímetros no suele ser muy fiable por artefactos como layer wobble provocado por la cinemática, extrusión inconsistente o diámetro del filamento inconsistente.

Este tipo de artefactos van a provocar que las medidas siempre sean superiores a las correctas.

También es importante tener en cuenta la calidad del calibre que usemos, el estado y calidad de nuestro nozzle.

Por último pero no menos importante es el hecho que realizar este tipo de mediciones en un test tan pequeño no va a darnos unas medidas correctas... pequeños errores se transforman en grandes desviaciones.

El siguiente paso es imprimir un cubo "hollow" (hueco), os sugerimos usar este...

...ya que cuenta con ejemplos de practicamente todas las medidas de nozzle que hay y es muy rápido de hacer.

  • Escogeremos de la los diferentes modelos el que coincida con el diámetro de nuestro nozzle

  • Configuraremos los siguientes valores básicos de la impresión:

Altura capa - 0.2mm (para un nozzle de 0.4)
Perimetros - 2
Capas superiores - 0
Capas inferiores - 1
Relleno - 0%
Velocidad - 50 mm/s (puedes adaptarlo a tu maquina)
Flow/Flujo/Multiplicador Extrusion - 1 o 100% dependiendo del fileteador/slicer
  • Una vez impreso mediremos el grosor de las paredes del cubo.

  • Estas deberían medir lo más cercano al doble de la medida del nozzle que tengamos o seleccionamos al hacer el cubo. Es importante no aplicar mucha presión al calibre y realizar la medida en diferentes partes del cubo y en la parte alta del cubo realizando una media de todas las medidas.

  • Con estos valores realizaremos la siguente formula: (A/B)*F= Nuevo valore de flujo/flow A= Medida deseada, para el caso nozzle 0.4 debería de ser 0.8 B= Medida real, media de las diferentes medidas F= Valor de flujo/flow aplicado en el test... en el caso de % si el valor era 100% usaremos 1, 98% seria 0.98...

  • Una vez tenemos el valor nuevo volvemos a repetir el test con el nuevo valor de flujo/flow y volvemos a medir hasta conseguir las medidas más exactas posible.

Una vez tengámos nuestro valor de flujo/flow en nuestro fileteador/slicer lo podemos encontrar en...

Filament settings/Filament/Basic information/Flow ratio

Extrusion Multiplier

Flow

Template Settings -> Advanced -> Primary Filament Flowrate

Asegúrate que tienes la opción Override Filament Settings marcada.

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...)

6. Torre de temperatura

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

  1. Descripción del test con algunas imágenes de ejemplo

  2. Zona importante dado que nos indica que tests deberíamos de tener hechos antes de realizar este

  3. Número de tests por debajo de la temperatura actual definida en nuestro perfil de filamento

  4. Lo mismo que el anterior pero por encima de la temperatura

  5. 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

  6. Desde aquí podremos generar el test

  7. 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

Tal como os hemos comentado al inicio de la guía recientemente hemos probado este nuevo laminador, fork de PrusaSlicer para máquinas Bambu Lab aunque podemos usarlo para otras.

Generación de torre de temperatura asistida (OrcaSlicer)

OrcaSlicer, un fork de Bambu Studio con interesantes añadidos como por ejemplo tests de calibración, incluye un asistente para generar un test de temperatura lo cual nos va a facilitar enormemente el proceso.

Si no tienes disponible el test de temperatura en tu versión de OrcaSlider asegúrate que esta es la última versión.

  • El primer paso será ir al menú Calibration y seleccionar la opción Temperature

  • Nos creará una torre de temperatura basada en perfiles preconfigurados aunque podemos ajustar a nuestro gusto:

Generación de torre de temperatura manual

Una vez tengamos el STL deberemos de asegurarnos de ajustar algunos parámetros:

Este tipo de test suelen ser aconsejables hacerlos en dos tandas:

  • test de temperatura, el cual lanzaremos asegurandonos que no se active la ventilación de capa

  • test de ventilación, el cual realizaremos a la temperatura óptima obtenida en el paso anterior y variaremos en cada test el porcentaje de ventilación. Normalmente en caso que usemos PLA o similares no sería necesario este test.

  • ventilación, es importante ajustarlas temporalmente dentro de nuestro perfil de filamento y ajustando para que no se active ventilación en las primeras 1000 capas para asegurarnos que no se activa

  • deberemos ajustar nuestro script anterior al cambio de capa (Before Layer Change G-Code donde crearemos us script para ajustar temperatura o ventilación por altura de capas

Temperature Tower - Before layer change G-code
{if  layer_z<2.0}M104 S285  ; Temp Tower starting temp
{elsif layer_z<=12.0} M104 S285  ; Temp Tower Temp #1
{elsif layer_z<=22.0} M104 S280    ; Temp Tower Temp #2
{elsif layer_z<=32.0} M104 S275     ; Temp Tower Temp #3
{elsif layer_z<=42.0} M104 S270   ; Temp Tower Temp #4
{elsif layer_z<=52.0} M104 S265   ; Temp Tower Temp #5
{endif}
Fan Tower - Before layer change G-code
{if  layer_z<2.0}M106 S0        ; FanTest floor 1 (no fan)
{elsif layer_z<=12.0} M106 S26   ; FanTest floor 2 (10% fan)
{elsif layer_z<=22.0} M106 S51   ; FanTest floor 3 (20% fan)
{elsif layer_z<=32.0} M106 S77   ; FanTest floor 4 (30% fan)
{elsif layer_z<=42.0} M106 S102 ; FanTest floor 5 (40% fan)
{elsif layer_z<=52.0} M106 S128 ; FanTest floor 6 (50% fan)
{elsif layer_z<=62.0} M106 S153 ; FanTest floor 7 (60% fan)
{elsif layer_z<=72.0} M106 S179 ; FanTest floor 8 (70% fan)
{elsif layer_z<=82.0} M106 S204 ; FanTest floor 9 (80% fan)
{elsif layer_z<=92.0} M106 S230 ; FanTest floor 10 (90% fan)
{elsif layer_z<=102.0} M106 S255 ; FanTest floor 11 (100% fan)
{endif}

Para generar vuestra torre de temperatura, vamos a usar como ejemplo una para PETG entre 230-260º, es muy sencillo.

  • dentro de las opciones de Post Processing (necesitamos disponer de este plugin) seleccionaremos TempFanTower y ajustaremos los parámetros como veis en la siguiente imagen (si usáis otra torre de temperatura ajustarla a vuestra torre):

Asegúrate de eliminar este script para tu siguiente impresión!!!

Algo que nos gusta de este laminador es que las opciones de configuración por capa son muy visuales.

Cargamos nuestra torre de temperaturas favorita, en esta colección de Printables tenéis algunas, y dentro de las opciones de laminado ajustaremos los rangos de temperatura:

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

7. Pasos Ejes Movimiento

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.

Los cubos de calibración son simples objetos geométricos (cubos normalmente) que ayudan en la calibracion fina de tu impresora 3D ayudando a comprobar la precisión en tus impresiones.

Una vez tu extrusor está calibrado, hay diferentes cosas que puedes comprobar mediante un cubo de calibración. En este paso lo usaremos principalmente para calibrar los pasos de nuestros motores.

Puedes verificar diferentes cosas con un cubo de calibración, en este paso lo usaremos principalmente para calibrar los pasos de nuestros motores. Os volvemos a repetir al igual que hacemos en la introducción que este método no sería el más fiable para ajustar los pasos.

Al finalizar el resto de pasos de ests guía es aconsejable volver s realizar este test para verificar o corregir cualquier desviación.

Puedes generar estos cubos de forma sencilla desde SuperSlicer en su menú de calibración. En todo caso te adjuntamos algunos otros de ejemplo:

Una vez impreso mediremos con un calibre las diferentes caras del cubo, os aconsejamos realizar tres medidas en tres puntos diferentes... al inicio, medio y final del cubo idealmente... y usar la media de las tres medidas como referencia para el cálculo del siguiente paso que sería el ajuste de pasos en firmware o de nuestro laminador.

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:

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.

Klipper utiliza "rotation distance" para el ajuste de movimientos. Básicamente describe la cantidad de movimiento del eje al realizar una rotación completa del motor.

Es importante mencionar que Klipper, con su rotation_distance, se basa y calcula en base a las características de nuestra cinemática.

  • ejes con cinemática por correas, usaremos la siguiente fórmula para calcularlo aunque normalmente encontra remos esta información ya calculada en los printer.cfg de ejemplo para nuestra máquina.

Un ejemplo muy común, si nuestra impresora usa una correa con 2mm y usa unos engranajes dentados de 20 dientes el rotation_distance será de 40.

40 = 2mm * 20 dientes

  • ejes con cinemática por varillas, en este caso la fórmula tiene en cuenta los parámetros de tu varilla

Un ejemplo muy común, si nuestra impresora usa una varilla T8 con un pitch de 2mm y 4 guías de paso tendremos un rotation_distance de 8.

8 = 2mm * 4 threads

En el caso que vengamos de Marlin podemos "calcular" aunque os aconsejamos realizarlo solamente para la configuracion inicial si no tenemos una configuración de ejemplo para nuestra máquina La fórmula es la siguiente:

Disponemos de la siguiente calculadora para facilitar el cálculo:

Una vez tengamos nuestro rotation_distance lo añadiremos/ajustaremos en la sección [extruder] de nuestro printer.cfg:

IMPORTANTE!!!

Klipper como hemos comentado basa su rotation_distance en base a nuestro hardware y una vez lo calculemos basándonos en el NO DEBERÍA DE SER NECESARIO AJUSTARLO.

Cualquier pequeño desajuste en las distancias medidas no deberían o no es aconsejable recalcular o ajustar este rotation_distance y deberemos revisar nuestro hardware:

  • correcto tensado y calidad en el caso de ejes con correas y mecanizado en el caso de varillas

  • nuestro chasis perfectamente a escuadra, podemos usar el módulo skew_correction que podemos corregir estos desajustes... aunque siempre os aconsejamos esto como última opción y siempre ir a la fuente del problema que sería ajustar correctamente el chasis

Es importante recordar que cualquiera de estos problemas no va a suponer un problema de desviaciones exponenciales por lo que de nuevo el recalcular nuestro rotation_distance para parchear esto no suele ser buena idea siendo incluso el peor remedio.

Tal como os hemos ido explicando ajustar dimensionalmente nuestras piezas impresas es algo más que el ajuste de los pasos en nuestros ejes de movimiento para que este sea preciso.

El ajuste del flujo afecta significativamente en las dimensiones finales de nuestras piezas y esta es una de las razones porque este ajuste se realiza antes de la verificación que estamos haciendo.

En nuestros laminadores, aparte del flujo, tenemos otras opciones para el ajuste dimensional de nuestras piezas impresas:

  • PrusaSlicer/SuperSlicer, contamos con configuraciones como la compensación horizontal que podemos encontrar en Print Settings -> Advanced -> Slicing dependiendo de la versión dispondremos de ajustes para la compensación exterior o de afujeros de nuestras piezas

  • Bambu Studio lo encontraremos en Quality -> Precision

  • Cura lo encontraremos en Shell -> Horizontal expansion

He seguido todos los pasos anteriores y sigo teniendo problemas dimensionales con mis piezas o me gustaría ajustarlo al máximo...

IMPORTANTE!!!

  • 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

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

Klipper

  • Una vez impreso mediremos las distancias del eje central a cada uno de las columans de control, os aconsejamos realizar 5 veces las medidas y que introduzcas el valor de cada medida en la hoja que encontrarás al final.

  • Ahora mediremos las distancias entre las columnas de control ubicadas en la parte exterior de la figura realizando el mismo proceso del paso anterior.

  • el siguiente paso será medir las distancias entre los lados del pilar central de la figura de test realizando el mismo proceso que en anteriores pasos.

  • Último paso de mediciones donde mediremos el ancho de las columnas exteriores realizando el mismo proceso que en anteriores pasos.

  • Ahora solamente nos queda ir al paso 4 y ejecutar en nuestra consola de Klipper los comandos que nos indica

8. Retracciones

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:

Extrusión Directa
Extrusión Bowden

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

  1. 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

  2. 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

  3. Seleccionaremos la temperatura del test

  4. 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.

OrcaSlicer dispone también la opción de generar nuestro test de retracciones en unos pocos clicks

Nos generará una torre de retracción que tiene dos estructuras cilíndricas con unas muescas las cuales imprimirá usando unas distancias de retracción diferentes dependiendo de la configuración que le dimos al crear el test.

Seleccionaremos la distancia de retracción de inicio y fin del test además del incremento de esta en cada paso siguiendo los consejos que os dimos anteriormente dependiendo de si nuestro sistema de extrusión es directo o bowden.

  • dentro de las opciones de Post Processing (necesitamos disponer de este plugin) seleccionaremos RetractTower y ajustaremos los parámetros (si usáis otra torre de temperatura ajustarla a vuestra torre). Podemos generarla en base a la velocidad y la distancia aunque como os comentamos normalmente la velocidad, entre ciertos rangos, no afecta tanto como la distancia:

Incrementar la distancia de retracción mantiene el filamento menos alto de temperatura y reduce los hilos/artefactos. En todo caso usar valores altos y/o con zonas con muchas retracciones puede provocar atascos de filamento en tu sistema de extrusión.

Si tu material es algo viscoso aumentando la velocidad de retracción ayuda a reducir los hilos/artefactos ya que reduce la presión en el nozzle.

En el caso que nuestro perfil de impresión use las retracciones por firmware este proceso no va a funcionar, deberías deshabilitarlas antes.

  • Ajustaremos los valores obtenidos en el apartado Retractions de tu configuración

Asegúrate de eliminar este script para tu siguiente impresión!!!

Al igual que ya hicimos en la torre de temperatura...

  • En las opciones de laminado ajustaremos la distancia de retracción a usar por tramo

  • Dependiendo del el resultado lo anotaremos en Advanced settings -> Extruder -> Retraction Material Amount

  • También podemos afinar la distancia de extrusión en los cambios de capa/costura ajustando esta en Coasting

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

9. Tolerancia/Expansió Horizontal

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.

En este laminador podemos encontrar estas opciones como Quality -> Precision -> XY hole compensation donde normalmente ajustaremos interna (hole) o externa (contour).

Expansion Horizontal es donde podremos ajustar las opciones en Cura.

Advanced settings -> Layer -> XY Size Compensation

En este caso podemos ajustar tanto compensar las partes interiores (holes) como las exteriores (contours)

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.

10. Ajuste de voladizos/puentes

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.

11. Costuras

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.

  • Velocidad, la velocidad puede impactar también en un buen acabado en las costuras... una velocidad muy alta puede hacer que nuestro extrusor no tenga tiempo para realizar el proceso de retracción y vuelta a la extrusión correctamente.

  • Purgado/Wiping/Coasting, el purgado, o wiping en inglés, permite evitar un exceso de presión en el hotend al realizar la transición de capa. También contamos en algunos laminadores con la función de coasting que tiene unos efectos similares.

Los laminadores también cuentan con algunas funciones específicas para intentar "ocultar" las costuras:

Vamos a hacer una mención especial a este laminador ya que a partir de su v2 Beta contamos con una nueva función que promete revolucionar el acabado de nuestras costuras y seguramente acabará implementándose en otros laminadores.

OrcaSlicer, desde su versión v2 Beta, ha implementado las costuras Scarf, básicamente esta función realiza un solapamiento gradual entre las capas a la hora de la costura tal como podemos ver en la siguiente imagen:

Donde usar preferentemente el tipo de costura Scarf?

  • mejoramos el acabado general de la costuras ya que no producimos un salto si no un ajuste paulatino entre ellas algo especialmente eficiente cuando la costura se realiza en zonas curvas.

  • en costuras en superficies planas también podemos ver mejoras aunque en ocasiones las costuras tradicionales pueden ser mejor opción.

Que tenemos que tener en cuenta?

  • Velocidad de perímetros externos, tanto velocidades altas como bajas pueden afectar al acabado así que lo ideal es realizar pruebas para tu máquina/filamento... normalmente velocidades entre 50-100 mm/s suelen dar buenos acabados.

  • Ancho de perimetros externos, las costuras Scarf se comportan mejor con anchos de linea mayores al diámetro de nuestro nozzle ya que el flujo de extrusión suele ser más consistente. En una boquilla de 0.4 mm se suele recomendar utilizar 0.6 mm de ancho en perímetros externos.

  • Altura de capa, la altura de capa puede influir al resultado de las costuras Scarf. Normalmente una altura de capa 0.2 mm es aconsejable, si variamos esta es posible que tengamos que ajustar algunas opciones de las costuras Scarf.

  • Orden de impresión perímetros, para Scarf se aconseja utilizar interno/externo/interno (inner/outer/inner).

  • Otras opciones que pueden afectar al acabado, se aconsejan deshabilitarlas si utilizamos Scarf:

    • Wipe on loops/Wipe on external loops, opciones de purgado/limpieza, no se llevan bien con Scarf

    • Retract on layer change/Wipe while retracting, estas otras dos opciones que suelen funcionar bien con costuras tradicionales pueden generar artefactos usando Scarf

  • Voladizos, estos no se llevan especialmente bien con Scarf por lo que se aconseja revisar nuestras costuras para alinearlas con zonas donde no caigan voladizos ya sean mediante las opciones de alineado de costuras o directamente pintando nosotros donde más nos interesen estas.

  • Modo perímetros, aunque suele funcionar bien con el modo clásico y Arachne las costuras Scarf suelen llevarse mejor con el modo clásico.

Opciones disponibles en el laminador para ajustar las costuras Scarf:

  • Conditional Scarf Joint, más que recomendable tenerlo habilitado, pernite aplicar Scarf en las superficies óptimas para este. Se puede ajustar los umbrales para aplicar costuras tradicionales o Scarf deberás experimentar con este umbral para encontrar el ajuste óptimo para tu máquina/filamento.

  • Modo Contour, permite controlar donde aplicar Scarf en los perímetros. Normalmente Contour+Hole da buenos resultados pero dependiendo de la pieza puede ser más aconsejable usar uno u otro modo.

  • Inner Scarf, otra opción que suele dar buenos resultados tenerla activada aunque tiene impacto en el tiempo de impresión.

  • Scarf arount entire wall around, realiza pasadas por el perimetro en espiral para "planchar" este... no hemos visto mucho beneficio en tenerlo habilitado más bien añadir más tiempo a la impresión.

  • Scarf lenght, la distancia a usar por Scarf... se aconseja dejarlo en el valor por defecto (2), si lo bajamos o subimos en exceso suele dar malos acabados en la costura Scarf.

  • Scarf steps, como el anterior no parece tener mucho impacto en el acabado o no lo hemos llegado a ver

  • Scarf flow ratio, tampoco hemos visto grandes mejoras aunque teóricamente un correcto ajuste puede mejorar en piezas con muchos voladizos donde coincidan nuestras costuras.

  • Velocidad perímetros internos, normalmente los perímetros internos se suelen hacer a velocidades más altas que los externos por acabado... con Scarf activado, o ya a nivel general si tenemos artefactos en nuestras superficies externas, es aconsejable al menos dejarlos a la misma velociad que los externos.

En PrusaSlicer, o forks como Bambu Studio/OrcaSlicer/SuperSlicer, contamos con opciones para ajustar la posición de las costuras:

  • Alineada/Aligned, intenta alinear la costura al punto más cercano donde se inició la capa anterior. Normalmente si no tenemos bien ajustadas las costuras veremos una linea vertical en nuestras impresiones

  • Más cercano/Nearest, coloca la costura en el borde de la figura. Si tenemos bien ajustadas las costuras suele ser la mejor elección si la figura tiene bordes. Si no tenemos bien ajustadas las costuras normelmente veremos uno de los bordes que queda con artefactos, ojo porque puede llegar a confundirese con problemas de Linear Advance/Pressure Advance la diferencia para identificar entre uno u otro es que de ser las costuras solo aparecen los artefactos en uno de los bordes que pueda tener nuestra figura.

  • Más lejano/Rear, en este caso va a intentar ubicar las transiciones de capa en la cara más atrasada de nuestra figura en el eje Y.

  • Random, el laminador de forma aleatoria va a colocar las transiciones en diferentes partes. En caso de una configuración incorrecta de costuras veremos puntos o gotas distribuidas aleatoriamente por nuestra pieza en cada capa.

Otra opción interesante para ocultar las costuras en PrusaSlicer (o cualquiera de sus forks) es la opción de poder pintar la ubicación de la costura donde más nos interese.

De esta forma podemos indicar cuales son las partes donde ubicar las costuras así como bloquear ciertas zonas que sean importantes evitar cualquier artefacto.

Otras opciones interesantes, indicaremos los nombres utilizados en Bambu Studio/OrcaSlicer y en inglés ya que con el buscador se encuentran fácilmente:

  • Seam gap, normalmente vienen en los perfiles por defecto con % de 15-10% os aconsejamos realizar tests con valores de entre 5-1% en el caso que tengamos un hueco muy pronunciado entre nuestras costuras

  • Wipe on loops, es otra opción que puede irnos bien

  • Wipe speed, ajustando a un valor bajo de 25-10% en versiones actuales tenemos la opción Role base wipe speed que va a gestionar dinámicamente estas velocidades dependiendo de la trazada

En cualquier caso lo ideal es que hagáis vuestros tests con un cubo o cilindro hueco para ver como afectan estas configuraciones y elegir la mejor para nuestra máquina/filamento.

En Cura disponemos también de opciones para poder ajustar nuestras costuras:

  • Usuario, nos permite indicar en que posición de nuestra figura queremos ubicar la costura

  • Cercana, ubica la costura lo más cerca del final de la capa antes de la transición

  • Random, ubica la costura aleatoriamente en la pieza

  • Esquina más cercana, ubica la costura en una de las esquinas

Otra opción disponible para ocultar las costuras es intentar evitar estas transiciones entre capas, para ello la mayoría de laminadores disponen del modo Vaso (Vase mode o Spiralize Outer Contour).

Básicamente este modo de impresión no realiza transiciones y continua la capa realizando un salto sin dejar de extruir dejando una transición entre capas sin costuras.

El modo vaso por desgracia solo es posible dependiendo del tipo de pieza ya que ha de permitir un salto entre capas sin dejar de extruir.

12. Test de Soportes

Normalmente imprimimos piezas complejas las cuales por simple física requieren imprimir al "aire" capas que es imposible que puedan sustentarse.

Para solventar este problema los slicers permiten la generación de soportes que ayudan a mantener estas capas impresas al aire en el sitio adecuado.

Estos soportes sin una correcta configuración pueden dar dos problemas, el primero que sean tan complicados de extraer que dañen la figura y el segundo que la pieza no quede uniforme en esas partes.

Que podemos hacer para mejorar estos soportes::

Imprimir a una temperatura correcta es clave para que el acabado general sea óptimo y en especial el de las partes que necesiten soporte. Así que es ideal que revisemos la temperatura optima de nuestro filamento.

Otro punto importante son las capas que hacen de interfaz entre las torres de los soportes y la pieza a imprimir, normalmente podemos especificar el numero de capas de la misma y tendremos que encontrar el balance perfecto para nuestra pieza donde normalmente a mas gruesa es más difícil que estas se adhieran a la pieza.

También importante es la distacia de estas capas de interfaz hasta la pieza donde nos encontramos que a menor distancia entre ellas obtenemos un mejor acabado pero más complicado el poder extraerlas incluso que acaben dañando a la pieza.

Como es coger los mejores valores? no podemos dar unos valores universales pero si un posible punto de partida el cual podremos acabar de identificar los valores correctos con tests específicos:

  • distancia de las capas interfaz de soportes 90% de altura de capa tanto superior como inferior

  • patrón rectilineo con 1.5-2.5mm de espaciado dependiendo de la pieza

  • separación XY entre 70-100% altura capa

  • número de capas de interfaz 3-5

Os aconesjamos el siguitente test que podéis utilizar como referencia ya que permite comprobar de una forma rápida nuestros valores tanto de soportes en cama como aquellos que descansan sobre la propia pieza.

13. Linear Advance/Pressure Advance

Es una característica muy interesante que mantiene constante la presión del filamento dentro del nozzle.

Al tener una presión constante, no le afectan los cambios de velocidad durante la impresión, por lo que las zonas conflictivas salen mejor. Se nota una gran mejoría en la pieza en general, pero sobre todo en las esquinas.

Otra cosa buena de esta característica, teniendo bien configurado el Linear Advance, te puedes olvidar del jerk/junction (una característica relacionada con la aceleración) y puedes imprimir a más velocidad sin teóricamente perder calidad.

Por último, otra de las ventajas es que las dimensiones de las piezas que imprimáis teóricamente serán más exactas.

Es importante recordar que esta funcionalidad, por lo menos hasta la versión 2.0.7.x donde asegurate de habilitar #define EXPERIMENTAL_SCURVE, no se lleva muy bien con S_CURVE que son unos algoritmos que mejoran arcos y circunferencias.

Activarlo es muy sencillo, sólo tenéis que ir al archivo configuration_adv.h de vuestro Marlin y descomentar esta línea:

Con la característica activa, vamos a ver como se configura el parámetro K, que es que el gestiona la presión dentro del nozzle.

Desde cualquiera de las herramientas anteriores podéis generar el Gcode correspondiente, lo bajáis y lo imprimís.

Al imprimirlo obtendréis algo parecido a esto:

A la derecha os aparece el valor de la K, y debéis elegir la línea que sea más constante a lo largo de toda la longitud de la misma. En mi caso elegí una K de 140, puesto que debe ser lo menor posible.

Como el valor K cambia dependiendo del material utilizado, lo mejor es cambiar la K mediante un Gcode cuando vas a imprimir. Para ello en el slicer que uses, se añade el Gcode que la configura en el script inicial de la impresión o en el script de filamentos (la mejor opción si tu slicer lo tiene, PrusaSlicer/SuperSlicer por ejemplo). M900 K140 Donde 140 es el valor elegido del test anterior.

Podeis ver mas información en el siguiente vídeo

Este generador es compatible con Marlin y Klipper además que el test nos parece más sencillo de interpretar dado que aporta no solamente información de trazadas rectas si no del comportamiento en esquinas.

OrcaSlicer, un fork de Bambu Studio, dispone de un menu para generar nuestros patrones de una forma sencilla.

Cuenta con dos tipos de tests, cada uno con sus ventajas y desventajas, y ambos con un test para extrusion directa y bowden.

Test de líneas

Es el test más rápido y probablemente más sencillo de interpretar, aunque por otra parte su eficacia dependerá de la calidad de nuestras primeras capas, asegúrate de tener bien ajustadas estas.

  • Seleccionaremos nuestra impresora y filamento

  • Seleccinaremos el test de lineas y directo/bowden, esto nos creará un proyecto nuevo con el test de lineas donde ajustará el valor PA en cada una de ellas

  • Una vez impreso el test revisaremos las lineas impresas y seleccionaremos aquella que quede más perfecta en su trazado

  • Ajustaremos nuestro valor de Pressure Advance

Test de patrones

Es una adaptación del generador creado por Andrew Ellis es muy similar al de líneas pero bajo nuestro punto de vista más completo ya que aparte de simular las líneas también nos muestra el acabado de las esquinas.

En que hemos de fijarnos en el test?

  • esquinas de la zona central del test, estas han de quedar lo más perfectamente líneas y el espacio entre líneas sin huecos

  • también podemos fijarnos en las zonas internas y anclajes de las líneas con un acabado deseado como el punto anterior

En el ejemplo anterior, para un sistema de extrusión directa, seleccionariamos 0.04 como nuestro valor para este filamento

Algunas cosas importantes a tener en cuenta al generar este test:

  • las velocidades que se usan durante el test son las de primeras capas para la primera capa del test y para el resto las de perimetros externos

  • el patron de relleno de la parte de texto no se puede ajustar

Test Torre

Este test puede tardar más y tener un gasto superior de filamento pero no depende, como el anterior, de la calidad de tus primeras capas.

  • De nuevo seleccionaremos nuestro perfil de impresión y filamento

  • Seleccinaremos el test de lineas y directo/bowden, esto nos creará un proyecto nuevo con el test de torre. En este test el valor de Pressure Advance va incrementando 0.002 cada 1mm en el test de extrusión directa y 0.02 en el caso de bowden.

  • Imprimiremos el proyecto y nos fijaremos en la calidad de las esquinas seleccionando la que quede más perfecta. En el siguiente ejemplo hemos seleccionado 8mm en un test de extrusió directa quedando el cálculo final de Pressure Advance de la siguiente forma: 0.002*8=0.016

Por último, indicar que dependiendo del tipo de sistema de extrusión deberíamos estar en unos rangos:

  • extrusión bowden, nuestro extrusor está alejado del hotend, normalmente LA/PA están entre 0 y 1 siendo lo normal de media un 0.4

  • extrusión directa, nuestro extrusor está junto a nuestro hotend, en estos casos los valores de LA/PA suelen estar entre 0 y 0.1 siendo lo normal de media un 0.04

14. Input Shaper y Aceleraciones (opcional)

Encontrar los valores de acelración óptimos nos van a permitir mejorar enormemente nuestras impresiones en especial aquellos artefactos en las esquinas además de mejorar el efecto onda/ghosting en los cambios de dirección.

Es importante recordar que los valores obtenidos no necesariamente tienen porqué ser siempre practicos para imprimir con ellos dependiendo de nuestras piezas.

Además es importante recordar:

  • si buscamos velocidad sistemas drivers/motor HV (High Voltage...12-24v) nos van a ofrecer generalmente mayor velocidad/aceleración

  • podemos mejorar ajustando correctamente nuestros valores de corriente/vref de nuestros drivers/motores al alza, probablemente sacrificando un poco la temperatura en los motores siempre y cuando se encuentren dentro de valores seguros para drivers/motor

  • los motores 1.8º rinden mejor normalmente a altas velocidades/aceleraciones que los de 0.9º

Con las últimas actualizaciones de los firmwares para impresoras 3D se ha implementado Input Shaper que es una técnica que permite reducir las vibraciones/ondas (ringing, echoin, ghosting, rippling son otros nombres de ese tipo de artefactos) provocadas normalmente por vibraciones mecánicas.

Para poder activar Input Shaping en nuestro Marlin, recordad que es a partir de la versión 2.1.2, tan solo deberemos activar INPUT_SHAPING_X e Y en configuration_adv.h, también es interesante habilitar el menú LCD (SHAPING_MENU) para su ajuste desde la pantalla:

/**
 * Input Shaping -- EXPERIMENTAL
 *
 * Zero Vibration (ZV) Input Shaping for X and/or Y movements.
 *
 * This option uses a lot of SRAM for the step buffer. The buffer size is
 * calculated automatically from SHAPING_FREQ_[XY], DEFAULT_AXIS_STEPS_PER_UNIT,
 * DEFAULT_MAX_FEEDRATE and ADAPTIVE_STEP_SMOOTHING. The default calculation can
 * be overridden by setting SHAPING_MIN_FREQ and/or SHAPING_MAX_FEEDRATE.
 * The higher the frequency and the lower the feedrate, the smaller the buffer.
 * If the buffer is too small at runtime, input shaping will have reduced
 * effectiveness during high speed movements.
 *
 * Tune with M593 D<factor> F<frequency>:
 *
 *  D<factor>    Set the zeta/damping factor. If axes (X, Y, etc.) are not specified, set for all axes.
 *  F<frequency> Set the frequency. If axes (X, Y, etc.) are not specified, set for all axes.
 *  T[map]       Input Shaping type, 0:ZV, 1:EI, 2:2H EI (not implemented yet)
 *  X<1>         Set the given parameters only for the X axis.
 *  Y<1>         Set the given parameters only for the Y axis.
 */
#define INPUT_SHAPING_X // 3DWORK ENABLE INPUT SHAPING
#define INPUT_SHAPING_Y // 3DWORK ENABLE INPUT SHAPING
#if EITHER(INPUT_SHAPING_X, INPUT_SHAPING_Y)
  #if ENABLED(INPUT_SHAPING_X)
    #define SHAPING_FREQ_X  40          // (Hz) The default dominant resonant frequency on the X axis.
    #define SHAPING_ZETA_X  0.15f       // Damping ratio of the X axis (range: 0.0 = no damping to 1.0 = critical damping).
  #endif
  #if ENABLED(INPUT_SHAPING_Y)
    #define SHAPING_FREQ_Y  40          // (Hz) The default dominant resonant frequency on the Y axis.
    #define SHAPING_ZETA_Y  0.15f       // Damping ratio of the Y axis (range: 0.0 = no damping to 1.0 = critical damping).
  #endif
  //#define SHAPING_MIN_FREQ  20        // By default the minimum of the shaping frequencies. Override to affect SRAM usage.
  //#define SHAPING_MAX_STEPRATE 10000  // By default the maximum total step rate of the shaped axes. Override to affect SRAM usage.
  #define SHAPING_MENU                // 3DWORK Add a menu to the LCD to set shaping parameters.
#endif

Input Shaper... electrónicas 8b y ajustes óptimos avanzados!!!

Si bien es verdad que no todas las electrónicas 8b son iguales hay dos factores muy importantes para habilitar IS (Input Shaper) en Marlin... la RAM disponible y la potencia del procesador.

IS en Marlin fué diseñado para funcionar en un atmega1284p/8KB (procesador/RAM) cuando lo normal en placas antiguas 8b era el uso de atmega2560/4KB... mejor procesador pero menos RAM lo que tiene implicaciones a la hora de este tipo de funciones y por lo tanto hemos de optimizar al máximo algunos aspectos de nuestra configuración.

Tal como podemos ver en la propia descripción de la sección IS en el código hay que tener en cuenta ciertas configuraciones, en especial si contamos con una electrónica de 8b o con RAM limitada:

  • DEFAULT_MAX_FEEDRATE idealmente ajustar los valores reales y lógicos que pueda llegar la máquina. Si nuestra mecánica/cinemática soporta 150mm/s en XY es más que aconsejable ajustar estos valores.

  • SHAPING_MAX_STEPRATE correctamente a las características de nuestra máquina si estamos justos de RAM

  • SHAPING_MIN_FREQ ajustado al valor mínimo correcto de frecuencias para nuestra máquina.

  • ADAPTIVE_STEP_SMOOTHING viene habilitado en algunos firmware y no tiene sentido ni se obtienen mejoras significativas dependiendo de la electrónica, máquina y funciones habilitadas ya que esta especialmente pensado para electrónicas rápidas por lo que su uso indevido puede afectar a la efectividad de IS.

  • LINEAR_ADVANCE es otra funcionalidad que junto con IS mejoran la calidad de nuestras impresiones.

Otros aspectos que pueden afectar en electrónicas limitadas en RAM y procesador es la configuración de nuestro laminador usando precisiones que no son realista para nuestra máquina generando un gcode pesado y complejo que junto con otras funcionalidades como las anteriormente comentadas pueden afectar al rendimiento de nuestra máquina. En ocasiones, el uso de ARC WELDER, puede mejorar este aspecto.

En cualquier caso y como consejo generalizado el disponer de una máquina bien ajustada mecánicamente y con buenos componentes va a requerir de menos correcciones por software como estas y que estas sean más efectivas.

Dividiremos, para un resultado más óptimo, el test en dos partes donde la primera será identificar aproximadamente el techo de aceleraciones/frecuencia que nuestra máquina puede llegar y a continuación realizaremos el test de Input Shaper. Aunque también puedes ir directamente a hacer este último pero puede que conociendo mejor tu máquina puedas obtener mejores resultados.

Os recordamos que por ahora Marlin no soporta el uso de acelerómetros por lo que el test es manual y requiere interpretar el resultado en una pieza de test lo cual puede ser bastante subjetivo.

Por otro lado os recordamos que actualmente esta funcionalidad (Marlin 2.1.2) está considerada como experimental.

En el caso que nuestra máquina sea una CoreXY es recomendable que cualquier test de calibración que tenga que ver con cinemáticas este a 45º girado en la cama.

De esta forma las trazadas se realizarán moviendo uno solo de los motores que suele ser el objetivo de este tipo de tests.

Antes de realizar este test es importante que nuestra máquina esté perfectamente ajustada en temperatura, flujo y pasos ya descritos en esta guía.

Deberemos asegurarnos que al laminarlo tenermos en cuenta los siguientes aspectos:

  • Altura de capa inicial y normal a 0.2mm

  • Usar uno o dos perímetros sin relleno o relleno mínimo

  • Ajustaremos una velocidad alta para nuestra impresora viable mecánicamente, normalmente entre 80-100mm/s

  • Asegurarnos que tenemos configuradas unas aceleraciones altas tanto para la impresion como para traslados (>=1000mm/s^2) para los ejes X e Y. Esto lo encontraremos en "Printer Settings" -> "Machine Limits".

  • Evitar que el laminador genere gcodes M204 después de cada tipo de trazada, Print Settings -> Speed Acceleration control (advanced) -> set "Default" to 0

  • Revisar configuraciones específicas de velocidad y aceleración para los perímetros

  • Asegurarnos que en las opciones de ventilación/enfriamiento no reducimos velocidades por tiempo de impresión de capa

  • Si usamos jerck/junction usar el valor más alto posible para nuestra máquina

  • Si nuestro laminador usa Arachne desactivarlo, ya que tiende a redondear las esquinas

 *  D<factor>    Set the zeta/damping factor. If axes (X, Y, etc.) are not specified, set for all axes.
 *  F<frequency> Set the frequency. If axes (X, Y, etc.) are not specified, set for all axes.
 *  T[map]       Input Shaping type, 0:ZV, 1:EI, 2:2H EI (not implemented yet)
 *  X<1>         Set the given parameters only for the X axis.
 *  Y<1>         Set the given parameters only for the Y axis.
  • Script de capa anterior para aplicar cambios con el gcode M204 (aceleración)... para PrusaSlicer/SuperSlicer lo haremos dentro de "Printer Settings" -> "Custom G-code" -> "Before layer change G-code" y debajo de lo que ya tengamos.

Printer Settings" -> "Custom G-code" -> "Before layer change G-code
; Input Shaping Frequency Testing
{if layer_z==layer_height}M204 P1500; Set Acceleration at Layer 1{endif}
{if layer_z==5}M204 P2000; Set Acceleration at Layer 5{endif}
{if layer_z==10}M204 P2500; Set Acceleration at Layer 10{endif}
{if layer_z==15}M204 P3000; Set Acceleration at Layer 15{endif}
{if layer_z==20}M204 P3500; Set Acceleration at Layer 20{endif}
{if layer_z==25}M204 P4000; Set Acceleration at Layer 25{endif}
{if layer_z==30}M204 P4500; Set Acceleration at Layer 30{endif}
{if layer_z==35}M204 P5000; Set Acceleration at Layer 35{endif}
{if layer_z==40}M204 P5500; Set Acceleration at Layer 40{endif}
{if layer_z==45}M204 P6000; Set Acceleration at Layer 45{endif}
{if layer_z==50}M204 P6500; Set Acceleration at Layer 50{endif}
{if layer_z==55}M204 P7000; Set Acceleration at Layer 55{endif}gc
  • Nos aseguraremos que ajustamos las aceleraciones máximas y deshabilitamos Linear Advance de tenerlo activado añadiendo, dependerá de vuestro gcode de inicio donde exactamente... revisar que no existan ya los gcodes y ponerlos después de ellos, lo siguiente a nuestro gcode de inicio

Printer Settings" -> "Custom G-code" -> "Start G-code
M201 X7000 Y7000; Set Max Aceleration for X and Y axis
M900 K0; Disable Linear Advance

Es importante estar atento durante la impresión del test y pararlo en caso de que veamos un claro exceso de ghosting, tengamos extrusión inconsistente o veamos que las aceleraciones comienzan a ser exageradas para nuestra máquina provocando pérdida de pasos.

Cómo interpretar el test:

  • Usaremos las caras X (1) o Y (2) para encontrar los valores para cada uno de los ejes

  • Para ver el valor adecuado de aceleración nos centraremos en los tests 4 (X) y 6 (6) donde tendremos que observar que la figura de test esté correcta

  • Para calcular el valor óptimo de frecuencia usaremos la interacción seleccionada anteriormente y mediremos las ondas de ghosting en las zonas de test 3(X) y 5(Y). Para medir la distancia entre ondas seleccionaremos aquellas claramente visibles, obviando la primer/segunda, y marcaremos entre ellas para medirlas con un calibre. La fórmula será la siguiente: Velocidad * NumeroOndas / DistanciaOndas = Frecuencia. En el siguiente ejemplo tendremos 100mm/seg que es la Velocidad que elegimos al laminar nuestra figura de test, 6 como NumeroOndas y 12.14 como DistanciaOndas. 100 * 6 / 12.14 ≈ 49.4 Hz

Si observamos que el valor de frecuencia es muy bajo deberíamos de revisar nuestra mecánica/cinemática (correas, excentricas, tornillos del chasis, etc...)

Con el test anterior obtendremos la frecuencia y aceleración óptima que puede soportar nuestra máquina imprimiendo de forma "decente" sin pérdida de pasos cogiendo ese valor para generar una nueva torre de test pero en este caso cambiando el script de cambio de capa para ajustar los valores zeta de input shaper.

  • Este test de factor Z deberemos realizarlo una vez tengamos nuestro valor óptimo de frecuencia (M593 F) y aceleración el cual ajustaremos en nuestro laminador este último (M204) en nuestro gcode de inicio por ejemplo

  • Script de cambio de capa ajustando el factor Z de Input Shaper, en este caso y con el valor de frecuencia anterior hemos obtenido un rango entre 15Hz a 60Hz (nuestro valor anterior estaba entre este rango aproximadamente):

Printer Settings" -> "Custom G-code" -> "After layer change G-code
; Input Shaping Zeta Testing
M593 F{(layer_num < 2 ? 0 : 15 + 45.0 * (layer_num - 2) / 297)} ; Hz Input Shaping Test

Laminaremos e imprimiremos la torre utilizando una altura de capa de 0.2mm (para un nozzle de 0.4) a la máxima velocidad que nuestra máquina permita imprimir de forma adecuada.

Una vez finalizado el test deberemos observar el rango que mejor veamos:

Una vez encontremos a que altura se comporta mejor teniendo como referencia las imagenes anteriores y para obtener los HZ a una altura determinada de Z usaremos la siguiente fórmula:

Donde z será la altura donde hemos obtenido mejor resultado restandole un par de capas, a modo de ejemplo en nuestro caso obtuvimos el mejor resultado en 20.4mm y utilizamos 20mm como valor para el cálculo:

Para facilitar el proceso podéis realizar estos cálculos de forma sencilla en esta calculadora:

Con la Frecuencia y Factor Z listos para añadir a nuestro laminador o configuración de firmware:

  • En el caso de querer añadirlo al firmware deberemos editar los valores obtenidos en nuestro firmware o ajustarlo desde el LCD en Advanced, recordar salvar EEPROM para no perder los datos

  • Ajustarlo en vuestro laminador en el gcode de inicio o de filamentos suele ser la mejor opción dado que estos valores pueden variar significativamente dependiendo del tipo de filamento que usemos

M593 X D0.3 F29.84; Set Input Shaping X Axis
M593 Y D0.3 F18.4; Set Input Shaping Y Axis

En el caso que queramos deshabilitar las correcciones Input Shaper sin compilar el firmware usaremos el gcode:

M593 F0

Os dejamos algunos vídeos interesantes:

Una de las grandes funcionalidades de Klipper, es el soporte a Input Shaping que es una técnica que permite reducir las vibraciones/ondas (ringing, echoin, ghosting, rippling son otros nombres de ese tipo de artefactos).

15. VFA/MRR

En ocasiones podemos observar que en nuestras impresiones, todo teniendo todo lo comentado anteriormente ajustado, vemos unos patrones verticales en nuestras capas externas similares a esto:

Podemos encontrar este problema, en mayor o menos medida en prácticamente todas las impresoras 3D y este efecto se suele llamar VFA/MRR y básicamente están relacionadas con pequeñas vibraciones en nuestros motores o cinemática (correas,poleas,etc...) de nuestra impresora.

Este efecto VFA/MRR normalmente es más o menos visible dependiendo de nuestra velocidad de impresión y tal como comentamos esas vibraciones en los motores provocan resonancias:

Cómo podemos minimizar o solucionar estos artefactos?

  • Dado que una parte de la aparición de este problema puede estar relacionado con el ajuste de nuestra mecánica/cinemática el uso y ajuste de Input Shaper puede reducir significativamente este efecto.

  • Podemos encontrar las velocidades óptimas para nuestra máquina para reducir este efecto, normalmente podremos usar un cubo hueco ajustando su velocidad cada 5mm y dentro de los rangos que soporte nuestra impresora para ver el óptimo.

En OrcaSlicer, fork de Bambu Studio, encontramos dentro de sus opciones de calibración un test que nos va a permitir revisar como se comporta nuestra máquina ante el efecto VFA/MRR.

  • Generaremos el test VFA desde el menú Calibration>>>More...>>>VFA

  • Nos creará una figura en forma de estrella donde tendrá planos en diferentes ángulos para observar el impacto VFA/MRR en diferentes ejes y angulaciones. Como parámetros seleccionaremos los rangos de velocidad que queramos revisar así como el salto de velocidad en cada paso del test

  • Podemos ver en el preview como se van ajustando las velocidades del test

Ya solo quedará imprimirlo y ajustar nuestras velocidades de forma adecuada, es aconsejable antes de esto que sigáis revisando los consejos para disminuir este efecto.

Usaremos el test de Bambu Studio para generar el nuestro en otro laminador, básicamente hemos de crear los cambios de velocidad cada ciertos mm.

  • El correcto ajuste de nuestros driver a nivel de corriente, normalmente si ponemos esta demasiado baja para las necesidades de nuestro motor.

  • Nuestra cinemática, en concreto en los engranajes y correas que transfieren nuestros movimientos, aunque el patron es similar al provocado por el motor y vibraciones en este caso tiene unos patrones que coinciden con el paso de correas (normalmente 2mm) y suelen ser más visibles en trazadas a 45º. El uso de correas y engranajes de mejor calidad, junto con un correcto tensado y guiado

  • de las correas, suelen mitigar o eliminar este efecto. También tenemos soluciones como el uso de doble correa con paso cambiado entre ellas.

El uso de dampers para nuestros motores, filtros smooth de corriente para nuestros drivers (TMC) o motores servo no suelen mejorar este tipo de artefactos.

16. Ajuste de Extrusión Volumétrica (Opcional)

El extrusor de una impresora 3D puede fundir una cantidad finita de filamento en x tiempo. Esta velocidad de filamento máximo extruído limita las capacidades de nuestra impresora lo que a veces se traduce en que durante una impresión en determinadas partes nuestro extrusor pierde pasos y la calidad de la impresión no es la óptima.

Los fileteadores/slicers actuales como PrusaSlicer/SuperSlicer permiten usar este valor junto con la máxima velocidad mecánica de la cinemática de una impresora 3D para ajustar dinámicamente la velocidad de impresión para obtener siempre el máximo rendimiento y calidad.

Procedimiento para encontrar nuestro MVS

Nos conectaremos con nuestro cliente terminal favorito como Pronterface o Octoprint para poder lanzar comandos gcode.

  1. Podremos el extrusor en modo relativo y ajustaremos la temperatura del nozzle a la temperatura adecuada para el filamento a usar, es aconsejable antes elevar el eje Z hasta media altura de su eje M83 M109 S200

  2. Seguidamente lanzaremos el comando para extruir 60mm de filamento a diferentes velocidades G1 E60 F300 G1 E60 F400

  3. Incrementaremos la velocidad de 100mm/min (el valor Fxxx) hasta que escuchemos que nuestro extrusor empieza a perder pasos

  4. Al notar que perdamos pasos bajaremos la velocidad en 50mm/min

  5. Iremos incrementando 10mm/min hasta que volvamos a escuchar perder pasos de nuevo

  6. Bajaremos 5mm/min sobre el valor anterior

Una vez ya hemos obtenido el valor de máxima velocidad de extrusión sin pérdida de pasos del extrusor realizaremos un par de pruebas para verificar que es el valor correcto y no perdemos pasos. Con ese valor realizaremos los siguientes cálculos:

  • Dividiremos la velocidad Fxxx óptima para nuestro filamento/extrusor/temperatura por 60 para convertir de mm/min a mm/seg

  • Multiplicaremos la velodidad de extrusion máxima del punto anterior por la sección de nuestro filamento, ejemplo 1.75 ya que es el más común para obtener el valor de mm3/seg

  • Por seguridad reduciremos los mm3/seg en .5 para dejar algo de márgen de hardware y de variaciones de filamento

También con estos datos podemos tener referencia de la teórica velocidad máxima que va a soportar nuestro extrusor, no nuestra mecánica:

A modo de referencia podéis encontrar en la siguiente tabla unos valores por tipo de hotend/extrusor (con boquilla 0.4 y filamento 1.75):

Hotend/Extruder
Volumetric Flow Rate (mm3/2)

Mosquito Magnum

30

Mosquito

20

Rapido UHF

30

Rapido HF

24

Dragon HF

24

Dragon SF

15

E3D V6

10

E3D Revo

11

Es importante tener en cuenta que son valores de referencia...

  • dependiendo del material de nuestro nozzle va a afectar a nuestro valor volumétrico de extrusión

  • el tipo de filamento, su calidad y los ajustes de temperatura pueden variar el resultado

  • la calidad y características de nuestro sistema de extrusión también puede y va a afectar a los valores de nuestra volumetría de extrusión

Como referencia aquí podéis consultar algunas medidas también por tipo de filamento:

Realizando un test en un entorno más real:

  • Lo primero de todo descargaremos el STL con el test:

  • Nos aseguramos de que el relleno de la figura, 1 solo perímetro y las capas inferiores/superiores sean 0

  • El siguiente paso será crear los modificadores de capa para cambiar speed factor o flow rate cada 5mm

  • Desde el menú de calibración elegimos el test Max flowrate

  • elegiremos los umbrales de nuestro test, lo normal sería solamente ajustar el valor superior con el que obtuvimos anteriormente, también podemos ajustar los saltos entre valor de volumetría:

  • Ya tendremos nuestro test listo para imprimir, es aconsejable revisar el preview con la vista de velocidad y flow para verificar que es correcto:

Es importante que estemos atentos a la máquina al realizar estos tests para poderlos detener en caso de problemas!!

tal como hemos comentado estos tests son en base a la velodidad teórica que soporta nuestro extrusor NO nuestra mecánica/cinemática por lo que podría ocasionar pérdida de pasos o algún otro fallo más severo.

Analizando el resultado podremos afinar nuestro valor exacto para nuestra máquina/material:

Ajustando MVS en nuestro laminador:

Como ya comentamos este potente ajuste es muy sencillo de aplicar a nuestro slicer/fileteador. En el caso de PrusaSlicer/SuperSlicer:

  • En nuestro perfil de filamentos ajustaremos Max Volumetric Speed

  • En nuestro perfil de impresion ajustaremos la máxima velocidad de nuestra mecánica/cinemática

Ya está!!! ahora al realizar un fileteado podemos ver en la preview el resultado viendo el preview de velocidad y volumetríaPreview Volumetría

17. gcode de inicio y fin de impresion

Una vez tenemos todo perfectamente calibrado es importante que nuestra impresora realice los pasos correctos a la hora de comenzar y finalizar nuestra impresión desde nuestro laminador

Gcode de inicio de impresión

Os sugerimos el siguiente gcode de inicio (Prusa/SuperSlicer al final de la explicación encontrarás como adaptarlo a Cura):

; 3DWORK.IO Custom Start G-code
M117 PRE-HEATING!!!
M104 S[first_layer_temperature]   ; Set Extruder temperature
M140 S[first_layer_bed_temperature] ; Set Heat Bed temperature
M190 S{first_layer_bed_temperature[0] - 5}  ; wait for bed temperature - 5
M109 S[first_layer_temperature]             ; wait for nozzle temperature
M117 HEATING!!!
G4 S120 ;wait to preheat

; Printer Homing
M117 HOMING!!!
G28 ; Home all axes
G29 L1 ; Autolevel UBL
G29 J ; Autolevel UBL
; G29 ; Autolevel BILINEAR
; M420 S1 Z10 ; Autolevel MESH Fade 10 mm

; Purge Extruder
M117 CLEANING EXTRUDER!!!
G92 E0 ; Reset Extruder
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position
G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line
G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little
G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line
G92 E0 ; Reset Extruder
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed

Este gcode de inicio se divide en tres bloques imprescindibles para iniciar una impresión correctamente:

  • Calentado, en este primer bloque usamos la configuración del slicer/fileteador para precalentar durante 120 segundos nuestro nozzle y cama (puedes modificar esto modificando el G4 S120 cambiando el valor o comentando/borrando el comando)

  • Purga, aunque a mucha gente no le gusta o hacen una desde el slicer/fileteador alrededor de la pieza es preferible hacer esta linea de purga ya que permitira limpiar todo lo mas posible el nozzle para que comience el proceso de impresión en las mejores condiciones. Para ajustar el tamaño de la linea de purga, esta se realiza en la parte derecha de la cama en el eje Y, ajustaremos el valor de Y200 al tamaño de nuestra cama -10mm

En el caso de Cura modificaremos el primer bloque de la siguiente forma:

; 3DWORK.IO Custom Start G-code
M117 PRE-HEATING!!!
M104 S{material_print_temperature_layer_0} ; Set Extruder temperature
M140 S{material_bed_temperature_layer_0} ; Set Heat Bed temperature
M190 S{material_bed_temperature_layer_0} ; Wait for Heat Bed temperature
M109 S{material_print_temperature_layer_0} ; Wait for Extruder temperature
M117 HEATING!!!
G4 S120 ;wait to preheat

Dado que en Klipper podemos configurar nuestras propias macros algo que suele ser muy útil es la creación de macros para el inicio de impresión (START_PRINT) y final de impresión (END_PRINT).

Podréis encontrar más información de como configurarlo en nuestra guía específica para Klipper.

Gcode de final de impresión

Tan importante como el Gcode de inicio es el de final que nos asegurará apagar de una forma correcta nuestra impresora y dejará correctamente preparada para el siguiente uso.

; 3DWORK.IO Custom End G-code

G4 ; Wait
M220 S100 ; Reset Speed factor override percentage to default (100%)
M221 S100 ; Reset Extrude factor override percentage to default (100%)
G91 ; Set coordinates to relative

M117 RETRACT TO AVOID OOZING!!!
G1 F1800 E-3 ; Retract filament 3 mm to prevent oozing
G1 F3000 Z20 ; Move Z Axis up 20 mm to allow filament ooze freely

M117 My Lord, your print ready!!!
G90 ; Set coordinates to absolute
G1 X0 Y220 F1000 ; Move Heat Bed to the front for easy print removal

M117 ENDING...
M106 S0 ; Turn off cooling fan
M104 S0 ; Turn off extruder
M140 S0 ; Turn off bed
M107 ; Turn off Fan
M84 ; Disable stepper motors

M117 That's All Folks!

Este gcode realiza los siguientes pasos:

  • Retracción, para evitar que en la siguiente impresion caiga filamento durante el calentamiento, podemos variar el valor de E-3 a los mm que queramos para ajustarlo

  • Presenta la cama con la impresión finalizada, puedes ajustar Y220 al valor máximo de tu eje Y -10 mm

  • Apagado ventiladores, extrusor, cama y motores

Dado que en Klipper podemos configurar nuestras propias macros algo que suele ser muy útil es la creación de macros para el inicio de impresión (START_PRINT) y final de impresión (END_PRINT).

Podréis encontrar más información de como configurarlo en nuestra guía específica para Klipper.

Tests en cambio filamento/color sugeridos

Muchas veces al cambiar de tipo de material y/o color o marca de fabricante comenzamos a imprimir sin realizar un mínimo de tests que pueden llevarnos a resultados, a veces, desastrosos.

Para evitar este tipo de problemas os aconsejamos realizar los siguientes tests:

Test imprescindibles en caso de tener/usar estas funciones avanzadas:

Dado que la mayoría de laminadores/slicers nuevos disponen de perfiles para tipo de filamento/material lo ideal es crear uno nuevo para cada tipo de filamento y almacenar ahi cualquier cambio con respecto a otros ya sea con cambio de valores o, de permitirlo, mediante gcode especifico de filamento (como en SuperSlicer/PrusaSlicer que le da una gran versatilidad y personalizacion).

Prueba de stress finall!!!

Si has llegado hasta aquí y seguiste todos los pasos sugeridos correctamente tu impresora estará probablemente ajustada.Pars hacer una verificación final podemos usar una última pieza de calibración de stress que nos ayudará a comprobar que todo este correcto.

Os sugerimos dos que pensamos que os pueden servir para ver el resultado global de vuestra calibración pero recordad que en ocasiones vamos a tener que hacer ajustes especificos dependiendo del tipo de pieza/filamento.

Podremos comprobar la fiabilidad de medidas de nuestra máquina comprobando estas cotas:

También podremos ver algunos tips para revisar algunas zonas especiales de nuestro benchy:

Aunque lo más normal es usar el benchy para hacer un test general el test de la tostadora, aunque gasta más material y tarde más, no puede dar más información.

Es importante tener en cuenta que para imprimir correctamente estos tests tu máquina debería tener correctamente ajustados:

  • adhesión de primeras capas, dado que alguno de los tests se pueden ver afectados por ello

  • pie de elefante, al igual que el anterior puede afectar a ciertas partes de test

  • retracciones, al ser un modelo articulado unas retracciones incorrectas pueden afectar a algunos tests

  • integridad dimensional, como puede ser sobre extrusión, warping, desplazamiento de capas... en general cualquier tipo de artefactos que pueda afectar a la precisión de nuestra impresora a la hora de imprimir

Este test ayudará a verificar; - test de voladizos, donde nos indicará en wue angulos nuestra impresora piede imprimir sin soportes para configurar en tu slider y evitar/minimizar el número de soportes necesarios - test de puentes, para ver los límites en distancia de puentes - test retracción - test definicion esquinas - test de tolerancia - test de escala

Puedes encontrar más tests específicos en mis colecciones de Thingiverse y Printables:

Perfiles de Impresión que podemos usar como referencia

Creality Ender

Creality CR10

Artillery X1/Genius

Links Relacionados:

Os recordamos que tienes mas guias de ayuda en nuestro bot de Telegram

OrcaSlicer ->

Si estáis interesados podéis acceder anuestro .

Bambu Studio - Bambu Labs ->

OrcaSlicer ->

Si estáis interesados podéis acceder anuestro .

Os sugerimos añadir este plugin, , que permite generar muchos de los tests que se sugieren en esta guía de una forma más sencilla.

Os aconsejamos pasaros por .

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 muy visual que nos puede ser de gran utilidad:

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

Otro ajuste necesario para vuestra sección [extruder] se indique el ... el valor aconsejable suele ser >101 (en caso de no estar definido usa 50) para por ejemplo permitir los tests típicos de calibración del extrusor.

Puedes acceder a la a continuación puedes ver como es:

En Marlin y si no contamos con sensor de nivelación es muy aconsejable activar el nivelado MESH manual, tenéis una , ya que podéis ajustar y solventar problemas en el caso que vuestra cama no esté totalmente plana.

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 .

El nos facilita enormemente generar tests de calibración ya que cuenta con casi todos los necesarios para el ajuste de nuestra máquina o perfil de impresión.

En este caso disponen de un para nuestra impresora.

Nuestro compañero TeachingTech dispone de un generador online para poder generar un test de primeras capas

También podemos usar este test de nivelación o uno similar y usando babystepping ajustar correctamente el nivelado de la cama para una correcta primera capa.

Desde Marlin, es imprtante que tenéis que tener habilitada esta opción (), tenemos diferentes formas de realizar el ajuste:

Material Settings/Filament/Diameter

El nos facilita enormemente generar tests de calibración ya que cuenta con casi todos los necesarios para el ajuste de nuestra máquina o perfil de impresión.

Os aconsejamos usar el FlowTower Test que imprimirá una con diferentes valores, podemos parametrizarla a nuestro gusto .

En este caso usaremos una torre de temperatura más compacta aunque permite testear temperatura, puentes, voladizos, retracciones, etc... podéis encontrar la torre de o .

El nos facilita enormemente generar tests de calibración ya que cuenta con casi todos los necesarios para el ajuste de nuestra máquina o perfil de impresión.

usaremos también tenemos la opción de

Desde el podemos generar nuestra torre de temperatura de una forma sencilla, aunque al contrario de métodos anteriores puede requerir de ciertos conocimientos al necesitar conocer ajustar algunos parámetros.

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 o un espectrómetro.

rotationdistance=<beltpitch>∗<numberofteethonpulley>rotation_distance = <belt_pitch> * <number_of_teeth_on_pulley>rotationd​istance=<beltp​itch>∗<numbero​ft​eetho​np​ulley>
rotationdistance=<screwpitch>∗<numberofseparatethreads>rotation_distance = <screw_pitch> * <number_of_separate_threads>rotationd​istance=<screwp​itch>∗<numbero​fs​eparatet​hreads>
rotationdistance=<fullstepsperrotation>∗<microsteps>/<stepspermm>rotation_distance = <full_steps_per_rotation> * <microsteps> / <steps_per_mm>rotationd​istance=<fulls​tepsp​err​otation>∗<microsteps>/<stepsp​erm​m>

Tenéis un hilo interesante del propio Kevin .

hemos de asegurarnos que tenemos correctamente ajustados los

Usemos el método de nuestro compañero con su !!! Para nosotros el método más fiable para ajuste dimensional usando una pieza impresa.

Además de la siguiente tendremos el proceso y cálculos de forma sencilla, podéis ver un video del compañero detallando el proceso también:

En que nos permite afinar dimensionalmente nuestra máquina. Os sugerimos los pasos de la excelente guía de .

, la misma que sugiere la documentación de Klipper, la abriremos en nuestro laminador y os aconsajariamos imprimirla a una velocidad baja entre 20-40mm/s.

Podéis

El nos facilita enormemente generar tests de calibración ya que cuenta con casi todos los necesarios para el ajuste de nuestra máquina o perfil de impresión.

usaremos también tenemos la opción de

cargaremos nuestra

En el caso que usemos estas funciones pueden interferir por lo que se recomienda no tenerlas activadas

Puedes utilizar el generador online

Temperatura, la temperatura del nozzle es uno de los aspectos más importantes en la extrusión y por lo tanto va a afectar al acabado de nuestras costuras. Si vemos gotas de filamento en las costuras podemos intentar reducir la temperatura unos grados (podemos probar bajando 5 grados). En la tenéis más información.

Flujo, otro factor muy importante para las costuras ya que el ajuste fino de la extrusión es clave para que las transiciones de capa se produzcan sin generar artefactos en las costuras. Os aconsejamos revisar la de la guía.

Retracciones, quizás el ajuste más importante para el acabado de la costura. Como ya explicamos anteriormente en la , el correcto ajuste de estas va a tener un impacto directo en el acabado de la costura. Normalmente los laminadores al realizar la transición entre capas aplican una retracción precisamente para evitar que las costuras sean muy visibles y si estas, las retracciones, no están bien ajustadas van a afectar a estas.

Linear Advance/Pressure Advance, son MUY importantes a la hora de conseguir buenas costuras tenerlas correctamente ajustadas para nuestro filamento. Tenéis más información en la de esta guía.

Para ello, en la propia página de Marlin, hay una de Marlinpara generar un patrón de configuración/test.

También disponemos de un generador de test Linear Advance/Pressure Advance más versátil que podéis encontrar .

Klipper dispone de una función equivalente llamada Pressure Advance que podéis revisar en la siguiente .

Desde la contamos con la implementación de Input Shaping, si bien se encuentra recién implementado puede mejorar significativamente nuetras impresiones.

El proceso de test es similar al que usamos para Klipper y podemos usar la junto con el nuevo comando de Marlin.

Asegurarnos que no tenemos activado

El nuevo gcode dispone de los siguientes parámetros:

Una vez tengamos la y configuradas las opciones tal como aconsejamos arriba tendremos que configurar:

15+45∗(z/0.2−2)/29715 + 45 * (z / 0.2 - 2) / 29715+45∗(z/0.2−2)/297
15+45∗(20/0.2−2)/297=29.84Hz15 + 45 * (20 / 0.2 - 2) / 297 = 29.84 Hz15+45∗(20/0.2−2)/297=29.84Hz

En el caso que usemos Cura hay un que nos facilitará la tarea

Te aconsejamos crearlo desde este generador online compatible con Marlin y Klipper o puedes usar este otro y personalizarlo

Dado que es un proceso muy extenso lo podéis encotrar en la siguiente donde os vamos a explicar las dos formas de poder ajustar Input Shaping la manual y usando un acelerómetro facilitando links a la documentación oficial.

Otro punto de gran mejora es el uso de motores de calidad, por ejemplo cuenta con una gama especialmente ajustada para evitar este problema. En este aspecto los motores de 0.9º suelen afectar más de VFA/MRR dado que tienen, normalmente, menor torque y requiren mayores velocidades de giro empeorando el efecto.

VolumetricFlow−mm3=(Fvalue/60)∗FilSectionVolumetricFlow-mm3 = (Fvalue/60) * FilSectionVolumetricFlow−mm3=(Fvalue/60)∗FilSection
Speed−mm/sec=Vmm3/LayerHeight/LineWidthSpeed-mm/sec = Vmm3 / LayerHeight / LineWidthSpeed−mm/sec=Vmm3/LayerHeight/LineWidth

nozzles como los que utilizan un diseño diferente pueden mejorar sin otros cambios nuestro valor volumétrico de extrusión

Ahora que tenemos un valor de nuestro MVS lo ideal es realizar un test de impresión donde podamos verificar nuestros valores, para ello usaremos el excelente test usado por el compañero :

Desde OrcaSlicer lo vamos a tener un poco más sencillo dado que tenemos una opción para generarlo

Sin MVS
Con MVS

Homing y Nivelado, este segundo bloque realizará un homing de nuestros ejes y en el caso de tener autonivelación realizarla (el ejemplo esta hecho para pocemos descomentar o borrar las lineas que nos sean o no útiles en nuestro caso)

que nos permitirá verificar o encontrar la temperatura óptima para nuestro nuevo filamento

, usando el test de flujo que es un test muy rápido podemos rápidamente verificar que el flujo es correcto y que nuestros pasos de ejes no variaron con el nuevo filamento. En nuestro caso el cubo de flujo usado tiene unas medidas de 35x35x15mm (X Y Z). ; Filament-specific start gcode M92 X80.2586 Y80.4597 Z401.4765 ; Ajuste de pasos específico para PETG

, en muchas ocasiones este parámetro es muy subsceptible de cambiar y el test es rápido de realizar desde SuperSlicer o el generador de Teaching Tech

, aconsejable realizarlo sobretodo si cambiamos el tipo de filamento o marca

, en el caso que usemos LA es imprescindible realizar la comprobación y ajustar el nuevo valor

, al igual que el punto anterior MVS también queda muy influenciado por el tipo de material por lo que es mas que aconsejable realizar/comprobar que no varía con el nuevo filamento

Todo un clásico siendo un test que nos permite comprobar en una pieza "real" los diferentes ajustes realizados previamente. Podéis descargarlo desde .

PrusaSlicer/SuperSlicer:

Cura:

Start/End Gcodes (Cura):

PrusaSlicer/SuperSlicer:

PrusaSlicer/SuperSlicer:

😄
@ThreeDWorkHelpBot
https://github.com/SoftFever/OrcaSlicer/releases/
grupo de Telegram
https://github.com/bambulab/BambuStudio/releases
https://github.com/SoftFever/BambuStudio-SoftFever/releases
grupo de Telegram
Calibration Shapes
su Wiki donde tendréis explicado como usarlos
core-electronics
documento de E3D
max_extrude_only_distance
calculadora E-step/rotation_distance aquí
https://3dprinting.stackexchange.com/questions/8466/what-is-thermal-runaway-protection
guía nivelación MESH aquí
guía UBL
plugin Calibration Shapes para Cura
test en formato SCAD que podremos parametrizar
https://teachingtechyt.github.io/calibration.html#firstlayer
https://www.thingiverse.com/thing:34558
más información aquí
plugin Calibration Shapes para Cura
torre de flujo
usando SCAD con este modelo
https://github.com/SoftFever/OrcaSlicer/releases/
5 tests
10 tests
plugin Calibration Shapes para Cura
esta torre de temperatura
ajustarla usando SCAD
generador de Teaching Tech
herramienta de verificación de tensado
aquí
Vector 3D
Califlower Calibration
calculadora para calibrar skew/pasos
Vector 3D
Klipper contamos con calibración avanzada para impresoras Delta
Lukas Pomykal
Descargaremos la pieza de test
abrir la calculadora desde aquí.
plugin Calibration Shapes para Cura
esta torre de retracciones
ajustarla usando SCAD
torre de retracciones
https://teachingtechyt.github.io/calibration.html#retraction
herramienta
aquí
guía específica para Klipper
versión 2.1.2 de Marlin
torre de test
M593
M593
torre de test
plugin experimental
https://teachingtechyt.github.io/calibration.html#accel
ttps://www.thingiverse.com/thing:4169896
guía
Profifi3D
CHT de Bondtech
CNC Kitchen
UBL
Torre de temperatura
Ajuste de flujo y comprobación de pasos
Retracciones
Test de toleranzia horizontal
Linear Advance
Extrusión Volumétrica
aquí
https://www.chepclub.com/prusaslicer-profiles.html
https://www.chepclub.com/cura-profiles.html
https://www.chepclub.com/startend-gcode.html
https://3dprintbeginner.com/cr10s-pro-prusa-slicer-profile/
https://3dprintbeginner.com/prusaslicer-profiles/
https://3dprintbeginner.com/flow-rate-calibration/
pasos de nuestro extrusor
Pressure Advance/Linear Advance
sección de torre de temperatura
sección de ajuste de flujo
sección de retracciones
sección LA/PA
MVS
📑

- English Version
Otro ejemplo con más detalle del porqué NO es aconsejable el uso de un cubo para calibrar tu impresora 3D correctamente.
Aunque no es exactamente la última versión del test podréis encontrar los pasos del proceso.
https://www.thingiverse.com/thing:2975429www.thingiverse.com
Powerful 3D Slicer Software - ideaMaker | Raise3DRaise3D: Reliable, Industrial Grade 3D Printer
Download the latest version of Lychee Slicer for SLA/Resin 3D PrintersMango 3D
Calculadora VREF 3DWork
Flexi Flow Calibration Tool V4 By CK3D by CK3DPrints | Download free STL model | Printables.comPrintables.com
The Best Flowrate Calibration Method! by petrzmaxthingiverse
XYZ 20mm Calibration Cube, Vibration Test, Thin Wall Calibration all in one by chekcianthingiverse
Cali Cat - The Calibration Cat by Dezignthingiverse
RepRap Calculator - Original Prusa 3D PrintersOriginal Prusa 3D Printers
Expansion / Flow Calibrator by Ferjerezthingiverse
Remixed Mini Overhang test by agibson2thingiverse
10-100 mm Bridge Test by skriverthingiverse
Make: 2017 3D Printer Test Files by MAKEthingiverse
Pressure Advance | 3Dwork - Klipper
Printables
Printables
Test de estrés - Tostadora
Printables
Calibracion: A Collection by alienboyxpthingiverse
Logo
564KB
VFA test.stl
Cover

Pasos Extrusor - Asegúrate que tu motor de extrusión extruye el volumen correcto

Cover

PID/MPC - Ajusta correctamente tus calentadores para mantener una temperatura óptima

Cover

Nivelación plataforma impresión - Aprende a nivelar correctamente tu plataforma de impresión

Cover

Ajuste flujo - Ajusta el flujo de filamento para obtener impresiones precisas

Cover

Temperatura filamento - Obtén el valor de temperatura óptimo para tu filamento

Cover

Retracciones - Aprende a obtener los valores óptimos para tu filamento y máquina para evitar hilos o mejorar las costuras en tus impresiones

Cover

Pasos Ejes - Cómo ajustar nuestros ejes de movimiento de una forma precisa

Cover

Expansión Horizontal - Ajusta la tolerancia de tu filamento para compensar el factor de expansión contracción de tus filamentos.

Cover

Voladizos/Puentes - Encuentra la configuración óptima para voladizos/puentes

Cover

Soportes - Ajusta la configuración de soportes para un resultado óptimo

Cover

Linear Advance/Pressure Advance - Un ajuste más avanzado para mejorar el resultado de nuestras impresiones

Cover

Input Shaper - Aprende a ajustar esta funcionalidad que va a permitir reducir significativamente el efecto ondas/ghosting de nuestras impresiones

Cover

Extrusión volumétrica (MVS) - Nos ayudará a conocer los límites de nuestro sistema de extrusión además de permitir configurar nuestro lamindaor

Cover

Vref/Corriente motores - Ajustar correctamente la corriente de alimentación de nuestros motores

Cover

VFA/MRR - Aprende a ajustar los valores avanzados de tus drivers para eliminar algunos patrones que pueden aparecer en tus impresiones

Ejemplo sección babystepping de Mainsail
Ejemplo sección babystepping de Fluidd
Ejemplo de impresora con los valores PID ajustados incorrectamente.
Durante el proceso veremos como varía la gráfica de temperaturas y al finalizar nos muestra los valores PID calculados y la opción de guardarlos con SAVE_CONFIG
Infografía del compañero @BillieRubenMake
Claro ejemplo de como un ajuste de un parámetro, en este caso el flujo, puede afectar al resultado de nuestro cubo. Imagen de TeachingTech.
distancia de retracción
velocidad de retracción
Ejemplo de test de retracciones donde el test 4 parece el más correcto
Ajustamos la distancia de retracción al valor obtenido
Ejemplo falta de ajuste coasting/wipe
Opciones SuperSlicer
Imagen @
A partir de la quinta interacción (3500mm/sec^2) vemos que ya no se cierra correctamente, así que nuestro valor correcto sería el de nuestra cuarta interacción (3000mm/sec^2)
Imagen prorifi3d.com
Imagen prorifi3d.com
Patrón VFA/MRR 2mm espaciado por cinemática - Imagen prorifi3d.com
Correcto alineado de la correa en su recorrido - Imagen ellis3dp.com
Paso de correa doble con paso cambiado - Imagen prorifi3d.com
Breve resumen de características de filamentos más usados.
AdamL
Logo
Logo
Logo
Logo
Logo
Logo
Logo
Logo
Logo
Logo
Logo
Logo
Logo
Page cover image
Logo
Logo
Logo