/ /
27 January 2010: Kindle Kiosk, Part I

Tomorrow Apple will launch its new long anticipated Tablet project, a fact that has made many in the industry nervous, maybe most of all Amazon, who has already taken measures in the last weeks to better be prepared for whatever Apple will be unveiling. One of their decisions was to open up the platform and give developers the possibility to produce Active Content through a soon to be release Kindle Development Kit (KDK).

A few months ago when working together with Konstantin Grcic and Alex Rich on the show Design Real at the Serpentine Gallery, we were looking for exactly such a platform. The aim was to find a technical solution to offer visitors access to the extensive research that product design students from four different schools have conducted about the 43 objects of the show. This research was collected on the website www.design-real.com which was also designed and developed by us.

The problem was that none of the existing computer technologies seemed suitable for such a gallery context, not even anything from Apple. A laptop or a notebook seems to be a too lonely affair, the association to work and the invitation to type on the keyboard misplaced in such a context. The few tablets available appeared to bee too techie, their pivotable screens and detachable keyboards too flimsy for hundreds of visitors per day.

The idea of using the Kindle came up, and its use of the unconventional and somewhat odd eInk display technology seemed to fit the topic of the rest of the show well. The fact that only few in Europe were already confronted with this new technology that feels modern and nostalgic at the same time made us hope that such a piece of technology would be approachable and invite people for longer reading and exploring of the collected information.

But in October 2009 only the small one was available in Europe since a few weeks, and it was quite clear to us that if anything it could only be the Kindle DX. So without conducting any tests about the possibilities of putting our own content on the Kindle trough the PDF or MOBI format, we decided to buy one from the US and find out what the possibilities are.

So a device was bought through a friend from overseas, and a few days later the testing could start. Unfortunately the PDF viewer seemed very basic, and very quickly it became clear that the Kindle was not the kind of technology we imagined it to be. Just like Apple with the iPod, Amazon has designed this device as a storefront as much as a player / displayer of content. The Kindle is the place were content is bought through Amazon's Whispernet, and no content whatsoever is going to prevent users from quitting it and going back to the store where they can browse and buy other content. The Kindle was clearly not a device that Amazon intended to be used for display of information in a show, a fact that made us very sad as its technology and design seemed so suitable otherwise.

But then it came to our attention that the Kindle is based on Linux, and that Amazon has already released the source of its Kernel.

After more research, reports of Kindle hacks were found were people managed to 'break' the devices open and even install other flavours of Linux on it. Eventually a forum was found were a lot of the knowledge of these hacks was gathered and exchanged. The key component seemed to be a file called usbnetwork-0.7.tar.gz which allowed to reactivate a dormant feature on the Kindle DX to use its USB connection for a USB network connection to a computer rather than the mass storage mode that it usually shows up as when connected.

Once this connection was established, the device could be accessed through telnet and the various user interface files could be copied over. They were all jar archives containing compiled Java ME classes. Using the JD-GUI decompiler, these were analysed and various hooks into the event loop and display system were found. It seemed that there were enough starting points making it possible to write a software in Java that would run on top of the Amazon system, locking the whole interface and drawing its own, responding to key events and updating the screen accordingly. The idea of writing our own Mini OS for Design Real was born, and as mad as it sounded, there seemed no better way to achieve our goal.

Many trials and restarts later, a strategy was found that seemed to work well: The software had to be divided into two parts, one that installs itself pretending it is a so called Amazon booklet. When loaded by the underlying system which remains unmodified, this booklet installs its own event queue that intercepts all system events and runs a socket server, waiting for clients to connect to. As soon as a client connects, it sends the events only to the client and does not dispatch them further in the queue, preventing the Amazon system components from receiving them and therefore from updating the screen or responding to the keyboard.

The client software itself uses a JNI library that was found on the Kindle which offers direct access to the eInk frame-buffer and various options over how it is updated (with or without flash, rectangular regions or full screen, etc). The two components combined turned out to offer full control of the system, one blocking the system from receiving any events, the other responding to the events and drawing on top of whatever the Amazon system was already drawing before it was prevented from receiving events. Combining them into one for some reason was not possible. It seemed that booklets loaded by the Amazon system were unable to directly modify the frame-buffer, so the split and the client-server architecture was necessary.

This is part one of the story of how the Amazon Kindle DX became a open reading platform in our show. Part two tomorrow will talk more about how the content of the websites was turned into layouts and rendered in a way suitable for reading on screen on a page format based medium (Kindle), as opposed to an endlessly scrolling one (website). As a final post the Java source code for the Kindle will be made available, along with instructions for installation.