Buscaba un par de cámaras IP para vigilar mis impresoras 3D Prusa y las opciones del mercado no me convencían. La cámara oficial de Prusa costaba más de lo que quería gastar; las cámaras baratas de internet, en cambio, llegaban con un costo distinto: software propietario y servicios en la nube que no quería ni necesitaba.

En medio de esa búsqueda encontré una mención a Thingino, un firmware desarrollado por la comunidad que permite conectar una cámara barata al sistema de monitoreo remoto de Prusa. Nunca había oído del proyecto, y descubrir que ya tenía una cámara compatible terminó de convencerme. Era momento de explorar una de mis categorías favoritas de proyecto: un firmware libre que convierte un dispositivo de consumo en algo mucho más capaz.

Entrar al club de Thingino

Thingino es un firmware basado en Linux para cámaras que usan el SoC de Ingenic, y al momento de escribir soporta 166 cámaras. Entre ellas destacan la docena de modelos de Wyze, muy populares y fáciles de conseguir baratos en el mercado de segunda mano.

Si tienes una Wyze Cam 2 juntando polvo, estás de suerte: estos equipos usan lo que el proyecto llama No-Tool Installer. El mecanismo es el mismo que el de una actualización oficial: se copia un archivo a la microSD, se enciende la cámara y se espera.

La instalación puede complicarse según el modelo de cámara
La instalación puede complicarse según el modelo de cámara

Para el resto de los modelos la cosa se complica. Aunque hay imágenes de firmware para todos los dispositivos oficialmente soportados, muchos no tienen un procedimiento tan amable. En algunos hay que abrir la carcasa y conectar un adaptador USB a serial para grabar la imagen; en otros, incluso desoldar el chip de flash y programarlo por fuera. La wiki del proyecto documenta el proceso equipo por equipo.

Para quien quiera entrar rápido y sin dramas, la comunidad recomienda la Cinnado D1. Eso fue lo que terminé haciendo: en Amazon costaban 10 dólares cada una y llegaron al día siguiente. Se copia la imagen a la SD, se pone en la cámara y en pocos minutos estás disfrutando del software libre.

Abrir la caja de juguetes

La configuración inicial le resultará familiar a cualquiera que haya instalado un gadget moderno: la cámara levanta una red WiFi propia, te conectas con el teléfono y accedes a una página donde le das nombre y la apuntas a tu red inalámbrica. Tras reiniciarse, la operación se hace por la interfaz web, aunque los más avezados pueden entrar por SSH y tener acceso completo al sistema.

Interfaz web de Thingino
Interfaz web de Thingino

En su nivel más básico, Thingino ofrece streams de video RTSP y capturas periódicas hacia cualquier equipo de la red. Pero si quieres profundizar, hay una cantidad enorme de funciones: detección de movimiento en el dispositivo, envío de clips a un servidor FTP, disparo de mensajes MQTT, conexión a VPN, múltiples streams, grabación en timelapse, detección día/noche e integración con Home Assistant.

Menú de ajustes de Thingino
Menú de ajustes de Thingino

Para cámaras con motores de paneo e inclinación, como la Cinnado D1, se puede mover la cámara desde la web, ajustar velocidad y aceleración, e incluso memorizar posiciones. Es como la primera vez que corrí DD-WRT en un Linksys WRT54G: el firmware eleva el dispositivo a otro nivel.

Control total, si lo necesitas

Bajo la interfaz web hay un sistema operativo Linux completo. Una vez conectado por SSH puedes hacer lo que quieras, e incluso existe una herramienta sysupgrade para descargar e instalar la última versión sobre el sistema en caliente.

Acceso por terminal al sistema Linux de la cámara
Acceso por terminal al sistema Linux de la cámara

Ese acceso de bajo nivel cierra el círculo en mi caso. Empecé todo esto para subir imágenes a Prusa Connect. Aunque ya existe soporte oficial en la rama de desarrollo, todavía no se fusiona en la versión principal, así que por ahora tengo un script en Bash que corre en la cámara y usa curl para empujar las imágenes a la API de Prusa. La mayoría de los usuarios nunca tendrá que entrar por SSH, pero que la opción exista es justamente lo valioso: usabilidad cotidiana y, al mismo tiempo, la libertad que exigen los usuarios avanzados.