This is the same e-ink device I believe that's in the Pimoroni Inky Impression.
I've written a Python program that anecdotally fixes the bias caused by the display for blues and greens, and dithers using an Atkinson dither. The code is based on some older Java implementation I wrote, but if you are considering a port to C
this is more succinct (entry point diffuse_image()):
The fix is to define the ink's blue as a slightly different hue than the device specifications, which tends to over emphasise it - improving it - when it comes to shades like sky blue (which the display can't achieve).
So instead of (perhaps) being quantised to green, which is closer colour match for the actual real hue, more blue is shown instead. Whilst this is incorrect for photographic colour accuracy, if you don't know what the original photo looks like it appears to be correct and better than the colour that is typically chosen (green).
Thanks for sharing! Atkinson dithering is a great choice for these panels. What the result lacks in detail it gains in contrast, and since e-ink panels don't have the greatest contrast ratios it's a good match.
Sierra dithering is a nice compromise between Atkinson and basic Floyd-Steinberg.
Wow! There's a dynamite product in here that pairs a daily nagging app and one of these displays so that people are reminded to take a new picture, ever day, and have it show up on someone's (or all subscribed) photo frame.
I'm thinking, like, "take a photo of the kids so it will show up on Grandma's frame" kind of functionality. Though, obviously, it would also be used for porn, so there's a market there, too.
Anyway, very good DIY proof of concept. I hope it's productized with some of the more recent E-Ink updates soon!
It's black-and-white, but dithering allows to show surprising detail and it brings its very own old-school aesthetic.
The API doesn't require any special knowledge about e-paper displays, it just expects an image URL in the correct resolution and will then render it to the display.
An app can be made public, such that other people who own the display can install it as well.
If you are interested in building an app, contact me at info@invisible-computers.com for a developer account :)
If the grandparents enjoy getting physical mail and like hard copy photos to have around the house, then https://nanagram.co is a good option[1] You just text in your photos and they printed and shipped once a month. We use it for my mom to send baby photos and she loves it.
[1] Full disclosure: my older brother built this service, but I don’t have an affiliation other than being a proud brother and happy customer.
We don't have anything to nag us, but the grandparents and aunts and uncles all have Nixplay[0] frames that we regularly update with photos of the kids.
I bought one for India. My parents don't have a wifi but they have a smart phone with a data plan. Hoping they will be able to enable access point on their phone to sync photos.
Honestly I considered trying to hack one but just never managed to put it on the schedule. Early models had some quirks but now they're reliable enough that I haven't found any pain points that would compel me to open one up so if I ever get around to it it'll be just for funsies.
If you're pushing to fewer than 5 frames per account then their free tier works fine. They used to cap the free tier to 1000 photos (we just deleted older photos to keep the collection fresh) but now the free tier supports unlimited photos. I'm sure some day they'll go bust or get bought and it'll stop working but I feel like we've already gotten our money's worth out of it.
this won't be a popular suggestion but it works for us: We got the grandparents Nest Home Hub display. It's LCD and there's a switch to disable mic and camera but it works really well for photo sharing.
How is the battery life on the Pimoroni? I've used RPi Picos before, and I love working with them, but IIRC they are comparatively power-hungry, even in deep sleep.
Power consumption of the Inky Frames in deep sleep is minimal as power to the Pico is cut completely. An RTC is kept powered to wake up the Pico on a schedule, or pressing any button will wake up the board too.
Haven’t tested this particular one but using the badger eink display has been a blast. Super low power — you can run that one off of a lithium coin cell battery. You can control when it wakes. I presume this one will draw more with a larger color screen and wireless, but again you can control when and how it wakes to balance power draw vs. more frequent updates.
The frustrating twist is that - under the hood - this screen is CMYK. There’s a magenta “ink”, which would fill out a huge gap in the colour gamut, that we can’t even use. The same applies to cyan. Both colours are fundamental to the display tech and yet poorly represented in the very boring 7-colour palette.
It’s a valid question because colors from an emitting light source use RGB whereas reflective would make sense to use CMYK. As a practical example a 4 color CMYK eink display may look better than or at least equal to the 7 color display above.
I've done the same and I'd say that it didn't produce a great result. I did it for my father as a gift and while I liked the project because of the novelty of 7 color eInk tech, the image was low res, dithered, and tinted yellow. My father was grateful but he probably would've liked a normal LCD display lol
I think it's nice. It's about the same form factor as the existing paper-holders it replaces and in this context the wood border is aesthetic and clutter-reducing.
My work went with LCDs which don't match the calm wood and earth colors decor of our meeting and privacy rooms.
Not that you asked, but what I'd tweak would be a way to run the cable back into the wall.
I think the world of homebrow eInk devices is set to take off.
The problem right now is that while the screens have come down in price considerably, the driver hardware remains expensive and proprietary. If you want to build something for cheap, you'll be designing the PCB from scratch (as this author did).
Enter EPDIY, which brings wide support to a variety of screens using commodity hardware. It's still under development, but it's looking really promising: https://github.com/vroland/epdiy
following this project for a while. Though I dabble in computers for quite a while now, going the whole order-your-own-pcb-and-then-solder-some-more route is quite jump for me. I think there's more people like me.
Would really hope some integrators can do this en masse and charge a normal fee for their trouble and provide me with a hackable EPDIY without the hassle.
Didnt get a chance to write an article about it. My original goal was to create a bunch of these (30x40 units) and hang them up on a wall like a large tile screen.
A controller would update this tiled wall dynamically.
Also the look of the frames were intended to disguise as regular photo frames.
I wonder if we’ll ever see significant improvements in e-ink contrast, which is still very poor. There hasn’t been much progress over the last decade. I’d love to have laser-printer-level e-ink.
For sure, my biggest question is if there are even any theoretical ideas about how to achieve it.
Color is currently dark and so faded-looking, and even the "whites" are so muddy gray, because of the color filter technology. You can improve the number of intermediate color levels and improve the refresh rate, but the contrast and darkness is just an inherent limitation of putting color filters on top of what is otherwise just a regular monochrome e-ink display.
Achieving true CMYK color would require each capsule to contain not just two pigments (white and black) but five (white, black, cyan, magenta, yellow). Two pigments we can do because there exist two electric charges -- the white pigment is charged positive and the black is negative.
But is there any kind of theoretical technology that could toggle five sets of pigments between the top and bottom of each capsule? And indeed, do so in "subcapsules" at a small enough scale to enable perceptual color mixing, the way subcapsules do for levels of gray now?
The only thing I could imagine is if instead of using pigments inside of capsules, we used actual microscopic physical cubes, since their 6 sides would allow for 5 colors. But how you could assemble and electromagnetically control microscopic cubes 180° along two axes of movement that were suspended in some way... I can't even imagine.
There are multi-pigment color e-ink displays that don't use a filter array. E-Ink's ACeP range uses four pigments (CMY+white). The white pigments are reflective, the others are transparent, and you basically sort of sort/stack them with different drive voltages, combining different pigments above white while leaving others below the white layer.
I think OP is dissatisfied even with greyscale e-ink panels, though.
I didn't even know there are decent e-ink colour displays available. I have to admit that I've been wanting to do something similar for a while, but I've always been too lazy to start, so kudos from me for that project!
I love e-ink in general, it's a shame that it's still so rarely used. My fossil hybrid hr watch uses it, for example, but though the watch itself is incredible, the app is pure garbage. If that weren't the case, I'd recommend it to everyone.
I wonder if there aren't a lot more cases like that, where it seems like costumers don't like the technology, even though they mainly resent the paired implementation of the big players who thought that the technology alone was enough of a selling point, and therefore neglected the software.
> I didn't even know there are decent e-ink colour displays available.
There's a few gotchas here. A lot of those color e-ink displays don't work like a LCD does, where you have R/G/B subpixels per pixel and get to mix final colors out of different intensities. Instead, a "7 color display" really means each pixel can only be one of 7 pixels.
Another gotcha is that in some implementations, the screen refresh will go color by color, so for multi-color content, the refresh time is quite long (as in, you don't have a pixel flipping to blue and another flipping to red concurrently).
This is just to manage expectations -- the result is still very cool.
Panels like this have been available on Waveshare for a while. They are fairly inexpensive (sub $100 range) but the refresh time is super slow. For example:
You can also order many of the same panels directly from the online store of the E-ink company BTW. Not that the prices there are very nice. But it's useful to look up parts and then search for other distributors.
If anyone wants to make a similar project, there is a great Rust API to most of the Waveshare displays[0] (I added support for the display mentioned in the article, 5in65f).
I also made a project[1] with it that generates art using a gameboy emulator and some static images and other transforms to show on the display.
"... With only 7 colors and a refresh time of about a minute ..."
Ouch, even worse than expected. The project is interesting, but I'm totally unimpressed by these numbers; I wouldn't pay a premium for a sub par display that is slow as a dead sloth. A traditional LED screen plus some tricks to save power would make a much better picture frame IMO. I would for example use a PIR/microwave sensor (they're cheap!) to detect when someone is approaching or stationing near the picture frame to bring the CPU back from sleep and turn on the display and backlight. It would never reach the same almost zero current draw of a epaper screen, but the quality gain paired with the lower cost would probably make it a viable alternative.
It seems the state of the art for color e-ink is at the level LCDs were in the eighties, perhaps nineties for b&w e-ink.
You'd think the company holding the patents has little incentives to push the tech forward at a faster pace, given the slow advances seen in the last decade and a half.
> You'd think the company holding the patents has little incentives to push the tech forward at a faster pace, given the slow advances seen in the last decade and a half.
Laws of physics don't change. Patents aren't the problem.
For a minute i had my hopes up there! I actually tried to build a wall of those and a motion activated picture wall for me and my fiance in order to have a wall of living memories.
The problem i ran into is that you simply cant get them in decent sizes, or with a satisfying enough resolution.
Hard to set a price without knowing the details (screen size, UX, etc). Roughly, for a well reviewed product like this, I’d be willing to pay something in the iPad mini - iPad pro range.
Repurposing here would mean regular screen, i.e. not eink; I’m not interested in that.
You can probably adapt the code to drive this display, and it displays an image from a remote server, so all you need is an HTTP server and you can easily display whatever you want.
A small trick I learned from his power supply: using a P-channel MOSFET with the gate tied to ground for reverse-polarity protection. Presumably much less voltage drop than a diode.
long answer: while solar is actually the best indoor energy harvesting solution its still in nA land. This uses 56µA for the DCDC alone. that means you would need at least 1mA for maybe an hour to just keep that going without any screen updates or communications.
A windowsill setup might work but thats hardly "indoor" to me.
This lasts 1 year on 2 AA rechargeables - just swap the batteries.
Oh cool. Reminds me of the Commodore 64 days; there was a floppy disk copy program that could run using the drive's controller. Since the floppy drive had its own power supply that meant you could actually turn the computer off and copy floppies. It was pretty pointless but just a cool trick.
Don't see the advantage of eInk for a digital photo frame. Presumably these stay in one spot and can be left plugged in? Would think that a bright LED display would give much better picture quality.
Personally I prefer using e-ink panels for my home DIY projects because I'm sensitive to light polution - I don't want half my home to constantly be glowing at me from every direction. E-ink panels are not emissive, so they don't have this problem.
I'm even pretty annoyed at spurious LEDs. I appreciate for example that Sonos speakers let you turn off their status LEDs. It just makes the ambiance calmer.
The exception is very interactive stuff like https://hackaday.io/project/190477-hyelicht where I used an LCD for the embedded touchscreen in the shelf, but powered down unless you touch it.
But you can put them in places in your home where it's not practical or aesthetic to run cabling to plug them in (e.g. fireplace mantel or hung up on a wall) and have a battery life that is measured in weeks or months rather than days.
You'd be right about the superior picture quality, though, but as the common use would be family photos that you see in passing to make you smile and may be quick snaps, the quality of e-ink is likely to be enough when it's a quick photo of your loved ones.
Some people do not like the idea of powering a device they are not actively using. If you are not watching the piece, a «bright LED display» seems like a waste of energy.
I've written a Python program that anecdotally fixes the bias caused by the display for blues and greens, and dithers using an Atkinson dither. The code is based on some older Java implementation I wrote, but if you are considering a port to C this is more succinct (entry point diffuse_image()):
https://github.com/KodeMunkie/inky-impression-slideshow/blob...
The fix is to define the ink's blue as a slightly different hue than the device specifications, which tends to over emphasise it - improving it - when it comes to shades like sky blue (which the display can't achieve). So instead of (perhaps) being quantised to green, which is closer colour match for the actual real hue, more blue is shown instead. Whilst this is incorrect for photographic colour accuracy, if you don't know what the original photo looks like it appears to be correct and better than the colour that is typically chosen (green).