This Box Displays Past Memories with a Raspberry Pi Zero W and E Ink Display
Look upon past events fondly by uploading tagged photos via an iPhone app to Mike Buss' IoT-enabled Memory Box.
Recollecting memories
The people, events, and things we have encountered throughout our lives tend to stick with us for a very long time, but occasionally, we could benefit from a small reminder. Starting late last year, software engineer Mike Busswanted to build his three year-old son a custom keepsake box that would store various items from this formative time in his life, and this shortly morphed into a much more involved "memory box" project. Beyond holding keepsakes, this box would function as a digital photo frame and bring up specially-tagged images based on the person scanning their finger.
The ESP32-based prototype
Since the box would need to be powered for long stretches of time, screens that consumed large amounts of energy or had a tendency to burn out were not ideal, which led Buss to picking an E Ink display module since it can continue showing an image even when the entire system is in a sleep mode. Taking the concept event further, he wanted a way to associate certain people with specific images as tags before showing an image containing them when their fingerprint is recognized. These exacting requirements meant the original plan of using an ESP32 +E Ink driver board was out of the question.
A Pivot to Raspberry Pi
This need for more computing power left Buss with a few options, and he eventually decided on the Raspberry Pi Zero W since it met the need for built-in WiFi, a powerful microprocessor, and plenty of storage options. Powering the screen and Pi Zero W is a PiSugar 3 module that has a large battery, onboard real-time clock, and plenty of sleep settings for energy conservation.
Building the box
Designed with the help of Fusion 360, Buss started the physical layout by modeling an existing keepsake box and removing a section of the lid for the screen to fit flush with the outside. Along with the E Ink display, the remaining electronics were nested into a custom 3D-printed housing on the inside of the lid and then securely hot glued into place.
Receiving and displaying images
Modern display technologies such as full-color LCDs and OLEDs are capable of displaying well over a million colors thanks to their red, green, and blue subpixels that can each be individually dimmed or brightened to show an image. E Ink, however, is more closely related to a monochrome LCD in that it relies on small capsules of fluid and changes in electric charge to make them visible (black or another color) or hidden (white). Buss' E Ink panel supported black, white, and red which made his image processing algorithm slightly more complex. Since an E INk "pixel" can only be on or off, dithering techniques are used to group areas of darker colors/shading as dense regions of active pixels. In this case, the Floyd Steinberg algorithm provided a good balance of colors for the black, white, and red regions.
The images themselves are uploaded to the Raspberry Pi Zero W with an iPhone app Buss wrote. It not only crops and previews the photo but also allows for tags to be applied based on contacts and other notes.
To see more about this Memory Box project and the future plans Buss has for it, you can read his project write-up here on his blog or watch his YouTube video.