Klipper en Android

Convierte tu teléfono o tablet Android antiguo en el host de Klipper para tu impresora 3D. Guía completa de instalación con Linux Deploy (root) y UserLAnd (sin root), conexión OTG y configuración paso

Una de las opciones más interesantes para reciclar hardware es usar un teléfono o tablet Android como host de Klipper, sustituyendo a la Raspberry Pi. Los dispositivos Android modernos cuentan con procesadores ARM de alto rendimiento, varios GB de RAM y almacenamiento interno suficiente para correr Klipper, Moonraker y Mainsail/Fluidd sin problemas.

circle-check
Tutorial en español — Instalación de Klipper en Android

Requisitos

Hardware

  • Teléfono o tablet Android — mínimo 2 GB de RAM (recomendado 3+ GB), 8+ GB de almacenamiento libre

  • Android 8.0 o superior (recomendado Android 10+)

  • Cable USB OTG (o adaptador OTG) para conectar la MCU de la impresora

  • Cable USB-C Y (datos + carga) o placa que alimente el teléfono — necesario para usar OTG y cargar a la vez

circle-exclamation

Software y métodos disponibles

Método
Root necesario
Dificultad
Rendimiento
Notas

Linux Deploy

Sí (Magisk)

Media

Alto

Método más estable y documentado

UserLAnd

No

Baja

Medio

Más sencillo, algo más lento

KlipperPhonesLinux

No (flashing nativo)

Muy alta

Muy alto

Solo modelos específicos Xiaomi


Método 1 — Linux Deploy (recomendado, requiere root)

Linux Deploy crea un contenedor Debian completo dentro de Android aprovechando el entorno chroot. Es el método más estable y con mejor rendimiento.

Run Klipper, Moonraker y Fluidd en Android con Linux Deploy

Paso 1 — Rootear el dispositivo

triangle-exclamation

El método más recomendado actualmente es Magisk:

  1. Descarga la imagen de stock de tu dispositivo desde el sitio oficial del fabricante

  2. Extrae el boot.img de la imagen

  3. Parchea el boot.img con la app Magisk (disponible en github.com/topjohnwu/Magiskarrow-up-right)

  4. Flashea el boot.img parcheado con fastboot

  5. Verifica el root instalando Root Checker desde la Play Store

Paso 2 — Instalar apps necesarias

Instala desde la Play Store o F-Droid:

Paso 3 — Configurar SELinux en modo permisivo

Para que Linux Deploy pueda montar el contenedor correctamente, SELinux debe estar en modo permisivo:

  1. Instala SELinuxModeChanger (búscalo en GitHub o F-Droid)

  2. Cambia el modo de Enforcing a Permissive

  3. Reinicia el dispositivo

circle-info

En algunos dispositivos también es necesario añadir la siguiente ruta al PATH en la configuración de Linux Deploy: /data/user/0/ru.meefik.linuxdeploy/files:/system/xbin

Paso 4 — Crear el contenedor Debian en Linux Deploy

Abre Linux Deploy y configura el contenedor con los siguientes ajustes:

Pulsa INSTALL y espera a que finalice la instalación (puede tardar varios minutos).

Paso 5 — Arrancar el contenedor y conectar por SSH

  1. Pulsa START en Linux Deploy

  2. Conéctate por SSH desde JuiceSSH o desde otro dispositivo en tu red:

  1. Una vez dentro, actualiza el sistema:

Paso 6 — Instalar Klipper con KIAUH

En el menú de KIAUH selecciona e instala en este orden:

  1. 1) Install1) Klipper

  2. 1) Install2) Moonraker

  3. 1) Install3) Mainsail (o 4) Fluidd)

  4. (Opcional) 1) Install5) KlipperScreen — tarda bastante, puede fallar en versiones antiguas de Debian

circle-exclamation

Paso 7 — Corregir los paths de socket (si hay problemas)

En algunos casos Klipper y Moonraker no se comunican bien por los paths de socket por defecto. Comprueba y ajusta si es necesario:

En /etc/default/klipper:

En ~/printer_data/config/moonraker.conf:

En /etc/default/moonraker:

Reinicia los servicios tras los cambios:


Método 2 — UserLAnd (sin root)

UserLAnd es una app que permite ejecutar un entorno Linux completo sin necesidad de root. El rendimiento es algo inferior al método con Linux Deploy pero es mucho más accesible.

Instalación

  1. Descarga UserLAndarrow-up-right desde la Play Store

  2. Crea una nueva sesión → Elige Ubuntu o Debian

  3. Selecciona conexión SSH

  4. Espera a que el sistema base se instale (primera vez tarda varios minutos)

  5. Conéctate por SSH con las credenciales que elegiste

Instalar Klipper con KIAUH

El proceso es idéntico al Método 1 desde el Paso 6. UserLAnd ya proporciona un entorno Debian/Ubuntu completo.

circle-info

UserLAnd no necesita root pero puede tener problemas accediendo directamente a /dev/ttyACM0 o /dev/ttyUSB0. Si la impresora no se detecta, consulta el apartado de Conexión de la impresora más abajo.


Método 3 — KlipperPhonesLinux (avanzado, modelos específicos)

Este proyecto convierte el teléfono en un host Linux nativo (sin Android, directamente Debian), ofreciendo el máximo rendimiento. Solo está disponible para modelos específicos de Xiaomi (Redmi 3, Note 3, etc.).

circle-exclamation

Conexión de la impresora por USB OTG

Detectar el puerto serial de la MCU

Con el cable OTG conectado y la impresora encendida, ejecuta dentro del contenedor:

La MCU debería aparecer como /dev/ttyACM0 o /dev/ttyUSB0. Si no aparece, el driver del chip USB puede no estar incluido en el kernel del teléfono.

Si la MCU no se detecta (driver CH34x)

Muchas placas usan el chip USB-serial CH34x, que algunos kernels Android no incluyen. Solución con la app Octo4a:

  1. Instala Octo4aarrow-up-right desde GitHub (no publicar en Play Store)

  2. Ábrela y espera a que detecte la impresora (incluye driver CH34x propio)

  3. No es necesario usar OctoPrint dentro de Octo4a — solo la necesitas para el driver

  4. El serial pipe se expone en: /data/data/com.octo4a/files

  5. Monta esa ruta en Linux Deploy:

  1. En printer.cfg, usa:

Dar permisos al puerto serial

Para que el permiso sea permanente añade esta línea a /etc/rc.local:


Configuración del printer.cfg

Una vez localizado el serial, edita tu printer.cfg con el serial correcto. Puedes obtenerlo con:

Y añadirlo en la sección [mcu]:

Para obtener una configuración base de tu electrónica consulta el repositorio oficial de Klipperarrow-up-right o los repositorios específicos de cada marca que tenemos en la guía de instalaciónarrow-up-right.


Acceso a la interfaz web

Una vez Klipper y Moonraker estén corriendo, accede a Mainsail o Fluidd desde cualquier navegador en tu red local:

circle-check

Inicio automático al arrancar Linux Deploy

Para que el contenedor y los servicios arranquen solos cuando enciendas el teléfono:

  1. En Linux Deploy, activa Autostart en los ajustes

  2. Activa también Run on startup para que Linux Deploy inicie el contenedor al arrancar Android


Solución de problemas frecuentes

Problema
Causa probable
Solución

El contenedor no monta

SELinux en modo Enforcing

Cambiar a Permissive con SELinuxModeChanger

/dev/ttyACM0 no aparece

Driver CH34x no disponible

Usar Octo4a para exponer el serial pipe

Klipper y Moonraker no conectan

Path de socket incorrecto

Verificar y ajustar los paths en los ficheros default y moonraker.conf

OTG + carga no funciona

Hardware no compatible

Usar hub USB OTG con alimentación externa o placa que alimente el USB

KlipperScreen falla al instalar

Versión Python demasiado antigua

Instalar Python 3.11 desde source o usar Debian Bookworm

El contenedor es muy lento

Poca RAM o dispositivo de 32b

Usar dispositivo con ≥3 GB RAM y arquitectura arm64


Comparativa con otros hosts

Host
Precio orientativo
Root/Complejidad
Rendimiento
Notas

Android (Linux Deploy)

0 € (reutilizas)

Alta (requiere root)

Alto

Ideal para reciclar hardware

Raspberry Pi Zero 2W

~20 €

Baja

Medio

Bajo consumo, compacto

Raspberry Pi 4 2GB

~45 €

Baja

Alto

Estándar de referencia

Orange Pi Zero 2W

~20 €

Media

Medio-Alto

Buena alternativa económica

PC con Windows (WSL)

0 €

Baja-Media

Muy alto

PC siempre encendido

circle-info

Tenemos guías específicas para otros hosts alternativos en la sección de instalaciónarrow-up-right.


Recursos adicionales

Última actualización