Unlimited Book @ Fahrenheit 451

Idea

Think about a book that sits amongst other books in your library or on your book shelf, but it's collection is as big as your library. What if it can have books materials that your library can't have and can virtually go anywhere. That was the idea behind the Unlimited Book @ Fahrenheit 451.

Description of Unlimited Book and PARI At UnboxFestival 2019

Description of Unlimited Book and PARI At UnboxFestival 2019

Reminiscent of the warmth of a hard bound book and the scent of its pages, The Unlimited Book expands the ecosystem of a library as the keeper of infinite knowledge. Taking the form of a secret book safe which consists of a custom server that runs on battery it serves readings that are stored locally on the server without the use of the internet. This edition of Unlimited Book puts together articles, papers and stories from those that make up the UnBox 2019 programme. Users can connect to the server called Fahrenheit 451, available without password and download as many readings as they want. Thats all they can do. No registration. Open to All. - UnboxFestival/2019

Final display of Unlimited Book

Hardware

Initial idea was to build it using a raspberry pi zero. Run a software AP along with an external wifi dongle. Setup up a Open Network. Run a custom server serving the content on http port. Users can connect to the port and use the content as they wish.

Initial hardware setup using pi zero, wifi dongle and powerbank.

Initial hardware setup using pi zero, wifi dongle and powerbank.

The hardware setup worked as expected. But there were couple of issues. Raspberry PiZero is not exactly $5 in India, not all wifi dongles support software AP. The new Pi Zero W with built in wifi is not cheap either. And people have to buy things to set this up. How about if we can re-purpose hardware? That's when its struct to me that we can use old android phones.

Most android phones are struck at older version of software, every friend of mine has more than one old phone that they don't want to sell as they are offered very low price. I myself have at least 2 phones. This solves the all three major problems. Don't buy Recycle, No need of external battery unless you want a lot of power, Software AP is built in. So the next step was how to run my own web server and serve it to people.

Software

There are to parts to the software setup. One setup the system and second part involves the custom webapp. The idea was not to root the phone but run it just by installing apps. This makes it easy for anyone to run without the hassle of rooting the phone.

Termux

Termux is my favourite way to get linux environment on Android. Its an app that can be installed from play store or F-Droid. It doesn't need rooting so easy to install. And its Free and Open Source.

Termux is an Android terminal emulator and Linux environment app that works directly with no rooting or setup required. A minimal base system is installed automatically - additional packages are available using the APT package manager.

So I started with the Termux and then installed the pip using the package management. It doesn't come with python. Since our custom server is running on Python, let's install Python. Installing Python also installs pip. If you are curious. It install Python 3.7.2 as of now.

#list all the packages
pkg list-all

#install a python 
pkg install python

#install 
pkg install pip

Enable SD Card Permission

For ease of running and maintenance we want to run our custom app from SD Card. Termux by default doesn't have access to SD Card. So go to your Settings→ Apps→ Termux→ Permissions and enable. Now reopen the Termux. go to /sdcard and create a new directory called unlimited_book. You should be able to create one with out any issues. The cd to that new directory and print the current directory just to check.

cd /sdcard

mkdir unlimited_book

cd unlimited_book

pwd

Get Software and run

There exists a large set software for this purpose. But I wanted something very simple. Couple of 100 lines of code and runs out of sqlite DB. I couldn't find one and hence I wrote one. Its open source and available for free.

At this point you can get the web software from Github. If you know git then you can install it and clone it. Else download as zip file, extract it inside our unlimited_book folder. It will extract into a folder - unlimited_book-master. Now you need install the dependencies using the pip. Once you do that, you can start the server

cd unlimited_book-master
pip install -r requirements
#start the server
sh server.py

Running the server

Running the server


Enable SoftAP

Now that our software is running on the machine and enable Soft AP by enabling tethering, name the network as Fahrenheit451, Security None and Disable as Never. This will expose a network called Fahrenheit451 to which anyone can join without entering the password. Once they join the network they can go to http://192.168.43.1:4242 to access the Unlimited Book. Android uses 192.168.43.1 as their DHCP address. You can verify that in the android code if you like. At this point there are limitations to how many can connect at once to the device. I don't know the exact limitations. We will figure out.

Content

Add content to content folder

Add content to content folder

There is only one table and its simple, so a CSV can be uploaded easily.

There is only one table and its simple, so a CSV can be uploaded easily.

Browsing experience

Container

Container is a book. I choose a book that's think, cheap and hardbound. Took a weekend to carve enough space to accommodate the phone and extra battery pack. It worked out really well.

Unlimited book

Unlimited book

Footnotes

Do you like this post? Please rate, its just a click :) 1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...