Klipper es un firmware para impresoras 3D de alto rendimiento. 

¿Cómo funciona Klipper?

A diferencia de la mayoría de firmwares para impresoras 3D, Klipper no se instala en la placa de la impresora 3D, se instala en un ordenador o micro-ordenador, generalmente en una Raspberry Pi 3, 4 o superior (también puede instalarse en otros dispositivos).

En la placa controladora de la impresora 3D se instala un pequeño software que hace de intermediario entre los elementos de la impresora 3D y el ordenador. 

Klipper lee las instrucciones (Gcode) y las transforma en movimientos usando toda la potencia disponible de ambas electrónicas, planificando más movimientos de forma más precisa, suave y eficiente. 

De esta forma conseguimos explotar todo el potencial de los micro-ordenadores, muy superior a la capacidad de procesamiento de la placa controladora de cualquier impresora 3D habitual de 32 bits. Consiguiendo mejores acabados de impresión en menos tiempo.


¿Qué beneficios nos puede aportar Klipper frente a otros firmwares?

  • Movimiento de alta precisión para los motores paso a paso. Las matemáticas para calcular el movimiento son mucho más precisas aprovechando la potencia extra de la que disponemos.
  • Mejora altísima en pasos por segundo, incluso usando placas de 8 bits, ya que no procesan el Gcode una placa de 8 bits puede ofrecer 175.000 pasos por segundo. Con procesadores más potentes se puede llegar hasta por encima de 500.000 pasos por segundo.
  • Se puede usar más de una placa para una impresora, por ejemplo para usar un número mayor de motores paso a paso podemos instalar dos placas, como se hace en la Voron 2.4, también se puede instalar una placa principal y otra accesoria, haciendo posible las configuraciones más complejas que puedas imaginar. 
  • Todo se configura usando un único archivo de configuración, y para actualizar cambios sólo hay que reiniciar el dispositivo, no hay que volver a compilar.
  • "Smooth Pressure Advance", es una mejora sobre Pressure Advance, que se suaviza para mejorar el rendimiento, ideal para todas las impresoras, pero especialmente útil para impresoras Bowden donde este algoritmo mejora de forma importante el resultado. 
  • Soporta "Imput Shaping", quizás una de las funciones más llamativas de este firmware, se trata de una función que compensa las resonancias y oscilaciones de las impresoras 3D, favoreciendo que podamos imprimir a velocidades y aceleraciones mayores sin defectos visibles en las piezas.
  • Usa Python, un lenguaje de programación de alto nivel.
  • Compatible con macros programables. 
  • Incorpora un servidor API.
  • Funciona con Octoprint, que se puede instalar en la misma Raspberry donde se instala Klipper. Si ya tienes una Raspberry probablemente no necesites hardware adicional.
  • Soporta Gcode estándar.
  • Etc.

¿Es para mí este firmware?

  • Si buscas un software simple y sencillo que simplemente funcione bien, no es para ti.
  • Si lo que buscas es un software con infinitas opciones de configuración y personalización, con el que puedes sacar el máximo rendimiento a tu impresora 3D para imprimir más rápido y con mejores acabados, estás en el lugar correcto.


Instalar Klipper

Estas instrucciones están escritas en 2022 como un artículo divulgativo, es posible que las instrucciones cambien en los próximos meses y años, por lo que recomendamos visitar las instrucciones oficiales en este enlace:
https://www.klipper3d.org/Installation.html

La instalación de Klipper consta de los siguientes pasos:

  1. Preparar la imagen del SO (sistema operativo, OS en inglés) en la tarjeta SD.
    Para ello lo más sencillo es usar "Raspberry Pi Imager":
    https://www.raspberrypi.com/software/
    • Una vez descargado e instalado, introducimos la tarjeta micro SD en nuestro ordenador y configuramos el sistema operativo.


      Haciendo click nos vamos a Mainsail OS, un paquete con Klipper y Mainsail ya preinstalado. Podemos seguir esta ruta:





    • Ya que hemos seleccionado la versión más reciente de Mainsail OS, podemos seleccionar la tarjeta SD y configurar el wifi. Para ello tenemos estas opciones:


      Es importante elegir una tarjeta micro SD de calidad y rápida, ya que una tarjeta lenta puede lastrarnos el rendimiento del dispotivo.

  2. Preparar el microcontrolador, la placa de nuestra impresora 3D necesita un software específico para obedecer a la Raspberry Pi con Klipper. 
    • Lo primero es conectar la placa a la red, ya sea usando la conexión wifi o el puerto de red de la placa Raspberry.
    • Para encontrar la IP lo más sencillo es entrar en nuestro router y comprobar las IP de las unidades conectadas.
    • Una vez tenemos la IP, tenemos que comunicarnos con nuestra rasberry Pi, para ello podemos usar PuTTY, que se puede descargar desde esta URL:
      https://www.chiark.greenend.org.uk/~sgtatham/putty/

      En este ejemplo nuestra IP es 192.168.1.163
      Una vez dentro nos pedirá Login y contraseña, por defecto son estos:
      pi
      raspberry
    • Una vez dentro del terminal podemos enviar comandos a nuestra Raspberry. Podemos usar el método oficial, o ayudarnos de KIAUH, en este artículo vamos a explicar el método oficial, pero te damos el enlace a KIAUH: https://github.com/th33xitus/kiauh

      Preparar el archivo para nuestro microcontrolador:
    • cd ~/klipper/ make menuconfig
    • Y entraremos en un menú donde tenemos que seleccionar la placa que vamos a usar, así como los puertos que vamos a usar para comunicarnos, por ejemplo USB o UART.
    • make
    • Ordenamos "make" para que genere el archivo que tenemos que subir a nuestro microcontrolador y se generará en unos cuantos segundos.
    • Ya que tenemos el archivo preparado, tenemos que cargarlo en nuestra placa, esto se puede hacer usando la conexión USB con la placa Raspberry o el lector de tarjeta micro SD incluido en la mayoría de placas.  En este tutorial vamos a explicar el método de la micros SD.
    • Para descargar el archivo klipper.bin, podemos usar FileZilla:
      https://filezilla-project.org/download.php?platform=win64
      E introducir la IP tal y como hicimos con Putty, hay que rellenar:
      IP= La que tengas, en nuestro caso 192.168.1.163
      Nombre de usuario= pi
      Contraseña= raspberry
      Puerto=vacío, 21 o 22.

      Una vez dentro, nos vamos a la siguiente ruta: /home/pi/klipper/out y descargamos el archivo klipper.bin


      Ese archivo lo renombramos como firmware.bin y lo copiamos en la tarjeta micro SD, luego lo introducimos en la placa y la encedemos para permitir que se cargue esta parte del firmware.
      El nombre del archivo pasará de firmware.bin a FIRMWARE.CUR indicando que el proceso se ha hecho.

Una vez hecho todo esto, tenemos Klipper correctamente instalado, pero no funcionará, ya que tenemos que configurarlo.


Configurar Klipper

Si no lo hemos hecho antes, ahora es necesario entrar en Mainsail (o Fluidd para quien lo prefiera), para ello copiamos la IP a nuestro ordenador conectado a la misma red. En nuestro caso usamos la IP: 192.168.1.163.


Nos movemos al menú "Máquina" y editamos. copiamos o creamos el archivo printer.cfg

Aquí nos encontramos ante una de las principales ventajas, este archivo es independiente a la versión en la que nos encontremos, por lo que podamos actualizar frecuentemente nuestra versión de Klipper sin tocar la configuración, de esta forma siempre tendremos las últimas novedades, sin necesidad de preparar archivos de configuración para cada versión del programa.

Además podemos editar este archivo sin tener que compilar ni cargar nada, simplemente editando unas pocas líneas del código podemos por ejemplo cambiar el número de puntos de la nivelación, cosa que en Marlin nos implicaría necesariamente volver a compilar el programa.

Podemos encontrar las referencias de configuración de Klipper en este enlace:

https://www.klipper3d.org/Config_Reference.html


Macros en Klipper

Esta es una de las funciones más deseadas por usuarios avanzados, aunque también más complejas para neófitos en la materia. 

Ventajas:

  • Infinita versatilidad, nos permite crear órdenes estándar, que después podemos editar: 
    • Por ejemplo, podemos crear un macro para el inicio de la impresión, para que lea el archivo con las temperaturas que queremos, de forma que un mismo Gcode se pueda imprimir con diferentes temperaturas según el material y marca que estamos usando, sin necesidad de generar otro Gcode distinto, ni editarlo.
    • Podemos definir ordenes complejas para sistemas de varios cabezales, en los que en cada cambio de capa, haga órdenes de limpieza o purga de cabezal, en el Gcode solo estará la instrucción del macro, mientras que en archivo macro estarán las instrucciones detalladas. 

Inconvenientes:

  • Marlin tiene algunas funciones guiadas, como el cambio de filamento con M600, que son de gran comodidad, en Klipper no están por defecto, por lo que tenemos que descargar estos macros a parte y configurarlos, aunque funcionan bien, no son tan "amigables" como en el caso de Marlin.

Puedes descargar estos macros para Klipper, una colección muy útil:

https://github.com/Desuuuu/klipper-macros

El autor nos recomienda crear una subcarpeta llamada "macros", y luego añadir esta simple línea a nuestro archivo printer.cfg:

[include macros/*.cfg]

De esta forma nuestro archivo printer.cfg queda "limpio" de macros, y cada macro queda localizado en un archivo independiente dentro de esta carpeta, donde puedes fácilmente editar, añadir, borrar y compartir cada macro individualmente.

Una vez tenemos los macros instalados podemos usarlos de dos formas:

  • Desde Gcode, como por ejemplo el comando M600, que funcionará de forma similar a como funciona en Marlin.
  • Desde el panel de macros, donde además podemos editar algunos argumentos haciendo click en el desplegable situado a la derecha de cada macro, en el caso de macros configurables.



Usar Klipper

Una vez instalado y configurado Klipper es muy intuitivo de usar, ya que su interfaz web es muy amigable, Este punto casi que nos lo podríamos saltar, pero vamos a mostrar la interfaz para quien no la haya visto aún:

  1. Estado de la impresión, donde podemos pausar y cancelar la impresión.
  2. Ajuste del Z-offset, similar al "babystepping" de Marlin.
  3. Atajo a los macros instalados.
  4. Ventiladores y accesorios.
  5. Gráfico de temperatura.
  6. Ajustes de factor de velocidad y factor de extrusión. 
  7. Configuración de la impresora fácilmente editable y muy presente.
  8. Consola, donde podemos introducir cualquier instrucción.

Además del panel principal, nos encontramos con:


  1. Consola, donde podemos introducir códigos directamente para Klipper.
  2. Mapa del altura, donde podemos ver la forma que tiene nuestra cama.
  3. Archivos Gcode.
  4. Visor de Gcode, muy bueno, que se muestra como ejemplo en esta imagen, podemos ver de forma remota la línea por la que va la impresión, además de analizar Gcodes ya generados.
  5. Historial, con estadísticas.
  6. Máquina, aquí podemos actualizar la versión y editar los archivos de configuración.
  7. Parada de emergencia.
  8. Menú de configuración, aquí podemos hacer algunos ajustes como por ejemplo actualizar los colores de la interfaz.
  9. Botón de apagado y reinicio. Aconsejamos apagar desde aquí antes de desconectar nuestra impresora de la red, ya que las Raspberry son micro ordenadores.