Jeremy Ngai built InkQuest, an ESP32-based handheld that generates choose-your-own-adventure games on a 2.9-inch e-paper display, powered by Google Gemini and rated for 20 hours per charge.
The hardware stack is a custom PCB, 3D-printed enclosure, rotary encoder for input, and an RGB LED that shifts color to match story mood. First boot triggers a captive portal for WiFi setup, identical to standard ESP32 onboarding. After that, the device pulls a live AI-generated narrative from Gemini on demand. All design files and firmware are public on GitHub.
The more interesting engineering question buried in the build: the Gemini dependency is a single swap away from connecting to a static story library. Ngai's code structure makes that path obvious, and the full source is there to prove it. Read the Instructables writeup to see how the display refresh timing and LED state machine are handled together without blocking the story loop.
[READ ORIGINAL →]