E-ink screens look like printed paper. They are easy to read in daylight, they do not glow and, most usefully, they keep showing the last image even when the power is cut. An ESP32 adds Wi-Fi, Bluetooth and enough memory to store pictures and run a small web server. Together they make some of the most practical and charming maker projects around.
Three kinds of ESP32 e-ink builds show the range of what is possible. One is a small collectible image viewer: a 1.54-inch e-ink panel on an ESP32 driver board that stores an entire collection of ten thousand small pixel-art images in its own flash, with a web page served by the board itself, so you type an image number on your phone and it appears on the screen. Another is a tiny quest console that pairs an ESP32, an e-ink panel and a rotary encoder for a pocket game. The third is a battery-powered colour e-ink wall panel that shows Home Assistant dashboards, built with ESPHome. This guide explains the common ideas behind them and how to build your own.
Why e-ink and the ESP32 fit together
E-ink only uses power when the picture changes. A board can wake up, fetch new data, update the screen and go back to deep sleep. The image stays. That is how battery-powered e-ink panels can last a long time between charges. One colour wall panel project reports around one and a half to two weeks per charge with wake-ups every fifteen minutes.
The ESP32 can also host its own Wi-Fi network and web page. That removes the need for an app or a cloud service. You connect your phone to the board, open a page and control it.
How the image viewer works in plain words
Each image in the collection is tiny, about 200 bytes in a packed binary form, so ten thousand of them take about two megabytes. That fits easily in the flash of many ESP32 boards.
The builder downloaded all the images once, stored them in flash with the firmware and wrote a web interface that runs on the ESP32. When you open the page and enter a number, the board finds that image in flash, draws it and sends it to the e-ink panel. Later versions added the option to upload your own photos, with a live preview of how they will look after dithering, which turns a full-colour photo into the black and white dots an e-ink screen can show. The finished tool was packaged so others can flash their own board from a single command.
The lesson: when your data is small and fixed, store it on the device. No server, no internet, nothing to break later.
How the quest console works
A rotary encoder is a knob that clicks as you turn it and can often be pressed like a button. The ESP32 reads those clicks as inputs, runs the game logic and draws the screen. E-ink updates slowly, so it suits turn-based games, menus, habit trackers and to-do lists better than fast action games. It is a good project for learning input handling, display drivers and simple user interface design.
How the wall dashboard works
ESPHome is a tool that builds ESP32 firmware from a short configuration file instead of hand-written code, and it connects naturally to Home Assistant. The wall panel uses ESPHome with custom power management. Dashboards are rendered on a server and sent to the panel as images, so the board itself does little work. Buttons flip between pages. A status light shows battery and charging state.
The lesson: let a bigger computer do the drawing, and let the e-ink board just show the result.
Parts for a first build
An ESP32 board. Some boards come with an e-ink connector or a panel already attached, which saves wiring.
An e-ink panel. Small black and white panels of around 1.5 to 2.9 inches are the easiest place to start. Colour panels exist but update more slowly and cost more.
An e-ink driver board if your panel and ESP32 board are separate.
Optional: a rotary encoder or a few buttons, a small lithium battery with a charging circuit and a case.
Building one step by step
Get the panel showing text. Use a well-known e-ink display library for the Arduino framework, or the e-paper support in ESPHome. Pick the exact driver for your panel model. This is the step that most often goes wrong.
Show a fixed image. Convert a small picture to the panel's format and draw it.
Add the web page. Set the ESP32 to run its own access point and serve a page with a form. When the form is submitted, draw the requested image or text.
Add sleep. If the device will run on a battery, put the ESP32 into deep sleep between updates.
Using an AI coding tool
E-ink drivers are fiddly, and this is where an AI code editor saves time. Tell it the exact panel model, its resolution and colours, the driver board and the pins. Ask it to write the smallest sketch that clears the screen and prints one word. If it fails, paste the serial output and a description of what the screen shows, such as stripes, half an image or nothing.
Next, ask the agent to write a small script on your computer that converts images to the panel's format, with dithering, and saves them as files the board can store. Then ask it to write the web server on the ESP32 that lists those files and draws the chosen one.
If you prefer ESPHome, ask the agent to write the configuration file for your panel and a page that shows a few Home Assistant values. Check its output against the ESPHome documentation for your panel, since configuration options change between versions.
Pitfalls
Wrong driver. Panels that look the same can need different driver settings. Find the exact model code on the panel's ribbon cable or label.
Ghosting. If old images leave faint shadows, the panel may need a full refresh now and then, not just partial updates.
Refresh speed. E-ink is slow, and colour e-ink is slower. Design your interface so the user does not wait for every button press.
Power draw during updates. Updating the panel draws more current than sleeping. Check that your battery and regulator can handle it.
Too much in flash. Large photos fill flash quickly. Keep images at the panel's real resolution and colour depth.
Variations
A daily calendar and weather panel that wakes once an hour.
A photo frame that rotates through family pictures uploaded from your phone.
A badge that shows your name and a QR code at events.
A token budget display that shows how much of your AI coding plan is left today.
A pocket notebook for short lists, using a knob for input.
The short version
An ESP32 and an e-ink panel make a screen that holds its image without power and a board that can serve its own web page. Small fixed data, such as a collection of tiny images, can live in the board's flash, while larger dashboards can be drawn on a server and sent as images. Get the exact panel driver right first, add the web page and sleep step by step and use an AI coding tool to write the driver test, the image converter and the web server, checking each against your real panel.
