Turn an old eReader into an Information Screen (Nook STR)


Here's a quick tutorial for turning an old Nook into a passive display. This is an update to my 2013 post

End Result

An eInk screen which displays the trains I can catch from my local station.

An eReader stuck to a wall by my front door.

It shows the next few available trains, and whether they're delayed. It also shows how long until the next local bus to the train station.

Updating the Nook

Before doing anything, manually update the Nook's firmware. You can download the latest version from Barnes and Nobel

Copy the .zip file to the root directory of your Nook via USB. Unplug the Nook and turn it off. After a few minutes, it should detect the file and perform the update.

Sadly, it's only Android 2.1 - and the TLS implementation is artificially restricted. More on that later!

It's worth deregistering your Nook and then resetting it. You have to press a few buttons to use the Nook without a B&N Account.

Rooting the Nook

Download Nook Manager (or compile it yourself from the open source code).

Unzip the file. It should just contain NookManager.img. Write the disk image to a microSD card. Follow the instructions on XDA Developers to root the device.

Changing the Launcher

I used ReLaunchX which is an eInk optimised Android launcher. Download the latest Android version from F-Droid.

With the Nook connected to your computer by USB, run:

adb install com.gacode.relaunchx_200105000.apk

That will install the launcher. When you hit the Nook's home button, you will be able to select it as the default launcher.

Electric Sign

Running a modern web browser on the Nook is close to impossible. So I recommend using Electric Sign. It's an open source Android app which periodically calls a URl, turns it into an image, and then uses it as the Nook's screensaver.

You can download the latest version from APKpure.

Again, install it using:

adb install Electric\ Sign_v1.0.3_apkpure.com.apk

Launch it from ReLaunchX and follow the setup screen. I set it to reload every 5 minutes from 7AM until 9pm.

TLS Woes!

Here's where life gets complicated. The World Wide Web is changing to become more secure. Sadly, this means older browsers simply cannot access modern web servers. Even though B&N have updated the Nook to use TLS 1.3 - it only works with their own servers. Trying to access modern https:// sites just won't work.

So, you will need to point Electric Sign to an unencrypted website.

Train API

UK trains have an open API, the snappily named Live Departure Boards Web Service (LDBWS). You need to register for an API key, which is pretty much instant.

There's a great PHP library for OpenLDBWS. You can also find libraries in most popular programming languages.

I created a quick little page which displays the trains that either my wife or I can catch to get to our jobs. When we're sat eating breakfast, we can see if our regular train is delayed.

Nook with a train display.

Bus

I have an Alexa skill to tell me the bus times - but listening is much slower than reading. So I also added bus times.

EInk screen showing bus and train times.

You can also see that I've only included trains we can actually catch. There's no point showing a train leaving in 5 minutes if it takes 10 minutes to walk to the station. The train API shows the departure time of delayed trains, so the code takes that into account.

Physical Install

I used a double-sided 3M sticky pad and plonked it on the wall. No fancy hooks, screws, or magnets. Just glue.

It's conveniently close to an electrical socket. But having a trailing wire looks messy. So we'll only plug it in when it needs a top up. I replaced the Nook battery a few years ago so it should last several days without a recharge.

Code

All the code - plus backups of the binaries - are available on GitLab.

What next?

I don't really care about the weather or the news, and there's limited screen space. But if you have any suggestions for what it could display, do let me know.

Hope you found that useful!


Share this post on…

16 thoughts on “Turn an old eReader into an Information Screen (Nook STR)”

  1. said on twitter.com:

    This is pretty cool. I’m wondering about the once-per-minute refresh though because my (flawed?) understanding of e-ink is that the most energy intensive thing is refreshing the screen. Do you think that its charge would last longer if screen refreshes were less frequent?

    Reply | Reply to original comment on twitter.com
  2. said on twitter.com:

    You might find it interesting (or not; this might not be unusual) that the main library at my university uses e-ink screens to manage library room bookings. You can see if a room is currently booked, and if it isn't booked you can reserve it for a period of time from the screen.


    Reply | Reply to original comment on twitter.com
  3. Look great!

    Not sure if your house knows when you're in it, but I guess you could avoid updating the display when you're not there. Or at times when you're unlikely to want to know the bus and train info you could replace it with weather forecast once per hour, or similar...

    Reply
  4. Lucien West says:

    I’m running something similar with a Raspi & NodeRed, but have found I need to amend the bus TFL api GET with an API key from TFL – otherwise the requests got blocked after 1000 updates.

    Reply
  5. Håvard says:

    Wanted to share mine: https://fluffyelephant.com/2015/12/reuse-my-ebook-reader/

    I’ve used an old Sony e-reader. It has a decent browser so made a simple html+javascript page that displays the weather and the subway times. Been chugging along now for 5 years, only issues I’ve run into have been the API I used for subway times getting shut down, so had to upgrade to a newer API. I use PHP to transform the data from the APIs.

    Reply
    1. jptiger says:

      This looks cool! I think Might have one of these lying around. Any instructions for getting it to function this way?

      Reply

What links here from around this blog?

What are your reckons?

All comments are moderated and may not be published immediately. Your email address will not be published.Allowed HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <p> <pre> <br> <img src="" alt="" title="" srcset="">