CALIBRACIÓN

  • Introducción.
  • Calibración PID (Hot End).
  • Calibración Extrusor.
  • Calibración desfases ejes X, Y.
  • Calibración desfase eje Z con sensor inductivo/capacitivo.

Introducción

Cuando te encuentras que tus piezas impresas no tienen el resultado deseado, o simplemente nunca haz calibrado una impresora 3D, este tutorial es para ti. Este proceso es importante ya que todas las impresoras 3d tienen elementos diferentes, que incluso entre marcas pueden tener pequeñas diferencias, mecánicas o de materiales, que hacen que el comportamiento sea diferente para cada una.

Una impresora bien calibrada te puede dar resultados realmente sorprendentes. Es importante mencionar que para este artículo  trabajaremos con el firmware Marlin version 1.1.9, que dependiendo de la placa base de tu impresora se puede programar con Arduino u otro IDE. Dicho esto, preparate para una sesión que te hara comprender aun más el funcionamiento de estas máquinas .

Calibración PID (Hot End)

El controlador PID  (proporcional, integral y derivativo),es un mecanismo de control simultáneo por realimentación que es  ampliamente usado en sistemas de control. Este calcula la desviación o error entre un valor medido y un valor deseado y corrige este error para que sea cero.

Marlin incluye un controlador PID en el hot End y cama caliente, en este caso el objetivo es que la temperatura que se mide con el sensor termistor (valor medido) sea lo más próxima a la temperatura objetivo  (valor deseado), es decir que este error sea cero. Para esto apaga o enciende la resistencia del extrusor o la cama caliente.

Para que este proceso sea optimo  ajustar 3 parámetros de este algoritmo: el P, el I y el D. (del Proporcional, Integral y Derivativo).

Si el PID no esta ajustado correctamente puede dar resultados desastrosos como por ejemplo sobrecalentamiento o separaciones de capas.

Un escenario de un PID mal ajustado puede ser por ejemplo: Si quiero imprimir PLA a una temperatura de 200°C (valor deseado), el algoritmo de control hace que el hot-end comience a calentarse, comienza a subir la temperatura rapidamente para llegar al valor objetivo, en poco tiempo llega a 210 °C porque tiene el factor proporcional P muy agresivo. Como las condiciones de impresión son favorables, la impresora comienza a imprimir, y el hot end se apaga para enfriarse para llegar a la temperatura deseada de 200°C , despues de unas capas de impresión la temperatura se encuentra, digamos en  en 198°C y el algoritmo de control hace que nuevamente el hot-end se caliente, pero nuevamente  hace que su temperatura se pase de la temperatura objetivo a 210°C , y asi cada cierto tiempo. Estas ocilaciones de temperatura variable, hace que en las diferentes capas de la pieza  se esten extrudiendo a diferentes temperaturas, derivando en los erros que se comentaron.
Para obtener los valores P,I y D correctos, Marlin incluye una función de autisintonización , que obedece a comados g. Los pasos a seguir son los siguientes:

  1. Conectar la impresora 3d por cable serial a una computadora, y usar un terminal serial, nuestro favorito Printrun de pronterface, que puede ser descargado aquí , este programa es portable, y no necesita instalación.
  2. Abrimos Pronterface y nos conectamos a nuestra impresora , seleccionado el puerto de comunicacion y la velocidad de la misma, en el caso de nuestras impresoras Scalar S , 115200 bauds, y le damos clic en conectar.
  3. Al conectarnos a la impresora, se habilita el resto del panel, y en el lado derecho se nuestra mensajes que responde la impresora, esta área es la consola.
  4. En este punto, es necesario que la temperatura de hot- end este a temperatura ambiente. Si tienes un ventilador de capa porfavor sigue al paso 5, caso contrario sigue al paso 6
  5. En la consola se ingresa el comando M106, y damos clic en enviar. Esto prendera el ventilador de capa a toda velocidad, asegurate de que suceda esto.
  6. En la consola se ingresa el comando M303 E0 S200 C8, donde:
    • M303, es el comando para ejecutar el PID autotune.
    • E0, se refiere al hot end, si tuvieramos dos , derberiamos repetir este proceso para cada uno, pero el siguiente seria E1.
    • S200, se refiere a la temperatura objetivo para las muestras, en este caso 200°C.
    • C8, cantidad de pruebas que va a hacer para encontrar los parametros, P, I , D, en este caso 8.
  7. A continuación se calentará la primera boquilla (E0) y circulará alrededor de la temperatura objetivo 8 veces (C8) a la temperatura dada (S200) y devolverá valores para PI y D. (esto podria demorar un tiempo). Este proceso se puede observar en el gráfico de temperatura  y también en la consola, donde cada vez que haga la prueba devuelve los valores PID.
  8. Al final de la prueba, en consola se nos presentara los valores e inclusive nos indica donde debemos cambiar estos archivos en el firmware.
  9. Si tienes habilitado la EEPROM en la tarjeta de la impresora, sigue al paso 12. En  el caso de nuestras impresoras Scalar S, esta característica esta habilitada por defecto, asi que si ese es tu caso, continua al paso 10.
  10. Abrimos los archivos de Marlin, en este caso lo hacemos en Arduino. y nos dirigimos al archivo configuration.h, buscamos en la seccion PID Settings, y cambiamos los valores DEFAULT_Kp, DEFAULT_Ki, DEFAULT_Kd, con los nuevos valores obtenidos.
  11. Procedemos a cargamos el nuevo firmware en la tarjeta, en el caso de nuestra impresora Scalar S,  es una Ramps 1.4 con arduino Mega 2650, por lo tanto seleccionamos la placa "Arduino/Genuino Mega or Mega 2650", y el puerto de comunicación COM asignado, (previamente asegurarnos de desconectarnos de Pronterface) y subimos el nuevo firmware.
  12. Si tenemos habilitada la EEPROM en la placa de la impresora. Ingresar el siguiente comando en la consola con los valores obtenidos, en el caso de este ejemplo seria:  M301 P19.92 I134.26 D73.83 , deben ustedes cambiar los valores P, I y D por los obtenidos en sus respectivas pruebas, y despues ingresar el comando M500 para grabar los valores en la EEPROM.

Si quieres saber más, puedes encontrar información  en la documentación oficial de Marlin, en el siguiente enlace.

Calibración Extrusor

Configurar exactamente la cantidad de material que el motor del extrusor empuja hacia el Hot-End, te permite corregir una sobre-extrusión o falta de extrusión de filamento. Este procedimiento se puede realizar con un computador o con la LCD si se esta utilizando la LCD integrada a la impresora, y los cambios pueden ser guardados si se tiene la EEPROM habilitada, en este caso lo realizaremos a través de un terminal conectando la impresora a una computadora.

Los pasos a seguir son los siguientes

  1. Conectamos la impresora a una computadora mediante Pronterface, en el caso de nuestras impresoras Scalar S  a una velocidad de 115200 bauds. A continuación procedemos a calentamos el Hot-End a 200°C  (PLA).
  2. Si tenemos un sistema de extrusión bowden, como es el caso de nuestras impresoras, pasamos el filamento a través del motor extrusor y el tubo PTFE, sin introducir este en el Hot-End.
  3. Cortamos el excedente de material, que quede al ras del extremo del tubo PTFE.
  4. En Pronterface extruimos material a una longitud de 10 mm.
  5. Cuando termine de salir el material, cortamos de igual manera al ras del extremo del tubo PTFE el material excedente.
  6. Medimos este pedazo de material. ¿Debería ser 10 mm no crees?. La medición la puedes hacer con una regla o con un calibrador.
  7. En el caso de este ejemplo, el valor es de 11 mm. Aquí revisamos las configuraciones del firmware actual en configuration.h, en la sección "Movement Settings" , y nos colocamos en #define DEFAULT_AXIS_STEPS_PER_UNIT, aquí es donde se configura los pasos por milímetro para cada motor, en nuestro caso tenemos un valor de 115.
  8. Se debe cambiar este valor, para esto hacemos una simple regla de tres, en este ejemplo: "Si con 115 tuve 11mm, cual es el valor para 10mm", seria: (10mm*115)/11mm = 104.54. Cambiamos este valor, y procedemos a subir el nuevo firmware a nuestra placa RAMPS 1.4+ Arduino Mega.
  9. Podemos repetir este procedimiento algunas veces, con varias muestras de filamento. La idea es tener el valor correcto de pasos por milímetro que debe moverse el motor extrusor para que empuje la cantidad correcta de material.

Calibración desfases ejes X, Y

La impresora 3d  necesita un punto de referencia para saber dónde empezar. Dentro de las configuraciones del firmware, debemos ajustar las dimensiones de nuestra impresora, para esto es importante saber cual es la distancia que existe en los ejes X y Y desde que estos activan los finales de carrera mínimos. Para saber esto:

  1. Conectamos la impresora 3d al computador por Pronterface,  movemos el eje X  y Y hasta su punto mínimo. Este es el botón que se muestra con un icono de casa seguido del Eje
  2. El eje X y Y  se moverá hasta que llegue a sus respectivos finales de carrera . Aquí se debe medir la distancia que existe desde la boquilla en la posición de origen, hasta el inicio del área de impresión, tanto en el eje x como y.
  3. Si la boquilla esta fuera del área de impresión, los valores de desfase son negativos. Estos valores se deben colocar en el firmware, en la seccion machine , en las deficiones: X_MIN_POS y Y_MIN_POS respectivamente. Colocamos los valores medidos, y subimos el firmware con los cambios realizados.

Calibración desfase eje Z con sensor inductivo/capacitivo.

Un sensor inductivo/capacitivo, colocado en el eje Z BIEN CALIBRADO,  nos permite ahorrarnos muchos dolores de cabeza al momento de imprimir, especialmente en la primera capa de impresión, que es un factor crucial para que tu experiencia al momento de imprimir sea gratificante.

En el caso de nuestras impresoras, disponemos de un sensor inductivo, que se encuentra colocado alado del hot end, los pasos a seguir son los siguientes:

  1. Conectamos la impresora 3d por cable serial a una computadora, y abrimos Pronterface para comunicarnos con la misma.
  2. Llevamos al origen todos los ejes de la impresora, podemos hacer esto dando clic en el boton de Home en pronterface.
  3. En el terminal escribimos el comando: M114, este comando nos permite saber la posición actual de la impresora, en X,Y y Z.
  4. Como por ejemplo:  en la imagen se puede observar que la posicion X es 136 mm , Y en 103mm , y Z 1.85mm. con respecto a Z = 1.85 quiere decir que la boquilla de impresión esta a una distancia de 1.85mm de la plataforma, desde que detecta el sensor inductivo. A continuacion ingresamos el comando G92 Z10, este comando g  establece la posición en el eje Z a 10 mm, de esta manera vamos a engañar por un momento a la impresora.
  5. En este punto es necesario enviar le comando M211 S0 que deshabilita la seguridad en software de los finales de carrera, lo que nos va a permitir seguir bajando a pesar de que el sensor inductivo este detectando la superficie de impresión.
  6. Colocamos una hoja de papel sobre la cama de impresión, y con mucho cuidado comenzamos a bajar la boquilla del eje z en pequeños pasos de 0.1 mm. En Pronterface, es el botón que se muestra en la imagen.
  7. Bajamos hasta que la boquilla de la impresora tope la hoja de papel, y al momento de tratar de sacar la hoja de papel esta se sienta que tiene un poco de resistencia, contra la boquilla y superficie.
  8. Colocamos nuevamente el comando M114, para saber la posición actual de la impresora, en este ejemplo Z esta en 8.4 mm.
  9. Restamos 10 de la nueva posición, en este caso: 10-8.4= 1.6, esto quiere decir que Z esta a una distancia de 1.6 mm de la superficie de impresión.
  10. Si tienes habilitado la EEPROM en la tarjeta de la impresora, sigue al paso 12, caso contrario continua al paso 11. En  el caso de nuestras impresoras Scalar S, esta característica esta habilitada por defecto.
  11. MODIFICANDO EL FIRMWARE: En el firmware, en la seccion Z Probe Options , buscamos la deficion Z_PROBE_OFFSET_FROM_EXTRUDER , y colocamos el valor obtenido, en este ejemplo 1.6 con signo negativo. Guardamos y subimos el firmware actualizado.
  12. CAMBIO EN LA MEMORIA EEPROM: Con el nuevo valor de desface , procedemos a enviar el siguiente comando : M851 Znuevo_valor , en el caso de este ejercicio, el nuevo valor sería:  M851 Z-1.6.

    A continuación guardamos el nuevo valor con el comando : M500
    Y finalmente, verificamos el nuevo valor con el comando : M503

Ahora podemos hacer una impresión de prueba, es importante verificar que el sensor este bien ajustado, la primera capa debe quedar como se muestra a continuación, podemos hacer el ajuste en cambios de 0.05, si el desface en z se hace mas negativo, el hot end bajará más,  si se hace mas positivo el nozle subirá más con respecto a la cama.

Si esta muy cerca la boquilla de la superficie de impresión, puedes estropear la superficie, y el material se tapara, dado que  no tiene espacio donde salir. Puedes ajustar el valor de  Z_PROBE_OFFSET_FROM_EXTRUDER, hasta que tengas la primera capa perfecta, si haces este valor más negativo, la boquilla bajará más, si lo haces más positivo, la boquilla subirá más.