Klipper
Última actualización
Última actualización
Klipper es un firmware open-source creado por Kevin O´Connor en 2016 para nuestras impresoras 3D que usa la potencia de un host, normalmente una Raspberry Pi, para el control de la electrónica de tu impresora.
Mediante Klipper podemos hacer funcionar de una forma más veloz y con más precisión dependiendo del sistema y hardware que tengamos.
Algo que sí que nos va a permitir Klipper en cualquier caso es el poder tener un control a más bajo nivel de nuestra máquina, que también requerirá de un extra de conocimientos/esfuerzos, mayor velocidad a la hora de aplicar cualquier cambio, además de un control remoto de la máquina de primera clase.
En un ecosistema Klipper disponemos de diferentes componentes tal como se puede ver en el siguiente esquema:
Host Klipper (Klippy), es el dispositivo (SBC como una Raspberry o similar, un ordenador, en general casi cualquier sistema que pueda correr Linux) que se encarga de ejecutar Klipper y sus componentes que se encargan de realizar las siguientes tareas:
Procesar los ficheros de configuración (.cfg) con nuestra configuración de máquina/electrónica/sistema
Realiza toda la gestión del sistema
Lee y procesa los gcodes durante la impresión
MCU Klipper, es una electrónica la cual conectaremos a nuestro host para que sea controlada y gestionada (y a través de esta sus sensores y componentes) desde este:
Se ha de aplicar un firmware Klipper compilándolo con la versión Klipper de nuestro host y con las configuraciones adecuadas para las características de dicha MCU
Se conecta normalmente al host Klipper mediante una conexión serial la cual especificaremos en el printer.cfg
Mediante esa conexión serial recibe comandos/órdenes del host Klipper para realizar acciones de movimiento, extrusión, facilitar datos y estados de sensores, etc...
Se encarga de gestionar el control del hardware de nuestra impresora
MCU Host Klipper, al igual que el anterior, nos permite en este caso utilizar el host Klipper como una MCU más del sistema para poder gestionar/usar sus características:
Se ha de instalar un firmware Klipper "virtual" en el
Normalmente, se conecta al host Klipper utilizando /tmp/klipper_host_mcu
Nos permite controlar el hardware de nuestro host, como por ejemplo acelerómetros, ventiladores, etc...
Moonraker, es un componente del host Klipper que mediante una API hace de puente entre otros componentes y Klipper:
Normalmente conecta al host Klipper mediante /tmp/klippy_uds
o ~/<datapath>/comms/moonraker.sock
o mediante el parámetro -a
usado al montar el entorno env de este
Se pueden especificar otros paths o configuraciones en su fichero de configuración moonraker.cfg
Sirve de puente como comentamos anteriormente entre otros componentes Klipper como interfaces web (Mainsail, Fluidd, etc...) y el host Klipper
Interfaces Klipper, permiten un uso más sencillo e intuitivo para manejar nuestro host Klipper como por ejemplo Mainsail, Fluidd, KlipperScreen, etc
Se conectan a Moonraker mediante el puerto http
Permiten monitorizar el estado y enviar comandos a Klipper
Aparte del contenido de estas guías disponemos de un grupo de Telegram que puede serte de ayuda para resolver dudas o problemas, en cualquier caso te aconsejamos leer detenidamente las guías detenidamente antes:
Aparte de su arquitectura y diseño y dado que Marlin es el firmware para impresoras 3D más extendido, vamos a realizar una comparativa entre ambos:
Klipper | Marlin | |
---|---|---|
Arquitectura | Klipper añade un nuevo componente a la arquitectura estándar y corre sobre un host, normalmente una Raspberry Pi u similar, y usa un firmware también en C++ que se aplica a la electrónica, que pasará a ser un mero gestor de sensores y motores, siendo Klipper el que realizará todo el procesado de datos. Klipper empieza a contar soporte con muchas electrónicas y dispositivos, aumentando cada día, aunque en este aspecto, y por poco, queda un poco detrás de la compatibilidad de Marlin. En cuanto al host donde corre Klipper y sus componentes en términos generales podemos instalarlo en cualquier máquina que soporte Python bajo Linux, esto va a requerir que sea necesario unos mínimos conocimientos de este sistema operativo. En cualquier caso, normalmente se aconseja la instalación en SBCs (Single Board Computers... como Raspberry Pi o similares) a ser posible elegir una plataforma que tenga soporte por parte de Klipper. Por último, en el caso de elegir un SBC como Raspberry Pi y aunque puede correr en cualquiera de los modelos para un uso fluido, se aconseja que al menos sea una Raspberry Pi3 o superior. | Marlin usa una arquitectura tradicional basado en un código compilado en C++ compatible con gran cantidad de controladoras. Una vez compilado se "quema" en la MCU de la electrónica que es la que realiza todos los cálculos y gestiones de la máquina. Su rendimiento y funciones estarán limitadas por la potencia de cálculo y memoria de su MCU. |
Configuración | Una de las grandes bondades de Klipper ya que su configuración se realiza en base a ficheros de texto y se aplican de forma sencilla con un simple reinicio de servicios no siendo necesario, normalmente, actualizar el firmware de la electrónica para cambios en configuración (si cuando se realizan ciertas mejoras en el core de Klipper). La actualización de los servicios que usa Klipper son muy fáciles ya que tenemos herramientas en la UI de gestión o terceros como Kiauh que hacen que la actualización sean unos pocos clicks. | Marlin, al ser un firmware compilado, al realizar ciertos cambios sobre todo activando/desactivando o ajustando ciertas funciones requiere un proceso más tedioso de compilar y quemar el firmware en la electrónica. Este proceso se ha simplificado bastante gracias al uso de herramientas como Visual Studio Code y Platformio, así como mejoras en los bootloaders en las electrónicas que simplemente con copiar en la SD el nuevo firmware este se aplica de forma sencilla. Por otro lado Marlin mejora versión tras versión el permitir configurar ciertas funcionalidades usando comandos gcode. |
Instalación | Klipper en este aspecto necesita un poco más de trabajo al correr en un host y necesitar instalar y configurar correctamente todos sus componentes (Klipper, Moonraker (API) y una UI normalmente). En cualquier caso este proceso se ha simplificado enormemente con la aparición de distribuciones, normalmente pensadas en Raspberry Pi como host, como MainsailOS,RatOS, FluidOS. Por otro lado herramientas como Kiauh también simplifica enormemente este proceso. | Instalar Marlin es un proceso relativamente sencillo dado que básicamente es compilar nuestro firmware y aplicarlo en nuestra electrónica, normalmente copiando el firmware en la propia SD de la electrónica. |
Mejoras | Klipper es un sistema modular lo que nos permite disponer de diferentes UI por ejemplo que integran en ellas diferentes mejoras en la gestión de nuestras impresoras como asistentes mejorados, soporte webcams/time-lapse, Octoprint, etc... La versatilidad que aporta Moonraker como API para interactuar con Klipper da unas posibilidades casi infinitas de gestión. | Marlin permite su gestión desde un host también siendo el más usado Octoprint que permite extender el uso de nuestra impresora enormemente y siempre lo aconsejamos usar. Gestión remota, webcam/time-lapse, asistentes ajuste, cancelación de objetos, etc... con algunos ejemplos |
Funciones |
|
|
No hay una respuesta 100% adecuada.
El uso de un sistema u otro depende de la persona, basándonos en tus conocimientos, paciencia, ganas de aprender... y de la máquina 3D que usemos o queramos montar.
Marlin con el empleo de las nuevas electrónicas, su compatibilidad y ser relativamente sencillo de compilar/instalar, si además lo combinamos con Octoprint crea un entorno sencillo de gestionar y mantener. Que normalmente no es necesario ciertos conocimientos avanzados (que Marlin tiene muchas opciones que normalmente no se utilizan por no investigar un poco) además de contar con muchísima documentación y base de usuarios.
Klipper quizás sea un poco más complejo de instalar y configurar inicialmente, requiera de ciertos conocimientos extra, más componentes en algunos casos al requerir de un host, además de nuestra electrónica que además ha de ser compatible. Por contra y sobre todo en máquinas con electrónicas antiguas o menos potente podemos obtener una gran mejora en velocidad y calidad. Además, la modularidad y versatilidad de Klipper nos permiten montar ciertas modificaciones para nuestras máquinas que en sistemas como Marlin dependemos que alguien las implemente.