Múltiples instancias Klipper
Una de las ventajas de la arquitectura de Klipper es que el host puede controlar varias impresoras al mismo tiempo. Cada impresora necesita su propia instancia de Klipper y Moonraker, pero todas comparten el mismo SBC, la misma red y pueden gestionarse desde una sola interfaz web.
Esta guía cubre el proceso completo: instalación, gestión de serial USB, configuración de interfaces, herramientas gratuitas para gestionar una pequeña granja y las preguntas más frecuentes. Está pensada para usuarios domésticos y makers con 2-6 impresoras, no para producción a gran escala.
Última revisión: octubre 2026.
Requisitos previos
KIAUH instalado y funcionando en tu host. Si aún no lo tienes, sigue la guía de instalación.
Punto de partida limpio: instalación recién hecha, o instalación existente completamente actualizada con todas las instancias funcionando.
Python 3.8 o superior (KIAUH v6+ lo requiere y lo verifica automáticamente).
Nomenclatura — nombres de instancia
Cuando KIAUH instala varias instancias, te permite elegir entre dos modos:
Nombres por defecto (numérico): las instancias se llaman
printer,printer_2,printer_3... Los directorios de datos serán~/printer_data/,~/printer_2_data/...Nombres personalizados: puedes poner nombres descriptivos como
voron,ender3,artillery. Los directorios serán~/voron_data/,~/ender3_data/...
Recomendación: usa nombres personalizados siempre que puedas. Hace que todo sea mucho más fácil de identificar: servicios, logs, configuraciones y URLs tienen el nombre de la impresora.
Estructura de directorios
Tras instalar múltiples instancias con KIAUH, cada instancia tiene su propio directorio de datos con esta estructura:
Cada instancia es completamente independiente en cuanto a datos, configuraciones y logs.
Puertos asignados por instancia
KIAUH asigna los puertos automáticamente según el orden de instalación:
1ª instancia
7125
80
2ª instancia
7126
81
3ª instancia
7127
82
4ª instancia
7128
83
Para acceder a la segunda impresora desde el navegador: http://IP_DEL_HOST:81
Servicios systemd
Cada instancia crea sus propios servicios de sistema. Con nombres personalizados:
Con nombres por defecto:
Comandos útiles para gestionar instancias individualmente
Instalación paso a paso con KIAUH
Paso 1 — Instalar varias instancias de Klipper
Lanza KIAUH desde SSH:
Selecciona #1 Install

Selecciona #1 Klipper
Indica el número de instancias que quieres instalar
KIAUH te preguntará si quieres personalizar los nombres — di que sí y pon nombres descriptivos
Klipper se descarga e instala para cada instancia. Al terminar vuelves al menú principal.
Paso 2 — Instalar varias instancias de Moonraker
Selecciona de nuevo #1 Install
Selecciona #2 Moonraker
KIAUH te preguntará el número de instancias. Debe coincidir con el de Klipper (el menú ya te muestra las instancias existentes como referencia).

Al terminar, KIAUH muestra las IPs y puertos asignados a cada instancia de Moonraker:

Anota estos datos — los necesitarás para configurar las interfaces web.
Paso 3 — Instalar la interfaz web
Tienes dos opciones:
Opción A — Una interfaz compartida (recomendada)
Instala Mainsail o Fluidd una sola vez. Desde esa interfaz puedes gestionar todas las impresoras añadiéndolas como impresoras adicionales (ver sección de gestión más abajo). Es la opción más limpia y consume menos recursos.
Opción B — Una interfaz por instancia
Instala Mainsail o Fluidd tantas veces como instancias, cada una en su propio puerto. Útil si diferentes personas deben controlar impresoras distintas de forma independiente.
Para instalar una segunda interfaz: selecciona #1 Install → #3 Mainsail (o Fluidd) y repite el proceso.
El problema del serial USB con electrónicas idénticas
Esta es la pregunta más frecuente cuando se configuran múltiples instancias: si tengo dos impresoras con la misma placa (por ejemplo, dos Ender 3 con placa Creality original), ¿cómo las diferencio?
El problema está en el chip USB. Muchas placas económicas usan chips CH340 que no tienen un número de serie único grabado. Cuando Klipper busca la MCU por by-id, ambas placas tienen el mismo identificador y no sabe a cuál conectarse.
Tienes tres soluciones:
Solución 1 — Serial by-path (más sencilla)
En lugar de usar el ID del dispositivo, usas el puerto USB físico del host. El sistema operativo asigna un path diferente a cada puerto, independientemente del dispositivo conectado.
Ejemplo de resultado:
En el printer.cfg de cada impresora:
Solución 2 — ID USB personalizado en el firmware (más robusta)
Cuando compilas el firmware Klipper para tu MCU, puedes establecer un número de serie USB único para cada placa. Así aunque ambas tengan el mismo chip CH340, Klipper las distingue por el ID personalizado.
En el proceso de compilación del firmware (make menuconfig), busca la sección USB ids y establece un valor único por impresora:


Tras flashear cada MCU con su firmware personalizado, ls /dev/serial/by-id/* mostrará identificadores diferentes y podrás usar by-id con normalidad.
Gestión desde las interfaces web
Mainsail — gestionar múltiples impresoras
Mainsail puede gestionar todas las instancias desde una sola ventana del navegador. Añade cada impresora así:
Ve a Configuración (icono de engranajes) → Printers

Pulsa ADD PRINTER e introduce la IP y puerto de Moonraker de cada instancia:

Impresora 1
IP_HOST
7125
Impresora 2
IP_HOST
7126
Impresora 3
IP_HOST
7127
Una vez añadidas, puedes cambiar entre impresoras desde la barra superior de Mainsail sin cambiar de URL. También puedes acceder a cada una directamente desde http://IP_HOST:80, http://IP_HOST:81, etc.
Fluidd — gestionar múltiples impresoras
Fluidd funciona de forma similar a Mainsail. Ve a Configuración → Impresoras y añade cada instancia con su IP y puerto de Moonraker.
También puedes acceder a cada instancia directamente por su puerto Nginx (http://IP_HOST:80, :81, :82...).
KlipperScreen — múltiples impresoras en pantalla táctil
KlipperScreen puede mostrar y gestionar varias impresoras desde una única pantalla. Edita el fichero KlipperScreen.conf y añade una sección [printer ...] por cada impresora:

Si las impresoras están en hosts diferentes, pon la IP correspondiente en moonraker_host.
En KlipperScreen aparecerá un selector en la pantalla de inicio para elegir con qué impresora operar.
Configuración de printer.cfg y moonraker.conf
printer.cfg
Cada instancia tiene su propio printer.cfg en ~/NOMBRE_data/config/printer.cfg. No hay nada especial respecto a una instalación única — simplemente configura cada uno para su impresora.
moonraker.conf
El fichero moonraker.conf de cada instancia es generado automáticamente por KIAUH con el puerto correcto. Raramente necesitas editarlo, pero es útil entender los parámetros clave:
Update Manager en Moonraker
Para que Mainsail/Fluidd muestre las actualizaciones disponibles de cada instancia correctamente, el moonraker.conf de cada instancia debe tener su propia sección [update_manager]:
Añadir una instancia adicional a una instalación existente
Si ya tienes una instancia funcionando y quieres añadir una segunda sin reinstalar todo:
Lanza KIAUH y selecciona #1 Install → #1 Klipper
KIAUH detecta que ya tienes instancias instaladas y te ofrece añadir una nueva sin tocar las existentes
Indica el número total de instancias que quieres tener (existentes + nuevas)
Repite el proceso para Moonraker
Cámaras con Crowsnest
Crowsnest gestiona las cámaras USB y las expone como streams MJPEG o HLS accesibles desde Mainsail/Fluidd.
Recomendación para múltiples impresoras: usa una sola instancia de Crowsnest gestionando todas las cámaras. Es más sencillo de mantener y Crowsnest puede manejar varias cámaras sin problema.
En tu crowsnest.conf (en ~/printer_data/config/crowsnest.conf de la primera instancia):
En el moonraker.conf de cada instancia, referencia el stream correcto:
Si necesitas instancias separadas de Crowsnest
Si prefieres instancias independientes (por ejemplo, para que el fallo de una no afecte a las demás), el proceso es manual ya que Crowsnest no tiene soporte nativo multi-instancia en su instalador:
El asistente te preguntará el directorio de datos para esta instancia. Repite tantas veces como necesites, luego:
Reinicia el host al terminar y añade la entrada de Update Manager en el moonraker.conf correspondiente.
Dimensionamiento del host
Una guía orientativa para no quedarse corto:
2 impresoras
Raspberry Pi 3B+, 1 GB RAM
Raspberry Pi 4, 2 GB RAM
3-4 impresoras
Raspberry Pi 4, 2 GB RAM
Raspberry Pi 4, 4 GB RAM
5+ impresoras
Raspberry Pi 4/5, 4 GB RAM
Raspberry Pi 5, 8 GB RAM
Estos valores asumen impresoras en operación normal. Si añades cámaras con timelapse, Input Shaper en curso o compilación de firmware simultánea, multiplica los requisitos.
Puedes monitorizar la carga del sistema con:
Gestionar una pequeña granja: soluciones open source gratuitas
Con 2-6 impresoras, Mainsail o Fluidd ya te permiten cambiar de una a otra. Lo que suele faltar es una vista conjunta (ver todas de un vistazo), una cola de impresión o avisos cuando algo falla. Estas son las opciones gratuitas y de código abierto que merece la pena conocer, de menos a más complejidad.
Opción 0 — Lo que ya tienes: la cola de trabajos de Moonraker
Antes de instalar nada, comprueba si te basta con lo que ya hay. Moonraker incluye una cola de trabajos (job_queue) que Mainsail y Fluidd muestran en su interfaz. Sirve para dejar varios archivos G-code en fila en una impresora y que se impriman uno tras otro. No reparte trabajos entre impresoras: como cada instancia de Moonraker es un proceso independiente con su propia configuración, cada impresora tiene su propia cola.
Paso 1 — Activar la cola en moonraker.conf
Edita el moonraker.conf de la instancia (por ejemplo ~/voron_data/config/moonraker.conf) y añade:
Guarda y reinicia Moonraker de esa instancia (sudo systemctl restart moonraker-voron.service). Cuando la sección existe, Mainsail y Fluidd muestran el panel de la cola.
load_on_startup
Carga el siguiente trabajo pendiente cuando Klipper pasa a estado Ready.
False
automatic_transition
Al terminar un trabajo, pasa solo al siguiente. Con False, la cola se pausa entre trabajos y tienes que reanudarla tú.
False
job_transition_delay
Segundos de espera tras acabar un trabajo antes de cargar el siguiente.
sin retraso
job_transition_gcode
G-code que se ejecuta entre trabajos (tras el retraso, si lo hay).
ninguno
Paso 2 — Añadir archivos a la cola
En Mainsail y en Fluidd puedes añadir G-code de tres maneras:
Clic derecho sobre un archivo del gestor de archivos y Añadir a la cola (Add to queue).
Arrastrar archivos directamente sobre la tarjeta de la cola.
Seleccionar varios archivos y usar la acción masiva de añadir a la cola.
Puedes añadir el mismo archivo varias veces para imprimir varias copias. En la tarjeta de la cola puedes reordenar los trabajos arrastrándolos (el de arriba es el siguiente) y eliminar uno o todos.
Paso 3 — Qué pasa mientras imprime
La cola pasa por estos estados:
ready
La cola está activa y cargará el siguiente trabajo al terminar el actual.
loading
Está cargando el siguiente archivo; espera el retraso y el G-code de transición, si los hay.
starting
Pide a Klipper que empiece la impresión.
paused
No cargará más trabajos hasta que la reanudes. Entra en este estado si la pausas, si automatic_transition es False o si hay un error al cargar o iniciar un trabajo.
Cuándo se queda corta
La cola es por impresora: no sabe que tienes otra libre. Si quieres repartir trabajos entre varias, mira FDM Monster (opción 1).
No expulsa piezas. Para encadenar impresiones sin supervisión necesitas un sistema de expulsión o intervenir tú entre trabajos.
Si una impresión falla o se cancela, revisa el estado de la cola antes de reanudarla.
Opción 1 — FDM Monster (panel de control de la granja)
FDM Monster es un servidor web que reúne todas tus impresoras en una sola cuadrícula. Es gratuito y de código abierto (licencia AGPL-3.0) y habla con Klipper a través de Moonraker, además de con OctoPrint, Bambu Lab (modo LAN) y Prusa-Link.
Qué aporta a una granja pequeña:
Cuadrícula personalizable con el estado de cada impresora.
Impresión por lotes: enviar el mismo archivo a varias impresoras.
Gestión de archivos G-code con miniaturas.
Modo mantenimiento por impresora.
Exportación e importación de la configuración en YAML (útil para backups).
Instalación con Docker (puerto 4000):
También existe un instalador para Linux, una imagen para Raspberry Pi (MonsterPi) y una app para Unraid. Después entra en http://IP_DEL_SERVIDOR:4000 y añade cada impresora indicando la IP del host y el puerto de Moonraker de su instancia (7125, 7126, 7127...), igual que en Mainsail.
Opción 2 — Obico self-hosted (vigilancia con IA y acceso remoto)
Obico se centra en vigilar: detecta fallos de impresión con visión artificial a partir de la cámara y puede pausar o avisarte. El servidor es de código abierto (AGPL-3.0) y puedes alojarlo tú mismo, sin depender de la nube.
Se despliega solo con Docker y Docker Compose. Cuenta con 15-30 minutos para la primera puesta en marcha.
No necesita hardware potente (vale un PC antiguo), aunque una GPU Nvidia mejora la detección.
En cada host con Klipper instalas el agente
moonraker-obico, que se enlaza con tu servidor. Con varias instancias hay que repetir el proceso por cada una, indicando sumoonraker.confy su puerto. KIAUH incluye Obico entre sus extensiones.
Durante el asistente indica el servidor propio (no app.obico.io) y, para cada instancia, su moonraker.conf y su puerto de Moonraker.
Cuál elegir
Cambiar de impresora y usar la cola por impresora
Mainsail/Fluidd + cola de Moonraker
Ver todas las impresoras juntas y enviar lotes
FDM Monster
Detección de fallos con IA y acceso remoto propio
Obico self-hosted
Más de 10 impresoras o trabajo profesional
Fuera del alcance de esta guía
Acceso remoto con múltiples instancias
Si usas OctoEverywhere o Obico para acceso remoto, cada instancia de Moonraker requiere su propio registro. El proceso es el mismo que con una sola instancia, pero repitiendo el emparejamiento para cada puerto.
Para OctoEverywhere:
Ve a
http://IP_HOST:80(instancia 1) y sigue el proceso de enlaceVe a
http://IP_HOST:81(instancia 2) y repite
Cada instancia tendrá su propio enlace de acceso remoto independiente.
Troubleshooting — Problemas frecuentes
Klipper no arranca en una instancia
Los errores más comunes son:
Serial no encontrado: el cable USB no está conectado, el path
by-pathcambió porque se conectó a otro puerto, o el IDby-ides incorrecto.Error de configuración: algún parámetro de
printer.cfgtiene un error de sintaxis. El log lo indica con el fichero y la línea exacta.Puerto ocupado: otro proceso ya usa el socket de comunicación. Reinicia ambos servicios (klipper y moonraker) de esa instancia.
Confundo qué serial pertenece a qué impresora
Con by-path, identifica cada puerto físico USB del host y etiquétalo. Para by-id con firmware personalizado, documenta qué ID pusiste en cada placa.
Un truco: desconecta todas las placas excepto una y lanza ls /dev/serial/by-id/* — solo aparecerá la que dejaste conectada. Repite para cada una.
Moonraker no conecta con Klipper en una instancia
Verifica que el socket klippy_uds_address en moonraker.conf apunta al directorio correcto de esa instancia:
Si no existe pero Klipper está corriendo, hay un problema en la ruta configurada. Revisa moonraker.conf de esa instancia.
Una interfaz web muestra la impresora equivocada
Comprueba a qué puerto Moonraker estás conectando. La instancia 1 usa 7125, la 2 usa 7126. En Mainsail/Fluidd, ve a la configuración de impresoras y verifica que cada entrada apunta al puerto correcto.
Tras actualizar Klipper, solo se actualiza una instancia
Verifica que el managed_services en la sección [update_manager] de cada moonraker.conf tiene el nombre correcto del servicio systemd de esa instancia.
Los logs crecen mucho con varias instancias
Moonraker gestiona la rotación de logs automáticamente. Si los logs son excesivamente grandes, puedes reducir el nivel de verbosidad en el moonraker.conf:
Checklist de verificación final
Antes de dar por buena la instalación múltiple, verifica:
Última actualización