I believe in getting the most out of technology. Actually getting the most out of anything we have. It was time for a new bed in the master bedroom, so the guest bedroom got upgraded with our old bed. The old guest bed? Given away to a colleague who just moved to the area. My old iMac? Now a Linux box for various projects. And I recently cleaned out the attic, helping neighbors and friends upgrade their wireless network or set up a backup system using old kit that I no longer needed.
Over the past year, I have repeatedly eyed the old Kindles we had on our bookshelf. And though Amazon is a demonstrably garbage company, I still loved the aesthetic and design of my generation three Kindle. It had two physical buttons on both sides to page forward and page back in order to advance the next page like a lab rat hitting the lever for another food pellet, delivering literary delight to me on my endless days on the road for work. And it was all contained in a svelte package with a leather cover that felt like an actual book.
In contrast, the paper white model is just awful. Yeah, backlight. Wonderful. One that you can’t turn off. But the true sin is the lack of any physical buttons. What sadistic monster thought that a touch screen was a good interface on a device with an e-ink display whose refresh time is measured in seconds? The device is PAINFUL to use. Of course you can work around some of it by loading books via the website and avoiding the UI as much as possible. But just turning the pages is annoying since you have to tap the screen like your poking the thing to wake it up. Considering how long a page turn takes, maybe that IS what you’re doing. The whole thing screams, “hey look at me, I was designed by a committee of marketing executives who never even read a real book.” Pair it with its rubber boot that has a patina of leather which they call a cover and the overall feeling in your hand is just absolute junk. Of course I should qualify this rant with stating that I am not a professional industrial designer or UX expert. But neither were any of the people who worked on the new Kindle, by the looks of things.
Given how well our old Kindles served us, especially over countless thousands of miles of business trips and vacations, it seemed fitting to bring them back to life. But the batteries were simply exhausted, so I was not sure what use I could make out of an e-ink display. Thankfully the internet pulled through.
The idea was to display a snippet of literature that contained a reference to a time of day. Gather enough of these, then you can display a page per minute of the day as a clock that automatically flips to a new quote as the day marches on. Since the Kindle is just a Linux machine, the idea is pretty simple.
- Generate images of all of the text snippets you want to display
- Jailbreak the Kindle
- Load the images
- Create a script to update the display with the images
- Create a cron job to run the script every minute
I will let his very well written article speak for itself. It links out to all of the resources you need. But I will point out a few things that I learned from my experience that you might find helpful.
The USB Network hack allows the device to show up as a USB network device when you plug it into your computer via USB. Installing is simple, but using it was not immediately clear to me. By re-reading the readme file I learned that I needed to:
- Install it on the Kindle. Okay, yeah that was clear.
- Connect the Kindle to the computer via USB.
- Eject the Kindle as a mounted disk from the computer.
- Press the Del button on the Kindle keyboard to start the search.
- Enter ;debugOn in the search field and press Return to start the debug mode to allow you to issue system commands.
- Enter `usbNetwork (gen 2) or ~usbNetwork (gen 3) in the search field and press Return to start the USB Network service. The Kindle should then appear as a network device in System Preferences on the computer.
- Enter ;debugOff to turn off debug mode so you can use the Kindle normally.
Once USB Network is running, you can SSH into the Kindle. Follow the instructions that Jaal links to to determine your Kindle’s root password.
However what was not immediately clear to me was that the IP address shown for the device in the Network panel is not the IP address you need to SSH into. The one shown is the host of the USB Network service. The Kindle itself has a different IP address. By default the host is 192.168.2.1 and the Kindle is 192.168.2.2. So if you didn’t change anything in your settings you will need to ssh email@example.com in order to connect.
These IP addresses can be updated in usbnet/etc/config. This is all detailed in the README_FIRST.txt file, of the USB Network hack, but it isn’t really written in a way to allow you to get up and running quickly.
Jaal’s script calls for Python, but I didn’t really find it necessary. He only uses it to randomly choose an image if there is more than one image for the time of day. Also it seems that our really old Kindle models didn’t have Python installed anyway.
My solution is not fully random and is an ugly hack, but it saved me the trouble of installing Python and that was to just grab the last digit of the the milliseconds on the clock as a random number. I could probably have used od on /dev/random, but this was the first thing that I thought of for some reason.
As mentioned, the quote themselves are images. One set of images with just the quote, the other set with the quote and source when you click a button to show it. I thought that I would like to expand the list of quotes from literary to music sources as well, so I gather some quotes in the same format as the script Jaal provided and added them to the Kindle. I also decided that I always want to see the quote source. I could have modified the script again, but I just dumped the same files in both directories.
In the end I got both my gen three and Elise’s gen two working. I bought an angled micro USB cable that feed through a wooden stand a friend of my made for me out of some local cherry, and I plugged it into a switched outlet that controls the lights in the living room. This way, it is powered when we are in the room, but isn’t constantly connected to power.
It’s a great project for a Saturday afternoon that ends in an interesting conversation starter that can stand random handsomely on your bookcase.
As long as it is an old Kindle. The new ones look like garbage.