WhatsApp

  

Instalar servicio de impresión en raspberry pi

Creando un punto de venta con rasberry pi

Instalación de un servicio de impresión Bluetooth en Raspberry Pi 4: guía paso a paso

Convierte tu Raspberry Pi 4 en un servidor de impresión Bluetooth confiable para impresoras térmicas ESC/POS o modelos compatibles con CUPS. En esta guía aprenderás a instalar, configurar y mantener un servicio de impresión seguro y estable.

Raspberry Pi 4 Bluetooth (SPP) CUPS
Clientes PC / Móvil CUPS Raspberry Pi Impresora Bluetooth RFCOMM IPP
Introducción

Bluetooth sigue siendo el estándar más práctico para impresoras portátiles y térmicas. Al montar un servicio de impresión en tu Raspberry Pi 4 con CUPS y BlueZ, puedes aceptar trabajos desde dispositivos en red (PC o móviles) y enviarlos a una impresora Bluetooth ya sea mediante el backend nativo de CUPS o creando un enlace serial (RFCOMM). Esta guía cubre ambos enfoques, con especial atención a impresoras térmicas ESC/POS.

Requisitos
Hardware
  • Raspberry Pi 4 con alimentación estable
  • Tarjeta microSD (16 GB o más)
  • Impresora Bluetooth (ESC/POS o compatible con CUPS)
  • Conectividad de red (Ethernet o Wi‑Fi)
Software
  • Raspberry Pi OS Bookworm/Bullseye actualizado
  • CUPS servidor de impresión
  • BlueZ pila Bluetooth y utilidades

Nota: Para impresoras no soportadas por CUPS, usa cola “Raw” y deja que la aplicación genere el formato (p. ej., ESC/POS).

1) Instalar y preparar el sistema
1
Actualizar el sistema
sudo apt update && sudo apt full-upgrade -y
sudo reboot
2
Instalar CUPS y Bluetooth
sudo apt install -y cups cups-client cups-bsd avahi-daemon \
  bluez bluez-tools bluez-cups \
  printer-driver-gutenprint

Habilita y arranca los servicios principales:

sudo systemctl enable --now cups
sudo systemctl enable --now bluetooth

Da permisos de administración de CUPS a tu usuario (sustituye $USER si procede) y permite administración remota:

sudo usermod -aG lpadmin $USER
sudo cupsctl --remote-admin --remote-any --share-printers
Consejo: Avahi permite que los clientes descubran la impresora vía mDNS/Bonjour. Mantén avahi-daemon activo si compartirás en red.
2) Emparejar y confiar la impresora Bluetooth

Usaremos bluetoothctl, la utilidad interactiva de BlueZ.

bluetoothctl
# En el prompt de bluetoothctl:
power on
agent on
default-agent
scan on     # Observa la MAC de tu impresora (ej. 00:11:22:33:44:55)
pair 00:11:22:33:44:55
trust 00:11:22:33:44:55
connect 00:11:22:33:44:55
quit
PIN/Clave: Muchas térmicas usan 0000 o 1234. Consulta el manual de tu impresora.
3) Configurar CUPS: backend Bluetooth o cola Raw

Tienes dos opciones principales para enviar trabajos a la impresora:

Opción A — Backend Bluetooth de CUPS

Si instalaste bluez-cups, puedes crear una cola que use el URI bluetooth://MAC.

sudo lpadmin -p BT_Printer -E \
  -v bluetooth://00:11:22:33:44:55 \
  -m raw
sudo cupsenable BT_Printer
sudo cupsaccept BT_Printer

Usamos raw para máxima compatibilidad. Si tu modelo tiene PPD/driver en Gutenprint u otro paquete, sustitúyelo con -m apropiado.

Opción B — Enlace serial RFCOMM

Crea un dispositivo /dev/rfcomm0 y usa el backend serial: de CUPS.

sudo rfcomm bind 0 00:11:22:33:44:55 1
ls -l /dev/rfcomm0
sudo lpadmin -p BT_Serial -E \
  -v serial:/dev/rfcomm0?baud=9600+bits=8+parity=none+flow=soft \
  -m raw
sudo cupsenable BT_Serial
sudo cupsaccept BT_Serial

Ajusta baud y flow según el manual de tu impresora.

GUI opcional: También puedes añadir la impresora desde https://localhost:631 → Administración → Añadir impresora. Busca “Dispositivos Bluetooth” o “Serial”.
4) Pruebas rápidas

Envía una página de prueba simple:

# Con backend Bluetooth
echo -e "Prueba de impresión desde Raspberry Pi\n" | lp -d BT_Printer
# Con RFCOMM/Serial
echo -e "Prueba de impresión (serial)\n" | lp -d BT_Serial

Para impresoras ESC/POS en cola Raw, tus aplicaciones deben generar comandos ESC/POS (por ejemplo, usando librerías como python-escpos). La cola Raw enviará los bytes tal cual.

5) Automatizar el enlace Bluetooth (servicio systemd)

Para reconectar el enlace RFCOMM al arrancar o tras desconexiones, crea un servicio de systemd:

sudo tee /etc/systemd/system/rfcomm0.service >/dev/null <<'EOF'
[Unit]
Description=Bluetooth RFCOMM para impresora
After=bluetooth.target
Requires=bluetooth.service
[Service]
Type=simple
ExecStart=/usr/bin/rfcomm bind 0 00:11:22:33:44:55 1
ExecStop=/usr/bin/rfcomm release 0
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now rfcomm0

Si CUPS no puede abrir /dev/rfcomm0 por permisos, crea una regla udev para asignar el dispositivo al grupo lp:

echo 'KERNEL=="rfcomm0", MODE="0660", GROUP="lp"' | sudo tee /etc/udev/rules.d/99-rfcomm.rules
sudo udevadm control --reload-rules && sudo udevadm trigger
6) Seguridad y buenas prácticas
  • Cambia el PIN/clave por defecto de la impresora si es posible.
  • Limita el acceso de CUPS a tu subred y usa cuentas con contraseña fuerte si expones la administración remota.
  • Fija la impresora como “trusted” y evita modo visible permanente tras el emparejamiento.
  • Para producción, alimenta la Pi con fuente certificada y usa tmux/systemd para procesos persistentes.

Sí. La forma más compatible es crear una cola Raw y generar los comandos ESC/POS desde tu aplicación. Alternativamente, busca un PPD/driver específico del fabricante o proyectos como filtros raster para ESC/POS compatibles con CUPS.

El backend Bluetooth de CUPS simplifica la configuración y evita manejar dispositivos seriales. RFCOMM ofrece control fino de parámetros (baud, flow) y puede ser más estable en modelos que exponen solo SPP. Prueba primero el backend Bluetooth; si falla, usa RFCOMM con servicio systemd.

Sí. Si compartes la cola de CUPS en red, Android e iOS pueden imprimir vía Wi‑Fi usando plugins/airprint. Para enviar directamente por Bluetooth desde el móvil, la app debe soportar ESC/POS u otro protocolo compatible con tu impresora.
Solución de problemas
Diagnóstico rápido
# Estado de servicios
systemctl status bluetooth cups rfcomm0
# Logs
journalctl -u bluetooth -u cups -u rfcomm0 -e
# Información BT
bluetoothctl info 00:11:22:33:44:55
rfcomm
Problemas comunes
  • No aparece la impresora: asegura scan on y que la impresora esté en modo emparejamiento.
  • Errores de permiso en /dev/rfcomm0: aplica la regla udev anterior.
  • Cortes aleatorios: usa Restart=always en el servicio y evita interferencias RF.
  • Caracteres raros: revisa baud/paridad o el encoding de tu aplicación ESC/POS.
Conclusión

Con CUPS y BlueZ, tu Raspberry Pi 4 puede actuar como un hub de impresión Bluetooth robusto, tanto para entornos de punto de venta con térmicas ESC/POS como para impresoras compatibles con drivers de CUPS. Empieza con el backend Bluetooth por simplicidad y recurre a RFCOMM con servicio systemd para una conexión más controlada y resiliente.

¿Listo para desplegarlo en producción?
Documenta tu configuración y automatiza backups de /etc/cups y servicios.

Si quieres generar tu propio servicio de impresion con una rasberry pi escríbenos 

Contáctanos 
 


Instalar servicio de impresión en raspberry pi
Paris Minero 9 septiembre, 2025
Compartir
Iniciar sesión dejar un comentario

  
Metodología de la programación estructurada
Metodología de la programación estructurada