El desarrollador Nishant Joshi relata el proceso técnico para convertir el lector de tinta electrónica Xteink X3, basado en el chip ESP32-C3, en una impresora de red funcional compatible con el protocolo IPP (Internet Printing Protocol). El proyecto nació como una broma personal —"si parece papel, debería comportarse como papel"— tras comprobar que cargar documentos en el dispositivo resultaba engorroso al exigir unirse a su punto de acceso Wi-Fi.
El reto principal fue de memoria. El ESP32-C3 dispone de 400 KB de RAM, de los cuales solo 16 KB se reservan para caché. Una página Letter a 300 dpi en escala de grises ocupa unos 8,4 MB sin comprimir, muy por encima de la capacidad disponible incluso con la conexión Wi-Fi activa. Para resolverlo, Joshi descartó la idea de usar el mapeo de memoria del chip (limitado a la flash) y, en su lugar, diseñó una tubería de transformación que decodifica, escala y aplica dithering fila a fila, escribiendo cada hilera directamente en el búfer de pantalla del display. Así evita almacenar la página completa en RAM. Con esta optimización, el uso de RAM del búfer de imagen bajó de ~113 KB a ~62 KB.
En el lado del software, el servidor IPP se anuncia en la red mediante Bonjour (mDNS) con el nombre "penguin", declara salida monocroma de 300 dpi, papel A5 y Letter, y acepta formatos raster de Apple y PWG. La detección sin controladores en macOS requirió añadir manualmente el subtipo _universal mediante la API mDNS de ESP-IDF. Tras una tarde de trabajo, Joshi logró imprimir una página de manga de Mushoku Tensei directamente desde la aplicación Vista Previa del Mac. El firmware forma parte de un fork del proyecto CrossPoint, y las páginas guardadas se almacenan en una carpeta del lector que hace las veces de bandeja de salida.
