Un proyecto de código abierto convierte un equipo de tinta electrónica con ESP32 en una lista de compras compartida, que cada integrante de la familia actualiza desde su teléfono y que sigue disponible sin conexión.
Una pantalla chica de tinta electrónica pegada al refrigerador puede servir como lista de compras de la casa, a la que cada uno suma productos desde el teléfono. El proyecto usa la M5Stack PaperMono, basada en un ESP32, y no necesita PCB propia ni soldar nada, según Electronics For You.
El desarrollador Seamus Cawley publicó en GitHub el firmware PaperMono Shopping List y el servidor que lo acompaña. El proyecto transforma la pantalla táctil de tinta electrónica, del tamaño de un bolsillo, en un visor dedicado a la lista de compras que se sincroniza con una app web para el teléfono. Cawley lo describe como un proyecto personal que corre en un solo equipo en su casa, sin fines comerciales.
La lista agrupa los productos en el orden en que uno recorre la tienda. Los ítems se marcan directo en la pantalla táctil, y el teclado en pantalla sugiere productos agregados antes. El resto de la familia suma cosas desde el navegador del teléfono.
El hardware
La M5Stack PaperMono C153 usa un ESP32-S3R8 con 16 MB de flash y 8 MB de PSRAM. Trae una pantalla táctil de tinta electrónica de 3,97 pulgadas y 480×800 píxeles con cuatro niveles de gris, una batería de 1.150 mAh y WiFi de 2,4 GHz. La placa suma NFC, LoRa, ranura microSD, reloj de tiempo real (RTC), unidad inercial (IMU), micrófono y luz frontal.
M5Stack la lista a 65 dólares y The Pi Hut a 70,80 libras con IVA incluido. En ambas tiendas aparece hoy sin stock.
El proyecto también necesita un computador que quede encendido en la casa para correr el servidor. La documentación admite instalarlo en un computador común, con opciones como systemd y Docker.
¿Cómo funciona la sincronización?
El sistema tiene tres partes, un servidor FastAPI con base de datos SQLite, una interfaz web para el teléfono y el firmware de la PaperMono. El servidor es la única fuente de verdad. Tanto el teléfono como la PaperMono hablan con él por HTTP y nunca entre sí.
La PaperMono guarda en su flash una copia completa de la lista. En vez de intercambiar cambios sueltos, primero sube los cambios hechos sin conexión y después descarga la lista entera actualizada. Según el desarrollador, para una lista doméstica típica eso pesa apenas unos pocos kilobytes, así que reemplazar la lista completa resulta más simple y confiable después de pasar mucho tiempo desconectado.
El WiFi se enciende solo cuando hace falta. El equipo sincroniza al arrancar, cada una hora, después de cada edición y al tocar la pantalla si la última sincronización exitosa tiene más de cinco minutos. Los cambios hechos sin conexión quedan en cola en la flash y suben antes de descargar la lista, así un producto recién marcado no vuelve a aparecer.
La pantalla usa refrescos parciales rápidos para acciones como tocar y escribir. Cada 10 actualizaciones parciales fuerza un refresco completo, para limitar el efecto fantasma y el desbalance de corriente continua. El desarrollador aclara que ese límite de 10 sigue la guía de M5Stack y la experiencia de la comunidad, y que nadie lo midió como umbral de daño.
¿Qué hace falta para armarlo?
Antes de flashear el firmware conviene respaldar la flash de la PaperMono, porque guarda datos de calibración de fábrica propios de cada equipo. Después el servidor se instala en un entorno virtual de Python, y el firmware se compila y se flashea por USB-C con PlatformIO. Las credenciales del WiFi y la dirección del servidor se configuran en el mismo firmware.
El firmware tiene cerca de 2.400 líneas de C++ y se publica bajo la licencia GNU GPL v3.0. El soporte de la placa, los controladores de la pantalla y del táctil, la distribución del teclado y el estilo de los elementos gráficos vienen adaptados del firmware MonoMesh, escrito para el mismo hardware.
Un clasificador opcional puede usar la herramienta de línea de comandos Claude Code para ordenar por pasillo los productos nuevos. Las correcciones manuales hechas desde el teléfono quedan guardadas en el catálogo.
Limitaciones del proyecto
El equipo no permite configurar el WiFi desde la propia pantalla, así que las credenciales van compiladas en el firmware. El servidor tampoco trae autenticación, por lo que debe quedarse en la red local o detrás de un proxy inverso que la agregue. Solo se probó con la PaperMono C153 y por ahora no tiene actualizaciones por aire (OTA).
El caso de la India y la radio LoRa
Electronics For You, que escribe para lectores de la India, apunta que la interfaz por pasillos se puede adaptar a distintas formas de comprar, incluidas tiendas donde se recorren las secciones en un orden fijo. La placa trae una radio LoRa que cubre de 868 a 923 MHz, pero las reglas indias para dispositivos de corto alcance sin licencia fijan la banda de 865 a 868 MHz, con condiciones técnicas. Quien modifique el proyecto para usar LoRa en ese país debe revisar la configuración del equipo y las normas inalámbricas que correspondan. El firmware actual de la lista de compras no usa la radio LoRa.
Para estudiantes y makers, el proyecto es un ejemplo práctico de cómo juntar firmware para ESP32, tinta electrónica, aplicaciones web locales, sincronización sin conexión y redes de bajo consumo en un equipo de uso diario.
El código completo está en el repositorio del proyecto en GitHub.






