Today I would like to write few words about a somewhat strange project I did. The need came from the fact that I was quite ill lying in bed for substantial amount of time with problems to move because of sores. I wanted to read something on my Kindle. I found it quite irritating to be forced to move my hand every minute or so to turn the page. I almost immediately thought, come on, there must be a smarter way to do it, and I came up with an idea of a remote page turner for kindle.
But how could that be done? One obvious choice is solenoids mounted on page switchers – but, hey, its the 21st century already. That would not be cool at all. So, the next choice is to hook up to the kindle’s usb port, but the problem is that the kindle works as a slave, not as a host – attaching any HID devices to its usb port is not really possible. USB is out of the picture. After searching the internet, I found that Kindle also has a serial interface. Unfortunately, it is not available unless you open it and solder the port yourself (even though I have done things like that in the past I certainly didn’t want to do it now) there has to be another way of approaching this problem. And finally I got it. WIFI 🙂 – Why didn’t I think of it in the beginning?
Ok, so WIFI, but how can I connect to my kindle using WIFI? Tt is the kindle that connects to the router. Maybe it would be possible to somehow connect (via ssh) to kindles IP address and send commands that way. That was the idea, but, as it turned out it wasn’t that straight forward after all – but doable! 🙂 after figuring out different bits and pieces I was able to ssh to my kindle from a pc great! That’s a big step. Sending commands that would imitate keystrokes should not be that hard since it’s all Linux under the hood. Few internet searches later I got the answer:
[root@kindle root]# echo "send 193" > /proc/keypad [root@kindle root]# echo "send 191" > /proc/keypad
Et voila – those are the commands for turning pages forward and back respectively. I still I need a pc to connect to my kindle via ssh and send those commands. It doesn’t bring me any closer to the goal of being able to turn pages remotely, or at least without any large movements. The solution was to write an android app that does all that, and the actual remote would be a wired audio remote attached to my Samsung’s headhones. After maybe an hour of searching the internet, and another half hour of actual coding, I had an Android app in place and ready to operate. It is very rough and could probably be improved in almost every aspect, but it does its job perfectly. I can now lie in bed holding my wired remote between my fingers and read my kindle – isn’t that awesome?
There is still the possibility to go completely wireless with something like a bluetooth camera shutter, but I think that the first solution is good enough.
Here you can see the assembled piece in action: http://youtu.be/hb3-mywNwF4
Android application code available there: https://github.com/mbarabasz/KindleTurn
1. Jailbreak Kindle
2. Install USBNetwork update
3. Enable SSH over WIFI
4 Test out commands to turn pages via usb link
5. Write Android app to listen to remote commands and send commands to Kindles ssh server
ssh lib for java
kindle rooting and getting access to its ssh
Just few days ago I finally received my remote shutter for Android and iOS. It is a pretty cool device even if used for its original purpose. As stated in the previous post I was intending to at some point to “go completely wireless” and having remote shutter would make it possible. So here we go:
This is exactly how my device looks like. I bought it on ebay for just over 3$ with free shipping (it took almost one month to arrive but still it is a good deal).
After connecting device to my phone over bluetooth (which was dead easy, just pair devices) it was recognized as a bluetooth keyboard. I opened my camera app and it worked straight away I was able to take pictures with it (small android buttoe n). Of course I was curious about the bigger button, it would be cool to use it as FORWARD in this project where as the small one would fit for PREVIOUS perfectly. When pressed in home screen it is putting volume up – brilliant.
After quick modification of Android app I wrote, changing the keys that should turn the pages and adding possibility to modify kindle’s ip, kindle’s username, and kindle’s password. I was good to go for a first test. It worked!
As for the usage – it works pretty much perfectly, it is quick and reliable. The range is sufficient as you still need to see the Kindle, so1m is more than enough (I haven’t tested it but it should do at least 5m). There is one remark I need to make thou: The shutter turns itself to power preservation mode after around one minute from last usage – this means you need to read at least one page per minute to keep it up, which shouldn’t be a problem for a typical person. Pressing the button after that time takes around 3s to reconnect and then turns the page, I think it is acceptable.
The modified code can be found in github. At some point I am planning to put it to Google Play (even got developers account for that purpose), I am a little concerned thou since getting this setup to work requires few extra steps and some basic understanding. Stay tuned.
Wireless version in action: http://youtu.be/DCK1khQHFfE