Free And Open E-Reader From The Ground Up

Although ebooks and e-readers have a number of benefits over reading an analog paper book as well as on more common electronic devices like tablets, most of them are locked behind proprietary systems like Kindle which make it difficult to take control over your electronic library. While there are a few off-brand e-readers that allow users to take a bit of control back and manually manage their files and libraries, there are few options for open-source solutions. This project aims to provide not only a free and open e-reader from the hardware to the software, but also a server to host a library as well.

The goal of most of the build is to keep everything as FLOSS as possible including the hardware, which is based on a Raspberry Pi compute module. The display comes from Good Display, which includes a built-in light and a touchscreen. There’s a lithium battery to power the tablet-like device with a number of support chips to charge it, handle the display, and interface with the Pi. On the software side, the system uses MuPDF which has support for most ebook file types while the server side is based on Calibre and the Open Publication Distribution System.

A subsection of the build log discusses a lot of how the code works for those looking to build their own similar system based on this project. The project code is even hosted on GitLab, a more FLOSS-y version of GitHub. Free and open ebook readers have been a goal of a number of builders for some time now, as we’ve seen projects going back at least a few years now and others that hope to make the Kindle hardware a little more open instead.

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.

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”

E-Ink Photo Frame Is A Simple, Pleasing Design

Regular photo frames are good, but they tend to only display a single photo unless you pull them to bits and swap out what’s inside. [Ben] decided to make a digital photo frame using an e-ink display to change things up, and unlike some commercial versions we’ve seen, it’s actually pretty tasteful!

The build is based on a Nook Simple Touch Reader, which can be had pretty cheaply on the used market. It was chosen for the fact it runs Android, which makes it comparatively easy to hack and customize compared to some other e-readers on the market. Once it’s running a custom Android brew, it can be set to run an app called Electric Sign which simply shows a given website fullscreen and updates it at regular intervals. That turns the Nook into a remotely updateable photo frame in one fell swoop. From there, it just took a little trickery to access an iCloud album to update the frame with fresh pics. Then [Ben] just had to customize a nice photo frame to neatly mount the e-reader with room for the cable to subtly snake out the back.

It’s a simple build that relies on some existing tools already laying around the Internet. That’s nice, because it makes it easy for anyone to replicate themselves at home given the same materials. We’ve seen some other great digital photo frames before, too. If you’ve built your own neat and creative way to display your pics, don’t hesitate to drop us a line!

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”

A brown, wooden picture frame with a white matte holds a slightly pixelated photo of gaming miniatures. It is sitting on a wooden table.

A Colorful Take On The E-Ink Photo Frame

Everyone loves sharing photos, and with most pictures being taken on smartphones now, digital frames are more convenient than finding a photo printer. [Wolfgang Ziegler] used an e-ink screen to create a colorful digital picture frame.

Starting with a seven color e-ink HAT he’d forgotten he had, a spare Pi Zero, and analog photo frame, he pieced the parts together into a pretty slick, sunlight readable photo frame. [Ziegler] details how he set up the frame to display new images using the Pimoroni inky library. He set a fifteen minute refresh interval since the color e-ink display takes 30 seconds to refresh to keep it from looking weird too often.

With the holidays coming up, this might make a perfect gift for family that wants to see the latest from your travels without blasting it to the whole internet. We’ve covered a few different options from a lightweight ESP8266 build, to this one that can rotate, and even issues with some of the commercial options.

Building A Weather Display In Rust

We’ve seen a lot of weather displays over the years, and plenty of the more modern ones have been using some form of electronic paper. So what makes this particular build from [Harry Stern] different? The fact that the firmware running on the ESP32 microcontroller at its heart was developed in Rust.

The weather station itself is capable of operating for several months on its rechargeable NiMH battery bank. The Rust section of the project is in two parts, the first of which runs on a server which downloads the weather data and aggregates it into an image. The second part runs on the ESP32 using esp-idf which configures peripherals, turns on and connects to Wi-Fi, retrieves the image from the server, displays the image and then puts the display to sleep. By doing the heavy lifting on the server, the display should be able to run for longer than it would if everything was happening on the ESP32.

The project code is available from this GitHub page which should allow even Rust beginners to follow along, and the case file is also available for those with a 3D printer. [Harry] has a few upgrades planned for future releases as well, including a snap-fit case, a custom PCB, and improved voltage regulator for better battery life, and enhanced error handling for the weather API. And Rust isn’t the only interesting part of this project, either. As prices for e-paper displays continue to fall, more and more of them are found in projects like weather stations and even complete laptops which use these displays exclusively.