Joachim Breitner

Using my Kobo eBook reader as an external eInk monitor

Published 2014-09-21 in sections Digital World, English.

I have an office with a nice large window, but more often than not I have to close the shades to be able to see something on my screen. Even worse: There were so many nice and sunny days where I would have loved to take my laptop outside and work there, but it (a Thinkpad T430s) is simply not usable in bright sun. I have seen those nice eInk based eBook readers, who are clearer the brighter they are. That’s what I want for my laptop, and I am willing to sacrifice color and a bit of usability due to latency for being able to work in the bright daylight!

So while I was in Portland for DebConf14 (where I guess I felt a bit more like tinkering than otherwise) I bought a Kobo Aura HD. I chose this device because it has a resolution similar to my laptop (1440×1080) and I have seen reports from people running their own software on it, including completely separate systems such as Debian or Android.

This week, I was able to play around with it. It was indeed simple to tinker with: You can simply copy a tarball to it which is then extracted over the root file system. There are plenty of instructions online, but I found it easier to take them as inspiration and do it my way – with basic Linux knowledge that’s possible. This way, I extended the system boot script with a hook to a file on the internal SD card, and this file then runs the telnetd daemon that comes with the device’s busybox installation. Then I just have to make the device go online and telnet onto it. From there it is a pretty normal Linux system, albeit without an X server, using the framebuffer directly.

I even found an existing project providing a VNC client implementation for this and other devices, and pretty soon I could see my laptop screen on the Kobo. Black and white worked fine, but colors and greyscales, including all anti-aliased fonts, were quite broken. After some analysis I concluded that it was confusing the bit pattern of the pixels. Luckily kvncclient shares that code with koreader, which worked fine on my device, so I could copy some files and settings from there et voilá: I now have an eInk monitor for my laptop. As a matter of fact, I am writing this text with my Kobo sitting on top of the folded-back laptop screen!

I did some minor adjustments to my laptop:

  • I changed the screen size to match the Kobo’s resolution. Using xrandr’s --panning option this is possible even though my real screen is only 900 pixels high.
  • I disabled the cursor-blink where possible. In general, screen updates should be avoided, so I hide my taffybar (which has a CPU usage monitor) and text is best written at the very end of the line (and not before a, say, </p>).
  • My terminal windows are now black-on-white.
  • I had to increase my font-size a bit (the kobo has quite a high DPI), and color is not helpful (so :set syntax=off in vim).

All this is still very manual (going online with the kobo, finding its IP address, logging in via telnet, killing the Kobo's normal main program, starting x11vnc, finding my ip address, starting the vnc client, doing the adjustments mentioned above), so I need to automate it a bit. Unfortunately, there is no canonical way to extend the Kobo by your own application: The Kobo developers made their device quite open, but stopped short from actually encouraging extensions, so people have created many weird ways to start programs on the Kobo – dedicated start menus, background programs observing when the regular Kobo app opens a specific file, complete replacements for the system. I am considering to simply run an SSH server on the device and drive the whole process from the laptop. I’ll keep you up-to-date.

A dream for the future would be to turn the kobo into a USB monitor and simply connect it to any computer, where it then shows up as a new external monitor. I wonder if there is a standard for USB monitors, and if it is simple enough (but I doubt it).

A word about the kobo development scene: It seems to be quite active and healthy, and a number of interesting applications are provided for it. But unfortunately it all happens on a web forum, and they use it not only for discussion, but also as a wiki, a release page, a bug tracker, a feature request list and as a support line – often on one single thread with dozens of posts. This makes it quite hard to find relevant information and decide whether it is still up-to-date. Unfortunately, you cannot really do without it. The PDF viewer that comes with the kobo is barely okish (e.g. no crop functionality), so installing, say, koreader is a must if you read more PDFs than actual ebooks. And then you have to deal with the how-to-start-it problem.

That reminds me: I need to find a decent RSS reader for the kobo, or possibly a good RSS-to-epub converter that I can run automatically. Any suggestions?

PS and related to this project: Thanks to Kathey!

Comments

I've recently switched from using lifrea on my netbook to using newsbeuter. While it's not perfect for reading rss feeds, it is a nice text only console application, with a keybinding to open the web browser to see the actual blog post or article. It has a companion application called podbeuter for downloading podcasts which works nicely.
#1 Efraim Flashner am 2014-09-21
It would be nice to see some pictures or even a video of your setup. Looks pretty interesting!
#2 Felipe Lessa am 2014-09-21
I’ll probably get to that when the setup is a bit more polished. Or at least when there actually is a sunny day that shows the advantage properly :-)
#3 nomeata am 2014-09-21
Looks very interesting - any ideas on using it as an extra monitor, rather than mirroring your existing screen?
#4 Mark Wotton am 2014-09-22
I think it should be possible, but I am waiting for helpful replies to my related question on the unix stackexchange. A combination of enlarging the virtual space with xrandr --fb and x11vnc -clip could work, but that would not yet make window managers aware of it.
#5 nomeata am 2014-09-22
Looks like you've got your grayscale figured out, but could also use the 'lxappearance' gui app to create a customized high contrast (disabled antialiasing, etc) windows theme for vnc sessions. Am attaching screen shots: Screen shot 1, Screen shot 2.
#6 anonymous am 2014-09-22
Thanks for sharing, it would be awesome if it appears a laptop with e-ink monitor. Im a teacher, and that kind of laptop would make the usage of laptops by the students better. I have a macbook (old one, from 2006) do you think i could 'pimp' it so i can use it with a ebook reader screen? Which one you recommend, other than the Kobo?
#7 Jose Fernandez am 2015-03-05
I don’t know much about other eBook readers. In principle, any reader where you can get full access to the underlying linux system should be a possible candidate.
#8 nomeata am 2015-03-05
I just found this in the web. What is the status quo of your project? I dreaming of using a smartphone (FP, android based) and a kobo as a screen for outdoor activities, especially google maps when cycling.
#9 admin am 2016-05-26
I reached the point where, after manual setup (network, starting the VNC server on the laptop and the client on the Kobo), I could use it, as documented in the forum. I did never get around, though, to automate this process yet.
#10 nomeata am 2016-05-26
Hey! Thank you so much for sharing this!!

I'd love to connect an ebookreader as an extra monitor to my thinkpad (windows10). Did you already get some helpful replies to your related question on the unix stackexchange?

If that's not possible yet - can I do this manual setup (network, starting the VNC server on the laptop and the client on the Kobo) with windows running on my thinkpad?
#11 Daniel Schachl am 2016-11-29
I did not follow up on the project, and since I have a new laptop with a better screen now, the need for using the Kobo has reduced a bit.

I did not find out how to use a VNC server as an external monitor with X, and in any case, that would be a Linux-specific solution.

If you find something out, let us know!
#12 nomeata am 2016-11-29
Okay, thank you, I understand! I'll let you know, if I get so far :)
#13 Dainel Schachl am 2016-11-29

Have something to say? You can post a comment by sending an e-Mail to me at <mail@joachim-breitner.de>, and I will include it here.