An Open Firmware For LILYGO’s E-ink Smart Watch

The world’s first quartz wristwatches were miles ahead of electric and mechanical wristwatches by most standards of the time, their accuracy was unprecedented and the batteries typically lasted somewhere on the order of a year. Modern smart watches, at least in terms of battery life, have taken a step backwards — depending on use, some can require daily charging.

If you’re looking to bridge the gap between a day and a year, you might look into a smart watch with an e-ink display. One option is the ESP32-based LILYGO T-Wrist. Of course, it’s not a smart watch without some software to run on it, which is where qpaperOS comes in.

Developed by [qewer33], this open source firmware for the T-Wrist is designed to get the most out of the battery by updating only once per minute. With a 250 mAh battery, it should last about five days on a charge. Of course, with the power of the ESP32 comes a whole host of other features including GPS, a step counter, and a weather display, although since the firmware is still under development, some of these features have yet to be implemented.

With all of the code available, qpaperOS could make an excellent platform from which to build your own smart watch around. Or perhaps you could chip in and add some of the features on the whislity. The ESP32 is a capable and versatile chip, even capable of playing popular 8-bit video games, although we’re not sure this functionality would fit in a smart watch and preserve battery life at the same time.

Very Slow Movie Player Avoids E-Ink Ghosting With Machine Learning

[mat kelcey] was so impressed and inspired by the concept of a very slow movie player (which is the playing of a movie at a slow rate on a kind of DIY photo frame) that he created his own with a high-resolution e-ink display. It shows high definition frames from Alien (1979) at a rate of about one frame every 200 seconds, but a surprising amount of work went into getting a color film intended to look good on a movie screen also look good when displayed on black & white e-ink.

The usual way to display images on a screen that is limited to black or white pixels is dithering, or manipulating relative densities of white and black to give the impression of a much richer image than one might otherwise expect. By itself, a dithering algorithm isn’t a cure-all and [mat] does an excellent job of explaining why, complete with loads of visual examples.

One consideration is the e-ink display itself. With these displays, changing the screen contents is where all the work happens, and it can be a visually imperfect process when it does. A very slow movie player aims to present each frame as cleanly as possible in an artful and stylish way, so rewriting the entire screen for every frame would mean uglier transitions, and that just wouldn’t do.

Delivering good dithering results despite sudden contrast shifts, and with fewest changed pixels.

So the overall challenge [mat] faced was twofold: how to dither a frame in a way that looked great, but also tried to minimize the number of pixels changed from the previous frame? All of a sudden, he had an interesting problem to solve and chose to solve it in an interesting way: training a GAN to generate the dithers, aiming to balance best image quality with minimal pixel change from the previous frame. The results do a great job of delivering quality visuals even when there are sharp changes in scene contrast to deal with. Curious about the code? Here’s the GitHub repository.

Here’s the original Very Slow Movie Player that so inspired [mat], and here’s a color version that helps make every frame a work of art. And as for dithering? It’s been around for ages, but that doesn’t mean there aren’t new problems to solve in that space. For example, making dithering look good in the game Return of the Obra Dinn required a custom algorithm.

A wall mounted picture frame with an e-ink newspaper displayed.

A Wall Mounted Newspaper That’s Extra

E-Ink displays are becoming more ubiquitous and with their low power draw, high contrast and hackability, we see many projects use them in framed wall art, informational readouts and newspaper displays. [Sho] uses this idea to create a wall mounted newspaper packed full of features.

The back of a picture frame with the electronics for an e-ink newspaper display.

[Sho] describes using a 13.3 inch ED133UT2 1600×1200 E-Ink display with an ITE IT8951 electronic paper display (EPD) driver, controlled by an ESP32. An RV-3028-C7 real time clock (RTC) is used to keep time and to wake up the ESP32 and other devices for daily refreshes. A 3.7V 1100mAh LiPo battery provides power through an MT3608 boost converter module to provide the 5V needed, with the E-Ink display driver further isolated from the power behind a KY-019 5V relay module to avoid unnecessary power draw when not needed.

The backend software uses the OpenWeatherMap API to get daily weather reports and scrapes news websites which are then fed through an OpenAI ChatGPT API to provide summaries. [Sho] reports that text is formatted using a combination of LuaTeX, Ghostscript, ImageMagick and other scripts to format the eventual displayed graphics, including newspaper texture and randomely placed coffee stain effects.

Be sure to check out [Sho]’s project page for some more details. E-Ink displays are still a bit pricey but the effect is hard to beat and they make great options for projects like infinite generative landscapes or low power weather stations.

E-Paper Wall Paper

Just like the clock clock of old, there’s something magical about a giant wall of smaller pieces working together to make a larger version of that thing. The E-Paper Wall 2.0 by [Aaron Christophel] is no exception as it has now upgraded from 2.9″ to 7.4″ screens.

On the 1.0 version, the bezels made it harder to make out the image. The larger screens still have bezels but the larger screen area makes it much easier to make out the image. 3D-printed clips hold the displays onto a plywood backer. We can marvel that e-ink price tags brought the price of e-ink down so that building a wall is still expensive but not eye-wateringly so. The 5×9 array likely uses a module sold on DigiKey for $47 each.

So aside from being willing to drop some money on a custom piece of art, what’s special about this? The real magic comes with the firmware and tooling that [Aaron] developed to flash custom firmware onto each of the 45 displays. A 100MHz ZBS243/SEM9110 8051-based controller lives inside each display and [Aaron] even has a Ghidra plugin to reverse-engineer the existing firmware. It only has 64kb of flash onboard, so [Aaron] devised a clever compression technique that enabled him to store complex images on the displays. A 3D-printed jig with pogo pins means flashing them doesn’t require soldering pins or headers, just drop it on and flash it with an Arduino with a helpful library [Aaron] wrote. A central station communicates with the various displays over ZigBee to send image updates.

The 8051 has a funny way of showing up in projects like this portable soldering iron or the TV Guardian. In many ways, it is a boon for us hackers as it makes it easier to reverse engineer and write new custom firmware when so many devices use the same architecture.

Continue reading “E-Paper Wall Paper”

Large E-Paper Slow Movie Player Offers Great Docs

Over the last couple of years we’ve seen several iterations of the “slow movie player” concept, where a film is broken up into individual frames which are displayed on an e-paper display for a few minutes at a time. This turns your favorite movie into a constantly changing piece of long-term art. Unfortunately, due to the relatively high cost of e-paper panels, most of the examples we’ve seen have only been a few inches across.

Of course, technology tends to get cheaper with time, which has allowed [szantaii] to put together this beautiful 10.3-inch version. With a 1872 × 1404 Waveshare panel capable of displaying 16 shades of gray and a Raspberry Pi Zero 2 W installed in a commercially purchased frame, the final product looks very professional. It certainly wouldn’t look out of place in a well-appointed living room.

It’s not just a large display that sets this project apart. [szantaii] has done a phenomenal job documenting both the hardware and software of this project, which includes the “Slow Movie Player service” Python software he’s written. Even if you aren’t using an identical hardware setup, his MIT-licensed code will absolutely get you going in the right direction.

We especially liked the several example configurations provided, as well as the explanation of how ImageMagick’s various grayscale conversion options impact the appearance of the final image.

All in all, this is not only a beautiful and well implemented version of the slow movie player concept — but it’s also the kind of project that helps elevate the entire community thanks to its transparency. We wouldn’t be surprised to see this latest iteration inspire more folks to pick up an e-paper panel and build one of their own. Could 2023 be the year of the slow movie player? We certainly hope so.

Low-Power Wi-Fi Includes E-Paper Display

Designing devices that can operate in remote environments on battery power is often challenging, especially if the devices need to last a long time between charges or battery swaps. Thankfully there are some things available that make these tasks a little easier, such as e-ink or e-paper displays which only use power when making changes to the display. That doesn’t solve all of the challenges of low-power devices, but [Albertas] shows us a few other tricks with this development board.

The platform is designed around an e-paper display and is meant to be used in places where something like sensor data needs to not only be collected, but also displayed. It also uses the ESP32C3 microcontroller as a platform which is well-known for its low power capabilities, and additionally has an on-board temperature and humidity sensor. With Bluetooth included as well, the tiny device can connect to plenty of wireless networks while consuming a remarkably low 34 µA in standby.

With a platform like this that can use extremely low power when not taking measurements, a battery charge can last a surprisingly long time. And, since it is based on common components, adding even a slightly larger battery would not be too difficult and could greatly extend this capability as well. But, we have seen similar builds running on nothing more than a coin cell, so doing so might only be necessary in the most extreme of situations.

PCB mounted on 3D-printed holder, debug pins attached to Pi Pico on a breadboard. The battery is in the background, disconnected

Reverse Engineering E-Ink Price Tags

E-ink displays are great, but working with them can still be a bit tricky if you aren’t an OEM. [Jasper Devreker] got his hands on three e-ink shelf displays to reverse engineer.

After cracking the tag open, [Devreker] found a CC2510 microcontroller running the show. While the spec sheet shows a debug mode, this particular device has been debug locked making reading the device’s code problematic. Undaunted, he removed the decoupling capacitor from the DCOUPL pin and placed a MOSFET between it and the ground pin to perform a voltage glitch attack.

A Pi Pico was used to operate the MOSFET over PIO with the chip overclocked to 250 MHz to increase the precision and duration of the glitch. After some testing, a successful glitch pathway was found, but with only a 5% success rate. With two successive glitches in a row needed to read out a byte from the device, the process is not a fast one. Data pulled so far has shown to be valid code when fed into Ghidra, and this project page is being updated as progress continues.

If you want to delve further into hacking e-ink price tags, checkout this deep dive on the topic or this Universal E-paper Sniffer.