UStackUStack
LightInk icon

LightInk

LightInk: reloj solar con e-ink basado en ESP32. Reduce al mínimo el tiempo en “on” con wake stub para actualizaciones rápidas y bajo consumo.

LightInk

¿Qué es LightInk?

LightInk es un proyecto de reloj solar con e-ink basado en ESP32 diseñado para imitar los relojes digitales solares de los años 90, pero usando componentes modernos (se mencionan eInk, WiFi/Bluetooth, LoRa, GPS entre las capacidades planeadas/disponibles). Su propósito principal es un funcionamiento de ultra bajo consumo para que el dispositivo permanezca apagado excepto cuando sea necesario, minimizando especialmente el tiempo que el ESP32 pasa despierto durante las actualizaciones de e-ink.

Un desafío de diseño central descrito por el autor del proyecto es reducir el tiempo “on” del ESP32 a niveles sub-milisegundo durante la actualización de la pantalla. El proyecto lo logra reimplementando el comportamiento SPI en el código del wake stub del ESP32, permitiendo que el ESP32 evite los caminos normales de arranque desde flash y ejecute solo el código colocado en la memoria RTC durante el despertar.

Características clave

  • Concepto de reloj con e-ink alimentado por solar: Apunta a un largo tiempo de ejecución confiando en energía solar y una batería, con e-ink para las actualizaciones de pantalla.
  • Enfoque wake-stub de ESP32 para reducir consumo en arranque: Usa un wake stub del ESP32 almacenado en memoria RTC (un puntero a función) para que el núcleo arranque inmediatamente en microsegundos en lugar de esperar el inicio completo de flash/firmware.
  • Reimplementación de SPI en contexto wake-stub: Como el código solo en RTC no puede depender de rutinas normales basadas en flash, la comunicación con la pantalla (SPI) se reimplementa para actualizar el e-ink durante la breve ventana de despertar.
  • Capacidad de power gating (planeada/requerida): El proyecto destaca explícitamente la necesidad de que el sistema pueda ser power gated y apagado cuando no sea necesario.
  • Hardware de alimentación personalizado: El autor desarrolló una placa alrededor de un convertidor DC-DC buck-boost de baja corriente en reposo (TPS63900, 1.8 V a 5.5 V, 75 nA IQ mencionado) para soportar operación a bajos voltajes.

Cómo usar LightInk

  • Revisa el código fuente y materiales de construcción: El autor proporciona código y materiales vía el repositorio de GitHub y espera que los usuarios partan de esa documentación en lugar de un producto empaquetado.
  • Sigue la estructura del firmware para comportamiento de deep sleep/despertar: El mecanismo wake-stub es central en el diseño, y se referencian las rutas de código relevantes (p. ej., archivos de deep sleep y uspi-related en el repositorio).
  • Calibra el hardware a tu configuración: El proyecto describe revisiones extensas de la placa y pruebas para lograr operación confiable con solar, touch, componentes RTC/pantalla y comportamiento a bajo voltaje.
  • Usa un flujo de trabajo típico de actualización e-ink: En la práctica, el dispositivo está diseñado para despertar, comunicarse con la pantalla e-ink y volver a operación de bajo consumo, en lugar de permanecer activo continuamente.

Casos de uso

  • Dispositivo de pantalla de larga duración alimentado por solar: Un objetivo práctico es una pantalla tipo reloj que pueda seguir funcionando con entrada solar en lugar de cargas frecuentes.
  • Insignia IoT o nodo sensor de bajo consumo: El mismo enfoque wake-stub + actividad corta puede soportar actualizaciones pequeñas de estado en una pantalla e-ink cuando un dispositivo debe conservar energía.
  • Concepto de pantalla de ubicación/tiempo conectada por LoRa: El proyecto comenzó con la idea de usar paquetes LoRa para comunicarse con un receptor en casa, y el autor sigue trabajando en un reloj que use comunicación inalámbrica manteniendo bajo consumo.
  • Desarrollo embebido optimizado para energía: Desarrolladores interesados en reducir el consumo de energía en wake/boot del ESP32 pueden estudiar la estrategia wake-stub en memoria RTC y las implicaciones de necesitar drivers de hardware en ese entorno restringido.
  • Dispositivo compacto controlado por touch: El autor optó por la funcionalidad touch del ESP32 (en lugar de botones tipo watchy), con el enfoque touch notado como adecuado para las restricciones del enclosure.

Preguntas frecuentes

P: ¿Es LightInk un producto de consumo listo para comprar?
No. La página describe un proyecto de hardware/firmware en curso con código y materiales alojados en GitHub.

P: ¿Qué hace diferente la estrategia de consumo de LightInk?
El proyecto se centra en minimizar el tiempo que el ESP32 pasa despierto durante las actualizaciones de pantalla utilizando el wake stub del ESP32 almacenado en la memoria RTC y ejecutando el código necesario (incluido un enfoque SPI) en ese contexto de wake.

P: ¿Por qué el enfoque wake-stub requiere trabajo extra?
El autor explica que durante la ejecución del wake-stub, solo puede ejecutarse código en la memoria RTC y se omite la funcionalidad basada en flash. Eso obliga a reimplementar las rutinas de comunicación con hardware.

P: ¿Qué opciones de conectividad están soportadas?
La descripción menciona WiFi, Bluetooth, LoRa y GPS entre las tecnologías que el proyecto pretende usar. El extracto de la página no especifica cuáles están completamente implementadas en la versión actual, por lo que los detalles deben verificarse en el repositorio.

P: ¿Dónde puedo encontrar la información de firmware y hardware?
El proyecto enlaza a un repositorio de GitHub que contiene todo el código y materiales.

Alternativas

  • Diseños de relojes solares e-ink estilo Watchy: Watchy se menciona explícitamente como punto de partida. Comparado con LightInk, los enfoques basados en Watchy pueden depender de un flujo de energía/actualización diferente y no usar el mismo enfoque SPI wake-stub de ESP32.
  • Otros proyectos de pantallas e-ink de bajo consumo con deep sleep estándar: En lugar de ejecución wake-stub, algunos diseños usan deep sleep con wake/boot de firmware normal. Estos son típicamente más simples pero pueden consumir más energía debido a rutas de arranque más largas.
  • Arquitecturas de microcontroladores ULP/siempre encendidos: Algunos proyectos embebidos logran bajo consumo en wake usando coprocesadores de ultra bajo consumo o periféricos, en lugar de wake stubs con punteros de función RTC.
  • Enfoques con controladores dedicados de pantallas e-ink: Una categoría alternativa son diseños donde la pantalla se actualiza mediante un controlador especializado, reduciendo el tiempo activo del MCU principal. Esto puede cambiar el flujo de “actualizaciones impulsadas por MCU” a “actualizaciones impulsadas por controlador”.