Clever E-Ink Driver Does 32 Levels Of Grey, Avoids Update Flicker, And More

There’s a lot to like about E-Ink displays, and you might be about to like them even more with [antirez]’s MicroPython driver for the Badger 2040 (or any display based on the UC8151 / IL0373) because it brings all kinds of useful features to your next project.

E-Ink displays are great. They are high contrast, daylight-readable, and require zero power to maintain a displayed image. But a few things come with the territory: displays have slow refresh rates compared to other display types, expect flickering during screen changes, and the displays are monochrome. [Antirez]’s new driver not only provides a MicroPython interface but goes in some fantastic directions that challenge those usual drawbacks.

Probably the most striking is the ability to display greyscale images without relying on dithering, which means the results avoid the charmingly gritty look of old-school dithering. Dithering has its place, but it’s not always the best choice, so options are great.

Similarly, display flicker may be a small price to pay for some, but if the obvious flicker is too boorish and crude-looking one can use an anti-flicker refresh mode that greatly limits flickering at the cost of update speed. Over time some image ghosting will accumulate which necessitates an occasional whole-screen refresh, but the effect is overall much nicer when updating something like a clock face.

How is this all done? It turns out that the controller chips for these displays are highly configurable, and it’s possible to do much more than simply drive the display in known-good and completely approved modes. It’s also entirely possible to permanently damage one’s display by doing so. Part of what makes [antirez]’s work so appealing is that he has already done the work finding workable configurations.

His driver is designed using computed LUTs (look-up tables) that make using and exploring alternative refresh modes easy and efficient, invaluable for exploring the capabilities of a patented, poorly documented technology like E-Paper displays.

We’ve seen the Badger 2040 E-Ink display in a teapot timer and a custom macropad, and [antirez]’s uc8151_micropython project is a fantastic step forward. And don’t miss another of [antirez]’s clever microcontroller hacks: playing audio without a DAC.

ESP32 Weather Station Looks Great With Color E-Paper Display

[educ8s.tv] has built weather stations before, but his latest is his best yet. It’s all thanks to its low-power design, enabled by its e-paper display.

The build is based around an ESP32 microcontroller, combined with a BMP180 sensor for measuring barometric pressure, and a DHT22 sensor for measuring temperature and humidity. By taking these values and feeding them into the Zambretti algorithm, it’s possible to generate a rudimentary weather forecast.

The weather station looks particularly impressive thanks to its six-color e-paper display. It’s brightly colored and easy to read, and displays graphs of temperature, pressure, and humidity over time. Plus, by virtue of the fact that it only draws power when updating, it allows the project to last a long time running solely on battery power.

As far as DIY weather stations go, this is an attractive and clean design that offers plenty of useful data to the user. We’ve seen some other neat builds in this vein before, too.

Continue reading “ESP32 Weather Station Looks Great With Color E-Paper Display”

Custom Multi-Segment E-Ink Displays From Design To Driving

With multi-segment displays, what you see available online is pretty much what you get. LEDs, LCDs, VFDs; if you want to keep your BOM at a reasonable price, you’ve pretty much got to settle for whatever some designer thinks looks good. And if the manufacturer’s aesthetic doesn’t match yours, it’s tough luck for you.

Maybe not though. [upir] has a thing for custom displays, leading him to explore custom-made e-ink displays. The displays are made by a company called Ynvisible, and while they’re not exactly giving away the unique-looking flexible displays, they seem pretty reasonably priced. Since the displays are made with a screen printing process, most of the video below concerns getting [upir]’s preferred design into files suitable for printing. He uses Adobe Illustrator for that job, turning multi-segment design ideas by YouTuber [Posy] into chunky displays. There are some design restrictions, of course, chief of which is spacing between segments. [upir] shows off some Illustrator-fu that helps automate that process, as well as a host of general vector graphics design tips and tricks.

After sending off the design files to Ynvisible and getting the flexible displays back, [upir] walks us through the details of driving them. It’s not as simple as you’d think, at least in the Arduino world; the segments need +1.5 volts with reference to the common connection to turn on, and -1.5 volts to turn off. His clever solution is to use an Arduino Uno R4 and take advantage of the onboard DAC. To turn on a segment, he connects a segment to a GPIO pin set high while sending 3.5 volts out of the DAC output into the display’s common connection. The difference between the two pins is 1.5 volts, turning the segment on. To turn it off, he drops the DAC output to 1.5 volts and drives the common GPIO pin low. Pretty clever, and no extra circuitry is required.

This isn’t the first time we’ve seen [upir] trying to jazz things up in the display department. He’s played with masking LED matrix displays with SMD stencils before, and figured out how to send custom fonts to 16×2 displays too.

Continue reading “Custom Multi-Segment E-Ink Displays From Design To Driving”

Double-Dose Of AI Turns Daily Tasks Into Works Of Art

Not so long ago, “Magic Mirror” builds were all the rage, and we have to admit getting out daily reminders and newsfeeds on an LCD display sitting behind a partially reflective mirror is not without its charms. But styles ebb and flow, so we don’t see too many of those builds anymore. This e-ink daily calendar reminder hearkens back to those Magic Mirrors, only with a double twist of AI.

This project is the work of [Ilkka Turunen], and right up front we’ll say the results are just gorgeous. A lot of that has to do with the 10.3″ e-ink display used, but more with the creative use of not one but two machine learning systems. The first is ChatGPT, which [Ilkka] uses to parse the day’s online calendar entries and grab the most significant events to generate a prompt for DALL-E. The generated DALL-E prompt has specific instructions that guide the style of the image, which honestly is where most of the artistry lies. [Ilkka]’s aesthetic choices, like suggesting that the images look like a 19th-century lithograph or a satirical comic from a turn-of-the-(last)-century newspaper. The prompt is then sent off to DALL-E for rendering, and the resulting image is displayed.

It has to be said that the prompts that ChatGPT generates based on the combination of [Ilkka]’s aesthetic preferences and the random events of the day are strikingly complex. The chatbot really seems to be showing some imagination these days; DALL-E is no slouch either in turning those words into images.

Like the idea of an e-ink daily reminder but prefer a less artistic presentation? This should help.

Continue reading “Double-Dose Of AI Turns Daily Tasks Into Works Of Art”

E-Paper News Feed Illustrates The Headlines With AI-Generated Images

It’s hard to read the headlines today without feeling like the world couldn’t possibly get much worse. And then tomorrow rolls around, and a fresh set of headlines puts the lie to that thought. On a macro level, there’s not much that you can do about that, but on a personal level, illustrating your news feed with mostly wrong, AI-generated images might take the edge off things a little.

Let us explain. [Roy van der Veen] liked the idea of an e-paper display newsfeed, but the crushing weight of the headlines was a little too much to bear. To lighten things up, he decided to employ Stable Diffusion to illustrate his feed, displaying both the headline and a generated image on a 7.3″ Inky 7-color e-paper display. Every five hours, a script running on a Raspberry Pi Zero 2W fetches a headline from a random source — we’re pleased the list includes Hackaday — and composes a prompt for Stable Diffusion based on the headline, adding on a randomly selected prefix and suffix to spice things up. For example, a prompt might look like, “Gothic painting of (Driving a Motor with an Audio Amp Chip). Gloomy, dramatic, stunning, dreamy.” You can imagine the results.

We have to say, from the examples [Roy] shows, the idea pretty much works — sometimes the images are so far off the mark that just figuring out how Stable Diffusion came up with them is enough to soften the blow. We’d have preferred if the news of the floods in Libya had been buffered by a slightly less dismal scene, but finding out that what was thought to be a “ritual mass murder” was really only a yoga class was certainly heartening.

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.

RFID Emulator + E-paper Badge Can Be Programmed With Sound

In a way, an e-paper display makes an excellent foundation for a reprogrammable RFID card. The display only needs power during a refresh, and 125 kHz RFID tags are passive in the sense that the power for the RFID transaction comes from the reader itself. [Georgi Gerganov] has put those together in the GGtag, an open-source project for a 3.52″ e-paper badge with a trick or two up its sleeve.

One clever function is that it is programmable with sound, a feature built off another project of [Georgi]’s called ggwave, a data-to-sound (and vice-versa) framework that has been ported to just about every hardware platform one cares to imagine — including mobile phones — and can reliably send data through the air.

Transmitting data over sound is limited in throughput but has a number of advantages, not least of which is the huge range of compatible devices. There’s a web-based tool for programming the GGtag with sound available at ggtag.io that will give you a preview and let you hear how it works. The data encoding method gives transmissions a charming beep-boop quality that’s a bit reminiscent of an analog modem handshake. GGtag can also be programmed over USB serial, a faster (but somewhat less exciting) option.

The project’s GitHub repository contains GGtag’s code and technical details, and the CrowdSupply project is in the works for anyone who would prefer to buy one once they become available.