My Bitcoin Status Display made with a jailbroken Kindle. Original idea and setup taken from @naltatis' kindle-display.
This is a two part setup: The hacked Kindle pulls a screenshot that is taken from the webpage the server displays. The server updates this screenshot in regular intervals and the Kindle also updates regularly.
+------+ update X minutes +------+
| | ------------------> | |
| | wifi | |
| | <------------------ | |
+------+ greyscale image +------+
kindle server
The code in this repository is my personal setup which pulls in data from my own network.
I recommend you fork this repository and modify the ./data.sh
and visual representation to fit your needs.
- Node.js (assembles the data and runs the webserver)
- firefox (takes the screenshot of the webpage)
- pngcrush (converts the screenshot to a greyscale image)
- jo (to generate the JSON data file)
# Clone the repository
git clone [email protected]:username/kindle-display.git
# Go to the server directory
cd kindle-display/server
# Copy sample env file and adapt the settings
cp .env.sample .env
# Install the dependencies
npm install
# Start the server
npm start
# Update data and create the screenshot
./cron.sh
# Preview the greyscale in your browser
open http://localhost:3030/display.png
Once everything works, deploy the server app and setup a cronjob to trigger the cron.sh
script regularly.
You need to jailbreak your Kindle using the packages from the mobileread forum.
I installed these according to the info in their particular READMEs:
- Jailbreak
- USBNetwork
- MKK
- KUAL
# Connect your Kindle via usb and ssh into it
ssh root@kindle
# Make the Kindle file system writable
mntroot rw
# Create the mnt/base-us scripts according to the files in the kindle directory
vi /mnt/base-us/RUNME.sh
# Set the BASE according to your local network setup to address the server
vi /mnt/base-us/update.sh
# Create a cronjob to run the update script in regular intervals
#
# For instance:
# */5 6-22 * * * /mnt/us/update.sh
# 0 23,0,5 * * * /mnt/us/update.sh
vi /etc/crontab/root
# Execute the init script and trigger an the first render
sh /mnt/base-us/RUNME.sh
Notes regarding USB Network (via openoms)
Unmount and eject your Kindle (You might also want to unplug it, some devices behave strangely when toggling usbnet/usbms while plugged in).
You'll need to be in debug mode to run private commands. So, on the Home screen, bring up the search bar (by hitting [DEL] on devices with a keyboard, or the keyboard key on a K4, for example), and enter:
;debugOn
# now we can enable usbnet
~usbNetwork
On the desktop:
dmesg | grep usb0
# example output
> [367478.835928] cdc_subset 1-2:1.1 enp0s20u2i1: renamed from usb0
Use ifconfig enp0s20u2i1 192.168.15.201
To log in ssh [email protected]
and just press enter.
naltatis
Matthew Petroff
hahabird