UStackUStack
LightInk icon

LightInk

LightInk is an ESP32 e-ink solar watch project built for ultra-low power, updating the display with a brief wake-stub refresh time.

LightInk

What is LightInk?

LightInk is an ESP32-based e-ink solar watch project designed to imitate 1990s-style solar digital watches while using modern components (eInk, WiFi/Bluetooth, LoRa, GPS are mentioned among the planned/available capabilities). Its main purpose is ultra-low power operation so the device can remain off except when needed—particularly by minimizing the ESP32 time spent awake during e-ink updates.

A core design challenge described by the project author is reducing ESP32 “on” time to sub-millisecond levels during display refresh. The project accomplishes this by re-implementing SPI behavior in the ESP32 wake stub code, allowing the ESP32 to bypass normal flash boot paths and instead run only code placed in RTC memory during wake.

Key Features

  • Solar-powered e-ink watch concept: Targets long runtime by relying on solar power and a battery, with e-ink used for display updates.
  • ESP32 wake-stub approach to reduce boot power: Uses an ESP32 wakeup stub stored in RTC memory (a function pointer) so the core boots immediately in microseconds rather than waiting for full flash/firmware startup.
  • SPI re-implementation in wake-stub context: Because RTC-only code can’t rely on normal flash-based routines, display communication (SPI) is re-implemented so the e-ink can be updated during the brief wake window.
  • Power gating capability (planned/required): The project explicitly calls out the requirement that the system can be power gated and turned off when not needed.
  • Custom power hardware: The author developed a board around a DC-DC low quiescent current buck-boost converter (TPS63900, 1.8 V to 5.5 V, 75 nA IQ is mentioned) to support operation at low voltages.

How to Use LightInk

  • Review the source and build materials: The author provides code and materials via the GitHub repository and expects users to start from that documentation rather than from a packaged product.
  • Follow the firmware structure for deep sleep/wake behavior: The wake-stub mechanism is central to the design, and the relevant code paths are referenced (e.g., deep sleep and uspi-related files in the repository).
  • Calibrate the hardware to your setup: The project describes extensive board revisions and testing to achieve reliable operation with solar, touch, RTC/display components, and low-voltage behavior.
  • Use a typical e-ink update workflow: In practice, the device is designed to wake, communicate with the e-ink display, and return to low-power operation—rather than staying continuously active.

Use Cases

  • Long-duration solar-powered display device: A practical target is a watch-style display that can keep running using solar input instead of frequent charging.
  • Low-power IoT badge or sensor node: The same wake-stub + short-activity approach can support small status updates on an e-ink display when a device must conserve energy.
  • LoRa-connected location/time display concept: The project started with the idea of using LoRa packets to communicate to a receiver at home, and the author continues working toward a watch that can use wireless communication while remaining low power.
  • Energy-optimized embedded development: Developers interested in reducing ESP32 wake/boot energy can study the RTC-memory wake-stub strategy and the implications of needing hardware drivers available in that constrained environment.
  • Touch-controlled compact device: The author decided to use the ESP32 touch functionality (as opposed to watchy buttons), with the touch approach noted as fitting the enclosure constraints.

FAQ

Q: Is LightInk a ready-to-buy consumer product? No. The page describes an ongoing hardware/firmware project with code and materials hosted on GitHub.

Q: What makes LightInk’s power strategy different? The project focuses on minimizing ESP32 time spent awake during display updates by using the ESP32 wakeup stub stored in RTC memory and running necessary code (including a SPI approach) in that wake context.

Q: Why does the wake-stub approach require extra work? The author explains that during wake-stub execution, only code in RTC memory can run and flash-based functionality is bypassed. That forces re-implementation of hardware communication routines.

Q: What connectivity options are supported? The description mentions WiFi, Bluetooth, LoRa, and GPS among the technologies the project aims to use. The page excerpt does not specify which are fully implemented in the current build, so details should be verified in the repository.

Q: Where can I find the firmware and hardware information? The project links to a GitHub repository containing all code and materials.

Alternatives

  • Watchy-style solar e-ink watch designs: Watchy is explicitly mentioned as a starting point. Compared to LightInk, Watchy-based approaches may rely on a different power/update workflow and may not use the same ESP32 wake-stub SPI approach.
  • Other low-power e-ink display projects using standard deep sleep: Instead of wake-stub execution, some designs use deep sleep with normal firmware wake/boot. These are typically simpler but may consume more power due to longer boot paths.
  • ULP/always-on microcontroller architectures: Some embedded projects achieve low wake energy using ultra-low-power coprocessors or peripherals, rather than RTC function-pointer wake stubs.
  • Dedicated e-ink display controller approaches: An alternative category is designs where the display is updated by a specialized controller, reducing the main MCU’s active time. This can change the workflow from “MCU-driven updates” to “controller-driven updates.”