This Shouldn't Be a Real E-Reader… I Read Over 1000 Pages on It
TL;DR
A DIY minimalist e-reader built around an ESP32 with an e-ink display, controlled by a single button, was rebuilt from scratch after community feedback. Version 2 brings major hardware reliability improvements, dramatically expanded usable storage, and a polished feature set including folders, lists, and faster performance. ---
Key Concepts
ESP32-based e-reader
tap to reveal ↩
Tiny, single-button e-ink reading device, roughly the size of an AirPods case
Partition adjustment
tap to reveal ↩
Reconfiguring the ESP32's flash memory layout to maximize usable storage for books
Text compression on upload
tap to reveal ↩
Books are processed and compressed at upload time to minimize storage footprint
Single-button UX
tap to reveal ↩
All on-device navigation handled with one button; complex actions (jumping to position, managing lists) delegated to a web interface
Notes
§Hardware Changes (v1 → v2)
- Case redesign: Replaced multiple small pins (unreliable on many printers) with a single larger sliding piece + screw-secured opposite side
- Now supports M2 threaded inserts for a more finished, product-like feel
- Compatible with PLA — easier to print reliably
- Trade-off: slightly larger than the original version
- Added a loop/attachment point for a keychain or lanyard
- Button area given more space for a better press feel
- Click noise reduction: Insert a small piece of self-adhesive foam between the plunger and the button — noticeably quieter
§Firmware — v1 Baseline
- Simple library view, basic upload mode, web viewer
- Bookmark saving and viewing in web interface
- Basic font, functional but rough
§Firmware — Iterative Improvements (v1 → v1.5)
- Folder support: Organize books and other files into separate folders
- Custom screensaver: Upload your own image to personalize the device
- Background improvements: better power efficiency, more accurate battery reading, more stable UI, broader language support, bug fixes
- (Credit: community contributor Philip for significant early code contributions)
§Firmware — Version 2 Major Changes
- Default usable storage for books: only ~1.5 MB (out of 8 MB flash, after firmware and system overhead)
- Fix: adjust partitioning → now ~5.5–5.6 MB available for books
- Setup is one-click; documented step-by-step in the guide
- Books are compressed on upload (empty lines, extra spaces stripped)
- Typical 300–400 page book: ~0.5–0.6 MB
- Capacity: roughly 6–10 books on the device simultaneously
- Storage indicator added to the web viewer
- Device feels significantly more responsive overall
- Opening a book is now near-instant even deep into a long text (was previously slow)
- Bookmarks load faster and more reliably
- Jump to position: Navigate to a specific location in a book via the web viewer
- Lists: Create to-do lists, shopping lists, etc. in the web viewer; check items off directly on the device; edit or delete via web interface
- Bulk bookmark export: Export all bookmarks at once from the web interface
Actionable Takeaways
- Use foam padding on the button to reduce click noise — a trivial fix with a noticeable result
- Adjust ESP32 partition layout before flashing to unlock ~5.5 MB of book storage instead of the default ~1.5 MB
- Store files in folders in the web viewer to keep the library organized as you add more books
- Use the web viewer for complex actions (position jumping, list management, bookmark export) rather than trying to squeeze them into single-button navigation
- All project files are available on the creator's Ko-fi; one purchase gives access to all future updates
Quotes Worth Keeping
“
I have probably read close to a thousand pages on this thing by now, and I am still kind of in love with it.
“
It is not much bigger than an AirPods case, but somehow it gets you to read more again. And honestly, that is probably the most important part.