A couple of months ago, I accidentally stepped on my Kindle Voyage E-reader and cracked the screen on the edge. The E ink display itself was working fine, but the touchscreen stopped functioning, which made it impossible to control. What can we do with such a device before adding it to the pile of E-waste?

Repurpose a broken Kindle as a photo frame, showing a picture of the village Spakenburg. Repurpose a broken Kindle as a photo frame, showing a picture of the village Spakenburg.

Jailbreak

Fortunately, there is a jailbreak community around Amazon Kindle devices which allows you to run any type of arbitrary software. This enables us for example to play chess on a Kindle or add EPUB support. Jailbreaks are currently only possible if you are using an older, vulnerable version of the Kindle operating system. As I had never connected my Kindle to Wi-Fi (it is a book, why should it be connected?), it was still running a version that was possible to jailbreak. So on a spare evening, I connected the digitizer of another working Kindle to the broken one, jailbroke it and connected it to my Wi-Fi. This enabled me to SSH into the broken Kindle and interact with it again!

So far, so good. Owning a nice low power device with high resolution E ink display that runs any software. Some projects for jailbroken Kindles are very interesting, such as repurposing a Kindle as a dashboard that shows the weather report and the latest news. However, as I would wish to have fewer distractions in my life, I thought it would be really cool to use it as a digital photo frame. Stumbled upon this project that loads a PNG from an external server and shows it on the display on predefined intervals.

Fetching Synology Photos

Just showing photos on a Kindle is not that user-friendly, as the images need to be processed, uploaded and opened manually. Since I am already storing all my photos on a Synology NAS, I wanted it to be a set-and-forget solution and automatically pick photos from a designated album.

I created an album especially for this project and shared it publically with a link. Then I wrote a shell script that parses the internal API from Synology Photos and downloads a random image from that particular album. This image is processed on the device, converted to grayscale with dithering using the convert binary and rendered on the display. A simple cache makes sure that images that already have been displayed, are not downloaded and processed again.

Battery life

What I really like about pascalw’s implementation is that it is suspending the device to RAM and using the Real Time Clock Alarm to wake it on a predefined moment. Therefore, it is able to get to sleep and disconnect from the Wi-Fi completely, which should keep it running for eight weeks on a single charge, according to Amazon.

Now that I have been using it for a couple of months, I can say that by updating the picture every morning at 6 AM, the battery life seems to last over a month easily.

Conclusion

I was really surprised to see what such an old (2014) and low power device is capable of doing, even the wget library seems up-to-date with the latest SSL standards. When I started this project, I expected to do all the processing on an external server in order to work around the limiting capabilities of the Kindle. I planned to write some Python to retrieve the image and parse the API from Synology, but I managed to do all that was needed in pure Bash.

Secondly, I am surprised by the power efficiency of these devices. Keeping it in standby and connecting it to the Wi-Fi once in a while would drain the battery much quicker. Due to the possibility of suspending it to RAM combined with the RTC wake is perfect. I can even refresh the picture manually by pressing the power button, which generates an interrupt, wakes the devices, fetches a new photo and puts it back to sleep again!

The image quality, however, is mediocre. It really depends on the image. In my experience, images with high contrast and non-detailed scenes are best suited for E ink displays. As I am manually selecting images for the photo frame, I am also taking this into account. This also accounts for the orientation, so that it is only showing photos that are taken in landscape.

Refresh of the photo, which happens every morning at 6 AM.

All in all, I think it is a really nice use case for of a broken Amazon Kindle, that would be worthless otherwise. Waking up with the surprise of a forgotten photo from a holiday two years ago is much more fun than an old-fashioned printed photo that never amazes you again.

Part list

Part Price Origin
Jailbreakable Kindle €35,- Ebay Kleinanzeigen
Mat €10,- At my local picture frame shop
Photo frame €3,- Jysk
90-degrees micro-USB connector €3,- AliExpress

The code can be found at github.com/landgenoot/kindle-synology-photos-photoframe.

Construction adhesive is used to glue it all together. Could look nicer, but I am lacking a workspace and proper tools at the moment. Construction adhesive is used to glue it all together. Could look nicer, but I am lacking a workspace and proper tools at the moment.

The 90-degrees connector from AliExpress to charge it without taking it out of the frame. The 90-degrees connector from AliExpress to charge it without taking it out of the frame.